Избранное

Избранное

Компонент, открытый исходный код

Компонент предназначен для хранения пользователями сайта записей различных типов контента (статьи, посты, новости, фотоальбомы и др.). Списки выбранных записей территориально располагаются в профиле пользователя под табом «Избранное». Также пользователь может добавлять свои теги для записей, чей тип контента предусматривает наличие тегов, по-просту говоря, для типов контента, в настройках которых указана галочка «Включить теги».

Установка дополнения стандартна в основной своей части и своеобразна в интеграционной составляющей.

Скачиваем компонент ниже по ссылке и следуем инструкциям описанным здесь: http://docs.instantcms.ru/manual/addons. Затем самое сложное. Компонент установлен в вашу систему, но его необходимо отобразить пользователю, чтобы он мог с ним взаимодействовать. Для этого в файлах шаблона нужно прописать где компонент, а точнее виджет избранного, должен выводиться. Поэтому в ручную добавляем:

для файлов вывода контента (..\templates\default\content\)

  1. <?php if ($ctype['is_favorites']){ ?>
  2. <div class="bar_item bi_favorite">
  3. <?php echo $item['favorite_widget']; ?>
  4. </div>
  5. <?php } ?>
  6.  
  • albums_list.tpl.php — 128 строка
  • default_item.tpl.php — 139 строка (или 141 после добавления формы тегов, см. ниже)
  • default_list.tpl.php — 137 строка
  • default_list_featured.tpl.php — 137 строка
  • default_list_tiles.tpl.php — 115 строка

Т.е. здесь мы добавляем кнопку избранного в элемент <div class=«info_bar»>...</div>, в котором также выводятся виджет рейтинга, никнейм автора записи, указатель колличества комментариев к записи, блок шаринга и др. информация.

Для шаблона вывода контента таблицей (по умолчанию используется в объявлениях) код немного изменяется:

default_list_table.tpl.php

  1. <?php if ($ctype['is_favorites']) { ?>
  2. <th>&nbsp;</th>
  3. <?php } ?>
  4.  

вставляется в 25 строку (это заголовок таблицы, добавляем чтобы не поехала вёрстка).

  1. <?php if ($ctype['is_favorites']){ ?>
  2. <td class="td_fav">
  3. <?php echo $item['favorite_widget']; ?>
  4. </td>
  5. <?php } ?>
  6.  

эта часть добавляется в 62 строку (сам виджет избранного).

Теперь добавим возможность формы редактирования пользовательских тегов.

дописываем

  1. <?php if (isset($item['favorite_tags'])) { echo $item['favorite_tags']; } ?>
  2.  

сразу за кодом вывода тегов записи $item['tags']:

  1. <?php if ($is_tags){ ?>
  2. <div class="tags_bar">
  3. <?php echo html_tags_bar($item['tags']); ?>
  4. </div>
  5. <?php } ?>
  6.  

Для большей красоты вставляем $item['favorite_tags'] сразу за $item['tags'] без пробелов! Те кто в курсе про inline элементы поймут =)

Должно получиться так:

  1. <?php if ($is_tags){ ?>
  2. <div class="tags_bar">
  3. <?php echo html_tags_bar($item['tags']); ?><?php if (isset($item['favorite_tags'])) { echo $item['favorite_tags']; } ?>
  4. </div>
  5. <?php } ?>

Это делается в файлах

  • albums_list.tpl.php — 95 строка
  • default_item.tpl.php — 90 строка
  • default_list.tpl.php — 87 строка
  • default_list_featured.tpl.php — 94 строка

И сама форма редактирования тегов. Добавляем код

  1. <?php if ($ctype['is_favorites']) { echo $ctype['favorite_tags_form']; } ?>
  • в albums_list.tpl.php — 144 строка
  • default_item.tpl.php — 94 строка
  • default_list.tpl.php — 149 строка
  • default_list_featured.tpl.php — 149 строка

В принципе здесь не особо критично куда добавить форму, главное не кинуть её в цикл, чтобы она не дублировалась много раз (её одной на страницу вполне будет достаточно).

Последняя небольшая правочка для комментариев.

Добавляем код

  1. <?php echo isset($entry['favorite_widget']) ? $entry['favorite_widget']
  2. : cmsCore::getController('favorites')->getFavoriteWidget('comments', NULL, $entry); ?>

в 64 строку файла ..\templates\default\controllers\comments\comment.tpl.php

Для дефолтного шаблона (v.2.10.1) я подготовил все необходимые файлы с внесенными изменениями, скачать его можно по ссылке.

Переходим к настройке компонента. В панели администратора идём в раздел компонентов и выбираем "Избранное". На вкладке "Опции" устанавливаем галочки рядом с типом контента который можно будет добавлять в избранное. Чтобы разрешить выбор в избранное комментариев, устанавливаем галочку "Включить добавление комментариев в избранное". И при необходимости отмечаем "Показывать пользователей добавивших запись в избранное".Жмём кнопку "Сохранить" и переходим на вкладку "Доступ". Здесь отмечаем каким группам пользователей разрешено пользоваться компонентом. Жмём "Сохранить" и идём в раздел "Виджеты". Находим в левой колонке папку "Профили пользователей", а в ней выбираем "Профиль пользователя". И в правой колонке в списке виджетов, группе «Избранное» перетаскиваем виджет "Теги избранного" в желаемую позицию на шаблоне. Я предпочел сайдбар, сразу после вывода меню пользователя.

На этом шаге долгая и утомительная установка этого злосчастного дополнения закончена.

Тем кто будет обновляться со старой версии компонента, необходимо к вышеописанным операциям провести еще одну — обновление таблицы избранного БД, сопоставление тегов избранного и удаление лишних записей избранного в БД. Для этого под учётной записью администратора необходимо перейти по ссылке ваш_сайт/favorites/repair и дождаться окончания выполнения всех операций.


демо данные:
e-mail: demo@demo.ru
pw: 123456

Нет сообщений...
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.