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

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 →

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