Избранное

Компонент для InstantCMS 2.x , открытый исходный код

  • Рейтинг: 5.0
  • Просмотры: 19125
  • Загрузки: 903
  • Подписчики: 26
  • Добавлен: 18.11.2015

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

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

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

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

<?php if ($ctype['is_favorites']){ ?>
    <div class="bar_item bi_favorite">
        <?php echo $item['favorite_widget']; ?>
    </div>
<?php } ?>
  • 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

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

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

<?php if ($ctype['is_favorites']){ ?>
    <td class="td_fav">
        <?php echo $item['favorite_widget']; ?>
    </td>
<?php } ?>

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

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

дописываем

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

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

<?php if ($is_tags){ ?>
    <div class="tags_bar">
        <?php echo html_tags_bar($item['tags']); ?>
    </div>
<?php } ?>

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

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

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

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

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

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

<?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 строка

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

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

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

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

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

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

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

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

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


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

Видео Демо
Скачать
Версия: 2.0.2 — 23.01.2017
Загружено 903 раз, из них последней версии — 166 раз