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

4031
Компонент \"Избранное\" для 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: demo@demo.ru pw: 123456

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


P.S. Для поддержания и развития этого компонента и других дополнений для InstantCMS буду рад вашей благодарности в виде "спасибо" на R396646181623, Z304069635163 или плюсика в карме =)
Виджет "Случайная запись" еще одно ОБНОВЛЕНИЕ! | Два по цене одного!
Комментарии (106)
qwest 24 декабря 2014 в 23:59 +2
small user social cms
Спасибо штука очень хорошая и нужная плюсую. Правда пока на демо разобрался где иконка Избранное все глаза просмотрел rofl
qwest 25 декабря 2014 в 00:01 +3
small user social cms
А так вообще все сделано на высшем уровне даже с разбиением по типам плюсую еще раз.
Val 25 декабря 2014 в 00:16 +3
small user social cms
Большое спасибо!
Думаю расположение кнопки избранного вопрос привычки)) Я сделал на подобии хабра, если немного позависать на сайте, привыкаешь и получается очень удобно)))
qwest 25 декабря 2014 в 00:22 0
small user social cms
На счет кнопки это так первая эмоция. v Конечно же очень просто сделать кому как нравится. Хотелось бы из коробки такую штуку.
Val 25 декабря 2014 в 00:25 +1
small user social cms
Вот сейчас подумал, может стоит картинку с её расположением показать? Потому что, действительно, не все смогут сразу понять где что поменялось))
qwest 25 декабря 2014 в 00:30 0
small user social cms
Скриншот в посте можно а то я долго искал.
Kantona 25 декабря 2014 в 01:56 +2
small user social cms
Вашпеманамана штука отличная)) Спасибо!) dance
Олег Васильевич я 25 декабря 2014 в 09:15 +2
small user social cms
Спасибо!
SpideR-KOSS 25 декабря 2014 в 09:27 0
small user social cms
Val, отличное дополнение! smile
НО! Насколько сложно сделать добавление в избранное людей?
Val 25 декабря 2014 в 16:49 +2
small user social cms
Не сложнее чем добавление комментариев))
Но, IMHO, зачем добавлять пользователей в избранное?! Есть стандартный механизм - список друзей.
Также рассматриваю возможность сделать подписки на пользователей (т.е. добавить юзера в отдельный список, где потом можно следить за его деятельностью - например публикация статей, картинок и т.д.)
Александр 25 декабря 2014 в 10:40 0
small user social cms
а для первой такое сие чудо будет?)))
а так все равно огромное спасибо, если буду когда то на второй обязательно поставлю! ++
Alexprofi 25 декабря 2014 в 11:23 0
small user social cms
Спасибо за дополнение!
Что-то не могу на демо-сайт зайти. - "Вход не выполнен. Проверьте правильность адреса e-mail и пароля."
Val 25 декабря 2014 в 16:56 +1
small user social cms
Возможно сервер тупанул scratch Я проверял - вроде работает. В любом случае никто не запрещает зарегистрироваться и потестить! =)))
Alexprofi 25 декабря 2014 в 11:28 0
small user social cms
Кстати, Val, что-то не пойму в чем дело. Когда-то давно плюсанул Вам в карму, с тех пор такая функция мне больше не доступна...
Val 25 декабря 2014 в 16:58 +1
small user social cms
По идее, после изменения рейтинга, нужно ждать какое то время (устанавливается в админке=) ), после чего можно снова плюсовать)). Чтобы накрутки меньше было.
p.s. Спасибо вам за "+"
reload 25 декабря 2014 в 18:31 +2
small user social cms
Alexprofi:
с тех пор такая функция мне больше не доступна...
Ага... так вот кто сломал прибавление кармы...
wayfox 25 декабря 2014 в 17:33 0
small user social cms
Что-то не работает, все сделал как написано... Но при нажатии не добавляет а прокручивает страницу на начало (
Что может быть ?
wayfox 25 декабря 2014 в 17:37 +2
small user social cms
Все разобрался... ))))) Спасибо огромное... Отличная работа... +++
Val 25 декабря 2014 в 19:33 +3
small user social cms
Рад что у вас все получилось! v
Norm Gold 25 декабря 2014 в 18:43 0
small user social cms
Все прекрасно работает! +
Но вот одно неудобство.. я когда то скопировал файл default_list_featured.tpl.php, переименовал в default_list_read.tpl.php и изменил вывод под себя (просто стили заменил).. В нем нажимаю на звезду.. ничего не происходит, если только не обновить страницу.. Может есть решение для этого? )
Val 25 декабря 2014 в 19:34 +1
small user social cms
а вы а этом файле default_list_read.tpl.php прописали ссылку на компонент?
Norm Gold 25 декабря 2014 в 20:30 0
small user social cms
В смысле чтобы добавить запись в избранные? Да
Norm Gold 25 декабря 2014 в 20:40 0
small user social cms
На стандартном шаблоне типа default_list_featured.tpl.php запись добавляется с всплывающим уведомлением, удаляется также без перезагрузки красиво. Но вот в default_list_read.tpl.php надо обновить страницу и до этого не поймешь, добавил ты что-то или удалил..
Val 25 декабря 2014 в 21:25 +2
small user social cms
дайте пожалуйста ссылку на эту страницу, я посмотрю в чем может быть причина
Norm Gold 25 декабря 2014 в 21:54 0
small user social cms
Написал..
SE7EN 25 декабря 2014 в 20:00 0
small user social cms
Всё отлично, но есть одно но, значок удаления из избранного надо бы сделать более понятным
Val 25 декабря 2014 в 20:04 +2
small user social cms
Это легко решается! smile
Замените файл картинки ..\templates\default\controllers\favorites\favorite.gif на соответствующую вашим потребностям и всё! ))
Джехутимери 25 декабря 2014 в 21:30 +2
small user social cms
Прекрасное дополнение, Val!
Пригодится 100% :)
Val 25 декабря 2014 в 21:36 +3
small user social cms
Спасибо smile )))
А.Саган 25 декабря 2014 в 23:00 +1
small user social cms
Замечательное дополнение! Подскажите, пожалуйста, что произойдёт с установленным дополнением, если придётся устанавливать новую версию обновления InstantCMS. Придётся ли после этого устанавливать дополнение заново? Или установка новой версии не повлияет на установленное дополнение?
Val 25 декабря 2014 в 23:07 +2
small user social cms
Интересный вопрос! smile У себя еще не проверял... laugh
Но логически в худшем случае компонент просто не будет работать. Хотя структура такая что ломаться особо нечему)) Если, к примеру, поменяются файлы-шаблонов контента, т.е. старые перезапишутся новыми, то это поправимо. Название хуков и системных функций r2 менять не должен, а в остальном компонент автономен.
В любом случае, по мере своей возможности я буду поддерживать компонент для новых версий Инстанта.
482 25 декабря 2014 в 23:13 0
small user social cms
Установл, но при входе в компонент выдаёт: 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
small user social cms
Судя по ошибке у вас некорректно установился языковой файл. Проверьте наличие файла ..\system\languages\ru\controllers\favorites\favorites.php и заодно наличия папки ..\system\controllers\favorites\ и файлов в ней
482 26 декабря 2014 в 16:07 0
small user social cms
Проверил, папка и файлы на месте.
wayfox 27 декабря 2014 в 12:28 +1
small user social cms
Замени файл на стандарт...
Gudan 28 декабря 2014 в 22:28 0
small user social cms
А чтобы в InstantMaps появилось где, что добавить не подскажите?
Gudan 28 декабря 2014 в 22:35 +2
small user social cms
Прошу прощения уже сам разобрался-)
Май 30 декабря 2014 в 01:00 +3
small user social cms
Как здорово, что для двойки появляется все больше отличных дополнений!
Огромное Вам спасибо!
Val 30 декабря 2014 в 21:15 +3
small user social cms
Думаю к концу наступающего года "двойка" ничем не будет уступать первой инстант!!! ))
Слава 2 января 2015 в 11:29 +1
small user social cms
Хорошая штука, спасибо.
У меня сразу предложение. В репутации пользователей есть просмотр тех, кто проголосовал за твой профиль.
Хорошо бы такое сделать и для закладок.
Val 2 января 2015 в 13:30 +1
small user social cms
Опишите пожалуйста подробнее что вы имеете ввиду? Свои закладки добавляет только владелец профиля, каким образом сюда причастны другие юзеры?
Возможность просматривать список избранного других пользователей есть.
Слава 2 января 2015 в 19:34 +1
small user social cms
Когда заходишь в профиль пользователя, там можно повысить или понизить репутацию(карму) этого пользователя.
При нажатии на количество голосов, появляется аякс-окно со списком пользователей, которые поставили репутацию.
И сдесь можно так сделать. Нажимаешь на количество пользователей, которые добавили данный материал в избранное, и появляется аякс-окно со списком пользователей, которые добавили этот материал в избранное..
Val 2 января 2015 в 19:49 +1
small user social cms
Теперь понятно))))
В целом можно сделать... а на сколько это будет полезно?))
Слава 2 января 2015 в 20:09 +3
small user social cms
Польза от самого компонента. А всё остальное, как говорится, сопутствующий товар.
Моё дело внести предложение. А Вы уже сами решите, стоит этому быть или нет.
На мой взгляд для поиска пользователей по интересам самое то.
Demet 3 января 2015 в 10:00 0
small user social cms
У меня при установке выдает такую ошибку "Warning: Invalid argument supplied for foreach() in /home/*****/public_html/system/controllers/favorites/frontend.php on line 20. В чем может быть проблема?
Val 3 января 2015 в 19:34 +1
small user social cms
Зайдите в Панель администрирования - настройки компонента. Установите требуемые параметры и нажмите "Сохранить". После этих действий ошибка появляется?
Demet 4 января 2015 в 00:08 0
small user social cms
Сейчас все стало нормально, не сразу увидел компонент в админке. Спасибо.
Василич 13 января 2015 в 14:40 +2
small user social cms
Отличное дополнение!
VonKruger 21 января 2015 в 22:12 +1
small user social cms
Спасибо! Плюсую!
tuxo 8 февраля 2015 в 12:54 +1
small user social cms
Отличный компонент) Спасибо автору.
Val 9 февраля 2015 в 08:46 +2
small user social cms
Спасибо за интерес))
Natalya 13 февраля 2015 в 21:44 +1
small user social cms
Спасибо за компонент!!! dance
NIKITA 12 марта 2015 в 23:49 0
small user social cms
Не выводится кнопка!
Выводится только в комментариях.
NIKITA 13 марта 2015 в 00:29 +2
small user social cms
Простите, установил! +1
Val 13 марта 2015 в 01:09 +2
small user social cms
Рад, что у вас всё получилось! joke
RBJ 22 марта 2015 в 22:52 0
small user social cms
Отличный компонент, только убивает вот эти страницы

если у пользователя или его друзей нет комментариев.
Val 23 марта 2015 в 19:37 +1
small user social cms
Большое спасибо за отзыв и за баг!!!
Нашел причину косячка:
в ..\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
small user social cms
Если несколько раз нажать добавить и убрать комментарий в избранное, получается космическая цифра добавивших в избранное.
Val 25 марта 2015 в 00:14 +4
small user social cms
Спасибо! На демо-сайте починил. Выложу исправление с ближайшим обновлением.
nmsk 3 апреля 2015 в 14:39 0
small user social cms
С нетерпением ждём. :)
Sergon 26 апреля 2015 в 14:06 0
small user social cms
Val, заметил когда включаешь кеширование, происходят задержки в профиле, куда и что поставить чтобы не кешировались избранные?
Val 28 апреля 2015 в 00:21 +1
small user social cms
Спасибо за найденный косяк! Долго боролся но победил эту напасть! )))
Пилю обновление. Как закончу выложу в новом посте.
Sergon 30 апреля 2015 в 08:21 0
small user social cms
отлично!
Romanovcmc 6 мая 2015 в 06:25 0
small user social cms
Вопрос такой, а если добавлена запись в избранное, а потом ее удалить, то она не отображается в избранном, но количество подсчитывается. Это как то возможно решить?
Val 6 мая 2015 в 08:33 0
small user social cms
Да, проблема известна и будет исправлена.
Обновление в работе, релиз ориентировочно конец мая - июнь
Ingvarruss 17 мая 2015 в 21:59 0
small user social cms
Вопрос, как можно прикрутить это удобство к объявлениям и объектам Mapsa?
Val 17 мая 2015 в 22:43 0
small user social cms
Как прикрутить к объявлениям подробно описано в статье (в дефолте объявления выводятся через таблицу). А мапса у меня нет, но если он основан на типах контента, то нужно добавить кнопку избранного в удобное для вас место и включить в настройках компонента требуемый тип контента.
Val 30 мая 2015 в 21:09 0
small user social cms
Выпуск новой версии компонента откладывается до выхода InstantCMS 2 следующей версии (2.2.2 или 2.3.0) zst , в которой разработчик сделает возможным реализацию алгоритма для нормального функционирования компонента "Избранные записи пользователей".
Спасибо за понимание.
Val 30 мая 2015 в 21:24 +1
small user social cms
Что будет нового:
- Исправлены все косяки указанные здесь в комментариях;
- Добавлена возможность просмотра списка пользователей, которые добавили запись себе в избранное;
- Добавлен виджет со списком тегов (и кол-вом их использования) избранных записей пользователя, по которым можно осуществлять быстрый поиск по своим избранным записям;
- Также пользователь может добавлять/изменять свои метки к избранным записям. (Функционал на подобие сайта хабрахабр).

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

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

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

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