baalow Posted December 17, 2016 Share Posted December 17, 2016 (edited) Bonjour, Après plusieurs recherche (sans succès), je suis confronté à un problème avec les titre méta title. à chaque fin de titre, je me trouve avec Matelas Morphée.Matelas 70x160 - Sommier et protège-matelas - Matelas Morphée J'ai modifier le fichier : www/...../classes/meta.php ci-dessous le code : (version prestashop 1.6.0.14) <?php /* * 2007-2015 PrestaShop * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to [email protected] so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to http://www.prestashop.com for more information. * * @author PrestaShop SA <[email protected]> * @copyright 2007-2015 PrestaShop SA * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ class MetaCore extends ObjectModel { public $page; public $configurable = 1; public $title; public $description; public $keywords; public $url_rewrite; /** * @see ObjectModel::$definition */ public static $definition = array( 'table' => 'meta', 'primary' => 'id_meta', 'multilang' => true, 'multilang_shop' => true, 'fields' => array( 'page' => array('type' => self::TYPE_STRING, 'validate' => 'isFileName', 'required' => true, 'size' => 64), 'configurable' => array('type' => self::TYPE_INT, 'validate' => 'isUnsignedInt'), /* Lang fields */ 'title' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 128), 'description' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255), 'keywords' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isGenericName', 'size' => 255), 'url_rewrite' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'size' => 255), ), ); public static function getPages($exclude_filled = false, $add_page = false) { $selected_pages = array(); if (!$files = Tools::scandir(_PS_CORE_DIR_.DIRECTORY_SEPARATOR.'controllers'.DIRECTORY_SEPARATOR.'front'.DIRECTORY_SEPARATOR, 'php', '', true)) die(Tools::displayError('Cannot scan root directory')); // Exclude pages forbidden $exlude_pages = array( 'category', 'changecurrency', 'cms', 'footer', 'header', 'pagination', 'product', 'product-sort', 'statistics' ); foreach ($files as $file) { if ($file != 'index.php' && !in_array(strtolower(str_replace('Controller.php', '', $file)), $exlude_pages)) { $class_name = str_replace('.php', '', $file); $reflection = class_exists($class_name) ? new ReflectionClass(str_replace('.php', '', $file)) : false; $properties = $reflection ? $reflection->getDefaultProperties() : array(); if (isset($properties['php_self'])) $selected_pages[$properties['php_self']] = $properties['php_self']; elseif (preg_match('/^[a-z0-9_.-]*\.php$/i', $file)) $selected_pages[strtolower(str_replace('Controller.php', '', $file))] = strtolower(str_replace('Controller.php', '', $file)); elseif (preg_match('/^([a-z0-9_.-]*\/)?[a-z0-9_.-]*\.php$/i', $file)) $selected_pages[strtolower(sprintf(Tools::displayError('%2$s (in %1$s)'), dirname($file), str_replace('Controller.php', '', basename($file))))] = strtolower(str_replace('Controller.php', '', basename($file))); } } // Add modules controllers to list (this function is cool !) foreach (glob(_PS_MODULE_DIR_.'*/controllers/front/*.php') as $file) { $filename = Tools::strtolower(basename($file, '.php')); if ($filename == 'index') continue; $module = Tools::strtolower(basename(dirname(dirname(dirname($file))))); $selected_pages[$module.' - '.$filename] = 'module-'.$module.'-'.$filename; } // Exclude page already filled if ($exclude_filled) { $metas = Meta::getMetas(); foreach ($metas as $meta) if (in_array($meta['page'], $selected_pages)) unset($selected_pages[array_search($meta['page'], $selected_pages)]); } // Add selected page if ($add_page) { $name = $add_page; if (preg_match('#module-([a-z0-9_-]+)-([a-z0-9]+)$#i', $add_page, $m)) $add_page = $m[1].' - '.$m[2]; $selected_pages[$add_page] = $name; asort($selected_pages); } return $selected_pages; } public static function getMetas() { return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT * FROM '._DB_PREFIX_.'meta ORDER BY page ASC'); } public static function getMetasByIdLang($id_lang) { return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT * FROM `'._DB_PREFIX_.'meta` m LEFT JOIN `'._DB_PREFIX_.'meta_lang` ml ON m.`id_meta` = ml.`id_meta` WHERE ml.`id_lang` = '.(int)$id_lang .Shop::addSqlRestrictionOnLang('ml'). 'ORDER BY page ASC'); } public static function getMetaByPage($page, $id_lang) { return Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow(' SELECT * FROM '._DB_PREFIX_.'meta m LEFT JOIN '._DB_PREFIX_.'meta_lang ml ON m.id_meta = ml.id_meta WHERE ( m.page = "'.pSQL($page).'" OR m.page = "'.pSQL(str_replace('-', '', strtolower($page))).'" ) AND ml.id_lang = '.(int)$id_lang.' '.Shop::addSqlRestrictionOnLang('ml')); } public function update($null_values = false) { if (!parent::update($null_values)) return false; return Tools::generateHtaccess(); } public function delete() { if (!parent::delete()) return false; return Tools::generateHtaccess(); } public function deleteSelection($selection) { if (!is_array($selection)) die(Tools::displayError()); $result = true; foreach ($selection as $id) { $this->id = (int)$id; $result = $result && $this->delete(); } return $result && Tools::generateHtaccess(); } public static function getEquivalentUrlRewrite($new_id_lang, $id_lang, $url_rewrite) { return Db::getInstance()->getValue(' SELECT url_rewrite FROM `'._DB_PREFIX_.'meta_lang` WHERE id_meta = ( SELECT id_meta FROM `'._DB_PREFIX_.'meta_lang` WHERE url_rewrite = \''.pSQL($url_rewrite).'\' AND id_lang = '.(int)$id_lang.' AND id_shop = '.Context::getContext()->shop->id.' ) AND id_lang = '.(int)$new_id_lang.' AND id_shop = '.Context::getContext()->shop->id); } /** * @since 1.5.0 */ public static function getMetaTags($id_lang, $page_name, $title = '') { global $maintenance; if (!(isset($maintenance) && (!in_array(Tools::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP')))))) { if ($page_name == 'product' && ($id_product = Tools::getValue('id_product'))) return Meta::getProductMetas($id_product, $id_lang, $page_name); elseif ($page_name == 'category' && ($id_category = Tools::getValue('id_category'))) return Meta::getCategoryMetas($id_category, $id_lang, $page_name, $title); elseif ($page_name == 'manufacturer' && ($id_manufacturer = Tools::getValue('id_manufacturer'))) return Meta::getManufacturerMetas($id_manufacturer, $id_lang, $page_name); elseif ($page_name == 'supplier' && ($id_supplier = Tools::getValue('id_supplier'))) return Meta::getSupplierMetas($id_supplier, $id_lang, $page_name); elseif ($page_name == 'cms' && ($id_cms = Tools::getValue('id_cms'))) return Meta::getCmsMetas($id_cms, $id_lang, $page_name); elseif ($page_name == 'cms' && ($id_cms_category = Tools::getValue('id_cms_category'))) return Meta::getCmsCategoryMetas($id_cms_category, $id_lang, $page_name); } return Meta::getHomeMetas($id_lang, $page_name); } /** * Get meta tags for a given page * * @since 1.5.0 * @param int $id_lang * @param string $page_name * @return array Meta tags */ public static function getHomeMetas($id_lang, $page_name) { $metas = Meta::getMetaByPage($page_name, $id_lang); $ret['meta_title'] = (isset($metas['title']) && $metas['title']) ? $metas['title'] : ''; $ret['meta_description'] = (isset($metas['description']) && $metas['description']) ? $metas['description'] : ''; $ret['meta_keywords'] = (isset($metas['keywords']) && $metas['keywords']) ? $metas['keywords'] : ''; return $ret; } /** * Get product meta tags * * @since 1.5.0 * @param int $id_product * @param int $id_lang * @param string $page_name * @return array */ public static function getProductMetas($id_product, $id_lang, $page_name) { $sql = 'SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description_short` FROM `'._DB_PREFIX_.'product` p LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (pl.`id_product` = p.`id_product`'.Shop::addSqlRestrictionOnLang('pl').') '.Shop::addSqlAssociation('product', 'p').' WHERE pl.id_lang = '.(int)$id_lang.' AND pl.id_product = '.(int)$id_product.' AND product_shop.active = 1'; if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { if (empty($row['meta_description'])) $row['meta_description'] = strip_tags($row['description_short']); return Meta::completeMetaTags($row, $row['name']); } return Meta::getHomeMetas($id_lang, $page_name); } /** * Get category meta tags * * @since 1.5.0 * @param int $id_category * @param int $id_lang * @param string $page_name * @return array */ public static function getCategoryMetas($id_category, $id_lang, $page_name, $title = '') { if (!empty($title)) $title = ' - '.$title; $page_number = (int)Tools::getValue('p'); $sql = 'SELECT `name`, `meta_title`, `meta_description`, `meta_keywords`, `description` FROM `'._DB_PREFIX_.'category_lang` cl WHERE cl.`id_lang` = '.(int)$id_lang.' AND cl.`id_category` = '.(int)$id_category.Shop::addSqlRestrictionOnLang('cl'); $cache_id = 'Meta::getCategoryMetas'.(int)$id_category.'-'.(int)$id_lang; if (!Cache::isStored($cache_id)) { if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { if (empty($row['meta_description'])) $row['meta_description'] = strip_tags($row['description']); // Paginate title if (!empty($row['meta_title'])) $row['meta_title'] = $title.$row['meta_title'].(!empty($page_number) ? ' ('.$page_number.')' : '').''; else $row['meta_title'] = $row['name'].(!empty($page_number) ? ' ('.$page_number.')' : '').''; if (!empty($title)) $row['meta_title'] = $title.(!empty($page_number) ? ' ('.$page_number.')' : '').''; $result = Meta::completeMetaTags($row, $row['name']); } else $result = Meta::getHomeMetas($id_lang, $page_name); Cache::store($cache_id, $result); } return Cache::retrieve($cache_id); } /** * Get manufacturer meta tags * * @since 1.5.0 * @param int $id_manufacturer * @param int $id_lang * @param string $page_name * @return array */ public static function getManufacturerMetas($id_manufacturer, $id_lang, $page_name) { $page_number = (int)Tools::getValue('p'); $sql = 'SELECT `name`, `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'manufacturer_lang` ml LEFT JOIN `'._DB_PREFIX_.'manufacturer` m ON (ml.`id_manufacturer` = m.`id_manufacturer`) WHERE ml.id_lang = '.(int)$id_lang.' AND ml.id_manufacturer = '.(int)$id_manufacturer; if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { if (!empty($row['meta_description'])) $row['meta_description'] = strip_tags($row['meta_description']); $row['meta_title'] = ($row['meta_title'] ? $row['meta_title'] : $row['name']).(!empty($page_number) ? ' ('.$page_number.')' : ''); $row['meta_title'] .= ''; return Meta::completeMetaTags($row, $row['meta_title']); } return Meta::getHomeMetas($id_lang, $page_name); } /** * Get supplier meta tags * * @since 1.5.0 * @param int $id_supplier * @param int $id_lang * @param string $page_name * @return array */ public static function getSupplierMetas($id_supplier, $id_lang, $page_name) { $sql = 'SELECT `name`, `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'supplier_lang` sl LEFT JOIN `'._DB_PREFIX_.'supplier` s ON (sl.`id_supplier` = s.`id_supplier`) WHERE sl.id_lang = '.(int)$id_lang.' AND sl.id_supplier = '.(int)$id_supplier; if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { if (!empty($row['meta_description'])) $row['meta_description'] = strip_tags($row['meta_description']); if (!empty($row['meta_title'])) $row['meta_title'] = $row['meta_title'].''; return Meta::completeMetaTags($row, $row['name']); } return Meta::getHomeMetas($id_lang, $page_name); } /** * Get CMS meta tags * * @since 1.5.0 * @param int $id_cms * @param int $id_lang * @param string $page_name * @return array */ public static function getCmsMetas($id_cms, $id_lang, $page_name) { $sql = 'SELECT `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'cms_lang` WHERE id_lang = '.(int)$id_lang.' AND id_cms = '.(int)$id_cms. ((int)Context::getContext()->shop->id ? ' AND id_shop = '.(int)Context::getContext()->shop->id : '' ); if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { $row['meta_title'] = $row['meta_title'].''; return Meta::completeMetaTags($row, $row['meta_title']); } return Meta::getHomeMetas($id_lang, $page_name); } /** * Get CMS category meta tags * * @since 1.5.0 * @param int $id_cms_category * @param int $id_lang * @param string $page_name * @return array */ public static function getCmsCategoryMetas($id_cms_category, $id_lang, $page_name) { $sql = 'SELECT `meta_title`, `meta_description`, `meta_keywords` FROM `'._DB_PREFIX_.'cms_category_lang` WHERE id_lang = '.(int)$id_lang.' AND id_cms_category = '.(int)$id_cms_category. ((int)Context::getContext()->shop->id ? ' AND id_shop = '.(int)Context::getContext()->shop->id : ''); if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql)) { $row['meta_title'] = $row['meta_title'].''; return Meta::completeMetaTags($row, $row['meta_title']); } return Meta::getHomeMetas($id_lang, $page_name); } /** * @since 1.5.0 */ public static function completeMetaTags($meta_tags, $default_value, Context $context = null) { if (!$context) $context = Context::getContext(); if (empty($meta_tags['meta_title'])) $meta_tags['meta_title'] = $default_value.''; if (empty($meta_tags['meta_description'])) $meta_tags['meta_description'] = Configuration::get('PS_META_DESCRIPTION', $context->language->id) ? Configuration::get('PS_META_DESCRIPTION', $context->language->id) : ''; if (empty($meta_tags['meta_keywords'])) $meta_tags['meta_keywords'] = Configuration::get('PS_META_KEYWORDS', $context->language->id) ? Configuration::get('PS_META_KEYWORDS', $context->language->id) : ''; return $meta_tags; } } Avez vous une solution ? Vous remerciant par avance ! Bonne fête & bon week-end ! Edited December 17, 2016 by baalow (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted December 17, 2016 Share Posted December 17, 2016 Bonjour, actuellement si je vais sur votre site, Matelas Morphée n'apparait sur aucun titre meta donc votre soucis semble corrigé. Link to comment Share on other sites More sharing options...
baalow Posted December 17, 2016 Author Share Posted December 17, 2016 Je parle du titre dans Google. Jai vérifier, ça s'affiche toujours. Link to comment Share on other sites More sharing options...
Mediacom87 Posted December 17, 2016 Share Posted December 17, 2016 il suffit de patienter. Google gère des milliards de milliards de pages donc il passera chez vous lorsqu'il trouvera le temps dans son planning. Pas de moyen de forcer cela. 2 Link to comment Share on other sites More sharing options...
Johann Posted December 18, 2016 Share Posted December 18, 2016 Et pour ne pas perdre tes modifs quand tu feras une mise à jour, utilises l'override... Ou mon module gratuit Link to comment Share on other sites More sharing options...
baalow Posted December 18, 2016 Author Share Posted December 18, 2016 Ok, donc d'après vous le fichier meta est correct ? Je ne comprend pas trop, avant je n'avais pas le nom de ma Boutique dans la Meta title & le fichier meta était deja configurer. Johan, je ne comprend pas, utilise l'override ou le module gratuit, peu tu m'explique ? Merci ! Link to comment Share on other sites More sharing options...
Johann Posted December 18, 2016 Share Posted December 18, 2016 Tu as modifié un fichier de PrestaShop. Quand tu mettras PrestaShop à jour (tu n'as pas la dernière version de PS 1.6), tes modifs seront écrasées. D'où l'intérêt d'utiliser l'override, ce que fait mon module : http://www.johanncorbelconsulting.fr/8-retrait-du-nom-dans-le-titre.html 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