Похлопаем в ладоши или Опера теряет идентичность

Обозреватель интернета
opera
Сегодня стало известным важное событие в ходе истории развития браузеров: Опера, которая боролась за светлое и теплое место под пальмами на персональных компьютерах пользователей более 17 лет объявила о том, что прекращает работу над своим собственным движком Presto и переходит на использование WebKit для рендеринга страниц и V8 для JavaScript.

Похлопаем в ладоши или Опера теряет идентичность →

Плагин «Установить содержимое блока в сайдбаре (Block content)»

Описание


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

В такой блок можно вставить все, например, простой текст (описание сайта), код виджета социальных сетей (вместе с JS), кроме php кода и команд smarty.

Плагин «Установить содержимое блока в сайдбаре (Block content)» →

Плагин «Лучшие топики за период в плавающем окне в сайдбаре (Best topics flow)»

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

Плагин «Лучшие топики за период в плавающем окне в сайдбаре (Best topics flow)» →

Учет пожеланий пользователей в плагине «Оптимизация и внутренняя перелинковка сайта (Cross linker)»

НОВОЕ


  1. теперь для включения синонимайзера необходимо синонимы перечислять через вопросительный знак и запятую (?,) в выражении «чем заменить» — таким образом стало возможным легально использовать запятую в выражении «чем заменить»
  2. в шаблоне developer теперь отображается кнопка «обновить» для контекстного меню топика
  3. при быстром обновлении топика и при пересохранении всех топиков теперь учитывается опция «Не пропускать этот топик через CrossLinker» (раньше она действовала только при публикации и редактировании топика)
  4. убрана поддержка старых версий плагина powered spoiler
  5. опция при создании/редактировании топика «Не пропускать этот топик через CrossLinker» теперь доступна для всех типов топиков в ЛС (вопрос, фотосет и т.п.)
  6. на тулбаре теперь доступна кнопка для быстрого доступа к админке Cross linker
  7. при нажатии на ESC закрывается контекстное меню
  8. теперь личные сообщения добавлены в список исключений для обработки плагином по-умолчанию
  9. интервал пауз между запросами к серверу на пересохранение топиков вынесен в интерфейс на страницу пересохранения топиков
  10. теперь есть возможность поставить процесс пересохранения топиков на паузу и продолжить в случае необходимости
  11. при создании правила при вводе выражения замены (что заменить) есть автокомплитер по уже созданным словоформам (правилам)
  12. доступен новый режим переключения между автоматической заменой тегов в текстах и ручной установкой: теперь можно вручную выбрать все теги, которые следует обрабатывать в текстах, для этого в настройках появилась отдельная страница, на которой которой показываются все теги на сайте с возможность отметить нужные.
  13. внутри тега code теперь не происходит никаких замен
  14. добавлено изменение порядка правил — теперь можно передвигать правила по списку вверх/вниз, регулируя тем самым важность обработки. Например, чтобы правило замены с «парк отдыха» было обработано раньше чем просто «парк», его нужно передвинуть выше по списку над правилом «парк».
  15. местами причесан код
  16. есть небольшие изменения в интерфейсе
  17. «в коробку» добавлен новый пользовательский шаблон «справка»
  18. теперь можно пересохранять также и комментарии
  19. исправлен небольшой визуальный баг с быстрым обновлением топика или комментария

Учет пожеланий пользователей в плагине «Оптимизация и внутренняя перелинковка сайта (Cross linker)» →

Обновление с ЛС 1.0.1 до 1.0.2

FAQ
Хочу указать на важный аспект, который некоторые пользователи не учли: при установке новой версии ливстрит 1.0.2 поверх 1.0.1 нужно, как и указано при установке, скопировать поверх файлы, оставив только папку с шаблонами (они не менялись) и . Вот тут пользователи делают маленькую ошибку, суть которой сводится, например, иногда к неработающей регистрации на сайте.

Обновление с ЛС 1.0.1 до 1.0.2 →

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

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

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

Почему дизайн сайта тормозит?

FAQ
Немножко отвлечемся от движка и поговорим именно от тормозах браузеров при показе некоторых сайтов. Немнодко тема данного топика тоже касается т.к. частью этих «проблем» «грешит» стандартный шаблон для ЛС 1.0.1 — synio.

Почему дизайн сайта тормозит? →

Почему долго загружается сайт под управлением ЛС версии 1.0 и выше

FAQ
Периодически некоторые пользователи могут наблюдать что их сайт под управлением LiveStreet версии 1.0 и выше, особенно если установлен стандартный шаблон synio, долго загружается. Причин этому может быть несколько, назову наиболее вероятные, отбросив такой вариант как медленные (плохо спроектированные) .

Почему долго загружается сайт под управлением ЛС версии 1.0 и выше →

Файловый кеш - хорошо это или плохо?

Трюки с LiveStreet
Периодически можно встретить жаркие споры, увеличивает ли движка файловый кеш в ЛС:


$config['sys']['cache']['use']    = true;               // использовать кеширование или нет
$config['sys']['cache']['type']   = 'file';             // тип кеширования: file и memory. memory использует мемкеш


Файловый кеш - хорошо это или плохо? →

Вышла в свет новая версия LiveStreet CMS 1.0.2

LiveStreet CMS
Итак, сегодня в 16 часов по киевскому времени вышла новая версия Ливстрит под номером 1.0.2. Что же нового в данной версии? Чтобы узнать список изменений — добро пожаловать под кат.

Вышла в свет новая версия LiveStreet CMS 1.0.2 →

Как задать роль для пользователя в блоге?

FAQ
Один из самых часто задаваемых пользователями всеми нами любимой CMS вопросов это как задать «роль» или права пользователя на сайте.

Постараюсь ответить как всегда лаконично и ёмко: ЛС из коробки текущей 1.0.1 версии не поддерживает никаких других типов ролей или прав кроме как следующих:

Как задать роль для пользователя в блоге? →

О текущем положении дел в Ливстрит

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

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

О текущем положении дел в Ливстрит →

Плагин «Администрирование конфигов (Admin config)»

Пролог


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

Админка должна быть универсальной. Сколько я об этом думал — я понимал что нельзя просто взять и приварить переменные в код и их редактирование в интерфейсе. Нужен механизм, такой простой, но просто колоссально мощный.

Представляю вашему вниманию продукт, над которым я работал последнее время — абсолютная админка для LiveStreet CMS.

Описание


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

Плагин «Администрирование конфигов (Admin config)» →

Системные модули, которые наследовать нельзя

Трюки с LiveStreet
Чтобы не быть многословным — в ЛС (как минимум текущей версии 1.0.1 и всех более ранних) нельзя наследовать / делегировать два системных модуля ядра: модуль плагина (Plugin) и модуль Хука (Hook). Все попытки наследовать данные модули ровным счетом ни к чему не приведут — они просто будут проигнорированы. В коде движка жестко зашито исключения на эти два модуля.

Системные модули, которые наследовать нельзя →

Написание родительского класса при наследовании

Трюки с LiveStreet
Когда в главном классе плагина вы указываете определенного модуля вы пишете:

  protected $aInherits = array (
    'module' => array ('ModuleName')
  );

в модуле, который наследует родительский класс последний пишется таким образом:

class PluginTest_ModuleName extends PluginTest_Inherit_ModuleName {/*...*/}


Написание родительского класса при наследовании →

Передача параметров по ссылке между модулями в LiveStreet

Трюки с LiveStreet
Довольно полезно будет знать начинающим (и не только) программистам по движку ЛивСтрит, что ЛС не поддерживает передачу скалярных параметров по ссылке между модулями. В пределах одного модуля (когда идет вызов метода в этом же классе) передача возможна. Но передать скалярную величину назад из модуля, например, в екшен не представляется возможным. Поэтому если у вас возникла такая необходимость, следует просто возвращать массив параметров из метода или сущность и не использовать передачу параметров по ссылке вовсе.

Передача параметров по ссылке между модулями в LiveStreet →

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

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

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


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


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

Ошибки дизайна в ИЕ

FAQ
Сегодня обратился пользователь с просьбой решить проблему, когда пользователи ИЕ видят не совсем корректную верстку на сайте. Причем вопрос касался сразу нескольких плагинов, которые давно проверены в работе и ясно что проблема не в них. Открыв исходный код страницы я увидел простыню загрузки файлов.

Ошибки дизайна в ИЕ →

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

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

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

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

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