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

Петр

"Супер-хуки" в шаблонах - вставка кода в любое место

Для начала хочу напомнить тем, кто забыл (и поставить в известность тех, кто не знал), что так уж исторически сложилось, что плагин aceAdminPanel – это не просто инструмент администратора сайта, но еще и некая надстройка над самим движком, которая добавляет движку какие-то фичи, которых, на мой взгляд, ему, порой, не хватает.

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

Если кратко, то суть такая: в шаблонах можно задавать практически произвольные точки (назовем их HTML-хуки или DOM-хуки) с помощью CSS-селекторов а-ля jQuery для вставки своего кода.

А теперь подробнее.
Читать дальше →

Архитектура LS:: Мапперы

Представляю первую статью цикла статей об архитектуре livestreet, я думаю будут и продолжения. Исходные коды примера, приведенные здесь доступны на github.

1. Что такое маппер
Ну-с начнем, и начнем с того, что определим, что такое маппер? Маппер, или конкретнее Data Mapper является одним из стандартных паттернов проектирования программных средств, определенный в LS как PHP-объект наследуемый от базового, для всех мапперов класса Mapper. Основным назначением маппера является отделение логики хранения данных от бизнес-логики самого приложения. Маппер содержит методы, реализующие операции CRUD (Create-Read-Update-Delete) над одной или несколькими таблицами по «просьбе» объекта. Маппер является интерфейсом между объектами и базой данных, средством, повышающим уровень абстракции в архитектуре приложения.

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

Красивые подсказки в редакторе

Подсказки в редакторе реализованы через указание их текста в атрибуте тега a. Как оказалось и плагин для вывода сообщений использует этот атрибут, осталось сделать лишь небольшую доработку — в файл скрипта темы (templates/skin/ТЕМА/js/template.js) добавить несколько строчек кода, расположенных ниже. Более подробно о настройках poshytip можно почитать здесь:
$('.markItUpHeader .markItUpButton a').poshytip({
    className: 'infobox-yellow',
    showTimeout:300
});

Все!

Идея плагина "Расширенные теги"

Захотелось сделать что-то подобное кинопоиску. Где навигация идет по разного рода тегам.

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

В общем в скриншотах то, что получилось.

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

Пререлиз Role, LsPurse, Paid, LitePoll (new!)

Обновления в Role.
Основные проведенные работы — исправление багов и адаптация к шаблонам. Адаптированые шаблоны:
Теперь доступ к функционалу ролей и редактирования людей доступен из тулбара:

иконки в тулбаре для доступа к ролям и людям

дальше интереснее

Код стороннего виджета появляется на странице, но не работает

Доброго времени суток.
Подскажите пожалуйста в чем дело.
Хочу прикрутить карту-справочник на ЛС виджетом от 2гис. Создал новую страницу по инструкции, далее в index.tpl вставил в literal этот код виджета:
<noscript id="dg-widget-minigis-place-ef98b1aa" style="color:#c00;font-size:16px;font-weight:bold;">
    Виджет miniGIS использует JavaScript. Включите его в настройках вашего браузера.
</noscript>
<script src="http://mini.api.2gis.ru/js/ver_fb7dbc6/loader.js"></script>
<script type="text/javascript">
    new DG.Widget.Components.Loader({
        wid: 'ef98b1aa', 
        params: {"projectSelector":{"id":32,"code":"moscow","name":"Москва","centroid":"POINT(37.616931 55.750475)","timezone":"Europe/Moscow"},"search":{"rubrics":{"list":["_3"]},"_searchFirmBasePoint":{}},"customBalloon":{},"Map":{"zoom":10,"lon":37.616931,"lat":55.750475},"resize":{"w":938,"h":430}}    });
</script>

Однако, сам виджет не отображается, но если открыть код страницы, то вся структура аффрейма видна.
Спасибо.
А вот страничка с примером, сделанная через статпейдж, где все аналогично: test.jurist03.ru/page/about/

Создание плагина. От идеи до публикации. Часть 3

Настройка типографа
Настройку типографа реализуем следующим образом: создадим файл конфигурации плагина в каталоге «config» который, в свою очередь, находиться в корне плагина и в нем проведем нехитрые опрерации по добавлению тега 'carousel' в список разрешенных jevix-ом тегов.
<?php
    $aAllowTags = Config::Get('jevix.default.cfgAllowTags');
    $aAllowTags[0][0][] = 'carousel';
    Config::Set('jevix.default.cfgAllowTags', $aAllowTags);


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

Создание плагина. От идеи до публикации. Часть 2.

Создание диалога добавления карусели
Прежде всего определим, каким образом карусель будет вставлена в редактор. В плагине будет использоваться следующая структура: тег «carousel» содержит одно или несколько изображений (тегов img), которые в дальнейшем можно добавлять с помощью стандартного диалога вставки изображения. Диалог вставки тега «carousel» с первым изображением мы создадим, из диалога вставки изображения. Шаблон диалога представлен в файле «skin/developer/window_load_img.tpl», его мы и будем переделывать. Созданный шаблон с помощью зарегистрированного хука будет добавлен на страницу, проинициализирован. Инструменты, обеспечивающие функционал формы будут заимствованы от диалога вставки изображения.

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

Создание плагина. От идеи до публикации. Часть 1.

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

Приступим
В начале создадим в папке plugins папку для нашего плагина с именем carousel и в нем файл plugin.xml c описанием создаваемого плагина (см. картинку ниже).


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

Хуки JS в LS, краткое руководство для тех, кто запутался

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

Вступление


Механизм делегирования кода ЖС в ЛС можно осуществлять такими наиболее часто употребляемыми методами в зависимости от поставленной задачи:

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