0.00
Рейтинг
0.00
Сила

Выводим в Top блогов количество постов вместо рейтинга.

Возникла задача выводить в блоке Tоп блогов вместо абстрактного рейтинга количество постов. Актуально для новых сайтов или неактивных комьюнити.



Для начала находим Экшен блока. Структура LS подробно описана, поэтому легко находим нужный блок: /classes/blocks/BlockBlogs.class.php В блоке вызывается единственная функция: Blog_GetBlogsRating, с ней и будем работать.

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

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

Как создать свой вид топика, используя систему плагинов

3 года назад было написано Руководство: Как создать свой вид топика на LiveStreet. В то время ещё не было системы плагинов, и всё делалось «топорно», что в последствии затрудняло обновление движка, т.к. приходилось свои куски кода вставлять опять. С появлением системы плагинов LiveStreet стал более гибким и легко обновляемым. Передо мной встала задача создать новый вид топика, и я решил сделать это плагином. Но в процессе выяснилось, что то ли я чего-то не знаю, толи этого нет.

Напишу, что и как я делал, заодно задам вопросы, может быть на них решение уже есть. Надеюсь, совместно у нас получится сделать каркас нового типа топика в форме плагина.
Читать дальше →

Дополнительное поле при создании топика

Здравствуйте, довольно актуальная тема на 0.5.x

Дополнительное поле при создание топика

Сразу хочу сказать спасибо:
bas eXtravert bamboo

Источники: HOWTO: Дополнительные поля при создании топика — подправил адреса к файлам + добавил русского языка

Цель:
  • Часть I создание дополнительного поля в шаблоне new под 0.5.1
  • Часть II опубликованное дополнительное поле видно только администраторам


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

Дополнительные поля в отдельную таблицу LS 0.5

Добрый день.

Хочу добавить новые поля в топик.
Пробовал делать по аналогии с Дополнительное поле при создании поста

С тем отличием, что добавляю данные в отдельную таблицу.

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

Категории в Вопросах и ответах

Обещаный пример пример адаптации категорий.

Добавляем категории к плагину Вопросы и ответы (далее Qa :). Данный пример реализован тут.

Сразу к делу.

Для начала нужно добавить в таблицы prefix_category и prefix_category_relation полю target_type новый тип qa, выполняем запросы:
Читать дальше →

Делаем счетчик просмотров для страницы с топиком



Вообщем решил я прикрутить к своему сайту, счетчик просмотров. А именно для страниц с топиком. Поиск по интернету дал решение, с которым я и делюсь ;)
Собственно на картинке всё видно, работает он как все стандартные счетчики, и учитывает только просмотр страницы…
Читать дальше →

Livestreet: дао разработчика - 2

Первая часть цикла

Дао — это действие, процесс, поток. Чем чаще вы смотрите на код других плагинов, тем больше вы понимаете, как делать свой.
Накачайте плагинов под 0.4.2 и расматривайте, что у них внутри. Без этого вы не сможете начать писать свои плагины.

Я сделал типовой шаблон, из которого удобно делать свои собственные плагины. Располагается он тут:
http://github.com/medar/livestreetplugin
Чтобы скачать его, надо нажать в правом верхнем углу кнопку «Download Source». Желающие могут форкать и вносить изменения.

В файле находится «рыба» плагина с названием abcplugin.
Читать дальше →

Livestreet: дао разработчика - 1

Я сейчас работаю над одним проектов, в качестве платформы для которого я выбрал Livestreet. Так как с инфой для программистов у этого движка туго, я буду выкладывать те вещи, который я узнал о движке здесь. Надеюсь, это поможет остальным начинающим программистам на LS.

Я работаю с движком всего несколько дней, поэтому что-то в описании может быть неточно или неполно. Не стесняйтесь поправлять.

Цель этого цикла — дать поверхностный, но глобальный взгляд на движок, чтобы снизить порог вхождений. Плюс собрать все актуальные (0.4.1 и выше) ссылки, относящиеся к разработке в одно место.

Итак.

Для начала стоит пробежаться по существующей документации для разработчика (http://trac.lsdev.ru/livestreet/wiki/DeveloperDoc), чтобы понимать термины.
Откройте в IDE движок, пробежитесь по папкам движка, по плагину page, который идет в комплекте с движком.

В движке Livestreet:
Экшены, содержащие Ивенты (action, events) — это, кто знаком с MVC — контроллеры.
Модули (module) — куски кода, которые осуществляют некий функционал (например, функционирование блогов, топиков, комментов). В процессе своей работы они обращаются к Мапперам (mapper) для того, чтобы пообщаться с базой данных. Все sql-запросы пишутся именно в мапперах. Мапперы в свою очередь используют Сущности (entity), которые переводят массивы, отданные mysql в объекты, с которыми потом работает движок.

Способ модификации кода Livestreet два.

1. Через переопределение существующих функций. Меняется целиком существующая функция в модуле/маппере/сущности, или добавляется своя. Подробно: livestreet.ru/blog/dev_documentation/4499.html

2. Через хуки. При этом вставляется код в указанное место движка.
Хуки можно вставить в места, определенные конструкцией $this->HookRun(...); в движке, а также на начало и конец любого модуля, зарегистрированного в системе (не важно, системный он, или установлен каким-то плагином). Подробно про хуки в моделях: livestreet.ru/blog/dev_documentation/3991.html.

Переопределения эти делаются в плагинах. Подробнее о плагинах и их устройстве: livestreet.ru/blog/dev_documentation/3531.html

Как делать эти самые плагины — подробно поговорим во второй части.

Вторая часть

Автосохранение черновика при создании записи

Уверен, из названия топика ясно чем мы будем заниматься. Для того, чтобы цель выглядела «материальнее»:

Скриншоты:
Автосохранение запрещено

Автосохранение разрешено

Сообщение об успешности или ошибке — стандартный Notice в правом верхнем углу.
Реализация.


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