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

Алексей

Встречайте: Alto CMS – первый релиз форка LiveStreet'а

6 фото
Встроенная админпанель
image
Говорят, настоящий успех к мастеру приходит тогда, когда начинают делать копии его произведений.

Вот и дорос LiveStreet до того, что настала пора делать первый настоящий форк от него. И зовется этот форк – Alto CMS.

Вообще-то, если верить статистике GitHub'а, то ЛС форкнули уже 99 раз. Но Alto CMS – это первый форк, который вышел в свой первый официальный релиз, и который отныне начинает жить своей собственной жизнью. Сейчас мы постараемся дать ответы на вопросы, которые наверняка возникнут в первую очередь. И, пожалуй, самый первый вопрос…


Подробнее об Alto

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

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

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

Проблемы с новым типом топика (не выводится sidebar с описанием блогов)

Сделал новый тип топика — Объявление. Возникли проблемы — пропал sidebar с «Описанием блога» и «Заметка».
Делал по Руководству, аналогично, но с небольшими правками на новую версию движка.

  1. Создал ссылку на создания топика в шаблоне smarty.
  2. В /templates/skin/new/menu.topic_action.tpl добавил строку (ту что между комментариев):
    
    <ul class="sub-menu" >
      <li {if $sMenuItemSelect=='topic'}class="active"{/if}><div><a href="{router page='topic'}{$sMenuSubItemSelect}/">{$aLang.topic_menu_add_topic}</a></div></li>	
      //Эту строку		
      <li {if $sMenuItemSelect=='announcement'}class="active"{/if}><div><a href="{router page='announcement'}{$sMenuSubItemSelect}/">{$aLang.topic_menu_add_announcement}</a></div></li>
      //Эту строку 						
      <li {if $sMenuItemSelect=='question'}class="active"{/if}><div><a href="{router page='question'}{$sMenuSubItemSelect}/">{$aLang.topic_menu_add_question}</a></div></li>
      <li {if $sMenuItemSelect=='link'}class="active"{/if}><div><a href="{router page='link'}{$sMenuSubItemSelect}/">{$aLang.topic_menu_add_link}</a></div></li>
      {hook run='menu_topic_action_add_item'}
      <li ><div><a href="{router page='blog'}add/"><font color="Red">{$aLang.blog_menu_create}</font></a></div></li>
    </ul>
    
  3. Прописал для ссылки путь к классу.
  4. В /config/config.php Добавил:
    $config['router']['page']['announcement']  = 'ActionAnnouncement';
  5. Создал класс /classes/actions/ActionAnnouncement.class.php
  6. На основе ActionTopic.class.php, подправил в следующих строках 'topic' на 'announcement':
    
    22: class ActionAnnouncement extends Action {
    34: protected $sMenuItemSelect='announcement';
    92: $this->sMenuItemSelect='announcement';
    286: $oTopic->setType('announcement');
    
  7. Скопировал шаблоны для нового вида топика
  8. /templates/new/actions/ActionTopic/* в /templates/new/actions/ActionAnnouncement/Какие имена переменных изменять так и не понял. Ничего не изменял.
  9. Подправил структуру БД (Добавлил announcement в возможные варианты поля topic_type таблицы prefix_topic)
Далее не стал делать доп функций для работы с БД.
Заметил этот косяк. Может кто сталкивался, как исправить?

Исходник index.html

Руководство по созданию плагина для v.0.4 на примере "Лента друзей"

Предисловие

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

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

Пошаговая схема:

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

Использование плагинов в v.0.4

Безболезненное расширение функционала — достаточно проблематичный вопрос (под «безболезненностью» я понимаю весь спектр удобства для пользователей движка).

Я думаю, вы еще не забыли, что для добавления новых возможностей в версиях до 0.3.1 включительно используются Хаки и Модули. При этом установка любого стороннего творения дело достаточно хитрое и небезопасное, часто требующее ориентирования в архитектуре и особенностях движка. Для преодоления этих проблем в ядро v.0.4 была введена система плагинов:


К чему мы стремились создавая систему плагинов?

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


Для тех, кого заинтересовали подробности

Руководство: Как обеспечить вывод топиков по типу.

В данной статье хотел бы рассказать о реализации фильтрации по типам топиков в блоге.

(навеяно livestreet.ru/blog/sollutions/206.html)
Чтобы создать свой вид топика, см. Создание своего вида топика

Для начала как всё это выглядит:
У меня:




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

Руководство: Как создать свой вид топика на LiveStreet

Данный проект очень интересен для меня, так что я хотел бы внести посильную лепту в его формирование.

Итак, у меня появилось желание написать руководство по созданию своего вида топика. Такая операция может быть очень полезной и открывает более широкие возможности размещения движка.

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