Déboguage du Kit CNRS Impossible!!

Présentation du Kit Web du CNRS Forums Installation du Kit Web CNRS Déboguage du Kit CNRS Impossible!!

Ce sujet a 2 réponses, 2 participants et a été mis à jour par  cazaubon laurent pierre, il y a 1 an et 2 mois.

3 sujets de 1 à 3 (sur un total de 3)
  • Auteur
    Messages
  • #1352

    Seguinot Christophe
    Participant

    Bonjour

    Encore un petit problème qui m’a fait perdre 3 heures !!

    Le fichier /cnrswebkit/inc/inc-pages-functions.php du kit CNRS contient la ligne « ini_set(« display_errors », 0); » qui désactive l’affichage des erreurs!

    Si vous souhaitez déboguer, désactiver cette ligne qui ne devrait pas apparaître ici, généralement les configurations sont modifiées des dans le fichier config.php !!

    Cordialement

    #6498

    bonjour,

    idem (2 jours perdu) et j’envisage meme de changer de thème en gardant le reste du kit, si pas resolu rapidement.

    en effet, qd on passe en WP_DEBUG + WP_DEBUG_DISPLAY:true, nos propres bugs ne sont pas visualisés car ce ini_set(« display_errors », 0) neutralise tout les réglages du wp-config.php et masque les bugs du site

    c’est bloquant car:

    – inc-pages-functions.php contient beaucoup de bugs (basiques: this au lieu de $this, variables non initialisées, cas de pages non traités dans certaines fonctions, …-) et un des fichier le plus importants du thème (dispatche ou extraits les informations vers les pages)

    – la démo ne fonctionne que parce que les bugs sont masqués :
    si on sort du cas de figure de cette démo, on a des comportements bizarrs (logique: les bugs by-passés font faire des sauts de puce/sorties dans le code)

    personnellement, j’ai corrigé qq bugs mais l’administration plante encore … abandon ==> autre solution temporaire :

    A- blinder inc-pages-functions.php :
    fait des ini_set(« display_errors », 0); en entrée de chaque fonction sensible et ini_set(« display_errors », ?) en sortie
    Pour que le site respecte au final les options du wp-config.php (sinon soit on développe à l’aveugle, soit faut distinguer ses bugs parmi 15 autres bugs)

    B- la fonction qui automatise ca:

    function err($mode='off') {
        
        static $err=0;
        if($err=0)
                $err=ini_get("display_errors");
        
        if($mode=='off')
            if(WP_DEBUG) 
                if(WP_DEBUG_DISPLAY)
                    ini_set("display_errors", 0);
                
        if($mode=='on')
            if(WP_DEBUG) 
                if(WP_DEBUG_DISPLAY)
                    ini_set("display_errors", $err);    
    }

    C- utilisation dans fichier inc-pages-functions.php :

    //ini_set("display_errors", 0); //VERSION CORRIGEE

    avec ex de fonction qui pose pb :

    class CnrswebkitPageItemsList {
    ....
    public function get_html_item_list($template = false) {
    
        public function get_html_item_list($template = false) {
            
            err();
            if (!$template) {
                $template = $this->post_type;
            }
    
          ....
    
                switch ($this->post_type) {
                    case 'actualite':
                        if (is_home() || is_front_page()) {
                            echo '<article id="actualite-social-links" class="widget"><h1>Suivez-nous</h1></article>';
                        }
                        break;
                }
            }
            err('on');
        }
    

    D- test :

    faites un echo zzzz; dans votre functions.php du thème enfant. et vous allez voir votre bug seul (sans ceux de inc-pages-functions.php)

    mais c’est vraiment pas une bonne solution car le kit dysfonctionnera qd meme (il marche « grace » à ces bugs ?….).
    Et sera écrasé lors la prochaine mise à jour.

    ——————————————————–

    il faudrait signaler ca à l’équipe : car on peut pas travailler sur cette base (+ failles de sécurité dans cette version: l’ingenieur système refusera de mettre en ligne un tel appât à hackers)

    #6514

    je ne peux pas modifier mon message précedent:

    bien sûr erreur de frappe, mettre:

    function err($mode=’off’) {

    static $err=0;

    if($err==0) <<<<<<<<
    $err=ini_get(« display_errors »);

    ….
    }

    autre problème de ce fichier : (?)
    j’ai l’impression qu’il contient des parties pure front (sans test is_admin() pour certains blocs ??) et des partie admin qui sont parfois chargées aussi bien en front ou admin. (le fichier functions.php pointe dessus systematiquement : un découpage en fonctions admin et front aurait été idéal)

    tout cela, ralentit peut-etre l’admin et le front. peut-etre petits dynsfonctionnement ?
    j’ai des lenteurs inhabituelles et un plantage lors de l’installation d’un plug-in que j’utilise sans pb.

    je ne sais pas en fin de compte….

    c’est dommage car pour le reste le kit fait gagner du temps et est bien pensé globalement:
    mais ce fichier central très important me laisse perplexe….

3 sujets de 1 à 3 (sur un total de 3)

Vous devez être connecté pour répondre à ce sujet.