SEO для разделов каталога

+34
1.75K
Решил по свободе перенести в блог свой хак из темы форума "SEO для компонентов и каталога" чтобы он не потерялся.

Заодно отвечу на вопросы из лички по этому хаку и по хаку "SEO-теги для фотогалереи, фотоальбомов и фотографий"
Оба хака сделаны стандартным для движка способом, таким же, как и оригинальное СЕО в статьях. В админке и при редактировании на сайте во вкладке "СЕО" справа или, если вкладок не было, просто рядом с другими полями добавлены два поля для мета-тегов: ключевые слова и описание. Всё введённое в эти поля выводится в соответствующие мета-теги в head страницы. Если поля не заполнять, то выводятся стандартные мета-теги Инстанта (как будто хака и не было).
Демки нет. Вставил пару скринов для наглядности:
Новая вкладка "SEO" для раздела каталога
Иллюстрация
Новые поля при редактировании фото прямо с сайта
Иллюстрация

Теперь по этому хаку. В архиве патч для версии 1.10.1.
Для чистой CMS просто распакуйте файлы из архива с заменой. Этот файл (uc-seo_readme.txt) можно после распаковки удалить или не копировать вообще.

Важно! Если вы уже вносили изменения в какой-то из файлов, которые правит фикс, то НЕ накатывайте файлы из архива, а внесите изменения руками в подходящие места. Все изменения и последовательность действий для версии 1.10.1 описаны в этом топике и в файле uc-seo_readme.txt в архиве.

Выполнение двух запросов к базе данных обязательно в обоих вариантах.

Выполняем два SQL-запроса в phpmyadmin (при необходимости измените префикс cms_ в именах таблиц на ваш):
  1. ALTER TABLE `cms_uc_cats` ADD `meta_keys` VARCHAR(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
  2. ALTER TABLE `cms_uc_cats` ADD `meta_desc` VARCHAR(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '';
Правим три файла. Вносить изменения в файлы нужно именно в той последовательности, в которой я написал. Иначе при добавлении строк вначале файла нумерация более дальних сдвинется. Табуляцию для красоты сделайте сами 😊

Файл \admin\components\catalog\backend.php
Перед строкой 1383
  1. {tab=Доступ}
добавить строки
  1. {tab=SEO}
  2. <div style="margin-top:5px">
  3. <strong>Ключевые слова</strong>
  4.  
  5. <span class="hinttext">Через запятую, 10-15 слов</span>
  6. </div>
  7. <div>
  8. <textarea name="meta_keys" style="width:97%" rows="2" id="meta_keys"><?php echo @$mod['meta_keys'];?></textarea>
  9. </div>
  10.  
  11. <div style="margin-top:20px">
  12. <strong>Описание</strong>
  13.  
  14. <span class="hinttext">Не более 250 символов</span>
  15. </div>
  16. <div>
  17. <textarea name="meta_desc" style="width:97%" rows="4" id="meta_desc"><?php echo @$mod['meta_desc'];?></textarea>
  18. </div>
В строке 552
  1. $cat['ordetto'] = $inCore->request('ordetto', 'str');
исправить "ordetto" на "orderto". Это сделаем исправление сортировки, походу.

После строк 628 и 552
  1. $cat['orderto'] = $inCore->request('orderto', 'str');
добавить строки (в двух местах!)
  1. $cat['meta_keys'] = $inCore->request('meta_keys', 'str');
  2. $cat['meta_desc'] = $inCore->request('meta_desc', 'str');

Файл \components\catalog\model.php
Строку 322
  1. $item = $this->inDB->get_fields('cms_uc_cats', "id = '$id'", 'parent_id, title, description, published, fieldsstruct, view_type, fields_show, showmore, perpage, showtags, showsort, is_ratings, orderby, orderto, showabc, shownew, newint, filters, is_shop, is_public, can_edit, cost');
меняем на
  1. $item = $this->inDB->get_fields('cms_uc_cats', "id = '$id'", 'parent_id, title, description, published, fieldsstruct, view_type, fields_show, showmore, perpage, showtags, showsort, is_ratings, orderby, orderto, showabc, shownew, newint, filters, is_shop, is_public, can_edit, cost, meta_keys, meta_desc');
Строки 305 и 267
  1. cost = '{$cat['cost']}'
заменяем на три строки (в двух местах!)
  1. cost = '{$cat['cost']}',
  2. meta_keys = '{$cat['meta_keys']}',
  3. meta_desc = '{$cat['meta_desc']}'
Файл \components\catalog\frontend.php
После строки 472
  1. $inPage->addHeadCSS('includes/jquery/lightbox/css/jquery.lightbox.css');
вставляем строки
  1. if ($cat['meta_keys']) { $inPage->setKeywords($cat['meta_keys']); }
  2. if ($cat['meta_desc']) { $inPage->setDescription($cat['meta_desc']); }
Скачать патч можно тут uc-seo.zip


Добавление 09.06.2013:
Продолжение этой темы тут SEO title для разделов и записей каталога
Новый хак добавляет возможность вручную менять заголовки страниц (title) при отображении разделов и записей каталогов. Является развитием этого хака, так как в итоговые файлы в архиве объединены все изменения из этой темы, и из новой.
+5
Роман Роман 9 лет назад #
Спасибо!
Было бы хорошо, если бы такие наработки переносили в дистрибутив, многим бы это пригодилось
0
lezginka.ru lezginka.ru 9 лет назад #
+
0
afinskiy afinskiy 9 лет назад #
+ спасибо! обязательно будем ставить!
0
Олег Олег 9 лет назад #
Полезный хак. Плюс автору.
0
WebMan WebMan 9 лет назад #
Спасибо за плюсы! Добавьте ещё чуток до блога, плз! smile
0
AlexTWinner AlexTWinner 8 лет назад #
Очень не хватает возможности изменить title! Хотел уже ставить ваш хак, но увидел что нет title.. Придется пока остаться на дополнении от Марата...
0
WebMan WebMan 8 лет назад #
SEO title для разделов и записей каталога
Хак добавляет возможность вручную менять заголовки страниц (title) при отображении разделов и записей каталогов. Является развитием этого хака, так как в итоговые файлы в архиве объединены все изменения из этой темы, и из новой.
0
Alon Alon 7 лет назад #
Я не знаю как сделать SQL запрос, подскажите пожалуйста, знаю что это не трудная работа, но как её сделать?)
0
WebMan WebMan 7 лет назад #
Вы имеете ввиду "как выполнить SQL-запрос"?

Если дома на своём компьютере, то скачайте phpMyAdmin, распакуйте его в отдельную подпапку в папке с сайтом и зайдите в него (наберите в браузере локальный адрес своего сайта, добавив к нему название папки с phpMyAdmin через косую черту). В нём выберите базу данных своего сайта. На вкладке "SQL" вставьте из буфера скопированный текст запроса и нажмите "Выполнить"

Если на рабочем хостинге, то обычно phpMyAdmin устанавливать самостоятельно не нужно, он уже присутствует на всех хостингах с MySQL. Попасть в него можно чаще всего через "Панель управления" хостингом. Или уточните у поддержки.
0
Alon Alon 7 лет назад #
обе строки по отдельности нужно ?
0
WebMan WebMan 7 лет назад #
Можно и вместе, и по отдельности. Только номера строк с точкой уберите.

Еще от автора

Хуки-хухуки: Исключаем неактивных пользователей из списков
Как иногда начинают свой монолог неопытные стендаперы: «У всех в жизни было такое …
«Расширенная отладка» для InstantCMS 2.14.1 (v.14.1.2) – большое обновление для разработчиков
Новые возможности и удобства, облегчающие разработчикам отладку компонентов и шаблонов.
Использование расширенной отладки. Часть 11. Анализ ошибок 403/404 и редиректов
Одной из неудобных задач при отладке для меня является поиск причины ошибки 403/404.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.