Jump to content

Recommended Posts

Bonjour,

Je viens de m'apercevoir que ma boutique présentait des erreurs php.

Pouvez-vous prendre le temps de m'expliquer comment en résoudre au moins une, afin que je puisses traiter les autres :

Exemple :

Notice: Undefined variable: categories_produit in /home/abatjourxw/Lechtimarche/modules/menu/menu.php on line 342

Notice: Undefined variable: newitem in /home/abatjourxw/Lechtimarche/modules/panier/panier.php on line 88

Notice: Use of undefined constant id_category - assumed 'id_category' in /home/abatjourxw/Lechtimarche/modules/homecategories/homecategories.php on line 162

Je tourne en rond.

Merci par avance,

 

Share this post


Link to post
Share on other sites

ben ces modules utilisent des variables non définies, il suffit de les déclarer en tête de fonction

Share this post


Link to post
Share on other sites

Merci pour votre réponse rapide.

Un exemple peut-être pour la première ligne d'erreur ?

Merci par avance,

Share this post


Link to post
Share on other sites

montrez-moi le bloc correspondant à cette ligne:

/home/abatjourxw/Lechtimarche/modules/menu/menu.php on line 342

Share this post


Link to post
Share on other sites

// ***** LES PRODUITS ***********
//récupération des catégories
$categorie_produit = new Category($categorie_produit_id, intval($cookie->id_lang));
$subcategories_produit = $categorie_produit->getSubCategories(intval($cookie->id_lang),true);
$smarty->assign('subcategories_produit', $subcategories_produit);
$smarty->assign('categorie_produit', $categories_produit);
//print_r($subcategories_produit);

 

 

Share this post


Link to post
Share on other sites

ok donc la ligne: $smarty->assign('categorie_produit', $categories_produit);

dit: on envoie au tpl la variable categorie_produit en lui donnant la valeur de $categorie_produit

Sauf que je ne sais pas d'où sort cette variable (et php non plus) 

Il me faudrait le code de la fonction complète car il semblerait que cette variable doit être définie dans certains cas particuliers mais pas par défaut.

Pour la définir il faut que je sache si c'est un string ou un array

Share this post


Link to post
Share on other sites

non, juste la fonction complète dont vient le bloc ci-dessus

Share this post


Link to post
Share on other sites

/**
    * Returns module content for header
    *
    * @param array $params Parameters
    * @return string Content
    */
    function hookTop($params)
    {
        global $smarty, $cookie, $cart;

$smarty->assign(array(
                        'nb_categorie_displayed' => Configuration::get('NB_CATEGORIE_DISPLAYED'),
                ));


        $selected_menu = 0;
        if (isset($_GET['id_product']))
        {
            $pro = new Product(intval($_GET['id_product']), true, intval($cookie->id_lang));
            $cat = new Category(intval($pro->id_category_default), intval($cookie->id_lang));

        }
        if (isset($_GET['id_category']))
        {
            $cat = new Category(intval($_GET['id_category']), intval($cookie->id_lang));
            //die(print_r($cat));
                    $selected_menu = $cat->id_parent;
        }
        if(isset($cat))
        {
                if($cat->id_parent == 1)
                {
                    $selected_menu = $cat->id_category;
                }
                else
                {
                    $selected_menu = $cat->id_parent;
                }
        }
        if($selected_menu == 0 || $selected_menu == 1)
        {
         switch($_SERVER['PHP_SELF'])
            {
                case '/region-nord.php' :
                            $selected_menu=6;
                            break;

                case '/recettes-nord.php' :
                            $selected_menu=7;
                            break;

                case '/annuaire-nord.php' :
                            $selected_menu=8;
                            break;

                case '/espacepro.php' :
                            $selected_menu=9;
                            break;

                default :
                            $selected_menu=1;
                            break;
            }

        }
$smarty->assign('selected_menu', $selected_menu);

 

//paramètrage des id catégories
$categorie_produit_id=5;
$push_category_produit_id = 14;

$categorie_region_id=6;
$push_category_region_id = 13;

$categorie_recette_id=7;
$push_category_recette_id = 16;

$categorie_annuaire_id=8;
$push_category_annuaire_id = 17;

// ***** LES PRODUITS ***********
//récupération des catégories
$categorie_produit = new Category($categorie_produit_id, intval($cookie->id_lang));
$subcategories_produit = $categorie_produit->getSubCategories(intval($cookie->id_lang),true);
$smarty->assign('subcategories_produit', $subcategories_produit);
$smarty->assign('categorie_produit', $categories_produit);
//print_r($subcategories_produit);

 

if (file_exists(_PS_MODULE_DIR_.'/menu/menu.xml'))
{
    if ($xml = simplexml_load_file(_PS_MODULE_DIR_.'/menu/menu.xml'))
    {
        global $cookie, $smarty;
        $smarty->assign(array(
                    'menu_product_img' => $this->_path.'menu_pdt.jpg',
                    'menu_region_img' => $this->_path.'menu_region.jpg',
                    'menu_recette_img' => $this->_path.'menu_recette.jpg',
                    'menu_annuaire_img' => $this->_path.'menu_annuaire.jpg',
                    'produit_content' => $xml->body->produit_produit,
                    'produit_region' => $xml->body->produit_region,
                    'produit_recette' => $xml->body->produit_recette,
                    'produit_annuaire' => $xml->body->produit_annuaire,
                    ));
    }
}

        $smarty->assign('vignette', _PS_THEME_DIR_.'vignette-pushproduct.tpl');
        return $this->display(__FILE__, 'menu.tpl');
    }
}

?>

Share this post


Link to post
Share on other sites

ah ben c'est une erreur de typo en fait.

il faut remplacer 

$smarty->assign('categorie_produit', $categories_produit);

par

$smarty->assign('categorie_produit', $categorie_produit);

Rassurez-moi, c'est un module maison ça, pas un truc acheté ?

Share this post


Link to post
Share on other sites

oui un module modifié.... C'est du ps 1.2.5

Merci en tout cas, je n'ai plus l'erreur !!!

Pour le panier, je viens de vérifier, je ne crois pas que ce soit lié à la syntaxe :

function hookLeftColumn($params)
    {
        global $smarty, $cookie, $cart;

//on va limiter l'affichage à trois produits
$items = $cart->getProducts();
if($items)
{
    $newitem = array_slice($items,0,2);
}
//die(print_r($items));

/*
if(Validate::isLoadedObject($cart))
{
    $total = $cart->getTotalCart($car->id);
}
*/

        $smarty->assign(array(
            'logged' => $cookie->isLogged(),
            'voucherAllowed' => intval(Configuration::get('PS_VOUCHERS')),
            'returnAllowed' => intval(Configuration::get('PS_ORDER_RETURN')),
            'HOOK_CUSTOMER_ACCOUNT' => Module::hookExec('customerAccount'),
            'displayconnexionbox' => Configuration::get('DISPLAY_CONNEXION_BLOC'),
                        'cart' => $cart,
                        'items' => $newitem,
  //                      'total' => $total,
                        //'total' => Tools::displayPrice('8.60', 1, false, false),
                        'total' => Tools::displayPrice($cart->getOrderTotal(1,3), 1, false, false),
                        'fraisport'=> Tools::displayPrice($cart->getOrderShippingCost(null,true), 1, false, false),
                        'cart_qties' => $cart->nbProducts(),
                        'logged' => $cookie->isLogged(),
                        'customerName' => ($cookie->logged ? $cookie->customer_firstname.' '.$cookie->customer_lastname : false),
                        'firstName' => ($cookie->logged ? $cookie->customer_firstname : false),
                        'lastName' => ($cookie->logged ? $cookie->customer_lastname : false)
        ));
//print_r($cart->getProducts());
        return $this->display(__FILE__, $this->name.'.tpl');
    }

 

Share this post


Link to post
Share on other sites

là c'est que la variable n'est définie que s'il y a des items donc ajoutez après 

if($items)
{
    $newitem = array_slice($items,0,2);
}
else
{
    $newitem = array();
}

 

Share this post


Link to post
Share on other sites

Un grand merci, vous êtes vraiment efficace !!!

Je vais tenter de me débrouiller pour la 3ème, je ne manquerais pas de vous solliciter au besoin et de vous recommander.

Share this post


Link to post
Share on other sites

Merci, mais je ne manque pas de travail ;)

 

Share this post


Link to post
Share on other sites

Bon, me voilà contraint de vous solliciter à nouveau...

Notice: Use of undefined constant id_category - assumed 'id_category' in /home/abatjourxw/Lechtimarche/modules/homecategories/homecategories.php on line 162

Voici le code :

    function hookRegion($params)
    {
        global $smarty;
        $category = new Category(6);
        $categories = $category->getSubCategories($params['cookie']->id_lang, true);

$cpt = 0;
        foreach($categories as $categorie)
        {
            $products = null;
            $cpt_product=0;
            // on récupère les produit
            $mycat = new Category($categorie[id_category]);
            $bad_products = $mycat->getProducts($params['cookie']->id_lang, 1, 10, null, null, false, true, true, 9);

            //on va changer la catégorie par défaut
            foreach($bad_products as $bad_product)
            {
                $bad_product[id_category_default] = $categorie[id_category];
                $bad_product[category] = $categorie[name];
                $products[$cpt_product++] = $bad_product;
            }
            // on les mets dans le tableau
            if(!empty($products))    $mytab[$cpt++] = $products;
         }

        $all = array();
        $x = 0;
        foreach($mytab as $mycat)
        {
            if($x == 6)
            {
                break;
            }
            $long = 0;
            $y = 0;
            foreach($mycat as $mypdt)
            {
                $y++;
                $long += strlen($mypdt['name']);
                $all[$x][$y] = $mypdt;
                if($long >= 130)
                {
                    break;
                }
            }
            $x++;
        }

 

        $nb = intval(Configuration::get('HOME_categories_NBR'));
        $titre_region = Configuration::get('HOME_categories_TITREREGION');


        $smarty->assign(array(
            'hc_categories' => $categories,
            'icone' => "icone_lion.png",
            'titre' => $titre_region,
            'page' => "region",
            'mytab' => $all,
            'lang' => Language::getIsoById(intval($params['cookie']->id_lang)),
        ));
        return $this->display(__FILE__, 'homecategories.tpl');
    }

    function hookRecette($params)
    {
        global $smarty;
        $category = new Category(7);
        $categories = $category->getSubCategories($params['cookie']->id_lang, true);

$cpt = 0;
        foreach($categories as $categorie)
        {
            $products = null;
            $cpt_product=0;
            // on récupère les produit
            $mycat = new Category($categorie[id_category]);
            $bad_products = $mycat->getProducts($params['cookie']->id_lang, 1, 10, null, null, false, true, true, 9);
            //on va changer la catégorie par défaut
            foreach($bad_products as $bad_product)
            {
                $bad_product[id_category_default] = $categorie[id_category];
                $bad_product[category] = $categorie[name];
                $products[$cpt_product++] = $bad_product;
            }

            // on les mets dans le tableau
            if(!empty($products))    $mytab[$cpt++] = $products;
         }

Share this post


Link to post
Share on other sites

y en a pas qu'une là^^

les index de tableaux, sauf si ce sont des variables doivent être entourés de simples quotes '  '

$categorie[id_category]; => $categorie['id_category'];

$categorie[name];  => $categorie['name'];

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More