Товаров: 0 (0р.)

Blogs powered by livestreet cms topics: Как создать свой вид топика на LiveStreet / Техническая документация LiveStreet / LiveStreet CMS

Новый функционал топиков / Блог разработки LiveStreet / LiveStreet CMS

В разрабатываемой новой версии LS ( github.com/livestreet/livestreet ) мы переработали функционал топиков.

В первую очередь избавились от жесткого разделения на типы (топик, опрос, фотосет, ссылка). Добавили возможность самому создавать произвольные типы топиков, которые могут отличаться набором полей. Управление полями топиков происходит через новый функционал EAV (модуль Property), на данный момент доступны типы: число, строка, большой текст, выбор из списка, дата, теги, чекбокс, ссылка на видео (youtube, vimeo, rutube).

Далее полностью переделали опросы. Теперь к топикам можно прикреплять несколько опросов, доступно голосование за несколько вариантов ответов. Для каждого типа топика можно включить или выключить возможность добавления опросов. Кроме этого опросы стали автономными/универсальными — их можно прикреплять к любым объектам, например, можно выводить опросы в сайдбар или на статические страницы (необходимо только создать небольшой плагин).

И самое интересное — мы переработали механизм добавления изображений к топикам. Новый механизм основан на модуле Media, который позволяет работает с медиа-файлами (пока поддержка только изображений) и прикреплять их к разным объектам. Теперь в топики можно вставлять превью изображений разных размеров с лайтбоксом, добавлять неограниченное количество фото-сетов, которые отображаются через fotoram’у. И все это стало настолько удобно, что вам обязательно понравится 🙂


вывод топиков / Поиск по тегам / LiveStreet CMS

Всем привет!

Появилась задача вывести на странице топика, к примеру, после комментариев, топики из текущего блога.
Т.е. читая топик из блога «Сайты на LiveStreet», в конце топика видим список топиков (через topic_list) из этого же блога.

Спустя какое-то время удалось это сделать через метод GetTopicsByBlog().
Написал в шаблоне (в любом файле, к примеру, в конце comment_tree.tpl или в своем tpl) (да, знаю, что так нельзя) примерно такое:

{assign var="oBlog" value=$oTopic->getBlog()} 
{assign var="aTopics" value=$LS->Topic_GetTopicsByBlog($oBlog,1,4)}
{assign var="aTopics" value=$aTopics.collection}
{include file='topic_list.tpl'}

Дальше идем в topic_list.tpl для того, чтобы убрать дубляж (чтобы в списке топиков не выводился тот, который читаем). Находим этот цикл:

{foreach from=$aTopics item=oTopic}
		{if $LS->Topic_IsAllowTopicType($oTopic->getType())}
			{assign var="sTopicTemplateName" value="topic_`$oTopic->getType()`.tpl"}
			{include file=$sTopicTemplateName bTopicList=true}
		{/if}
	{/foreach}

Изменяем его на это (добавил переменную для текущего топика, не знаю, может есть стационарная):

{if $oTopic}{$CurrTopic=$oTopic->getId()}{/if}
   {foreach from=$aTopics item=oTopic}
	{if !$oTopic || $oTopic->getId()!=$CurrTopic}
        	{if $LS->Topic_IsAllowTopicType($oTopic->getType())}{assign var="sTopicTemplateName" value="topic_`$oTopic->getType()`.tpl"}
           	{include file=$sTopicTemplateName bTopicList=true}{/if}
	{/if}
   {/foreach}

В результате должно получится так, что на странице топика, после комментариев будет выводиться 4 последних топика из текущего блога. Если нужны топики из конкретного блога, то необходимо заменить

{assign var="aTopics" value=$LS->Topic_GetTopicsByBlog($oBlog,1,4)}
на это
{assign var="aTopics" value=$LS->Topic_GetTopicsByBlogId(BLOG_ID, 1, 10, array ('blog'), false)}
где BLOG_ID это id необходимого блога.

Sticky Topics v2 / Дополнительные модули и доработки для LiveStreet / LiveStreet CMS

В последнее время, я смотрю, тема прикрепления/закрепления топиков снова стала актуальной, поэтому…

Для особо нетерпеливых скачать до прохождения модерации можно тут.

И, как говорится, лучше один раз увидеть:

// Встраивать прикрепленные топики в общую ленту? Они в любом случае передаются в шаблонную переменную $aStickyTopics
$config['sticky_topics_in_feed']=true;

Если этот параметр TRUE, тогда прикрепленные топики «встраиваются» первыми в общую ленту. Можно этот параметр сделать FALSE и тогда список прикрепленных топиков будет в шаблоне отдельно, в переменной $aStickyTopics – это может быть полезно для того, чтобы отображать эти топики как-то по другому, не как все остальные.
// Разрешать пользователям закреплять топики в списке их топиков на страничке /profile/ХХХХ/created/topics/
$config['allow_personal_sticky_topics']=true;

Этой опцией можно запретить пользователям закреплять записи на их страничке. С помощью StickyTopics ваши пользователи могут получить некую свою приветственную страничку – сделать приветственный топик и закрепить его.

// Разрешать пользователям закреплять на их страничках:
// любые доступные топики - all
// написанные ими - self
// написанные только в персональный блог - personal
$config['personal_sticky_topics_kind']='self';

Ограничивает типы записи, которые пользователь может закрепить на свой страничке

// Разрешать закреплять в блогах:
// любые доступные топики - all
// написанные только в этот блог - blog
$config['blog_sticky_topics_kind']='blog';

Ограничивает типы записи, которые можно закрепить в блоге

Собственно, идеи по развитию приветствуются, но что будут реализованы «здесь и сейчас» не обещаю — куча дел, да и приболел я, что-то…

LiveStreet CMS

Значит в ходе дискуссии возникли корректировки. Было предложено вынести весь дополнительный функционал в плагины. Я согласен с такой идеей. Плагины по сути в livestreet — это есть отдельные куски приложения имеющие в себе контроллеры модели и вьюхи, как пакеты, модули или бандлы в других архитектурах. Сразу появляется возможность отключить/включить нужный функционал. Чтобы сэкономить время можно брать готовые куски кода из модулей и расфасовать их по плагинам с некоторыми корректировками. По ходу перенести все модули на ORM. Кстати возникает возможность подключить готовую библиотеку к фреймворку, например Doctrine или другую, до переноса на ORM.
Пусть основное приложение будет иметь определенный набор модулей и экшенов, самых основных.
Читать дальше →

Пытаюсь добавить пользователя в закрытый блог, пишет «Системная ошибка, повторите позже».
Причем, в этом блоге 41 пользователь, все в порядке было с их добавлением. Также пользователь, которого я пытаюсь добавить состоит и в других закрытых блогах, но именно в этот добавить не могу.

Где искать причину?

Итак. Что мы имеем в итоге. Сообщество в целом желает переезда, но из них малая часть готова принять участие в этом. Невозможность данной затеи очевидна, так как сил, денег, времени нет. Я не собираюсь браться за это в одиночку. Сообщество у нас маленькое. Так что давайте держаться вместе и не доводить до оскорблений. Конструктивной критики много. Нужно определиться с тем что делать или не делать дальше. Но даже для этого нужна какая то методология. У большинства высказавшихся безусловно имеется свое соображение на данную тему. И они выстраивают свою цепь задач, которые необходимы для начала работы. Я попытаюсь выстроить свою.
Читать дальше → Уже перерыл весь шаблон не могу понять как изменить положение блока «Превью» при добавлении топика.

Читать дальше →

Какой фреймворк выбрать, можно решать отдельно. Результаты голосования не обязательно предопределят судьбу livestreet.

Привет всем неравнодушным. Меня зовут Олег Демидов. В последнее время в Livestreet произошли изменения. Максим включил меня в состав команды разработчиков и предложил попробовать внести некоторое количество «свежей крови». У него, как видно, не хватает сейчас времени и сил тащить проект.

Я в свою очередь, в ходе работы над своими проектами, проникся в понимании того как работает, устроен движок. У кого то могут возникать вопросы связанные с целесообразностью продолжения развития проекта. Но у меня нет сомнения, что livestreet имеет потенциал. Тут много развелось споров о том, что архитектура пошла не по тому пути и в других подобных проектах установились иные принципы, и они выглядят красивее, продуманней, с большим заделом, такие как Yii, Laravel. В этом есть доля истины, я согласен. Но есть и обратные примеры. Возьмите например WordPress или Bitrix. Я конечно не говорю, что это вполне сравнимые вещи, но суть, ошибки в проектировании не являются фатальными, если продолжать верить в проект и работать над его развитием. Да даже если взять сам php и проследить его развитие, то можно увидеть как он постепенно выбирается из пеленок, продолжая поддержку старых функций. Думаю livestreet надо брать пример именно с них.
Нужно обсудить ваши предложения и наметить план или дорожную карту и не торопясь, но ритмично действовать. Минорных изменений каждый период будет достаточно, чтобы проект ожил. Я в свою очередь постараюсь сделать все от меня зависящее. Есть идеи? Выкладывайте! Приветствуется критика.

Мне нравится лайвстрит. Но с отсутствием поддержки, оперативными фиксами уязвимостей и багов, не говоря уже о новом функционале, есть повод искать альтернативу.

Моя цель была найти опенсорс CMS с большим, желательно международным сообществом и группой разработчиков. По этим и некоторым другим параметрам подходит MODX. Так же есть и другие варианты. Подробности под катом.
Читать дальше →

Всем привет!

Подскажите как настроить следующую структуру?

/%blog_url%/
/%blog_url%/%topic_url%/

В конфиге настроил ЧПУ для топиков

$config['module']['topic']['url'] = '%blog%/%title%.html';

Осталось из урлов блогов вырезать «blog»

/blog/%blog_url%/

Читать дальше →

Добрый день! Установил на сайт плагин Attachments для прикрепления файлов к топику, файлы загружаются и добавляются, но при попытке открыть их выясняется что во время загрузки они запоганились и открыть их невозможно. Нужно устранить эту проблему. Авторы плагина не выходят на связь.

Здравствуйте.
В связи с тем, что LS 2.0 среди прочего в минимальных требованиях хостинга имеет пункт об версии PHP не ниже 5.5, возникает следующий вопрос.

Пытаясь включить кеширование xcache, вижу просто белый экран вместо сайта.
Хостер же отвечает, что xcache доступно только на версии php 5.3 и рекомендует использовать opcache.

Собственно вопрос, как прикрутить/включить кеширование LS 2.0.1 на версии PHP от 5.5 и выше? Имею в виду любое более эффективное кеширование, чем file.

Бета-версия админ-панели для LiveStreet CMS / Блог разработки LiveStreet / LiveStreet CMS

Сегодня мы готовы показать вам бета-версию панели управления для LiveStreet CMS.
История создания админки началась еще четыре года назад, с тех пор ее раза три полностью переделывали, откладывали, возвращались к ней и так несколько лет. Далась она не легко.

Итак, на данный момент это бета, в ней много еще нет, но уже заложена базовая основа для наращивания функционала.
Главное, что мы сделали:

  • Механизм и интерфейс редактирования конфигов
  • Простая интеграция плагинов в админку
  • Поддержка интерфейса для управления конфигами плагинов
  • Универсальное key-value хранилище данных для плагинов
  • Новый функционал управления дополнительными полями. Можно к любой сущности привязывать доп поля (если сущность ORM, то это делается буквально одной строчкой). В коробке поддержка полей для топиков.
  • Управление пользователями и банами (нужный и долгожданный функционал)
  • Базовая интеграция каталога плагинов прямо в админ-панель
  • Базовая статистика по контенту (топики, комментарии, регистрации)

И да, мы сделали админку в виде отдельного плагина. Это избавляет от тесной интеграции с ядром движка, позволяет кастомизировать админку под свои проекты, не обязательно блого-социальные.

Код админки github.com/livestreet/lsplugin-admin
Установка:

  1. Админка работает только на текущей девел-версии ЛС.
  2. Скачиваем LS от сюда github.com/livestreet/livestreet
  3. Не забываем про каталог framework, который берем здесь github.com/livestreet/livestreet-framework
  4. Далее через стандартный инсталлятор (/install/) ставим LS
  5. После установки выполняем в БД патч из /install/patch.sql
  6. Авторизируемся под администратором и по адресу /admin/ активируем плагин «Admin panel» (предварительно скачав его с github.com/livestreet/lsplugin-admin, название каталога с плагином должно быть «admin»)

В комплекте с админкой в /example/plugins/ идет пример плагина «Статьи», который интегрируется в интерфейс админки и работает с дополнительными полями. По интеграции будет отдельный топик.

По админке выслушаем любые пожелания, от функционала до оформления.











Список хуков LiveStreet CMS 1.0.1 / Блог разработки LiveStreet / LiveStreet CMS

На днях написал черновик по списку хуков и так забыл о нем, пока не увидел новое видео от Максима и сразу вспомнил об этом тексте, решив под общий шумок вокруг хуков добавить и эту статью. Я видел разные топики, где спрашивали «есть ли список хуков?«. Да, есть. Вот он.

Привожу список стандартных хуков для чистой официальной ЛС 1.0.1, большинство из них неявно прописаны в движке, поэтому попытка найти их вызовы в коде у вас не выйдет т.к. часть их них автоматически формируется ядром движка.
Из стандартной поставки ЛС хуки в сумме вызываются 486 раз, некоторые по нескольку раз. Это нормально. Здесь приведены 161 хук, которые доступны в ЛС 1.0.1, в порядке их вызова, начиная с самого первого, исключая дальнейшие повторения.


module_Hook_init_after
module_Plugin_init_before
module_Plugin_init_after
module_Cache_init_before
module_Cache_init_after
module_Security_init_before
module_Security_init_after
module_Session_init_before
module_Session_init_after
module_Lang_init_before
lang_init_start
module_Viewer_init_before
viewer_init_start
module_Viewer_init_after
module_viewer_assign_before
module_viewer_assign_after
module_Lang_init_after
module_Message_init_before
module_session_get_before
module_session_get_after
module_Message_init_after
module_User_init_before
module_Database_init_before
module_Database_init_after
module_database_getconnect_before
module_database_getconnect_after
module_cache_get_before
module_cache_get_after
module_cache_set_before
module_cache_set_after
module_Geo_init_before
module_user_getusercurrent_before
module_user_getusercurrent_after
module_Geo_init_after
module_geo_gettargetsbytargetarray_before
module_geo_gettargetsbytargetarray_after
module_cache_clean_before
module_cache_clean_after
module_User_init_after
engine_init_complete
init_action
module_Ls_init_before
module_Ls_init_after
module_ls_senderrun_before
module_ls_senderrun_after
action_init_actionindex_before
module_Topic_init_before
module_Topic_init_after
module_topic_getcounttopicscollectivenew_before
module_Blog_init_before
module_Blog_init_after
module_blog_getaccessibleblogsbyuser_before
module_blog_getaccessibleblogsbyuser_after
module_topic_getcounttopicscollectivenew_after
module_topic_getcounttopicspersonalnew_before
module_topic_getcounttopicspersonalnew_after
action_init_actionindex_after
action_event_index_before
module_viewer_sethtmlrssalternate_before
module_viewer_sethtmlrssalternate_after
module_viewer_sethtmlcanonical_before
module_viewer_sethtmlcanonical_after
module_topic_gettopicsgood_before
module_lang_get_before
module_lang_get_after
module_user_getusersadditionaldata_before
module_user_getusersadditionaldata_after
module_blog_getblogsadditionaldata_before
module_blog_getblogsadditionaldata_after
module_Vote_init_before
module_Vote_init_after
module_vote_getvotebyarray_before
module_vote_getvotebyarray_after
module_Favourite_init_before
module_Favourite_init_after
module_favourite_getfavouritesbyarray_before
module_favourite_getfavouritesbyarray_after
module_topic_gettopicsgood_after
topics_list_show
module_viewer_makepaging_before
module_viewer_makepaging_after
action_event_index_after
action_shutdown_actionindex_before
action_shutdown_actionindex_after
module_session_getid_before
module_session_getid_after
module_session_set_before
module_session_set_after
module_Talk_init_before
module_Talk_init_after
module_talk_getcounttalknew_before
module_talk_getcounttalknew_after
module_topic_getcountdrafttopicsbyuserid_before
module_topic_getcountdrafttopicsbyuserid_after
module_viewer_display_before
template_html_head_begin
template_html_head_end
module_viewer_addblock_before
module_viewer_addblock_after
template_body_begin
template_write_item
template_container_class
template_header_banner_begin
template_main_menu_item
template_main_menu
template_userbar_nav
template_userbar_stat_item
template_userbar_item_first
template_userbar_item_last
template_header_banner_end
template_menu_blog
template_wrapper_class
module_viewer_getblocks_before
module_viewer_getblocks_after
module_Comment_init_before
module_Comment_init_after
module_comment_getcommentsonline_before
module_blog_getinaccessibleblogsbyuser_before
module_blog_getinaccessibleblogsbyuser_after
module_topic_gettopicsadditionaldata_before
module_topic_gettopicsadditionaldata_after
module_comment_getcommentsonline_after
module_viewer_getlocalviewer_before
module_lang_getlangmsg_before
module_lang_getlangmsg_after
module_viewer_getlocalviewer_after
template_block_stream_nav_item
module_topic_getopentopictags_before
module_topic_getopentopictags_after
module_Tools_init_before
module_Tools_init_after
module_tools_makecloud_before
module_tools_makecloud_after
template_block_tags_nav_item
module_blog_getblogsrating_before
module_blog_getblogsrating_after
template_menu_blog_index_item
template_content_begin
module_topic_isallowtopictype_before
module_topic_isallowtopictype_after
template_topic_content_begin
template_topic_content_end
template_block_topic_share
template_topic_show_vote_stats
template_topic_show_info
template_content_end
template_footer_menu_user_item
template_footer_menu_navigate_item
template_copyright
template_footer_end
template_body_end
module_database_getstats_before
module_database_getstats_after
module_cache_getstats_before
module_cache_getstats_after
module_viewer_fetch_before
template_statistics_performance_begin
template_statistics_performance_item
template_statistics_performance_end
module_viewer_fetch_after
module_viewer_display_after

Как видим — первым хуком стартует модуль хуков module_Hook_init_after, который срабатывает сразу после инициализации механизма хуков 🙂

Хуки, которые начинаются на


Это кросспост из гида по ЛС.

Список файлов шаблона / Блог им. rosko / LiveStreet CMS

/blog/add — страница создания/редактирования блога
/blog/admin — страница управления блогом
/blog/blog — страница профиля блога
/blog/comment — комментарии
/blog/index — главная страница блогов
/blog/topic — страница топика

/blogs/index — страница списка блогов

/comments/index — страница комментариев

/error/index — страница отображения ошибки

/index/index — главная страница сайта

/link/add — страница создания/редактирования ссылки

/login/exit — страница выхода
/login/index — страница входа
/login/reminder_confirm — страница с сообщением, что новый пароль отправлен
/login/reminder_send — страница с сообщением, что ссылка для восстановления пароля отправлена
/login/reminder — страница с формой для восстановления пароля

/my/blog — страница со списком топиков текущего пользователя
/my/comment — страница со списком комментариев текущего пользователя

/mysearch/blog_list — список найденных блогов
/mysearch/comment_list — список найденных комментариев
/mysearch/index — страница с формой для поиска
/mysearch/results — страница с результатами
/mysearch/topic_list — список найденных топиков

/new/index — страница со списком последних топиков

/page/add — форма создания/редактирования статичной страницы
/page/admin — страница управления статичными страницами
/page/page — страница для отображения статичной страницы

/people/city — страница со списком пользователей по конкретному городу
/people/country — страница со списком пользователей по конкретной стране
/people/index — страница со списком пользователей
/people/new — страница со списком новых пользователей
/people/online — страница со списком пользователей он-лайн
/people/sidebar — боковой блок со статистическими данными по пользователям, списком страниц и списком городов

/personalblog/index — страница со списком топиков конкретного пользователя

/profile/favourites — страница со списком избранного конкретного пользователя
/profile/sidebar — боковой блок с кнопков добавления/удаления пользователя в/из списка друзей; аська, фото
/profile/whois — страница профиля пользователя

/question/add — страница создания/редактирования вопроса

/registration/activate — страница с сообщением, что активация произведена
/registration/confirm — страница с сообщеним, что инструкции по активации отправлены по емейлу
/registration/index — страница с формой регистрации
/registration/invite — страница с формой ввода инвайта
/registration/ok — страница с сообщением, что регистрация прошла успешно

/rss/index — rss-канал

/search/index — страница с формой поиска
/search/opensearch — xml-код для технологии opensearch
/search/results — страница с результатами поиска

/settings/invite — страница с инвайтами и формой для приглашения
/settings/profile — страница редактирования профиля
/settings/tuning — страница с настройками профиля

/tag/index — страница со списком топиков по тегам

/talk/add — страница создания личного сообщения
/talk/inbox — страница с входящими сообщениями
/talk/read — страница прочтения личного сообщения

/top/blog — страница со списком топ-блоков
/top/comment — страница со списком топ-комментариев
/top/topic — страница со списком топ-топиков

/topic/add — страница для создания/редактирования топика
/topic/published — страница со списком опубликованных топиков
/topic/saved — страница со списком сохраненных топиков

block.blogInfo — блок с информацией о блоге
block.blogs_top — список топ-блогов
block.blogs — блок со списком блогов
block.stream_comment — блок прямого эфира комментариев
block.stream_topic — блок прямого эфира топиков
block.stream — блок прямого эфира (объединяет предыдущие два шаблона)
block.tags — блок со списком тегов
block.tagsCity — блок со списком городов
block.tagsCountry — блок со списком стран
blog_list — список блогов (для вставки в другие шаблоны)
comment_list — список комментариев (недревовидный) (для вставки в другие шаблоны)
comment — список комментариев (древовидный) (для вставки в другие шаблоны)
footer.tpl — подвал шаблона
header.tpl — верх шаблона
menu.blog_edit.tpl — боковое меню управления блогом
menu.blog.tpl — боковое меню блога
menu.people.tpl — боковое меню на странице пользователей
menu.profile.tpl — боковое меню на странице профиля конкретного пользователя
menu.settings.tpl — боковое меню на странице настроек текущего пользователя
menu.talk.tpl — боковое меню на странице личных сообщений
menu.topic_action.tpl — боковое меню при создании нового топика/вопроса/ссылки
paging.tpl — список страниц
sidebar.tpl — боковой блок, который вмещает другие блоки и меню
system_message.tpl — вывод системного сообщения (в виде всплывающего текста справа вверху)
topic_list.tpl — список топиков (для вставки в другие шаблоны)
topic_question.tpl — вывод вопроса (для вставки в другие шаблоны)
topic.tpl — вывод топика/вопроса/ссылки (для вставки в другие шаблоны)
window_load_img.tpl — шаблон всплывающего окна для загрузки изображений

Новый функционал топиков / Блог разработки LiveStreet / LiveStreet CMS

В разрабатываемой новой версии LS (github.com/livestreet/livestreet) мы переработали функционал топиков.

В первую очередь избавились от разделения на типы (топик, опрос, фотосет, ссылка). Добавили возможность создать произвольные топики, которые могут отличаться набором полей. Управление полями топиков происходит через новый функционал EAV (свойство модуля), на данный момент доступны: число, строка, большой текст, выбор из списка, дата, теги, чекбокс, ссылка на видео (youtube, vimeo, rutube).

Далее полностью переделали опросы. Теперь к топикам можно прикреплять несколько опросов, доступно голосование за несколько вариантов ответов. Для каждого типа топика можно включить или выключить возможность добавления опросов. Кроме этого опросы стали автономными / универсальными — их можно прикрепить к любому объекту, например, можно вывести опросы в сайдбар или на статические страницы (необходимо только создать небольшой плагин).

И самое интересное — мы переработали механизм добавления изображений к топикам.Новый механизм основан на модуле СМИ, который позволяет работать с медиа-файлами (пока поддерживает только изображений) и прикреплять их к разным объектам. Теперь в топики можно вставлять превью изображений разных размеров с лайтбоксом, неограниченное количество фото-сетов, которые предоставляются через fotoram’у. И все это стало настолько удобно, что вам обязательно понравится 🙂


.

вывод топиков / Поиск по тегам / LiveStreet CMS

Всем привет!

Появилась задача вывести на странице топика, к примеру, после комментариев, топики из текущего блога.
Т.е. читая топик из блога «Сайты на LiveStreet», в конце топика видим список топиков (через topic_list) из этого же блога.

Спустя какое-то время это удалось сделать методом GetTopicsByBlog () .
Написал в шаблоне (в любом файле, к примеру, в конце comment_tree.tpl или в своем tpl) (да, знаю, что так нельзя) примерно такое:

 {assign var = "oBlog" value = $ oTopic-> getBlog ()}
{assign var = "aTopics" value = $ LS-> Topic_GetTopicsByBlog ($ oBlog, 1,4)}
{assign var = "aTopics" value = $ aTopics.collection}
{include file = 'topic_list.tpl'} 

Дальше идем в topic_list.tpl для того, чтобы убрать дубляж (чтобы в списке топиков не выводился тот, читаем). Находим этот цикл:

 {foreach from = $ aTopics item = oTopic}
{если $ LS-> Topic_IsAllowTopicType ($ oTopic-> getType ())}
{assign var = "sTopicTemplateName" value = "topic_` $ oTopic-> getType ()`.tpl "}
{включить файл = $ sTopicTemplateName bTopicList = true}
{/если}
{/ foreach} 

Изменяем его на это (добавил переменную для текущего топика, не знаю, может есть стационарная):

 {if $ oTopic} {$ CurrTopic = $ oTopic-> getId ()} {/ if}
   {foreach from = $ aTopics item = oTopic}
{if! $ oTopic || $ oTopic-> getId ()! = $ CurrTopic}
        {if $ LS-> Topic_IsAllowTopicType ($ oTopic-> getType ())} {assign var = "sTopicTemplateName" value = "topic_` $ oTopic-> getType ()`.tpl "}
           {include file = $ sTopicTemplateName bTopicList = true} {/ if}
{/если}
   {/ foreach} 

В результате получится так, что на странице топика, после комментариев будет выведено 4 последних топика из текущего блога. Если нужны топики из конкретного блога, то необходимо заменить

 {assign var = "aTopics" value = $ LS-> Topic_GetTopicsByBlog ($ oBlog, 1,4)} 
на это
 {assign var = "aTopics" value = $ LS-> Topic_GetTopicsByBlogId (BLOG_ID, 1, 10, array ('blog'), false)} 
где BLOG_ID это id необходимого блога..

Sticky Topics v2 / Дополнительные модули и доработки для LiveStreet / LiveStreet CMS

В последнее время, я смотрю, тема прикрепления / закрепления топиков снова стала актуальной, поэтому…

Для особо нетерпеливых скачать до прохождения модерации можно тут.

И, как говорится, лучше один раз увидеть:

  // Встраивать прикрепленные топики в общую ленту? Они в любом случае передаются в шаблонную переменную $ aStickyTopics
$ config ['sticky_topics_in_feed'] = истина;
  

Если этот параметр TRUE, тогда прикрепленные топики «встраиваются» первыми в общую ленту.Можно этот параметр сделать FALSE и тогда список прикрепленных топиков будет в шаблоне отдельно, в $ aStickyTopics — это может быть полезно для того, чтобы отображать эти топики как-то по другому, не как все остальные.
  // Разрешать пользователям закреплять топики в списке их топиков на страничке / profile / ХХХХ / created / themes /
$ config ['allow_personal_sticky_topics'] = true;  

Этой опцией можно запретить пользователям закреплять записи на их страничке. С помощью StickyTopics пользователи могут получить некую свою приветственную страничку — сделать приветственный топик и закрепить его.

  // Разрешать пользователям закреплять на их страничках:
// любые доступные топики - все
// написанные ими - self
// написанные только в персональный блог - персональный
$ config ['personal_sticky_topics_kind'] = 'сам';  

Ограничивает типовые записи, которые пользователь может закрепить на своей страничке

  // Разрешать закреплять в блогах:
// любые доступные топики - все
// написанные только в этот блог - блог
$ config ['blog_sticky_topics_kind'] = 'блог';
  

Ограничивает типы записи, которые можно закрепить в

Собственно, идеи по развитию приветствуются, но что будут реализованы «здесь и сейчас» не реализуются — куча дел, да и блог приболел я, что-то…

.

LiveStreet CMS

Значит в ходе дискуссии возникли корректировки. Было предложено вынести дополнительный функционал в плагины. Я согласен с такой идеей. Плагины по сути в livestreet — это есть отдельные приложения, в которых используются контроллеры модели и вьюхи, как пакеты, модули или бандлы в другой архитектуре. Сразу отключить возможность отключить / включить нужный функционал. Чтобы сэкономить время можно брать готовые куски их модулей и расфасовать по плагинам с некоторыми корректировками.По ходу перенести все модули на ORM. Кстати возникает возможность подключить готовую библиотеку к фреймворку, например Doctrine или другую, до переноса на ORM.
Пусть основное приложение будет иметь набор модулей и экшенов, самых основных.
Читать дальше →

Пытаюсь добавить пользователя в закрытый блог, пишет «Системная ошибка, из журнала позже».
Причем, в этом блоге 41 пользователь, все в порядке было с их добавлением.Также пользователь, которого я пытаюсь добавить в других закрытых блогах.
Где искать причину?

Итак. Что мы имеем в итоге. Сообщество в целом желает переезда, но из них малая часть готова принять участие в этом. Невозможность данной затеи очевидна, так как сил, денег, времени нет. Я не собираюсь браться за это в одиночку. Сообщество у нас маленькое. Так что давайте держаться вместе и не доводить до оскорблений.Конструктивная критики много. Нужно определиться с тем что делать или не делать дальше. Но даже для этого нужна какая то методология. У высказавшихся безусловно имеется свое мнение на эту тему. И они выстраивают свою цепь задач, которые необходимы для начала работы. Я попытаюсь выстроить свою.
Читать дальше → Уже перерыл весь шаблон не могу понять как изменить положение блока «Превью» при добавлении топика.

Читать дальше →

Какой фреймворк выбрать, можно решать отдельно.Результаты голосования не обязательно предопределят судьбу livestreet.

Привет всем неравнодушным. Меня зовут Олег Демидов. В последнее время в Livestreet произошли изменения. Максим включил меня в состав команды и попробовать ввести количество «свежей крови». У него, как видно, не хватает сейчас времени и сил тащить проект.
Я в свою очередь, в ходе работы над своими проектами, проникся в понимании того, как работает, устроен движок.У кого то могут возникать вопросы с целесообразностью продолжения развития проекта. Но у меня нет сомнения, что livestreet имеет потенциал. Они выглядят красивее, продуманней, с большим заделом, такими как Yii, Laravel. В этом есть доля истины, я согласен. Но есть и обратные примеры. Возьмите например WordPress или Битрикс. Я конечно не говорю, что это вполне сравнимые вещи, но суть, ошибки в проектировании не являются фатальными, если продолжать верить в проект и над его развитием.Да даже если взять сам php и проследить его развитие, то можно увидеть постепенно, как он постепенно выбирается из пеленок, продолжая поддержку старых функций. Думаю livestreet надо брать пример именно с них.
Нужно обсудить ваши предложения и наметить план или дорожную карту и не торопясь, но ритмично действовать. Минорных изменений каждый период будет достаточно, чтобы проект ожил. Я в свою очередь постараюсь сделать все от меня зависящее. Есть идеи? Выкладывайте! Приветствуется критика.

Мне нравится лайвстрит.Не говоря уже о новом функционале, оперативными фиксами уязвимостей и багов, есть повод искать альтернативу.

Моя цель была найти опенсорс CMS с желательно международным сообществом и группой разработчиков. По этим и некоторым другим параметрам подходит MODX. Так же есть и другие варианты. Подробности под катом.
Читать дальше →

Всем привет!

Подскажите как настроить новую структуру?

/% blog_url% /
/% blog_url% /% topic_url% /

В конфиге настроил ЧПУ для топиков

 $ config ['module'] ['topic'] ['url'] = '% blog% /% title%.html '; 

Осталось из урлов блогов вырезать «блог»

 / blog /% blog_url% / 

Читать дальше →

Добрый день! Установил на сайт плагин Вложения для прикрепления файлов к топику, загружаются приложения, которые загружаются при попытке их загрузки. Нужно устранить эту проблему. Авторы плагина не выходят на связь.

Здравствуйте.
В связи с тем, что LS 2.0 среди других минимальных требований хостинга имеет пункт об версии PHP не ниже 5.5, возникает следующий вопрос.

Пытаясь включить кеширование xcache, вижу просто белый экран вместо сайта.
Хостер же отвечает, что xcache доступен только на версии php 5.3 и рекомендует использовать opcache.

Собственно вопрос, как прикрутить / включить кеширование LS 2.0.1 на версию PHP от 5.5 и выше? Имею в виду любое более эффективное кеширование, чем файл.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *