0.00
Рейтинг
0.29
Сила

Обновление шаблонизатора Smarty до версии 3.0.7

В SVN версии LS произошло обновление шаблонизатора Smarty, теперь используется последняя 3.0.7 версия, написанная на PHP 5.2.
Обновление в ядре прошло гладко, единственное пришлось внести изменения в стандартный класс Smarty — trac.lsdev.ru/livestreet/changeset/1129, это позволит делигировать шаблоны плагинами.

Теперь самое важное — для работы текущих шаблонов на новой версии шаблонизатора необходимо внести в них некоторые изменения. А именно:
  • везде, где используется
    {include file='file_name.tpl'}
    имя файла нужно брать в кавычках, по сути это относится к любым параметрам
  • не использовать апострофы `, т.е. было
    {include file='paging.tpl' aPaging=`$aPaging`}
    стало
    {include file='paging.tpl' aPaging=$aPaging}
    для математических выражений
    {section name=closelist1  loop=`$nesting-$cmtlevel+1`}
    меняем их на скобки
    {section name=closelist1  loop=($nesting-$cmtlevel+1)}
  • после открывающей фигурной скобки { и перед закрывающей } не должно быть пробельных символов, иначе они не считаются за конструкции Smarty
  • в условиях логические операторы необходимо отделять пробелами, было
    {if $aParams[0]=='favourites'and$aParams[1]!='comments'}
    стало
    {if $aParams[0]=='favourites' and $aParams[1]!='comments'}
Эти правила должны помочь достаточно легко адаптировать ваши шаблоны под текущую(а в последствии и новую версию) SVN версию LS.
Пример адаптации шаблона «new» — trac.lsdev.ru/livestreet/changeset/1128

Закрытие security бага в LS

Здравствуйте!

Уведомляем вас о закрытии в LiveStreet 0.4.2 уязвимости XSS.
Уязвимость была обнаружена в сторонней библиотеке CSSTidy, используемой в LS.
Для исправления этой уязвимости вы можете скачать обновленный архив LiveStreet 0.4.2 — http://livestreetcms.com/download/
Либо просто вручную удалите у себя файл /engine/lib/external/CSSTidy-1.3/css_optimiser.php.

Мы настоятельно рекомендуем вам выполнить эти действия.
Спасибо за понимание.

UPDATE
Это приложение к первому письму, в котором мы, к сожалению, упустили еще один важный баг безопасности.
Для исправления этой уязвимости вы можете скачать обновленный архив LiveStreet 0.4.2 — http://livestreetcms.com/download/
Либо внесите изменения вручную:
1. Найдите в файле /engine/modules/text/Text.class.php 213 строчку: return array($sTextShort,$sTextNew,$sTextCut);
2. Замените её на строчку: return array($sTextShort,$sTextNew,$sTextCut? htmlspecialchars($sTextCut): null);
Изменения можно посмотреть в SVN.

Кнопки Класс, Tweet и Нравится

Не так давно задумался о интеграции с соц. сетями. Можно было конечно бы и вставить блок Поделится от Яндекса (кстати, хорошую инструкцию по его добавлению можно найти здесь), но мы не ищем легких путей, да и он мне как то не очень понравился. В этом топике я расскажу как добавить эти кнопки. В итоге получится что то типо такого (но смотря чего каждый выберет, вариантов несколько):


Читать дальше →

Плагин "Виджет для комментариев ВКонтакте и Facebook"


Плагин «Виджет для комментариев ВКонтакте»


Продолжение: livestreet.ru/blog/addons/9833.html

Что делает этот плагин?
Плагин в «бложных» топиках расширяет стандартные комментарии движка (реализацию) виджетом ВК и facebook. Так же плагин хранит количество комментариев ВК и facebook для каждого топика и отображает в списке топиков суммарно общее количество комментариев.

Читать дальше →

Альтернативная главная страница

Помогите решить задачу. Нужно сделать альтернативную главную страницу. Чтобы было index.php и, например, index2.php. Как это реализовать???

В wordpress решалось просто: нужно было просто создать второй index2.php с другим содержанием.

Очень прошу помочь.

Изменение системы рейтинга для блогов

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

upd

Как оказалось хак для работы такой системы уже есть! Продублировал из этого поста.
Читать дальше →

Проблемы с новым типом топика (не выводится sidebar с описанием блогов)

Сделал новый тип топика — Объявление. Возникли проблемы — пропал sidebar с «Описанием блога» и «Заметка».
Делал по Руководству, аналогично, но с небольшими правками на новую версию движка.

  1. Создал ссылку на создания топика в шаблоне smarty.
  2. В /templates/skin/new/menu.topic_action.tpl добавил строку (ту что между комментариев):
    
    <ul class="sub-menu" >
      <li {if $sMenuItemSelect=='topic'}class="active"{/if}><div><a href="{router page='topic'}{$sMenuSubItemSelect}/">{$aLang.topic_menu_add_topic}</a></div></li>	
      //Эту строку		
      <li {if $sMenuItemSelect=='announcement'}class="active"{/if}><div><a href="{router page='announcement'}{$sMenuSubItemSelect}/">{$aLang.topic_menu_add_announcement}</a></div></li>
      //Эту строку 						
      <li {if $sMenuItemSelect=='question'}class="active"{/if}><div><a href="{router page='question'}{$sMenuSubItemSelect}/">{$aLang.topic_menu_add_question}</a></div></li>
      <li {if $sMenuItemSelect=='link'}class="active"{/if}><div><a href="{router page='link'}{$sMenuSubItemSelect}/">{$aLang.topic_menu_add_link}</a></div></li>
      {hook run='menu_topic_action_add_item'}
      <li ><div><a href="{router page='blog'}add/"><font color="Red">{$aLang.blog_menu_create}</font></a></div></li>
    </ul>
    
  3. Прописал для ссылки путь к классу.
  4. В /config/config.php Добавил:
    $config['router']['page']['announcement']  = 'ActionAnnouncement';
  5. Создал класс /classes/actions/ActionAnnouncement.class.php
  6. На основе ActionTopic.class.php, подправил в следующих строках 'topic' на 'announcement':
    
    22: class ActionAnnouncement extends Action {
    34: protected $sMenuItemSelect='announcement';
    92: $this->sMenuItemSelect='announcement';
    286: $oTopic->setType('announcement');
    
  7. Скопировал шаблоны для нового вида топика
  8. /templates/new/actions/ActionTopic/* в /templates/new/actions/ActionAnnouncement/Какие имена переменных изменять так и не понял. Ничего не изменял.
  9. Подправил структуру БД (Добавлил announcement в возможные варианты поля topic_type таблицы prefix_topic)
Далее не стал делать доп функций для работы с БД.
Заметил этот косяк. Может кто сталкивался, как исправить?

Исходник index.html

Делаем Голос, как на Хабре!

Всем привет, не хватет кармы для постинга в нужный форум, просьба накинуть.
Решил выложить свой способ создания «Голоса» (Хабр).
Приступим:

1. Создаем новый коллективный блог(Голос), узнаем его ID (blog_id) в таблице prefix_blog в базе данных

Читать дальше →