Рейтинг
+1.14
Разработка под LiveStreet CMS

Разработка под LiveStreet CMS

Подробнее ↓

Адаптация плагина «Конструктор каталогов со свойствами и магазин (Simple Catalog)» под сторонние шаблоны

Разработка под LiveStreet CMS

Ошибка не нахождения таблицы при наследовании модуля плагина работающего на орм и с указанием кастомных имен таблиц через конфиг

Баги орм все ещё держатся за ручки и легально водят хороводы вместе с хаками! В этой истории все замечательно, особенно то, что в связи с тем, что по-умолчанию таблицы орм для плагинов в лс 2.0 будут именоваться по-умолчанию не так как в 1.0.3 (ура), а с именем префикса плагина, то этот баг для сложных проектов был бы очень веселой штукой.

Ошибка не нахождения таблицы при наследовании модуля плагина работающего на орм и с указанием кастомных имен таблиц через конфиг →

Не используйте константы в сущностях

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

Не используйте константы в сущностях →

Исправление и оптимизация метода Cut модуля Text

Разработка под LiveStreet CMS
Метод
public function Cut($sText)
из модуля Text далеко не идеальный и видно что раньше он брал на себя часть забот парсера, например, превращал все переводы строк в унифицированную форму, хотя на сегодняшний день вместо него это успешно делает .

Исправление и оптимизация метода Cut модуля Text →

Правильное комментирование участков кода в шаблонах

Разработка под LiveStreet CMS
Короткая заметка для всех верстальщиков и прочих девелоперов, которые:

  • делают
  • модифицируют/дорабатывают шаблоны по заказам

Правильное комментирование участков кода в шаблонах →

Баг в роутере с разбором параметров для экшена (LiveStreet 1.0.3)

Разработка под LiveStreet CMS
Если в строке запроса были get-параметры ("?"), то роутер в параметры экшена может добавить последним параметром пустую строку. Слово «может» написано не случайно т.к. все зависит от урла:

// здесь будет получен пустой параметр
test.com/some1/page2/?some_param=value

// а здесь его не будет
test.com/some1/page2?some_param=value


Баг в роутере с разбором параметров для экшена (LiveStreet 1.0.3) →

Maximum function nesting level of '100' reached, aborting!

Разрабатывая под новую версию лс при открытии страницы топика неожиданно получил сообщение об ошибке:

Fatal error: Maximum function nesting level of '100' reached, aborting! in \www\framework\classes\engine\Engine.class.php on line 583


Maximum function nesting level of '100' reached, aborting! →

Наследование плагином объектов другого плагина

Разработка под LiveStreet CMS
Небольшая заметка о том, как правильно нужно указать в массиве наследования в создаваемом плагине запись о наследовании части функционала другого плагина.

Наследование плагином объектов другого плагина →

Стандарты написания кода экосистемы LiveStreet

Разработка под LiveStreet CMS
Предлагаю вниманию сообщества и, в первую очередь, разработчиков первую версию стандартов по написанию кода для LiveStreet окружения:

  • github.com/psnet/ls-coding-standarts — этот документ регламентирует стандарт написания кода для экосистемы LiveStreet.

Стандарты написания кода экосистемы LiveStreet →

Новое в разрабатываемой версии LiveStreet CMS, продолжение

Разработка под LiveStreet CMS

Новое в разрабатываемой версии LiveStreet CMS

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

Новое в разрабатываемой версии LiveStreet CMS →

Новое в LiveStreet Framework: хранилище "ключ => значение" - модуль Storage

Разработка под LiveStreet CMS
В фреймворке LiveStreet, на котором построена LiveStreet CMS добавлен новый модуль — Storage, который является хранилищем типа «ключ => значение». Данное хранилище позволяет легко и быстро работать с небольшими объемами данных, CRUD операции (создание, чтение, обновление и удаление) с которыми теперь занимают всего одну строку кода.

Новое в LiveStreet Framework: хранилище "ключ => значение" - модуль Storage →

Оптимизация шаблонов

Разработка под LiveStreet CMS

Пролог


Наброски по данной статье лежали ещё с конца зимы и все никак не было времени на её написание, поэтому решил опубликовать её почти «как есть» т.е. с сухими выжимками фактов, без расписанных деталей. Это поможет остальным членам сообщества совершенствовать свои .

Оптимизация шаблонов →

Плагин автокомплита (автодополнения) по методам LiveStreet CMS для PhpStorm IDE

Разработка под LiveStreet CMS
Некоторое время назад из ЛС отделилась часть кода в отдельный фреймворк (пока не анонсирован), на котором можно строить свои проекты. Просматривая текущей девелоперской версии ливстрита на гитхабе, можно заметить что в корне остались всего лишь две папки с кодом: application и framework.

Плагин автокомплита (автодополнения) по методам LiveStreet CMS для PhpStorm IDE →

Прячьте дампы БД плагинов

Разработка под LiveStreet CMS
Почти во всех плагинах разработчики оставляют файлы дампов (структуры) БД в корневой папке плагина, тем самым делая возможным получение информации о структуре таблиц плагина, что само по себе ничего плохого не означает, но лучше потенциальному взломщику ничего не знать о полях таблиц.

Прячьте дампы БД плагинов →

Модификаторы шаблонизатора Smarty

Разработка под LiveStreet CMS
В прошлой публикации мы коснулись общих основ для замечательного шаблонизатора smarty 3-й версии, который используется в текущей версии ливстрита. Цель данной статьи — рассказать что такое модификаторы в смарти и для чего они нужны.

Модификаторы шаблонизатора Smarty →

Как программно добавить домен в список разрешенных для iframe

В одном из топиков затрагивалась тема ручного добавления нужных доменов в список разрешенных для вставки в топики и комментарии тегами iframe, object и embed. Сегодня я вам расскажу как правильно сделать тоже самое только программно при разработке, например, плагина.

Как программно добавить домен в список разрешенных для iframe →

Функции и команды шаблонизатора smarty

Разработка под LiveStreet CMS
Судя по некоторым комментариям, часть верстальщиков никак не может освоить английский сайт смарти и выучить базовый синтаксис команд шаблонизатора smarty, поэтому я решил собрать основные в виде небольшой шпаргалки в одном месте.

Шпаргалка по смарти

Конфиг плагина: хорошие манеры

Разработка под LiveStreet CMS
В данном топике хотел бы коснутся одной незначительной детали по поводу занесения параметров в , а именно — внесение значений в корневой конфиг системы.

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


Config::Set ('router.page.mypage', 'PluginPLUGINNAME_ActionPLUGINACTION');


Конфиг плагина: хорошие манеры →

Оптимизация ЛС, часть 3

Разработка под LiveStreet CMS
В одном из топиков по оптимизации мы уже касались темы доработки класса конфига ЛС. В данном топике рассмотрим ещё одну оптимизацию — заменим создание анонимной функции каждый раз при получении ключа на вызов уже созданного объекта. Изначальный код предложил пользователь empirik и данный код является небольшой его модификацией.

Итак, план работ таков:

  1. Замерим используемую память и полное время выполнения стандартной чистой поставки ЛС 1.0.1 с выключенными модулями анонимной отправки данных (LS), кеша (Cache) и отключенными плагинами. Замеры будем производить обновлением главной страницы
  2. Модифицируем шаблон для вывода используемой памяти, данные действия описаны в этом топике по оптимизации.
  3. Применим предыдущую оптимизацию конфига.
  4. Внесем правки в код класса конфига
  5. Замеряем результаты
  6. Подведем итоги

Оптимизация ЛС, часть 3 →