Jump to content

ERREUR PHP


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,

 

Link to comment
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);

 

 

Link to comment
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

Link to comment
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');
    }
}

?>

Link to comment
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é ?

Link to comment
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');
    }

 

Link to comment
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;
         }

Link to comment
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'];

Link to comment
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...