Бесплатный плагин для мультиязычности "L10n"

19

Это продолжение темы "Плагин для мультиязычности".

Описание возможностей плагина:

После релиза первой версии плагина прошло больше 6ти месяцев. За это время частично моими силами, а частично силами веб-студии stfalcon.com был реализован следующий функционал:
  • Cовместимость с LS v0.4.2;
  • Возможность выбора языка интерфейса при регистрации пользователя и его последующая смена в настройках пользователя;
  • При публикации записи указывается её язык;
  • При создании и редактировании блога можно задавать название блога, его описание и url на разных языках;
  • Возможность создавать и просматривать переводы для записей;
  • Отдельные языковые версии сайта для каждого языка (напр. cookorama.net/ru или cookorama.net/uk). При просмотре отдельной языковой версии сайта выводятся записи только на языке этой версии (аналогично в топе, блоке последней активности, облаке тегов и т.д.). Основная версия сайта остается без изменений (публикуются только топики-оригиналы);
  • Чуть не забыл :). Если пользователь зашел на основной сайт (без указания языка в URL), тогда язык пользователя определяется по базе GeoIP Lite (пока для Украины и России, этот момент нужно ещё рефакторить);
  • Плагин совместим с плагином Sitemap v0.2.1. Сайтмапы для разных языковых версий лежат в сабдиректориях (напр. cookorama.net/ru/sitemap.xml и cookorama.net/uk/sitemap.xml)

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

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

Блок альтернативной навигации для 0.4.2

15
Блок альтернативной навигации

И так, как и обещал выкладываю блок альтернативной навигации, который позволяет разгрузить верхнюю часть экрана.

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

Плагин "Мои Вещи"

25
Пол дня пробил в чёрный бубен вызывая код миллионов, до дыр прокурил доки LS, но в итоге всё встало на свои места и на выходе получилось то, что ценят все пользователи суверенного Лепрозория — «Мои Вещи».

Плагин, в итоге, оказался довольно компактный и элементарный. Он добавляет пункт в основное меню, оттуда пользователи попадают в /mine/ где видят список всех топиков к которым они или их друзья имеют отношение (оставили там комментарий). Посты сортируются в порядке даты последних комментариев в них. Если активность была больше 4х недель назад, но эти топики в «Мои Вещи» не попадают.

Устанавливать — как обычно. Пожелания по улучшению принимаются.

В процессе разработки нашёл пару мелких багов в ядре — сделаю тикеты. Поскольку документация ядра довольно сырая, хотелось бы чтобы кто-то мог просвятить по теме кеширования. Хочу вывести счётчики «обновлений» в меню, но не хочу постоянно дёргать базу.

Скачать Плагин можно вот тут — 16Kb. Сегодня вечером отправлю на модерацию в каталог.

UPD: 07.Aug.2010 — Апдейт! Новая версия плагина, помимо исправления пары мелких косяков в совместимости с другими плагинами, появилось своё подменю, где есть магический фильтр «показывать только новое» с счётчиком непрочитаных комментариев. Ура! Качать там же или в каталоге!
  • +15
  • 01 августа 2010, 17:32
  • clops

Автоматическое подключение блога. Плагин для 0.4. Апдейт для 0.31

10
Привет всем.
Наконец-то дошли руки до старых хаков. Выпустил обновления хака "Автоматическое подключение блога" для 0.4 и фикс для 0.31

Плагин для 0.4

Скачать можно здесь. Установка элементарная — копируете папку autoconnect в папку plugins движка и включаете плагин по адресу /admin/plugins.

Фикс для 0.31

Ссылка на обновленный архив — внимательно сделайте все по инструкции внутри архива, при других внесенных изменениях в экшены топика, ссылки или вопроса — будьте еще внимательнее, и советую воспользоваться SVN DIFF).

Немного о хаке.

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

Плагин "OpenID"

21
В разделе «Модули» появился первый официальный плагин для LiveStreet 0.4.1 от команды разработчиков LiveStreet.
Плагин «OpenID» позволяет пользователям авторизоваться и зарегистрироваться на сайте используя OpenID или ВКонтакте.

У пользователя в настройках профиля появляется раздел «OpenID», где указан список его OpenId идентификаторов.
Плагин будет полезен не только тем, кто хочет упростить авторизацию у себя на сайте, но и разработчикам плагинов для LiveStreet. исходных код плагина полностью прокомментирован, поэтому может служить неким пособием по созданию плагинов.

Внимание! Данные плагин работает только на версии 0.4.1.

UPD Обновление плагина — livestreet.ru/blog/addons/5458.html
  • +17
  • 03 мая 2010, 13:41
  • ort

Вывод рекламных банеров

2
Я хочу выводить банеры каждые три публикации. Как сделать вывод банера через каждые 3 публикации?

решение:

upd: Оказывается, в моем случае один баннер может выводиться на одной странице только один раз. Как сделать, чтобы каждые 3 записи отображались разные баннеры, а не один и тот же?

Постинг в Facebook

3
Попробовал добавить кнопку для постинга в Facebook как в Twitter (ранее на livestreet был пост), но к сожалению ничего не вышло. Может кто-нибудь подскажет в чем ошибка?
Вот собственно сам код:
<a href="http://www.facebook.com/sharer.php?u={$oTopic->getTitle()|escape:'html'}: {$oTopic->getUrl()}" title="Отправить в Facebook" target="_blank">Facebook</a>
  • +1
  • 22 апреля 2010, 17:28
  • simca

Безболезненная интеграция uppod

24
Почти с самого мая 2009 (0.3) мы медленно и нехотя изменяем функционал милого локального сайтика mycrap.ru

Сейчас я расскажу о самом простом способе вставки видео в посты, которого здесь не находил. Изначально была сделана своя форма загрузки для видео на базе стандартного /include/ajax/uploadImg.php, которая загружала файл и выдавала в окно поста код uppod-плеера строчек в 5, при этом пользователи могли хулиганить изменяя размер плеера и подсовывая свои листы стилей.

Проще всего (не правильнее, а именно проще всего) поправить системный файл /classes/modules/sys_text/Text.class.php.



Читать дальше
  • +2
  • 15 января 2010, 20:06
  • ptath

Добавляем поддержку xcache в 0.3.1

9
Сохраняем framework.zend.com/svn/framework/standard/trunk/library/Zend/Cache/Backend/Xcache.php в каталог classes/lib/external/DklabCache/Zend/Cache/Backend

Редактируем classes/modules/sys_cache/Cache.class.php, или, можно просто создать папку Cache в каталоге classes/modules и скопировать туда Cache.class.php из sys_cache. Так как сначала идет проверка наличия класса в папке Cache, а потом уже в sys_cache — это сработает.

После
define('SYS_CACHE_TYPE_MEMORY','memory');
добавляем
define('SYS_CACHE_TYPE_XCACHE','xcache');


Перед
} else {
			throw new Exception($this->Lang_Get('system_error_cache_type').": ".$this->sCacheType." (file, memory)");
		}
добавляем дополнительну проверку
} elseif ($this->sCacheType==SYS_CACHE_TYPE_XCACHE) {
			require_once('Zend/Cache/Backend/Xcache.php');
			$oCahe = new Zend_Cache_Backend_Xcache(array());
			$this->oBackendCache = new Dklab_Cache_Backend_TagEmuWrapper(new Dklab_Cache_Backend_Profiler($oCahe,array($this,'CalcStats')));
		

В config/config.php прописываем
define('SYS_CACHE_TYPE','xcache')


Теперь кроме memory и file, LS поддерживает и xcache.

Хак: Автозаполнение для поиска

63
Давненько я не писал… и так к делу.
Автозаполнение/подсказки (autocomplete) для поиска современная и весьма полезная вещь. Тут просматривая ЛС обнаружил, что данная функция здесь отсутствует.


Читать дальше
  • +21
  • 06 октября 2009, 00:55
  • Hrom