Modifiier fichier erreur.php

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] Modifiier fichier erreur.php

    Bonsoir,

    Simon dans son livre donne une procédure pour modifier le fichier erreur.php car il s'agit de personnaliser la page erreur 404.
    J'ai réussi à créer un article avec le message personnalisé et relevé l'Id : 39
    J'ai copié le fichier erreur.php présent dans template / system dans template / templatecreatorck
    J'ai envoyé le fichier de mon FTP en local pour l'éditer avec notepad++

    Je ne sais pas me repérer dans le code, ou dois-je insérer précisément le code fourni par Simon :

    If(($this->error->getCode())==’404’) {
    header(‘Location:/index.php?option=com_content&view=article&id=39’) ;
    Exit ;
    }

    Merci par avance pour votre aide.

    A bientôt

    Fichiers joints
    Dernière édition par VALANCOT à 24/10/2017, 21h39

  • #2
    Bonsoir,
    ta pj est illisible ... trop petite ... poste plutot le code ici
    Maintenant pour tester ta page, est ce que tu la voit apparaitre si tu ajoute index.php?option=com_content&view=article&id=39 juste après le nom de domaine de ton site ?
    Ce forum, vous l'aimez ? il vous a sauvé la vie ? Vous y apprenez chaque jour ? Alors adhérez à l'AFUJ https://www.joomla.fr/association/adherer
    Cette année, le JoomlaDay FR a lieu à Bruxelles, les 20 et 21 mai 2022, plus d'infos et inscriptions : www.joomladay.fr

    Commentaire


    • #3
      Bonjour,

      A quel endroit précisément je dois copier le code de Simon pour que l'outil aille chercher mon article personnalisé pour l'erreur 404 ?
      A bintôt

      Voici le code de mon fichier erreur.php :

      Code:
      /**
      * @package Joomla.Site
      * @subpackage Template.system
      *
      * [USER="64686"]Copyright[/USER] Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
      * @license GNU General Public License version 2 or later; see LICENSE.txt
      */
      
      defined('_JEXEC') or die;
      
      /** @var JDocumentError $this */
      
      if (!isset($this->error))
      {
      $this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
      $this->debug = false;
      }
      
      $app = JFactory::getApplication();
      ?>
      <!DOCTYPE html>
      <html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
      <head>
      <meta charset="utf-8" />
      <title><?php echo $this->error->getCode(); ?> - <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?></title>
      <link href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/error.css" rel="stylesheet" />
      <?php if ($this->direction === 'rtl') : ?>
      <link href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/error_rtl.css" rel="stylesheet" />
      <?php endif; ?>
      <?php if ($app->get('debug_lang', '0') == '1' || $app->get('debug', '0') == '1') : ?>
      <link href="<?php echo JUri::root(true); ?>/media/cms/css/debug.css" rel="stylesheet" />
      <?php endif; ?>
      <!--[if lt IE 9]><script src="<?php echo JUri::root(true); ?>/media/jui/js/html5.js"></script><![endif]-->
      </head>
      <body>
      <div class="error">
      <div id="outline">
      <div id="errorboxoutline">
      <div id="errorboxheader"><?php echo $this->error->getCode(); ?> - <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?></div>
      <div id="errorboxbody">
      <p><strong><?php echo JText::_('JERROR_LAYOUT_NOT_ABLE_TO_VISIT'); ?></strong></p>
      <ol>
      <li><?php echo JText::_('JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FA VOURITE'); ?></li>
      <li><?php echo JText::_('JERROR_LAYOUT_SEARCH_ENGINE_OUT_OF_DATE_ LISTING'); ?></li>
      <li><?php echo JText::_('JERROR_LAYOUT_MIS_TYPED_ADDRESS'); ?></li>
      <li><?php echo JText::_('JERROR_LAYOUT_YOU_HAVE_NO_ACCESS_TO_THIS _PAGE'); ?></li>
      <li><?php echo JText::_('JERROR_LAYOUT_REQUESTED_RESOURCE_WAS_NOT _FOUND'); ?></li>
      <li><?php echo JText::_('JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_P ROCESSING_YOUR_REQUEST'); ?></li>
      </ol>
      <p><strong><?php echo JText::_('JERROR_LAYOUT_PLEASE_TRY_ONE_OF_THE_FOLL OWING_PAGES'); ?></strong></p>
      <ul>
      <li><a href="<?php echo JUri::root(true); ?>/index.php" title="<?php echo JText::_('JERROR_LAYOUT_GO_TO_THE_HOME_PAGE'); ?>"><?php echo JText::_('JERROR_LAYOUT_HOME_PAGE'); ?></a></li>
      </ul>
      <p><?php echo JText::_('JERROR_LAYOUT_PLEASE_CONTACT_THE_SYSTEM_ ADMINISTRATOR'); ?></p>
      <div id="techinfo">
      <p>
      <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?>
      <?php if ($this->debug) : ?>
      <br/><?php echo htmlspecialchars($this->error->getFile(), ENT_QUOTES, 'UTF-8');?>:<?php echo $this->error->getLine(); ?>
      <?php endif; ?>
      </p>
      <?php if ($this->debug) : ?>
      <div>
      <?php echo $this->renderBacktrace(); ?>
      <?php // Check if there are more Exceptions and render their data as well ?>
      <?php if ($this->error->getPrevious()) : ?>
      <?php $loop = true; ?>
      <?php // Reference $this->_error here and in the loop as setError() assigns errors to this property and we need this for the backtrace to work correctly ?>
      <?php // Make the first assignment to setError() outside the loop so the loop does not skip Exceptions ?>
      <?php $this->setError($this->_error->getPrevious()); ?>
      <?php while ($loop === true) : ?>
      <p><strong><?php echo JText::_('JERROR_LAYOUT_PREVIOUS_ERROR'); ?></strong></p>
      <p>
      <?php echo htmlspecialchars($this->_error->getMessage(), ENT_QUOTES, 'UTF-8'); ?>
      <br/><?php echo htmlspecialchars($this->_error->getFile(), ENT_QUOTES, 'UTF-8');?>:<?php echo $this->_error->getLine(); ?>
      </p>
      <?php echo $this->renderBacktrace(); ?>
      <?php $loop = $this->setError($this->_error->getPrevious()); ?>
      <?php endwhile; ?>
      <?php // Reset the main error object to the base error ?>
      <?php $this->setError($this->error); ?>
      <?php endif; ?>
      </div>
      <?php endif; ?>
      </div>
      </div>
      </div>
      </div>
      </div>
      </body>
      </html>
      <modo>Merci d'utiliser la balise [code] [/code] . Ça permet de rendre plus lisible la discussion. </modo>
      Dernière édition par lesoutier à 22/10/2017, 07h48

      Commentaire


      • #4
        Bonsoir Simon,

        Voici le code de mon fichier error.php. Dans ton livre je n'arrive pas à voir précisément où insérer le code pour que l'outil ouvre mon article personnalisé pour mon message d'erreur 404. (Id 39) car je ne maîtrise pas suffisamment.

        Code:
        <?php
        /**
         * @package     Joomla.Site
         * @subpackage  Template.system
         *
         * [USER="64686"]Copyright[/USER]   Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
         * @license     GNU General Public License version 2 or later; see LICENSE.txt
         */
        
        defined('_JEXEC') or die;
        
        /** @var JDocumentError $this */
        
        if (!isset($this->error))
        {
            $this->error = JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
            $this->debug = false;
        }
        
        $app = JFactory::getApplication();
        ?>
        <!DOCTYPE html>
        <html lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>">
        <head>
            <meta charset="utf-8" />
            <title><?php echo $this->error->getCode(); ?> - <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?></title>
            <link href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/error.css" rel="stylesheet" />
            <?php if ($this->direction === 'rtl') : ?>
                <link href="<?php echo $this->baseurl; ?>/templates/<?php echo $this->template; ?>/css/error_rtl.css" rel="stylesheet" />
            <?php endif; ?>
            <?php if ($app->get('debug_lang', '0') == '1' || $app->get('debug', '0') == '1') : ?>
                <link href="<?php echo JUri::root(true); ?>/media/cms/css/debug.css" rel="stylesheet" />
            <?php endif; ?>
            <!--[if lt IE 9]><script src="<?php echo JUri::root(true); ?>/media/jui/js/html5.js"></script><![endif]-->
        </head>
        <body>
            <div class="error">
                <div id="outline">
                <div id="errorboxoutline">
                    <div id="errorboxheader"><?php echo $this->error->getCode(); ?> - <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?></div>
                    <div id="errorboxbody">
                    <p><strong><?php echo JText::_('JERROR_LAYOUT_NOT_ABLE_TO_VISIT'); ?></strong></p>
                    <ol>
                        <li><?php echo JText::_('JERROR_LAYOUT_AN_OUT_OF_DATE_BOOKMARK_FAVOURITE'); ?></li>
                        <li><?php echo JText::_('JERROR_LAYOUT_SEARCH_ENGINE_OUT_OF_DATE_LISTING'); ?></li>
                        <li><?php echo JText::_('JERROR_LAYOUT_MIS_TYPED_ADDRESS'); ?></li>
                        <li><?php echo JText::_('JERROR_LAYOUT_YOU_HAVE_NO_ACCESS_TO_THIS_PAGE'); ?></li>
                        <li><?php echo JText::_('JERROR_LAYOUT_REQUESTED_RESOURCE_WAS_NOT_FOUND'); ?></li>
                        <li><?php echo JText::_('JERROR_LAYOUT_ERROR_HAS_OCCURRED_WHILE_PROCESSING_YOUR_REQUEST'); ?></li>
                    </ol>
                    <p><strong><?php echo JText::_('JERROR_LAYOUT_PLEASE_TRY_ONE_OF_THE_FOLLOWING_PAGES'); ?></strong></p>
                    <ul>
                        <li><a href="<?php echo JUri::root(true); ?>/index.php" title="<?php echo JText::_('JERROR_LAYOUT_GO_TO_THE_HOME_PAGE'); ?>"><?php echo JText::_('JERROR_LAYOUT_HOME_PAGE'); ?></a></li>
                    </ul>
                    <p><?php echo JText::_('JERROR_LAYOUT_PLEASE_CONTACT_THE_SYSTEM_ADMINISTRATOR'); ?></p>
                    <div id="techinfo">
                    <p>
                        <?php echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8'); ?>
                        <?php if ($this->debug) : ?>
                            <br/><?php echo htmlspecialchars($this->error->getFile(), ENT_QUOTES, 'UTF-8');?>:<?php echo $this->error->getLine(); ?>
                        <?php endif; ?>
                    </p>
                    <?php if ($this->debug) : ?>
                        <div>
                            <?php echo $this->renderBacktrace(); ?>
                            <?php // Check if there are more Exceptions and render their data as well ?>
                            <?php if ($this->error->getPrevious()) : ?>
                                <?php $loop = true; ?>
                                <?php // Reference $this->_error here and in the loop as setError() assigns errors to this property and we need this for the backtrace to work correctly ?>
                                <?php // Make the first assignment to setError() outside the loop so the loop does not skip Exceptions ?>
                                <?php $this->setError($this->_error->getPrevious()); ?>
                                <?php while ($loop === true) : ?>
                                    <p><strong><?php echo JText::_('JERROR_LAYOUT_PREVIOUS_ERROR'); ?></strong></p>
                                    <p>
                                        <?php echo htmlspecialchars($this->_error->getMessage(), ENT_QUOTES, 'UTF-8'); ?>
                                        <br/><?php echo htmlspecialchars($this->_error->getFile(), ENT_QUOTES, 'UTF-8');?>:<?php echo $this->_error->getLine(); ?>
                                    </p>
                                    <?php echo $this->renderBacktrace(); ?>
                                    <?php $loop = $this->setError($this->_error->getPrevious()); ?>
                                <?php endwhile; ?>
                                <?php // Reset the main error object to the base error ?>
                                <?php $this->setError($this->error); ?>
                            <?php endif; ?>
                        </div>
                    <?php endif; ?>
                    </div>
                    </div>
                </div>
                </div>
            </div>
        </body>
        </html>
        Où faut-il que j'insère :

        Code:
        If(($this->error->getCode())==’404’) {
        header(‘Location:/index.php?option=com_content&view=article&id=39’) ;
        Exit ;
        }
        Merci par avance pour ton aide.

        A Bientôt

        Commentaire


        • #5
          Bonjour,

          il faut insérer ce code juste après la ligne :

          Code PHP:
            defined('_JEXEC') or die; 
          Pour apprendre à construire votre site web avec Joomla 3 : Joomla3! Le Livre Pour Tous : http://cinnk.com/joomla/3/le-livre-pour-tous

          Référencement Joomla! 10 astuces pour référencer son site web https://cinnk.com/articles/referencement-joomla-10-astuces-pour-referencer-son-site-web

          Créez votre boutique en ligne avec Joomla! & HikaShop http://cinnk.com/boutique/livres/cre...la-et-hikashop

          Commentaire


          • #6
            salut
            je pense qu'il n'y a que ce code à mettre dans le fichier, rien d'autre. tu peux faire le test, efface tout et mets ce code, tu verras bien
            prends soin de modifier l'ID "39" par celui de ton article
            CEd
            Vive Joomla! http://www.joomlack.fr Tutoriels et extensions pour Joomla!. Livre création de template Joomla de plus de 200 pages.
            http://www.template-creator.com Outil de création de templates
            Module Maximenu CK - Megamenu, multicolonnes, chargement de module, description de lien, deroulement animé - Compatible Virtuemart, Hikashop

            Commentaire


            • #7
              Bonsoir,

              Cela fonctionne, j'ai cependant laisser la fin du code car je ne maîtrise pas le sujet.

              A Bientôt

              Commentaire

              Annonce

              Réduire
              Aucune annonce pour le moment.

              Partenaire de l'association

              Réduire

              Hébergeur Web PlanetHoster
              Travaille ...
              X