MyBB.support, le portail francophone de MyBB

Version complète : Page Manager Erreur
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

VERSION_MyBB : 1.8.9
Bonsoir,

Je viens à l'instant d'installer Page manager, sauf que lorsque je créer une page j'obtient une erreur dans le menu page manager..

[Image: 1483392668-pb1.png]

[Image: 1483392684-pb2.png]

La page fonctionne parfaitement mais je ne peux n'y la modifier, ni la supprimer ou en créer une autre..

La seul solution pour cela est de Désinstaller le plugin et retour à la case départ.

Auriez vous une solution ?

Merci
Ce plugin est pour la version 1.6.x de MyBB, pour la version 1.8.x il faut installer :
https://community.mybb.com/mods.php?action=view&pid=486
C'est pourtant celui-la que j'ai installer. Pour en être sur j'ai retiré l'ancien plugin pour mettre celui-ci et j'ai exactement les mêmes erreurs
Pourtant quand j'ai vérifié le plugin 1.5.2, avec le Panneau d'Administration, le lien pointait vers la version 1.6.x sur MyBB.com :
http://mods.mybb.com/view/page-manager

Le problème provient des dernières versions de PHP (la votre est 7.1.0) qui affiche une erreur lorsque nous vérifions le contenu d'un tableau et que l'élément n'existe pas, par exemple :

Code PHP :
if(!isset($cell['extra']['class'])){
...


Cela va causé une erreur si "$cell['extra']" n'existe pas!

Il faudrait changer cela pour :

Code PHP :
if(isset($cell['extra']) && !isset($cell['extra']['class'])){
...

Malgré avoir changé cela, il y a toujours le même problème.

J'ai donc remis de base

Code PHP :
    function construct_row($extra = array())
    {
        
$i 1;
        
$cells '';

        
// We construct individual cells here
        
foreach($this->_cells as $key => $cell)
        {
            
$cells .= "\t\t\t<td";
            
            if(!isset(
$cell['extra']['class']))
            {
                
$cell['extra']['class'] = '';
            }

            if(
$key == 0)
            {
                
$cell['extra']['class'] .= " first";
            }
            elseif(!isset(
$this->_cells[$key+1]))
            {
                
$cell['extra']['class'] .= " last";
            }
            if(
$i == 2)
            {
                
$cell['extra']['class'] .= " alt_col";
                
$i 0;
            } 
Il faut vérifier TOUS les éléments d'un tableau pour éviter les messages d'erreur dans tout le code.

Par exemple pour votre code précédent :

Code PHP :
function construct_row($extra = array()){
   $i 1;
   $cells '';

   // We construct individual cells here
   foreach($this->_cells as $key => $cell){
       $cells .= "\t\t\t<td";

       if(isset($cell['extra'])){

           if(!isset($cell['extra']['class']))
           {
               $cell['extra']['class'] = '';
           }

           if($key == 0)
           {
               $cell['extra']['class'] .= " first";
           }
           elseif(!isset($this->_cells[$key+1]))
           {
               $cell['extra']['class'] .= " last";
           }
           if($i == 2)
           {
               $cell['extra']['class'] .= " alt_col";
               $i 0;
           
// ...
// ...
       

Mais il est fort probable qu'une erreur de même type se produise ailleurs dans une autre partie du code et il faudra toutes les corriger ou supprimer l'affichage du message d'erreur.

D'après votre message d'erreur c'est la ligne 325 du plugin "page_manager" qui pose encore problème lors de l'insertion de la nouvelle rangée dans la table :

Code :
$table->construct_row();
Il y a de l'information sur ce problème ici :

https://community.mybb.com/thread-152252.html

Mais il semble que "Page Manager" ne renseigne pas complètement les variables de la table à afficher et c'est cela qui cause le problème avec les nouvelles versions de PHP...
Malheureusement je n'y connais pas grand chose, et encore moins en anglais :/
Je vous recommande donc de modifier le code tel que mentionné ici et cela devrait régler le problème :

http://mybb.fr/thread-7662-post-45485.html#pid45485
 Utilitaire de traduction fourni par Regentronique