Компонент "Избранное" для InstantCMS 2.x

8191
Компонент \"Избранное\" для InstantCMS 2.x

Добрый день!

Уже почти как год назад появилась на свет InstantCMS 2. В то время я блуждал по просторам всемирной паутины в поисках подходящего фреймворка или системы управления контентом на базе которого (или которой =)) я смогу построить свой сайт, та система, которая будет максимально соответствовать моим требованиям и которая будет содержать в себе минимальный набор необходимого мне функционала.
Выбор мой пал на... другую CMS ((( LiveStreet. Я уже начал углубляться в ее изучение, как совершенно случайно узнал про нашу, всеми любимую, InstantCMS. На официальном сайте есть возможность добавления различного контента в список закладок пользователя, и в разделе дополнений есть соответствующий компонент. Я наивно полагал, что такой нужный функционал непременно должен быть в релизе второй ветки. Но, как мы все знаем, его там нет. Соответственно, к своему списку расширений я добавил еще один пункт )).



Совсем недавно, сначала в одной из тем на форуме, а затем и в своем блоге IngDesign выложил компонент "Закладки пользователей". Радости моей не было предела в тот прекрасный день! Я проинсталлил компонент на локалку и проверил его работоспособность - вторая волна счастья накрыла меня )). Закладки делали то, чего мне так не хватало для своего будущего проекта. Они великолепно выполняли свою функцию, но хотелось немножко большего...

В преддверии праздника я выбрал "свободную минуточку" и решил сделать форк закладок IngDesign'а. Но, чем дальше в лес, тем меньше исходного кода осталось не тронутым)), даже таблицы компонента в базе данных претерпели на столько существенные изменения, что их количество сократилось до одной, а, от её структуры, не тронутым осталось только поле "id". Собственно и сам код процентов на 90-95 полностью переписан. Поэтому можно говорить о другом самостоятельном компоненте.

Избранные записи пользователей

Основная функция компонента не изменилась, он по прежнему необходим пользователям, чтобы организовать быстрый доступ к понравившемся материалам сайта (статьям, постам в блогах, альбомов и др.) Также, по примеру Хабрахабр, я добавил возможность сохранять в "избранном" комментарии других пользователей. И реализовал всю эту "не легкую" работу через ajax.

В Панели управления настраивается какой тип контента и кому разрешить добавлять записи в избранное, включить или нет добавление комментариев в список избранного. Т.е. возможен более гибкий механизм работы компонента. При этом список избранных записей отображается на странице пользователя в том же виде, что и список контента в соответствующем разделе сайта, скажем так, нативный рендеринг smile Это позволяет показывать все картиночки, кнопочки и другую сопутствующую информацию, которая предполагалась для данного типа контента.

Более подробно познакомиться и пощупать компонент можно на демосайте (данные для входа внизу статьи).

Как установить.

Компонент устанавливается как любое стандартное дополнение InstantCMS 2.x - через панель администрирования в разделе компоненты нажимаем "Установить пакет дополнения", выбираем заранее скачанный файл и следуем инструкциям на экране. Более подробно можно почитать здесь: http://docs.instantcms.ru/manual/addons.

Компонент установлен в системе, но это еще не всё... Теперь надо прописать "указатели" чтобы пользователь мог взаимодействовать с компонентом. Для этого в файлы шаблона в необходимых местах вставляем ссылку:
Код PHP:
  1. <?php echo $item['favorite_widget']; ?>
. Я считаю, что самое удобное место для размещения ссылки на добавление текущей записи в избранное - это инфобар (такая область, обычно внизу типов контента, где перечисляется информация об авторе материала, дате его создания, выводится виджет рейтинга, социальные кнопки и др.).

Компонент \"Избранное\" для InstantCMS 2.x

Поэтому
:

для вывода типов контента следующий код:
Код PHP:
  1. <?php if ($ctype['is_favorites']){ ?>
  2. <div class="bar_item bi_favorite">
  3. <?php echo $item['favorite_widget']; ?>
  4. </div>
  5. <?php } ?>
прописываем в файлы шаблона (вставляем ссылку в div с классом "info_bar" перед выводом количества комментариев, или кнопок шаринга):
albums_list.tpl.php (вставляем код между 114 и 115 строками)
default_item.tpl.php (147-148 строки)
default_list.tpl.php (126-127 строки)
default_list_featured.tpl.php (126-127 строки)
default_list_tiles.tpl.php (110-111 строки)
default_list_table.tpl.php - для этого файла сначала вставляем код
Код PHP:
  1. <?php if ($ctype['is_favorites']) { ?>
  2. <th>&nbsp;</th>
  3. <?php } ?>
между 24 и 25 строкой, а затем добавляем вот такой кусок кода:
Код PHP:
  1. <?php if ($ctype['is_favorites']){ ?>
  2. <td class="td_fav">
  3. <?php echo $item['favorite_widget']; ?>
  4. </td>
  5. <?php } ?>
между 61 и 62 строками. В данном случае шаблон описывает вывод контента в виде таблицы, поэтому мы показываем ссылку на избранное в ячейке этой таблицы.
Все указанные файлы лежат в ..\templates\default\content\. Если у вас там есть дополнительные файлы, по желанию и необходимости, вы можете добавить в них приведенный выше код))

также для шаблона комментария ..\templates\default\controllers\comments\comment.tpl.php вставляем между 63 и 64 строками
Код PHP:
  1. <?php if (isset($entry['favorite_widget'])){ ?>
  2. <?php echo $entry['favorite_widget']; ?>
  3. <?php } else { ?>
  4. <?php
  5. $is_show = ( cmsUser::isAdmin() || cmsUser::isAllowed('favorites', 'add') ) &&
  6. cmsCore::getController('favorites')->options['is_comment_folder'];
  7. if ($is_show) {
  8. echo cmsCore::getController('favorites')->renderFavoriteWidget('comments', NULL, $entry);
  9. }
  10. ?>
  11. <?php } ?>
Здесь пришлось немного увеличить код, т.к. система не дает обработать хук перед выводом списка комментариев в теле типа контента. Поэтому мы делаем это постфактум в теле шаблона.

Уф...
Для дефолтного шаблона Instant 2.1.2 можно скачать архив и заменить соответствующие файлы в системе. Для ваших собственных шаблонов нужно руководствоваться инструкцией выше. Не забывайте, что разместить кнопку добавления контента в Избранное можно в любом для вас удобном месте, инфобар - это мое личное предпочтение)). Стоит только предусмотреть чтобы эта кнопка была доступна при просмотре списка контента! В противном случае удалять записи из списка избранного будет несколько затруднительно.

Всем удачи! ))

Спасибо за внимание!

demo - login: [email protected] pw: 123456

Скачать "модифицированные" файлы шаблонов: fav_links.zip


P.S. Для поддержания и развития этого компонента и других дополнений для InstantCMS буду рад вашей благодарности в виде "спасибо" на R396646181623, Z304069635163 или плюсика в карме =)
Виджет "Случайная запись" еще одно ОБНОВЛЕНИЕ! | Два по цене одного!
Комментарии (106)
qwest 24 декабря 2014 в 23:59 +2
Спасибо штука очень хорошая и нужная плюсую. Правда пока на демо разобрался где иконка Избранное все глаза просмотрел rofl
qwest 25 декабря 2014 в 00:01 +3
А так вообще все сделано на высшем уровне даже с разбиением по типам плюсую еще раз.
Val 25 декабря 2014 в 00:16 +3
Большое спасибо!
Думаю расположение кнопки избранного вопрос привычки)) Я сделал на подобии хабра, если немного позависать на сайте, привыкаешь и получается очень удобно)))
qwest 25 декабря 2014 в 00:22 0
На счет кнопки это так первая эмоция. v Конечно же очень просто сделать кому как нравится. Хотелось бы из коробки такую штуку.
Val 25 декабря 2014 в 00:25 +1
Вот сейчас подумал, может стоит картинку с её расположением показать? Потому что, действительно, не все смогут сразу понять где что поменялось))
qwest 25 декабря 2014 в 00:30 0
Скриншот в посте можно а то я долго искал.
Kantona 25 декабря 2014 в 01:56 +2
Вашпеманамана штука отличная)) Спасибо!) dance
Олег Васильевич я 25 декабря 2014 в 09:15 +2
Спасибо!
SpideR 25 декабря 2014 в 09:27 0
Val, отличное дополнение! smile
НО! Насколько сложно сделать добавление в избранное людей?
Val 25 декабря 2014 в 16:49 +2
Не сложнее чем добавление комментариев))
Но, IMHO, зачем добавлять пользователей в избранное?! Есть стандартный механизм - список друзей.
Также рассматриваю возможность сделать подписки на пользователей (т.е. добавить юзера в отдельный список, где потом можно следить за его деятельностью - например публикация статей, картинок и т.д.)
Александр 25 декабря 2014 в 10:40 0
а для первой такое сие чудо будет?)))
а так все равно огромное спасибо, если буду когда то на второй обязательно поставлю! ++
Val 25 декабря 2014 в 16:54 +3
Alexprofi 25 декабря 2014 в 11:23 0
Спасибо за дополнение!
Что-то не могу на демо-сайт зайти. - "Вход не выполнен. Проверьте правильность адреса e-mail и пароля."
Val 25 декабря 2014 в 16:56 +1
Возможно сервер тупанул scratch Я проверял - вроде работает. В любом случае никто не запрещает зарегистрироваться и потестить! =)))
Alexprofi 25 декабря 2014 в 11:28 0
Кстати, Val, что-то не пойму в чем дело. Когда-то давно плюсанул Вам в карму, с тех пор такая функция мне больше не доступна...
Val 25 декабря 2014 в 16:58 +1
По идее, после изменения рейтинга, нужно ждать какое то время (устанавливается в админке=) ), после чего можно снова плюсовать)). Чтобы накрутки меньше было.
p.s. Спасибо вам за "+"
reload 25 декабря 2014 в 18:31 +2
Alexprofi:
с тех пор такая функция мне больше не доступна...
Ага... так вот кто сломал прибавление кармы...
wayfox 25 декабря 2014 в 17:33 0
Что-то не работает, все сделал как написано... Но при нажатии не добавляет а прокручивает страницу на начало (
Что может быть ?
wayfox 25 декабря 2014 в 17:37 +2
Все разобрался... ))))) Спасибо огромное... Отличная работа... +++
Val 25 декабря 2014 в 19:33 +3
Рад что у вас все получилось! v
Norm Gold 25 декабря 2014 в 18:43 0
Все прекрасно работает! +
Но вот одно неудобство.. я когда то скопировал файл default_list_featured.tpl.php, переименовал в default_list_read.tpl.php и изменил вывод под себя (просто стили заменил).. В нем нажимаю на звезду.. ничего не происходит, если только не обновить страницу.. Может есть решение для этого? )
Val 25 декабря 2014 в 19:34 +1
а вы а этом файле default_list_read.tpl.php прописали ссылку на компонент?
Norm Gold 25 декабря 2014 в 20:30 0
В смысле чтобы добавить запись в избранные? Да
Norm Gold 25 декабря 2014 в 20:40 0
На стандартном шаблоне типа default_list_featured.tpl.php запись добавляется с всплывающим уведомлением, удаляется также без перезагрузки красиво. Но вот в default_list_read.tpl.php надо обновить страницу и до этого не поймешь, добавил ты что-то или удалил..
Val 25 декабря 2014 в 21:25 +2
дайте пожалуйста ссылку на эту страницу, я посмотрю в чем может быть причина
Norm Gold 25 декабря 2014 в 21:54 0
Написал..
SE7EN 25 декабря 2014 в 20:00 0
Всё отлично, но есть одно но, значок удаления из избранного надо бы сделать более понятным
Val 25 декабря 2014 в 20:04 +2
Это легко решается! smile
Замените файл картинки ..\templates\default\controllers\favorites\favorite.gif на соответствующую вашим потребностям и всё! ))
Джехутимери 25 декабря 2014 в 21:30 +2
Прекрасное дополнение, Val!
Пригодится 100% :)
Val 25 декабря 2014 в 21:36 +3
Спасибо smile )))
А.Саган 25 декабря 2014 в 23:00 +1
Замечательное дополнение! Подскажите, пожалуйста, что произойдёт с установленным дополнением, если придётся устанавливать новую версию обновления InstantCMS. Придётся ли после этого устанавливать дополнение заново? Или установка новой версии не повлияет на установленное дополнение?
Val 25 декабря 2014 в 23:07 +2
Интересный вопрос! smile У себя еще не проверял... laugh
Но логически в худшем случае компонент просто не будет работать. Хотя структура такая что ломаться особо нечему)) Если, к примеру, поменяются файлы-шаблонов контента, т.е. старые перезапишутся новыми, то это поправимо. Название хуков и системных функций r2 менять не должен, а в остальном компонент автономен.
В любом случае, по мере своей возможности я буду поддерживать компонент для новых версий Инстанта.
482 25 декабря 2014 в 23:13 0
Установл, но при входе в компонент выдаёт: Warning: constant() [function.constant]: Couldn't find constant LANG_FAVORITES_CONTROLLER in /home/artem/public_html/system/controllers/admin/actions/controllers_edit.php on line 15

Сайт работает без перебоем, но после замены необходимых фалов в папке ..\templates - никаких изменений при отображении не произошло.
Val 25 декабря 2014 в 23:36 +1
Судя по ошибке у вас некорректно установился языковой файл. Проверьте наличие файла ..\system\languages\ru\controllers\favorites\favorites.php и заодно наличия папки ..\system\controllers\favorites\ и файлов в ней
482 26 декабря 2014 в 16:07 0
Проверил, папка и файлы на месте.
wayfox 27 декабря 2014 в 12:28 +1
Замени файл на стандарт...
Gudan 28 декабря 2014 в 22:28 0
А чтобы в InstantMaps появилось где, что добавить не подскажите?
Gudan 28 декабря 2014 в 22:35 +2
Прошу прощения уже сам разобрался-)
Май 30 декабря 2014 в 01:00 +3
Как здорово, что для двойки появляется все больше отличных дополнений!
Огромное Вам спасибо!
Val 30 декабря 2014 в 21:15 +3
Думаю к концу наступающего года "двойка" ничем не будет уступать первой инстант!!! ))
Слава 2 января 2015 в 11:29 +1
Хорошая штука, спасибо.
У меня сразу предложение. В репутации пользователей есть просмотр тех, кто проголосовал за твой профиль.
Хорошо бы такое сделать и для закладок.
Val 2 января 2015 в 13:30 +1
Опишите пожалуйста подробнее что вы имеете ввиду? Свои закладки добавляет только владелец профиля, каким образом сюда причастны другие юзеры?
Возможность просматривать список избранного других пользователей есть.
Слава 2 января 2015 в 19:34 +1
Когда заходишь в профиль пользователя, там можно повысить или понизить репутацию(карму) этого пользователя.
При нажатии на количество голосов, появляется аякс-окно со списком пользователей, которые поставили репутацию.
И сдесь можно так сделать. Нажимаешь на количество пользователей, которые добавили данный материал в избранное, и появляется аякс-окно со списком пользователей, которые добавили этот материал в избранное..
Val 2 января 2015 в 19:49 +1
Теперь понятно))))
В целом можно сделать... а на сколько это будет полезно?))
Слава 2 января 2015 в 20:09 +3
Польза от самого компонента. А всё остальное, как говорится, сопутствующий товар.
Моё дело внести предложение. А Вы уже сами решите, стоит этому быть или нет.
На мой взгляд для поиска пользователей по интересам самое то.
Demet 3 января 2015 в 10:00 0
У меня при установке выдает такую ошибку "Warning: Invalid argument supplied for foreach() in /home/*****/public_html/system/controllers/favorites/frontend.php on line 20. В чем может быть проблема?
Val 3 января 2015 в 19:34 +1
Зайдите в Панель администрирования - настройки компонента. Установите требуемые параметры и нажмите "Сохранить". После этих действий ошибка появляется?
Demet 4 января 2015 в 00:08 0
Сейчас все стало нормально, не сразу увидел компонент в админке. Спасибо.
Василич 13 января 2015 в 14:40 +2
Отличное дополнение!
VonKruger 21 января 2015 в 22:12 +1
Спасибо! Плюсую!
tuxo 8 февраля 2015 в 12:54 +1
Отличный компонент) Спасибо автору.
Val 9 февраля 2015 в 08:46 +2
Спасибо за интерес))
Natalya 13 февраля 2015 в 21:44 +1
Спасибо за компонент!!! dance
NIKITA 12 марта 2015 в 23:49 0
Не выводится кнопка!
Выводится только в комментариях.
NIKITA 13 марта 2015 в 00:29 +2
Простите, установил! +1
Val 13 марта 2015 в 01:09 +2
Рад, что у вас всё получилось! joke
RBJ 22 марта 2015 в 22:52 0
Отличный компонент, только убивает вот эти страницы

если у пользователя или его друзей нет комментариев.
Val 23 марта 2015 в 19:37 +1
Большое спасибо за отзыв и за баг!!!
Нашел причину косячка:
в ..\system\controllers\favorites\hooks\comments_before_list.php
нужно исправить 7-ую строку:
Код PHP:
  1. if (!$items) { exit(); }
на
Код PHP:
  1. if (!$items) { return false; }
В обновлении внесу исправления с рядом других дополнений.
Shuma 24 марта 2015 в 22:52 0
Если несколько раз нажать добавить и убрать комментарий в избранное, получается космическая цифра добавивших в избранное.
Val 25 марта 2015 в 00:14 +4
Спасибо! На демо-сайте починил. Выложу исправление с ближайшим обновлением.
nmsk 3 апреля 2015 в 14:39 0
С нетерпением ждём. :)
Sergon 26 апреля 2015 в 14:06 0
Val, заметил когда включаешь кеширование, происходят задержки в профиле, куда и что поставить чтобы не кешировались избранные?
Val 28 апреля 2015 в 00:21 +1
Спасибо за найденный косяк! Долго боролся но победил эту напасть! )))
Пилю обновление. Как закончу выложу в новом посте.
Sergon 30 апреля 2015 в 08:21 0
отлично!
Romanovcmc 6 мая 2015 в 06:25 0
Вопрос такой, а если добавлена запись в избранное, а потом ее удалить, то она не отображается в избранном, но количество подсчитывается. Это как то возможно решить?
Val 6 мая 2015 в 08:33 0
Да, проблема известна и будет исправлена.
Обновление в работе, релиз ориентировочно конец мая - июнь
Ingvarruss 17 мая 2015 в 21:59 0
Вопрос, как можно прикрутить это удобство к объявлениям и объектам Mapsa?
Val 17 мая 2015 в 22:43 0
Как прикрутить к объявлениям подробно описано в статье (в дефолте объявления выводятся через таблицу). А мапса у меня нет, но если он основан на типах контента, то нужно добавить кнопку избранного в удобное для вас место и включить в настройках компонента требуемый тип контента.
Val 30 мая 2015 в 21:09 0
Выпуск новой версии компонента откладывается до выхода InstantCMS 2 следующей версии (2.2.2 или 2.3.0) zst , в которой разработчик сделает возможным реализацию алгоритма для нормального функционирования компонента "Избранные записи пользователей".
Спасибо за понимание.
Val 30 мая 2015 в 21:24 +1
Что будет нового:
- Исправлены все косяки указанные здесь в комментариях;
- Добавлена возможность просмотра списка пользователей, которые добавили запись себе в избранное;
- Добавлен виджет со списком тегов (и кол-вом их использования) избранных записей пользователя, по которым можно осуществлять быстрый поиск по своим избранным записям;
- Также пользователь может добавлять/изменять свои метки к избранным записям. (Функционал на подобие сайта хабрахабр).

Ждем выхода новой версии iCMS 2!
Evanescence 30 мая 2015 в 21:33 +3
Отлично smile
Мечты
Val 30 мая 2015 в 21:35 +2
smile даааа.... хуки для шаблона это наверное действительно мечты))))
Но! стоит заметить что в концепции iCMS 2 вполне реализуемые!!!
Старый балбес 31 мая 2015 в 06:48 0
Модификация системы ICMS одной кнопкой уже существует , мечты сбываются!
В рамках своего проекта выполнил компонент для изменения системы, на распространенном классе vqmod.
Этим замечательным классом пользуются множество распространенных cms drupal. opencart и др. Достаточно загрузить xml файл и нажать кнопку установить. Будет создана копия любого файла системы с изменениями обозначенными в xml.И системы следующим шагом будет подключать модифицированный файл. Немного приведу в порядок компонент редактора xml и выложу бесплатно.
byb 25 августа 2015 в 05:07 0
На странице профиля, в избранном, заголовок отображается с дефисом, в итоге, "избранное - - сайт", как убрать от избранного?
Val 25 августа 2015 в 22:23 0
Заголовок должен отображаться как: "Избранное - [никнейм пользователя] - [название сайта]"
за это отвечает строка кода в шаблоне ..\templates\default\controllers\favorites\profile_tab.tpl.php
Код PHP:
  1. $this->setPageTitle(LANG_FAVORITES, $profile['nickname']);
Чтобы оставить только название сайта удалите или закомментируйте эту строку joke
byb 25 августа 2015 в 23:23 0
Пропустил, хотел написать как убрать дефис) У меня вопрос в том что не отображается поле nickname, заметил я не один такой.

Val 26 августа 2015 в 00:16 0
Что-то проверил, перепроверил и не пойму в чем может быть проблема scratch
Судя по симптомам компонент отчетливо не видит переменную $profile - это выражается и в заголовке страницы и также в глубинометре (в хлебных крошках пропускается пункт имени пользователя).
Причем на локалке все отрабатывает нормально и все описанные проблемы не проявляются. В кодовой базе тоже вроде проблем не замечено. Единственное, что приходит на ум - это проверить права на файлы и папки компонента, может быть причина в них? (Но одновременно у всех маловероятно)

Буду думать...
Val 26 августа 2015 в 01:23 +2
Баг у меня не воспроизводился на локалке потому что он уже был исправлен =)
Ждём обновление, оно как раз в работе))) В компоненте исправлены ряд багов включая указанный сейчас и выше в комментариях, а также добавлены обработчики удаления пользователей, удаление контента и др. + новый функционал.
byb 26 августа 2015 в 09:13 0
Хорошая новость, ждем!
Sergon 8 ноября 2015 в 16:48 0
Val, обновления на 2.3.0 коснулись компонента?
Val 9 ноября 2015 в 15:13 +2
Устанавливал на чистую систему. В целом, после настройки начальных параметров в админке, все работает как и раньше)))
Старые "косячки" конечно же присутствуют zst
Так что если очень очень хочется можете обновится, но я бы посоветовал немного подождать, постараюсь в течение одной-двух недель допилить обновление и выложить его. Как я ранее писал, это обновление включает ряд "критических" доработок и исправление многих мелких багов, и плюс новый функционал. Исправление "критических" моментов стало возможно после выхода новой версии InstantCMS 2.3, в ядро которой внесены ряд необходимых дополнений.
Sergon 9 ноября 2015 в 18:50 0
да, ждем конечно! Спасибо большущее за поддержку
Romanovcmc 15 ноября 2015 в 21:29 0
На последней версии движка 2.3.0, уж не знаю, то ли я не правильно обновился, то ли что еще, но при открытии записей, где нет комментариев, белая страница, где есть нормально все открывается.
Val 15 ноября 2015 в 21:32 0
Вот эта правка есть?
http://instantcms.ru/blogs/bitblog/komponent-izbranoe-dlja-instantcms-2-x.html#c79809
В любом случае обновление уже совсем скоро))
Romanovcmc 15 ноября 2015 в 22:13 0
Спасибо, не делал правку, думал есть в файлах, подправленное. Подожду обновления)))
zeffs 13 января 2016 в 23:01 0
Удалось победить белую страницу? Может в файлы нужно какие править
Val 13 января 2016 в 23:31 +1
Михаил 14 сентября 2016 в 13:00 0
Val, установил ваш компонент, возник вопрос: как мне создать ссылку в виджете меню, чтобы она вела сразу на site/users/1/favorites т.е. id подменялся на текущего пользователя?
Zau4man 14 сентября 2016 в 13:15 +1
Отвечу за Val. Ответ на ваш вопрос есть в документации.
http://docs.instantcms.ru/manual/menu/special
Val 14 сентября 2016 в 13:30 0
Zau4man, спасибо!

Михаил, чтобы id подменялся на текущего пользователя ссылка будет выглядеть так: users/{user.id}/favorites
При этом не забудьте настроить отображение этого пункта меню (чтобы не показывать его гостям сайта).
Михаил 14 сентября 2016 в 13:48 0
Наверное, придется ссылку эту прямо в main.tpl.php прописать т.к. хотелось бы добавить проверку на наличие избранных материалов - если их нет сейчас же перекидывает на 404.
Не подскажите, как?
Val 14 сентября 2016 в 14:26 0
Посмотрите реализацию проверки на избранные материалы в файле ...\system\controllers\favorites\hooks\user_tab_info.php.
Получаю количество избранного через $count = $favorites_model->getUserFavoritesCount($user_id); Если $count == 0 не показываем таб (в вашем случае ссылку).

P.S. Если будете делать в main.tpl.php то user_id можно получить, например так: cmsUser::getInstance()->id;
Михаил 24 сентября 2016 в 15:34 0
Спасибо, буду пробовать.
А если мне требуется установить иконку, например, в виджете HTML-блок, то т.к. <?php echo $item['favorite_widget']; ?> нельзя, то какой мне код надо скопировать для ее вывода?
Val 24 сентября 2016 в 21:24 0
А какие цели вы преследуете вставив иконку в виджет HTML-блок? Если вам просто нужна иконка, скопируйте ее и добавьте любым удобным способом (html-inline, css-inline, css-outline и т.д.). Если вы хотите как то использовать компонент через виджет HTML-блок!, то вероятнее всего он так не запустится у вас (как минимум не зная многих деталей я не могу что-то сказать). $item['favorite_widget']; генерится для каждой записи отдельно (индивидуально), поэтому что-то добавить в виджет HTML-блок легко и просто не получится scratch
Михаил 25 сентября 2016 в 10:02 0
Дело в том, что в виджете справа от материала хотел расположить все желаемые иконки (по клику: всплывающее окно, либо переход на другую страницу), среди которых и кнопка добавления в Избранное...
Val 25 сентября 2016 в 19:41 0
Виджет избранного при выводе записи генерируется здесь ..\system\controllers\favorites\hooks\content_before_item.php - т.е. присутствуют все необходимые данные для обработки.
Если вы можете вытащить и передать в функцию renderFavoriteWidget(...) нужные параметры, то в принципе куда выводить виджет уже не важно =)
Как вариант, можете попробовать костыльный метод в js-скрипте повесить на onDocumentReady() перенос виджета из записи в бок в html-виджет. Также посмотрите есть еще один компонент закладок - http://instantcms.ru/blogs/ingdesign/zakladki-dlja-tipov-kontenta-instantcms-2.html, возможно он вам подойдет больше.
@BonBon 29 марта 2017 в 20:29 0
Здравствуйте.Как и Михаил задаюсь вопросом когда нет записей можно ли выводить текст типа У вас нет избранных страниц, 404 напрягает..Заранее спасибо большое
Val 30 марта 2017 в 09:23 +1
Физически это возможно (но требует внесения изменений в коде). Однако, текущий вариант считаю более правильным.
Напомню, что сейчас если у пользователя нет избранных записей то вкладка "Избранное" вообще не отображается. Следовательно и нажимать никуда не надо чтобы увидеть 404! Как только пользователь добавит себе в список какой либо понравившийся ему материал, у него в профиле будет новый таб "Избранное", при переходе по которому он сможет увидеть список своего избранного контента.
@denis 29 августа 2017 в 23:33 0
Доброго времени суток уважаемый разработчик.
Не могу установить компонент избранное на Instant 2.8
Помогите пожалуйста.
@denis 30 августа 2017 в 00:23 0
Вот такая вот проблема.
@denis 30 августа 2017 в 00:27 0
Вот что ещё за проблема возникает при отсутствии избранного.
Val 30 августа 2017 в 12:55 0
Удостоверьтесь что разрешили все хуки компонента в системе? Проверьте раздел Панель управления - Компоненты - Управление событиями.
@denis 30 августа 2017 в 22:51 0
Спасибо дорогой друг тебе. Моё уважение и почтение за этот компонент! А ещё вопросик один. А как можно исправить вот эти ошибки
Спойлер
@denis 30 августа 2017 в 23:09 0
Кстати проблема при открытии фотогалерии белый экран :(
@denis 30 августа 2017 в 23:30 0
И да! При открытии любого компонента, там где следует инклудить код, везде белый экран.
Val 31 августа 2017 в 13:39 0
1. Не стоит повторять столько раз! Я и с первого вполне нормально понимаю, спамить незачем.
2. Удалить вашу версию компонента и установить последнюю на сегодняшний день из каталога дополнений. У вас стоит древняя версия еще чуть ли не на InstantCMS 2.0))