Home Blog SEO PrestaShop 1.6 | vylepšení SEO generator

PrestaShop 1.6 | vylepšení SEO generator

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
Hodnocení uživatelů: / 0
NejhoršíNejlepší 
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

  1. Generovala URL bez "id" produktu a kategorie?
  2. Generoval titulek produktů ve tvaru : titulek produktu | kategorie | rodičovská kategorie?
  3. Generoval titulek kategorií ve tvaru : rodičovská kategorie | titulek kategorie?

Generovat URL bez id u produktu a katagorie459-PS1.6 Preferences SEO URL459-PRTSC Preferences SEO URLs

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