Popis: Jak v Prestashop 1.6 generovat URL bez id. Titulek produktů ve tvaru : titulek produktu | kategorie | rodičovská kategorie. A titulek kategorií ve tvaru : rodičovská kategorie | titulek kategorie?
Klíčová slova: SEO, url, title, Presta
Hits: 1616
Blog
-
SEO
|
Napsal uživatel Admin
|
Sobota, 22 Říjen 2016 20:37
|
Jak ve Verzi Prestashop 1.6.0.9
s Aktuálně použitou šablonou default-bootstrap
dosáhnout toho, aby se
- Generovala URL bez "id" produktu a kategorie?
- Generoval titulek produktů ve tvaru : titulek produktu | kategorie | rodičovská kategorie?
- Generoval titulek kategorií ve tvaru : rodičovská kategorie | titulek kategorie?
Generovat URL bez id u produktu a katagorie
Generovat titulek produktů ve tvaru : titulek produktu | kategorie | rodičovská kategorie
- v souboru /classes/Meta.php nahraditdle https://www.prestashop.com/forums/topic/56865-seo-updater-module-automatically-generate-title-description-and-keywords-meta-tags/?p=2220145
místo
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']);
}
if ($row = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql))
{
$sql = 'SELECT id_category_default FROM `'._DB_PREFIX_.'product` WHERE id_product = '.(int)$id_product.'';
$row_cat = Db::getInstance(_PS_USE_SQL_SLAVE_)->getRow($sql);
$cat=new Category($row_cat['id_category_default'],(int)$id_lang);
$row['meta_title']=$row['name']." | ". $cat->name;
if (empty($row['meta_description']))
$row['meta_description'] = strip_tags($row['description_short']);
return self::completeMetaTags($row, $row['name']);
}
Generovat titulek kategorií ve tvaru : titulek kategorie | rodičovská kategorie
Bohužel na úpravu kategorie jsem nedokázal použít úseky skriptu Meta.php, jako výše šlo použít pro modifikaci titulku produktu. Dle https://www.prestashop.com/forums/topic/117702-solved-display-parent-category-inside-a-category/ jsem
- v souboru /controllers/front/CategoryController.php doplnit
dle https://www.prestashop.com/forums/topic/117702-solved-display-parent-category-inside-a-category/?p=2112293
// Instantiate category
$this->category = new Category($id_category, $this->context->language->id);
// tcl https://www.prestashop.com/forums/topic/117702-solved-display-parent-category-inside-a-category/?p=2112293
// Instantiate parent category
$parent = new Category($this->category->id_parent, $this->context->language->id);
$this->context->smarty->assign('parent',$parent);
- a v souboru /themes/default-bootstrap/header.php změnil
misto
<title>{$meta_title|escape:'html':'UTF-8'}</title>
<title>
{if $category and !$product and !$maintenance}
{if ($category->id_parent>2)}
{$parent->name} |
{/if}
{$category->meta_title}
{else}
{$meta_title|escape:'html':'UTF-8'}
{/if}
</title>
Další vylepšení
- po zapnutí zobrazení warning php v /config/defines.inc.php
/* Debug only */
if (!defined('_PS_MODE_DEV_'))
define('_PS_MODE_DEV_', false);
- Oprava warning row 1141 v /classes/Tools.php
// $str = trim($str);
// tcl modif
// to>
if(is_array($str)) {$str = trim(implode(" ",$str));}
else {$str = trim(str_replace(","," ",$str));};
|
Aktualizováno Pátek, 02 Prosinec 2016 12:16
|