Плагин голосования, отказ от lightbox
01.03.2010Выложил новую версию с плагином голосования. сделал все как и планировал. Плагин получился хорошим и очень мощным, мне пришлось много поработать над его созданием. Чтобы добавить голосование в пост (конечно после активации плагина), достаточно добавить примерно следующий текст:
[poll]
За
Против
Воздержался
и голосование из радиокнопок будет добавлено. Этот текст будет заменен плагином на более расширенный. Чтобы создать (или изменить) достаточно добавить (отредактировать) блок следующего образца:
[poll]
type = link
status = opened
title = Очень важное голосование (решается судьба России)
[items]
Думаю, что да
не знаю что думать
Я вообще не думаю
Это заговор пентагона
[/items]
[/poll]
Допустимые типы шаблонов: radio, button, link, custom. Все эти шаблоны можно отредактировать на странице настроек плагина в админке на странице плагинов. Из недостатков - кажется я не сделал проверку закрытия/открытия голосования или еще что то.
Далее в этой версии я отказался полностью от галереи lightbox в пользу более легкой (9Кб против около 200Кб у lightbox). Это jsibox- мне он показался даже более функциональным. Для открытия картинки надо кликнуть по превьюшке. Для превью появилась настройка в админке - настройки, где можно задать максимальные размеры превюшек. сейчас по умолчанию это 120 на 120 - если что предлагайте на какие значения поменять.
Также поправил все аяксовые виджеты и в админке обзор иконок/файлов. Теперь при повторном клике список файлов/иконок/тем сворачивается. При следующем клике - разворачивается. Исправил ошибки в виджетах, в частности в админке настройки стандартных.
Скачать эту версию отсюда: http://litepublisher.googlecode.com/files/litepublisher.3.18.tar.gz
И убедительная просьба на в админке странице обновления не нажимать кнопки - обновление я еще не делал и не тестировал.
Комментарии (58) на запись “Плагин голосования, отказ от lightbox”
Оставить комментарий
А как обстоят дела с конвертором шаблонов? Помнится, вы писали, что полной автоматизации не получится, но надстройка всё же поможет рядовому пользователю делать темы для Блоголёта, беря за основу шаблоны WordPress. За прошедшее время ваша позиция не изменилась?
И если конвертор всё-таки выйдет (конечно, после финальной версии), то как будет выглядеть механизм переделки? Какую часть работы возьмёт на себя скрипт?
Помощь в редактировании новой темы на основе сграбленной темы – это для новичка, ленивца и человека, далёкого от создания шаблонов, тоже очень много значит. Даже как-то странно, что эта задача не является приоритетной после запуска новой версии Блоголёта.
Ведь популярность WordPress при её очевидной громоздкости, неповоротливости и прожорливости не уменьшается как раз из-за обилия плагинов и тем. И если с первыми у Блоголёта всё в порядке (многие фичи, которые в WordPress надо настраивать, работают по умолчанию), то малое количество шаблонов стоит на пути популярности Блоголёта.
Ну, не могу полностью согласиться, что популярность нисколько не изменится. Всё-таки это будет позитивный сдвиг, хотя, конечно, с полномасштабной раскруткой не сравнится. Но логично продвигать продукт, который обладает всем джентльменским набором, чтобы не к чему было придраться.
А вообще большое спасибо за ваш титанический труд. Не подумайте, что я привязался к вам по поводу конвертора из-за собственной вредности или потому что мне приспичило нацепить на блог новый шаблон и хочется получить его нажатием одной клавиши. Я спокойно наполняю контентом запущенные проекты ещё на версии 2.80 и, как говорится, в ус не дую.
Просто не хотелось бы, чтобы такая фича как помощник при переделке шаблонов спускалась вниз ToDo-листа под натиском новых идей.
Ошибаешься: ну вот к примеру я сейчас сделал супер-бупер конвертатор, тогда ответь мне - откуда прийдут новые пользователи? Из воздуха они не берутся, а приходят с конкретных сайтов, а чтобы они откуда нибудь пришли конвертор на это не повлияет (еще одна фича среди трех десятков других...)
Я более того скажу - я скоро почти прекращу писать код, перейдя исключительно на менеджерскую работу по блоголёту.
З. Ы. Новая версия не скоро планируется? Я бы обзорную статью попробовал бы написать.
Ивиан, спасибо за поддержку. Я тоже считаю, что помощник для конвертирования шаблонов – это нужная вещь.
Блоголётчик, конечно, появления конвертора недостаточно, чтобы одним выстрелом убить WordPress. Но ведь в Сети с каждым месяцем появляется всё больше заметок о Блоголёте, как на форумах, так и на блогах.
То есть человек пользуется CMS, она ему нравится, он следит за её обновлениями. Постоянные читатели (да и случайные тоже) таких блогов хотя бы ради интереса переходят по указанной ссылке. Определённая доля устанавливает CMS для тестирования, влюбляется в неё и более не ищет альтернативы.
А по конвертеру стоит подумать... Можно написать визуальный темплейтер - на входе хтмл, пойнт-н-клик размечаешь блоки - на выходе тема. Или просто конструктор тем на каком-нибудь фреймворке нарисовать...
Ну а первое предложение простое - после выхода стабильной версии отобрать десяток-два тем /все равно откуда, WP или другое/ и портировать. Чтобы у людей (если лень или кто сам не умеет) был выбор. Десяток возьмусь портировать я, может кто еще присоединится.
Сейчас в планах стоит тикет система и запуск сайтов litepublisher.com(ru), где будет наполнятся документация и все остальное, в том числе выставлено на голосование (и для этого тоже делал голосовалку) конвертатор наравне с другими запросами
Новую версию пока никак не обновлят - стабильного релиза нет, может быть сегодняшний пойдет за релиз (3.19), а все предыдущие только удалять
И пока тикетов/багтрекера нет - и правда стоит завести todo v3 - для новой ветки, чтобы не путаться. Вопросами обеспечу :)
Ну насчет визуального редактора - все проще. Тот же самый движок блога от Вадима Ласто вообще не имеет даже примитивного редактора (просто окно textarea и все) - но кто желает может прикрутить "ручками" или через "типа плагин" любой доступный визред. Я например сделал себе вариант ластоблога с редактором SPAW от spaweditor.com
Думаю, что в самом ближайшем времени (если оно будет свободное) разобраться в создании собственных плагинов под блоголет и замутить нечто подобное.
Впрочем, как я понимаю, в блоголете вовсю работает XMLRPC - так что любой блого-клиент (которых масса!!!) заменит визред в админке. А если нет желания ставить сторонний софт, то в том же браузере ФайрФоксе есть плагин ScribeFire который также является блог-клиентом. Вот...
Олег, да Philipp имел в виду другое. Кстати, Philipp, может, я на досуге начну подбирать десяток тем для конвертирования, чтобы вы затачивали их под Блоголёт? А потом, чтобы этот труд не затерялся, выложить всё в разделе «Темы».
Или лучше, чтобы вы сами их отбирали, на корню отсекая те, портирование которых будет сопряжено с определёнными трудностями? В принципе особо мудрёные не нужны. Как мне кажется, достаточно 3 классические (основное поле и сайдбар), 4 с двумя сайдбарами по бокам и 3 с двумя сайдбарами, когда один находится справа, а другой внизу (как default тема на этом сайте), а также когда справа (слева) один сайдбар следует за другим.
Philipp, я тут, не отходя от кассы, сформировал небольшой архив (всего 1,95 Мб в rar-формате) с 12 WordPress-темами на тот случай, если некоторые вызовут проблемы. Перечень такой:
- 3 с 2 колонками
- 5 с 3 колонками (сайдбары слева и справа от основного поля)
- 4 с 3 (когда два сайдбара идут друг за другом) и 4 колонками (портального типа)
Делал упор на светлые тона, чтобы в глазах не рябило и не надо было лишний раз настраивать AdSense под фон блога.
Укажите свой e-mail, чтобы я мог скинуть сей архив.
Собираюсь я таки написать автогенератор тумбнейлов. Дергаться он по логике должен при формировании выдержки из поста. Там есть событие?
Про темы писал в
http://blogolet.ru/texzadanie-tema-dlya-blogolyota/
http://blogolet.ru/kak-napisat-temu-dlya-blogoljota/
http://blogolet.ru/temy-ili-shablony-v-blogoljote/
сейчас в блоголёте один файл index.tml в котором шаблоны разделены html комментариями вида
<!--tag-->
ккакой то шаблон
<!--/tag-->
шаблоны могут бытть вложены в друг в друга и образзуют дерево шаблонов, например content post files image За образец бери index.tml темы по умолчанию либо темы simpla, а сейчас я только что перевел для новой версии тему newsportal - выложу в следующем релизе
Кстати, ссылки в комментариях надо бы кликальбельными делать. Имхо.
Часть кода шаблона:
$Template->sitebar
</ul>
</div>
<hr class="clear" />
</div><!--/page -->
</div><!--/wrapper -->
<div id="footerbg">
<div id="footer">
$Template->sitebar2
<hr class="clear" />
</div>
<div id="credits">
<div class="alignleft">
$Template->footer
</div>
Т.е. отрывок кода от $Template->sitebar до $Template->sitebar2 отвечает на $Template->sitebar ?
А, например,
$Template->sitebar2
<hr class="clear" />
</div>
<div id="credits">
<div class="alignleft">
$Template->footer
Это все, кроме последней строки относится к сайдбару?
Я все правильно понимаю?
Ивиан, вот шаблон сайдбара:
<!--sitebar-->
<!--widget-->
<div class="widget">
<h2 class="sidebartitle">%s</h2>
<ul class="linkcat">
%s
</ul>
</div>
<!--/widget-->
<!--submenu-->
<div class="widget">
<h2 class="sidebartitle">%s</h2>
<ul class="list-page">
%s
</ul>
</div>
<!--/submenu-->
<!--categories-->
<div class="widget">
<h2 class="sidebartitle">%s</h2>
<ul class="list-cat" id="widgetcategories">
<!--item-->
<li><a href="$options.url$url" title="$title">$icon$title</a>$count</li>
<!--/item-->
</ul>
</div>
<!--/categories-->
<!--archives-->
<div class="widget">
<h2 class="sidebartitle">%s</h2>
<ul class="list-archives" id="widgetarchives">
<!--item-->
<li><a href="$options.url$url" rel="archives" title="$title">$icon$title</a>$count</li>
<!--/item-->
</ul>
</div>
<!--/archives-->
<!--links-->
<div class="widget">
<h2 class="sidebartitle">%s</h2>
<ul class="linkcat" id="widgetlinks">
<!--item--><li><a href="%1$s" title="%2$s">%3$s</a></li><!--/item-->
</ul>
</div>
<!--/links-->
<!--friends-->
<div class="widget">
<h2 class="sidebartitle">%s</h2>
<ul class="linkcat" id="widgetfriends">
%s
</ul>
</div>
<!--/friends-->
<!--/sitebar-->
как видите, в него вложены шаблоны для виджетов
Интернет-оптимист, темы получил, посмотрю. Однако надеюсь там не только манимейкерские темы :) Ибо эта аудитория конечно важная, но некоммерческая, в смысле - малоприбыльная :) Им (нам :) ) темы по 100USD не продашь.
Так что если увидите интересные консьюмерские темы - пишите. Для привлечения этой части аудитории.
Оу, я такое вообще не нашел что-то.
Получается, что:
$Template->content - место для вывода контента
$Template->sitebar и $Template->sitebar2 - места для вывода сайдбаров.
А для чего $Template->head - это?
Philipp, а вы можете еще поподробнее расписать, ну.. еще что-нибудь, хех.
Philipp, вообще-то я старался выбирать нейтральные темы, то есть белый фон, два садйбара с элементами синего. Вот и вся палитра. То есть подойдёт для блога любого направления. Там лишь несколько (вроде два) шаблона с «серьёзной» шапкой. Что-то вроде письменного стола и каких-то зданий. Типа бизнес-портал.
Посему не совсем понял, что вы подразумеваете под консьюмерской темой. Котики, собачки, цветочки, амурчики? Если найду откровенно гламурные шаблоны, то вышлю.
Большая часть тем бралась с сайта blogstyle.ru. Там лежат бесплатные шаблоны, переведённые на русский язык. Переходил на сайты разработчиков. Везде красуется free и freebie (что-либо, полученное бесплатно, задаром, «на халяву», если верить переводчику от Яндекса).
После создания поста и фильтрации контента ничего больше не дергается (дополнительно ввел недавно интрепретацию текста поста как шаблона не считается). Идея состоит в том, чтобы из сырого (rawcontent - свойство поста), получить готовый к употреблению html - это свойства excerpt, rss, moretitle, filtered. То есть текст один раз филтруется. Это можно посмотреть в расширенном редакторе, где эти свойства доступны для редактирования по отделности. Можно например цепляться на события tposts added, edited, или на события в tcontentfilter. ИЗ сформулированной задачи еще не совсем ясно где. Например в нвой версии можно подгружать картинки в пост и движок автоматом создает эти самые превьюшки и имеет встроенную галерею. Думаю после смены шаблона по умолчанию (сейчас разрабатывается новая тема по умолчанию) все будет гораздо красивее, чем то, как это я сделал сейчас.
Постараюс переформулироватьтвою задачу - найти все картинки в анонсе и заменить их на превьюшки? Оставивь полный вариант картинок в в полном посте?
Назначение такого плагина - использование в темах с жестко заданным размером и позицией картинки в анонсе.
Думаю подойтет событие aftercontent, подписаться на него:
$filter = tcontentfilter::instance();
$filter->aftercontent = $plugin->filter;
где в классе плагина опредилить функциюследующим образом:
public function filter(tpost $post) {
// тут псевдокод
$image = $this->find_image($post->filtered);}
$post->excerpt = $this->replace_image($post->excerpt, $image);
}
для создания превьюшек могу посоветовать использоватькласс tmediaparser :
$parser = tmediaparser::instance();
$parser->createsnapshot($srcfilename, $destfilename, $x, $y);
createsnapshot был приватным методом, я сейчас поднял его до публичного, либо использовать собственный алгоритм гнерации превью.
За пример могу посоветовать посмотреть плагин внешних ссылок (externallinks) - инсталяция и фильтр
Если мне нужен тлог, т.е. блог без всяких виджетов и прочее (я уже отключил все и так), то для создания темы мне достаточно сделать оформление главной страницы, раздела с сообщениями и формой для комментариев. Больше ничего не нужно. Верно же?
Вот если в меню есть такие категории, к примеру: Интернет, Спорт.
Можно ли публиковать отдельные записи в одну категорию, другие записи в другую? Как бы две главных страницы.
Владимир, такой вопрос - можно теме приделать свойства/настройки? Чтобы например можно было делать альтернативные css на выбор пользователя? Или это потребует глобальной переделки ядра? Или проще прилагать к теме спецплагин для управления именно этой темой?
Второй вопрос - это как добавлять свои теги/свойства/методы. Ну например я в настройки сайта хочу добавить адрес на твиттере. Как/где посмотреть пример?
Теги можно добавлять для $template следующим образом:
$tags = ttemplatetags::instance();
$tags->add("newtag", get_class($plugin), "getnewtag");
а в плагине соответствено должен быть метод getnewtag
public function getnewtag($tagname) {
return 'Значение тега $template->newtag, запрошен тег ' . $tagname;
}
И использовать $template.newtag в любом меместе.
,Что касается свойств, то это делается 3 спосабами:
1. традиционный - просто объявить это свойство в декларации класса как это описано во всех руководствах/учебника по php
class myclass {
public $myproperty;
}
Следующие 2 способа типичны для блоголёта
2. Добавить ключ в массив data. Как правило это делается при созданииобекта в методе create, пример
protected ffunction create() {
pparent::create();
$this->data['myproperty'] = какое то значение';
}
таким образом это свойство тоже будет доступнно как в первом случае и к тому же его значение будет сохраняться/восстанавливаться из данных (файл либо бд)
public function gettitle() {
return "Заголовок вот такой";);
}
Функции имеют приоритет перед значениеями в data, поэтому вполне нормальна конструкция
public function gettitle() {
return data('r') . " заголовок был сгенерирован " . $this->data['title'];
}
Что ксается выбора стилей, то как эти стили должны выбираться?
выбор стилей для темы в которой это предусмотренно. Однако подумал - темы в общем маленькие... просто мода сейчас такая - к одной теме - несколько вариантов цветового оформления... Впрочем, для конечного пользователя можно делать сразу пачку тем, а на стадии разработки ставить симлинки. иначе с учетом выбора тем и для страниц слишком легко запутаться. В общем, думаю-то по привычке вордпрессовскими методами - а тут свои :)
А вот более интересный вопрос - как сделать выборочный вывод виджетов - чтобы в категориях и архивах одни, а в постах - другие. Чтобы например похожие посты выводить не после поста, а в сайдбаре можно было. Это возможно или резко противоречит всей архитектуре и кешированию? Более коммерческий пример - чтобы по-разному вешать рекламу в постах и в архивах.
$template = ttemplate::instance();<br />
$template->sitebar_tpost = $plugin->onsitebar;</p><p>а в в своем классе<br />
public function onsitebar(&$content, $index) {<br />
$content .= "Добавка в конце $index сайтбара";<br />
}</p><p>Есть также события в ttemplate:<br />
onsitebar -для каждого сйтбара каждый раз<br />
onadminsitebar - когда залогинен пользователь, например плагин админскихссылок<br />
onadminpanelsitebar - выззывается, когда просматривается админка, то есть с адесов /admin/