Потенциальная опасность при использовании jsonp в движке

Безопасность LiveStreet CMS
Некоторое время назад мной была найдена небольшая неточность, которая при определенном стечении обстоятельств может дать серьезную проблему связанную с безопасностью. А именно — недостаточная фильтрация колбека для jsonp ответа вьюера.

Потенциальная опасность при использовании jsonp в движке →

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

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

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

Исправление ошибки парсера, когда тот исправлял (C), (R) и т.п. внутри тега code

FAQ
Проблема

Jevix заменяет все вхождения, указанные в конфиге

// Автозамена
'cfgSetAutoReplace' => array(
  array(
    array('+/-', '(c)', '(с)', '(r)', '(C)', '(С)', '(R)'),
    array('±', '©', '©', '®', '©', '©', '®')
  )
),

даже внутри преформатированного тега
<code />
где делать этого не нужно. Эта проблема существует с момента создания парсера и довольно таки уже давно.

Исправление ошибки парсера, когда тот исправлял (C), (R) и т.п. внутри тега code →

Исправление ошибки переноса, когда тире в конце предложения и перевод строки "сьедался"

FAQ
Это настолько занимательной оказалась задача, что решил перенести и вопрос и решение сюда:
Уже давно на сайте наблюдается такая проблема: если в тексте в конце строки стоит знак тире ("—"), то после сохранения текста редактор или jevix кушают конец строки и две строки слипаются. Мелочь, а не приятно, учитывая, что основной контент — стихотворный. Сейчас приходится после тире ставить пробел, а уже затем перевод строки. Кто-то может подсказать, как это вылечить?

Исправление ошибки переноса, когда тире в конце предложения и перевод строки "сьедался" →

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 6.0.0

Конструктор каталогов со свойствами и магазин (Simple Catalog)
Вышла новая версия мощнейшего плагина для создания структурированных разделов на сайте. В данной версии добавлены: короткие урлы для каталогов, работа с метками на карте для продуктов, дополнительные правила доступа к полям, добавлен стандартный редактор для многострочных текстовых полей и сохранение исходного форматирования текста.

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 6.0.0 →

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

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

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

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

Как заставить работать ссылки авторизации через социальные сети встроенные в шаблон?

FAQ
Как заставить работать («оживить») ссылки авторизации через социальные сети, которые были вставлены в шаблон его автором, но не активные т.к. никуда не ведут и сделаны в декоративных целях (демо дизайна) на примере плагина AutoOpenId?

Как заставить работать ссылки авторизации через социальные сети встроенные в шаблон? →

Как можно проверить активирован ли плагин прямо в шаблоне?

FAQ
Для этого можно использовать проверку на наличие кода плагина в массиве активированных плагинов $aPluginActive, который заполняется при инициализации модуля Viewer:

Как можно проверить активирован ли плагин прямо в шаблоне? →

Возможность использовать короткие теги в плагинах для Smarty

Трюки с LiveStreet
Данная заметка написана больше «для себя» и касается разрабатываемой версии лс, а не текущей выпущенной на момент написания статьи (1.0.3).

Возможность использовать короткие теги в плагинах для Smarty →

Баг в роутере с разбором параметров для экшена (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) →

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 5.0.0

Конструктор каталогов со свойствами и магазин (Simple Catalog)
Вышла новая, пятая версия плагина для создания каталогов, типов контентов и других разделов на сайте (в т.ч. магазина). В новой версии силы были нацелены на улучшение юзабилити, повышенное внимание к деталям, ещё более глубокого улучшения совместимости с шаблонами, исправление мелких недочетов и багов и большую дружелюбность к пользователю.

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

Полный список изменений и новшеств — около 180, но некоторые могут показаться скучными конечному пользователю, поэтому я опишу только некоторые интересные, а полный список — в history.txt.

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 5.0.0 →

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! →

jQuery плагин для создания вкладок (Simple Tabs jQuery plugin)

Разработка
simple tabs jquery plugin

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

jQuery плагин для создания вкладок (Simple Tabs jQuery plugin) →

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 4.0.0



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

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 4.0.0 →

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 3.0.0



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

НОВОЕ
  • Добавлен функционал связей для продуктов
  • Добавлен механизм простой адаптации сторонних шаблонов
  • Множество других мелких улучшений

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 3.0.0 →

Установка дополнительных параметров для фильтра при вызове связи сущности ORM

Трюки с LiveStreet
Как известно в ORM LiveStreet CMS есть возможность указывать связи для сущности:

Установка дополнительных параметров для фильтра при вызове связи сущности ORM →

Как изменить главную страницу сайта?

Трюки с LiveStreet
Видимо читать движка — задача не из легких, поэтому иногда я наблюдаю о том, как сменить главную страницу движка.

Все до банальности просто:

Как изменить главную страницу сайта? →

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 2.0.0

Вышла новая версия плагина для создания каталогов на сайте и магазина. В новой версии исправлены многие мелкие неточности и добавлен новый удобный функционал.

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

Плагин «Конструктор каталогов со свойствами и магазин (Simple Catalog)», версия 2.0.0 →

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

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

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