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

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

Плагин «Расширение Simple Catalog: Тикет системы (Simple Catalog Tickets)»

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

Плагин «Расширение Simple Catalog: Тикет системы (Simple Catalog Tickets)» →

Как сохранить оригинальное имя файла изображения при его загрузке в топик?

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

Как сохранить оригинальное имя файла изображения при его загрузке в топик? →

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

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

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

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


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

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

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

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

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

Как вынести количество публикаций каждого пользователя на страницу пользователей

FAQ
Нужно в файле сущности пользователя \classes\modules\user\entity\User.entity.class.php (например, после 453 строки) дописать метод:

/**
 * Возвращает количество созданных пользователем топиков и комментариев
 *
 * @return int
 */
public function getPublicationsCount() {
  $iCountTopicUser = $this->Topic_GetCountTopicsPersonalByUser($this->getId(), 1);
  $iCountCommentUser = $this->Comment_GetCountCommentsByUserId($this->getId(), 'topic');
  return $iCountTopicUser + $iCountCommentUser;
}


Как вынести количество публикаций каждого пользователя на страницу пользователей →

Плагин «Оригинальные Тексты для Яндекса (Original Texts)»

Если на вашем сайте вы публикуете оригинальные тексты, которые пишете сами, но ваш сайт ещё не раскручен настолько что поисковые машины индексируют его ежечасно в поисках свежего материала, то вполне возможна ситуация, что сторонний сайт будет копировать информацию с вашего сайта на свой быстроиндексируемый и поисковые машины будут считать первоисточником такого текста другой сайт, а не ваш. Таким образом сколько бы вы денег не тратили на раскрутку, если ваш сайт так «доят» на контент — поисковые системы не будут ранжировать ваш сайт высоко. Решение этой проблемы придумал — он создал сервис, который помогает идентифицировать ваш уникальный текст попросту сообщая его Яндексу и никакой другой сайт его использовать как «свой» уже не сможет. Этот сервис называется "Уникальные тексты".

Плагин «Оригинальные Тексты для Яндекса (Original Texts)» →

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


Готова новая версия плагина для создания структурированных разделов на сайте, каталогов и типов контента с практически неограниченными возможностями.

Новая версия имеет множество оптимизаций и улучшений как кода так и интерфейса, среди наиболее значимых новшеств можно отметить поддержку плагина «sitemap». В сайтмап сайта добавляется список разделов (каталогов) и их продукты, даты последнего изменения заполнены и для разделов по последнему отредактированному продукту каталога. Также добавления детальная микроразметка schema.org, улучшающая вывод информации в поисковых системах и протокол Open Graph, который используется социальными сетями (фб, твиттер, вк) для формирования карточки публикуемого контента. Также интегрирована защита от редактирования и удаления старых продуктов их автором. И теперь у продукта есть красивые кнопки для публикации контента в социальных сетях.

Ну а теперь полный перечень изменений.

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

Микроразметка Schema.org была создана поисковыми системами для универсальности, но распознается ими же по-разному

Обозреватель интернета
Schema.org, микроразметкаСогласно инструкциям по внедрению микроданных на сайт существует правило «чем больше микроразметки — тем лучше». Поэтому можно размещать сущность в сущности, стараясь следовать рекомендациям как можно больше, размечая все что только можно.

Микроразметка Schema.org была создана поисковыми системами для универсальности, но распознается ими же по-разному →

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

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

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

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

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

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

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

FAQ
Проблема

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

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

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

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

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

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

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

Плагин «Конструктор каталогов со свойствами и магазин (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 →