gtraxx Posted June 22, 2011 Share Posted June 22, 2011 Bonjour, je suis entrain de faire une class dans le dossier overide afin d'utiliser une variable smarty supplémentaire pour être appellé dans header.tplEn gros je tente de redéfinir une partie de la class tools en ajoutant une nouvelle fonction mais sans toucher au core.Donc j'ai créer un fichier CMSSeoController.php dans le dossier overide et j'ai placer : <?php class CMSSeoController extends FrontControllerCore{ static function getMeta(){ if ($id_cms = Tools::getValue('id_cms')){ $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'cms_lang` WHERE id_lang = '.(int)($id_lang).' AND id_cms = '.(int)($id_cms)); if ($row) { $row['meta_keywords'] = $row['meta_keywords'].' - '.Configuration::get('PS_SHOP_NAME'); return $row['meta_keywords']; } } } public function process() { //parent::process(); self::$smarty->assign('metas_cms_title',self::getMeta()); } } J'ai donc ajouter dans head.tpl de mon template {$metas_cms_title} pour voir si sa fonctionne mais rien du tout.Que doit on faire pour accéder à cette variable ?EDIT : J'ai également essayer avec une méthode plus direct en créant dans le dossier override un fichier FrontController.php avec la redéfinission de la fonction display Header en ajoutant ma variable juste pour tester mais rien ne se passe : <?php class FrontController extends FrontControllerCore{ static function getMeta(){ if ($id_cms = Tools::getValue('id_cms')){ $row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'cms_lang` WHERE id_lang = '.(int)($id_lang).' AND id_cms = '.(int)($id_cms)); if ($row) { $row['meta_keywords'] = $row['meta_keywords'].' - '.Configuration::get('PS_SHOP_NAME'); return $row['meta_keywords']; } } } //Copie de la fonction displayHeader située dans /classes/FrontController.php, mais avec le "surfooter" en + //C’est la copie qui prendra la main sur la fonction d’origine appelée dans /footer.php public function displayHeader(){ global $css_files, $js_files; if (!self::$initialized) $this->init(); // P3P Policies (http://www.w3.org/TR/2002/REC-P3P-20020416/#compact_policies) header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"'); /* Hooks are volontary out the initialize array (need those variables already assigned) */ self::$smarty->assign(array( 'time' => time(), 'img_update_time' => Configuration::get('PS_IMG_UPDATE_TIME'), 'static_token' => Tools::getToken(false), 'token' => Tools::getToken(), 'logo_image_width' => Configuration::get('SHOP_LOGO_WIDTH'), 'logo_image_height' => Configuration::get('SHOP_LOGO_HEIGHT'), 'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_, 'content_only' => (int)Tools::getValue('content_only'), 'metas_cms_title','test' )); self::$smarty->assign(array( 'HOOK_HEADER' => Module::hookExec('header'), 'HOOK_TOP' => Module::hookExec('top'), 'HOOK_LEFT_COLUMN' => Module::hookExec('leftColumn') )); if ((Configuration::get('PS_CSS_THEME_CACHE') OR Configuration::get('PS_JS_THEME_CACHE')) AND is_writable(_PS_THEME_DIR_.'cache')) { // CSS compressor management if (Configuration::get('PS_CSS_THEME_CACHE')) Tools::cccCss(); //JS compressor management if (Configuration::get('PS_JS_THEME_CACHE')) Tools::cccJs(); } self::$smarty->assign('css_files', $css_files); self::$smarty->assign('js_files', array_unique($js_files)); self::$smarty->display(_PS_THEME_DIR_.'header.tpl'); } } ?> Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now