Разделы

[EVO] SEO теги для товаров Shopkeeper (внешние таблицы)

Дано: MODx 1.0.5 + Shopkeeper (товары в внешних таблицах)
Проблема: сделать уникальные SEO (title, description, keywords) для товаров
Решение:
1) создаем ТВ параметры seo_title, seo_keywords, seo_description, прикручиваем их к шаблону товара
2) В чанке head где у вас выводится !DOCTYPE и теги на нужные места впедаливаем вызов сниппета seo

  <head>
    <title>[!seo? &type=`title` !]</title>
    <meta name="keywords" content="[!seo? &type=`keywords` !]" />
    <meta name="description" content="[!seo? &type=`description` !]" />

3) Пишем сниппет seo
<?php
$id = ereg_replace("/\D/", "", $_GET['p']);
if ($id == "") {
    switch ($type) {
        case "title":         return "[*seo_title*] :: [(site_name)]"; break;
        case "keywords":      return "[*seo_keywords*]"; break;
        case "description":   return "[*seo_description*]"; break;        
    }

}

$seo_tags = $modx->db->getRow($modx->db->query("
            select c.pagetitle,
                   (select value from `modx_catalog_tmplvar_contentvalues` where contentid = c.id and tmplvarid = 17) as 'seo_title', 
                   (select value from `modx_catalog_tmplvar_contentvalues` where contentid = c.id and tmplvarid = 15) as 'seo_keywords', 
                   (select value from `modx_catalog_tmplvar_contentvalues` where contentid = c.id and tmplvarid = 16) as 'seo_description'                                       
            from `modx_catalog` c
            where c.id = '".$id."'"));
switch ($type) {
    case "title":         return $seo_tags['seo_title'] == "" ? $seo_tags['pagetitle']." :: [(site_name)]" : $seo_tags['seo_title']." :: [(site_name)]"; break;
    case "keywords":      return $seo_tags['seo_keywords']; break;
    case "description":   return $seo_tags['seo_description']; break;        
}
?>


Универсально на всех страницах сайта при заполненном тв выводится корректные теги, вывод сделал через сниппет, так как так будет легче контролить и глобально менять например ключевые по всему сайту.
Сниппет не мешает статичным страницам и помогает страницам товара стать более оптимизированными, уникальными.

Советую также сделать проверку на существование товара и корректной выдачи, описано здесь
  • +3
  • 26 декабря 2011, 13:38
  • adminko

Комментарии (2)

RSS свернуть / развернуть
0
не удержался таки
http://php.net/manual/ru/function.ereg-replace.php

Внимание
С версии PHP 5.3.0 эта функция считается УСТАРЕВШЕЙ. Крайне не рекомендуется полагаться на эту возможность.
avatar

FFsSake

  • 27 декабря 2011, 02:05
+1
ой блин да не суть важно как и чем вы будете фильтровать число
можно вообще не фильтровать, дело ваше. это пример
avatar

adminko

  • 27 декабря 2011, 12:19

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.