Карты Google Maps в топике
2
Немного про новую фичу в XText версии 0.0.3 — тег gmap
gmap — позволяет вставлять в топики/страницы/переписку/комментарии и прочее карты Google Maps со списком точек
для того чтобы открыть мастер создания карты, надо тыкнуть в иконку глобуса на панели
, после чего вы увидите окно мастера

«Заголовок карты» — жирная надпись над картой
«Поиск адреса» — строка для ввода адреса, который надо найти на карте
левое поле под «Поиск адреса» — результаты поиска, там выводится список найденных вариантов
правое поле под «Поиск адреса» — точки, которые мы хотим оставить на карте
— перенести точку из результатов поиска в точки карты
— удалить точку из списка
— поставить точку на карте курсором мыши
После нажатия на кнопку «Вставить» мы получим код следующего вида:
А сама карта после сохранения топика будет выглядеть так:


OpenStreetMap
Слой OSM появился в версии xtext 0.0.5rc4, узрите:
gmap — позволяет вставлять в топики/страницы/переписку/комментарии и прочее карты Google Maps со списком точек
для того чтобы открыть мастер создания карты, надо тыкнуть в иконку глобуса на панели
, после чего вы увидите окно мастера
«Заголовок карты» — жирная надпись над картой
«Поиск адреса» — строка для ввода адреса, который надо найти на карте
левое поле под «Поиск адреса» — результаты поиска, там выводится список найденных вариантов
правое поле под «Поиск адреса» — точки, которые мы хотим оставить на карте
— перенести точку из результатов поиска в точки карты
— удалить точку из списка
— поставить точку на карте курсором мышиПосле нажатия на кнопку «Вставить» мы получим код следующего вида:
<gmap title="красная площадь в москве" type="hybrid" zoom="16" center="55.7545299;37.6198406">55.7542159;37.6200123;красная площадь</gmap>А сама карта после сохранения топика будет выглядеть так:


OpenStreetMap
Слой OSM появился в версии xtext 0.0.5rc4, узрите:
Решил перековырять немного ядро
5
Мои нововведения:
Плюсы
Сырцы
engine/classes/Engine.class.php raw
engine/modules/hook/Hook.class.php raw
func_list_plugins() (поместить в engine/include/function.php)
Давайте потестим и обсудим, насколько всё это полезно?
зыж. модифицированное ядро отлично работает на моей тестовой площадке livestreet.ochecho.ru/
- Хуки вокруг инициализации модулей _before и _after за счет методов InitModule
- Переработанный __autoload
- Получение информации о классе методом GetClassInfo вплоть до пути к класс-файлу
Плюсы
- Никаких более регулярок для парсинга имени класса в других скриптах, всё в одном месте
- Нет более вилок в коде по поводу регистра в именах классов и методов. Везде учитывается регистр (собственно, чем нам грозит php6, насколько я помню)
- Стандартные хуки вокруг инициализации модулей — это просто прекрасно, я считаю, мне часто нужны были
- func_list_plugins() — замена куче дублирующегося кода
- Переработанный __autoload автоматом инклюдит все возможные классы, имена которых описаны по правилам ядра.
Сырцы
engine/classes/Engine.class.php raw
engine/modules/hook/Hook.class.php raw
func_list_plugins() (поместить в engine/include/function.php)
function func_list_plugins($bAll = false){
$sPluginsDir = Config::Get('path.root.server').'/plugins';
$sPluginsListFile = $sPluginsDir.'/plugins.dat';
$aPlugin = array();
if($bAll){
$aPluginRaw = array();
$aPaths = glob("$aPluginRaw/*", GLOB_ONLYDIR);
if($aPaths)
foreach($aPaths as $sPath){
$aPluginRaw[] = basename($sPath);
}
}else{
$aPluginRaw = @array_map('trim', file($sPluginsListFile));
}
if($aPluginRaw)
foreach($aPluginRaw as $sPlugin){
$sPluginXML = "$sPluginsDir/$sPlugin/plugin.xml";
if(is_file($sPluginXML)){
$aPlugin[] = $sPlugin;
}
}
return $aPlugin;
}Давайте потестим и обсудим, насколько всё это полезно?
зыж. модифицированное ядро отлично работает на моей тестовой площадке livestreet.ochecho.ru/
Способ искоренить Config::Set в конфигах плагинов
1
Задача: при выполнении ветви конфига через include исключить изменение текущего конфига
сделал у себя так:
теперь чтобы получить доступ к корню глобального конфига из конфига плагина, надо просто добавить префикс "$root$"
например, для того чтобы сказать роутеру о новом экшне, вместо не православного Config::Set в конфиге плагина page можно написать православное
сделал у себя так:
Index: Config.class.php
===================================================================
--- Config.class.php (revision 50)
+++ Config.class.php (revision 119)
@@ -271,9 +271,25 @@
*/
static public function Set($sKey,$value,$sInstance=self::DEFAULT_CONFIG_INSTANCE) {
$aKeys=explode('.',$sKey);
+
+ if(isset($value['$root$']) && is_array($value['$root$'])){
+ $aRoot = $value['$root$'];
+ unset($value['$root$']);
+ foreach($aRoot as $sRk => $mRv){
+ self::Set(
+ $sRk,
+ self::isExist($sRk)
+ ? func_array_merge_assoc(Config::Get($sRk, $sInstance), $mRv)
+ : $mRv
+ ,
+ $sInstance
+ );
+ }
+ }
+
$sEval='self::getInstance($sInstance)->aConfig';
foreach ($aKeys as $sK) {
- $sEval.='['.var_export($sK, true).']';
+ $sEval.='['.var_export((string)$sK, true).']';
}
$sEval.='=$value;';
eval($sEval); теперь чтобы получить доступ к корню глобального конфига из конфига плагина, надо просто добавить префикс "$root$"
например, для того чтобы сказать роутеру о новом экшне, вместо не православного Config::Set в конфиге плагина page можно написать православное
$config['$root$']['router']['page']['page'] = 'PluginPage_ActionPage';
Печать топика
3
Давайте посоветуемся, кто как видит функцию печати топика
есть 3 пути:
1. создаем кастомный стиль для media=print, скрывающий всё лишнее (всё кроме заголовка топика и его текста), и вставляем простой линк в каждом топике
при этом можно сохранить нативные стили для содержимого топика
2. делаем специальный экшн с минималистичным шаблоном для топика и открываем по ссылке его в новом окне, у которого onload = window.print()
3. побаловался вчера немного и придумал еще один дурацкий метод, но очень быстрый. создаем новое окно динамически:
ссылка для печати:
есть 3 пути:
1. создаем кастомный стиль для media=print, скрывающий всё лишнее (всё кроме заголовка топика и его текста), и вставляем простой линк в каждом топике
a href="javascript: window.print()"при этом можно сохранить нативные стили для содержимого топика
2. делаем специальный экшн с минималистичным шаблоном для топика и открываем по ссылке его в новом окне, у которого onload = window.print()
3. побаловался вчера немного и придумал еще один дурацкий метод, но очень быстрый. создаем новое окно динамически:
<script>
function printtopic(index){
var title = $$('.topic .title')[index].get('text');
var content = $$('.topic .content')[index].get('html');
var win = window.open();
win.onload = function (){ setTimeout('window.print()',2000);};
var windoc = win.document;
windoc.write(new Element('div').adopt(new Element('h1', {'text':title}), new Element('div', {'html':content})).get('html'));
}
</script>ссылка для печати:
<a href="javascript:printtopic(0)">печать</a>
Релиз плагина "XText"
14
Что такое плагин XText?
Средство разработки обработчиков специальных тегов, сводящее разработку к простому процедурному программированию.
Обработка специального тега возможна на одной из двух стадий:
- при получении текстового свойства Entity
- при обработке методом Text_Parse
Средство расширения функционала стандартной панели lspanel:
- добавление кнопок на панель
- вывод кнопок на выбранных панелях (топик, комментарий, страница, личное сообщение)
- простое описание модальных окон для кнопок
0.0.2
- [hack] совместимось с aceadminpanel (buggy code)
- [fix] не выключалась обработка спец.тега через конфиг
- [fix] удален лишний вызов обработки спойлеров в audio.js
- [fix] совместимость с другими парсерами (spoiler). спасибо ort'у
0.0.3 для livestreet rev. 985 и старше
кому не хочется обновляться до девелоперской ревизии — могут подождать релиза 0.4.3 ;)
- [fix] улучшена совместимость с другими парсерами
- [add] рисовалка теперь поддерживает отмену и повтор шагов через меню правой кнопки мыши
- [add] добавлен тег gmap — вставка карт Google Maps со списком точек chekhovcc.ru/tag/gmap/
- [add] замена стандартного ajax-метода textPreview для обработки javascript-составляющей некоторых тегов (spoiler, gmap)
- [fix] обновление Swiff.Uploader для нового флеш-плеера, не работали remote-методы (используется при заливке аудио-файлов у тега audio)
- [fix] тег video: зафиксил вставку vkontakte и vimeo
- [add] добавлено автоматическое выполнение javascript-функции вида xtext_popup_tag_show_after() сразу после отображения модального окна
- [fix] изменено расположение файлов тегов. РЕКОМЕНДУЕТСЯ УДАЛИТЬ СТАРЫЙ ПЛАГИН И ЗАЛИТЬ НОВЫЙ
- [fix] изменен файл конфигурации
- [add] поддержка шаблона developer «из коробки»
0.0.3 для livestreet release 0.4.2
- [add/fix] поддержка официального релиза 0.4.2. версия для скачивания "0.0.3 / ls 0.4.2 release compat"
0.0.4
- [fix] исправлена ошибка обработки тегов уровня Entity (появилось в 0.0.3)
- [change] на уровень Entity переведены теги: gmap, audio, user
- [add] обновлена документация
- [fix] поправлен конфиг
Читать дальше
Замутил рисовалку для XText ;)
1
Воевал с ActionScript 3.0 три дня и три ночи!
Теперь покупатели модуля XText получат супер-бонус — РИСОВАЛКУ!!!

зы. как всегда, постестить можно на chekhovcc.ru
она значком палитры обозначена в панельке комментов и топика ;)
Теперь покупатели модуля XText получат супер-бонус — РИСОВАЛКУ!!!

зы. как всегда, постестить можно на chekhovcc.ru
она значком палитры обозначена в панельке комментов и топика ;)
Pipe! Import - Импорт RSS
8
Готовится к продаже новый плагин «Pipe! Import» для LiveStreet 0.4.1/0.4.2
Что делает
Импортирует RSS-ленты и любой другой контент, обработанный через yahoo pipes (далее трубы).
Какие фичи
Хочу ещё (TODO)
Оставляйте свои заявки по поводу функционала в комментариях.
Нужны тестеры.
Тестерам спец-цена 700 руб.
Что делает
Импортирует RSS-ленты и любой другой контент, обработанный через yahoo pipes (далее трубы).
Какие фичи
- Импорт из множественных труб
- Для каждой трубы собственные настройки:
- Шаблон, по которому строится топик
- Автор — от какого пользователя создается пост
- Принудительное выставление топика на главную (как чекбокс у админа при создании/редактировании топика)
- Отправка топика в черновики (может понадобиться для последующего рерайтинга)
- Флаг запрета комментариев
- Принудительное понижение рейтинга топика ниже порога вывода на главную
- Блог — в какой блог постим топик
- Дата топика: из rss ленты или текущая на момент постинга
- Автоматическая генерация тэгов: селективные словосочитания или релевантные слова из текста (via keva.ru), так же дополнительно можно исключить или оставить оригинальный список категорий из фида в качестве тэгов
- Рассылки о новом топике: вкл/выкл
- Запуск по крону (снижение нагрузки)
Хочу ещё (TODO)
- Интерфейс конфигурирования правил
- Интерфейс быстрого предпросмотра новостей из трубы и ручной обработки
- (отдельно) Плагин управления крон-скриптами
- обработка картинок (превью для топика)
- обрезание текста
Оставляйте свои заявки по поводу функционала в комментариях.
Нужны тестеры.
Тестерам спец-цена 700 руб.
Идея "Объявления"
3
Товарищ clops предложил идею написания плагина «Объявления». А я поддержал и выступлю исполнителем :)
Предлагаю внести правки в т.з. заинтересовавшимся лицам, готовым в будущем приобрести такой плагин.
зыж. подождем реализации от eXtravert
Читать дальше
Предлагаю внести правки в т.з. заинтересовавшимся лицам, готовым в будущем приобрести такой плагин.
зыж. подождем реализации от eXtravert
Читать дальше
Планируется выпуск плагина Xtext - расширение стандатного парсера
6
Плагин предназначен для расширения функционала стандартного парсера (системного модуля Text).
На данный момент в нем реализовано:
Жду Ваших пожеланий по поводу функционала!
Нужны тестеры!
Тестерам скидка на период тетирования 100 руб
Плагин будет продаваться по 500 руб
На данный момент в нем реализовано:
- Настраиваемый nofollow отдельным хуком — отключение nofollow для внутренних ссылок текущего домена (с учетом www и без), ссылок на субдомены текущего домена, ссылок на список доменов (с учетом www и без), субдоменов других доменов. Все настройки опциональны.
- Переработана обработка тега video — воспринимаются видео-вставки по url из: vimeo, mailru, vkontakte, rutube, youtube, smotri.com, video.google, vision.rambler, metacafe, play.ukr.net, video.sibnet.ru, video.bigmir.net, cnctube, bashtube (пишите в комментах заявки на добавление поддержки других видео-хостингов)
- Сделан базовый функционал для обработки пользовательских тэгов — на примере многоуровневых спойлеров и тэга user. Предлагайте свои идеи!
- Обработка тега audio — пример сделан на базе uppod
- Сделан базовый функционал для обработки тэгов при получении свойства entity — на примере тэга hide (содержимое тега в топике показывается зарегистрированным пользователям и прячется от незарегистрированных текстом из атрибута title)
Жду Ваших пожеланий по поводу функционала!
Нужны тестеры!
Тестерам скидка на период тетирования 100 руб
Плагин будет продаваться по 500 руб

