Плагин: ExpandingText для записей и комментариев
Выкладываю плагин, который написал сам для себя и использую здесь же на сайте. Пример его работы вы все видели на странице Скачать правильный русский BuddyPress 1.0.1. Я говорю об обычном спойлере ExpandingText, что так часто используется на различных форумах (на torrents.ru, к примеру).
Этот плагин не имеет красивых эффектов работы, типа медленного выезжания текста. Я просто посчитал, что первым делом нужна функциональность, а затем все остальное. Зато я могу похвастаться, что использую всего 3 строки кода на javascript, а это не влияет на скорость загрузки сайта. А это огромный плюс!
И еще о некоторых достаточно интересных на мой взгляд особенностях плагина.
1. Плагин работает как в записях, так и в комментариях! Вот как это выглядит. Оранжевая полоса – мои css настройки. Их можно менять, ниже напишу, где именно. Для работы спойлера в комментариях надо вставить вот такой код в текст комментария (используйте английские буквы внутри квадратных скобок):
[ЕТ Заголовок спойлера]Текст спойлера.[/ЕТ]
2. Можно вставлять рисунки. Демо вы видели на странице скачивания BuddyPress.
3. Даже если у пользователя отключен Javascript (это меньше 5% людей, из которых большинство – боты), текст будет все равно отображаться.
4. Текст не прячется нигде физически, а это означает, что он замечательно индексируется поисковиками.
5. Далеко не все при написании поста в админке любят вручную вставлять код, который к тому же надо еще и помнить (а он именно такой, какой указан в первом пункте). Поэтому я внедрил 2 кнопки в ваши редакторы: как визуальный, так и для HTML. Вот как он выглядят.
Визуал | HTML |
![]() | ![]() |
При нажатии на них появится окно:
где вы вводите заголовок. После этого в тексте записи появляется код и вам остается просто между квадратными скобками ввести то, что вам нужно спрятать в спойлер.
6. Плагин сделан на английском, внедрена локализация и добавлен русский перевод. Если используете на WPMU вместе с языком (locale) ru, а не ru_RU, тогда открываем папку, и переименовываем файл expandingtext-ru_RU.mo на expandingtext-ru.mo.
Вроде бы все. По поводу CSS: мне было лень делать админку для css или выделять все в отдельный файл. Я планирую адаптировать его для BuddyPress – вот тогда он и будет полностью настраиваемый. На данный момент я вырезал все стили из архива, который даю вам скачать, вам надо будет написать собственные стили, основываясь на моем примере:
[css]#etlink a {text-transform:uppercase;} /*заголовок*/<br />
div.et_div {border-left:4px solid #FF7400;} /*сам текст*/[/css]
Добавляете ваши стили в файл style.css.
Извините, этот файл сильно устарел и больше нет возможности его скачать.
скачал, посмотрю что получится
СУПЕР!
СПАСИБО!!!
а как вызывать прямой функцией в коде?
Я хочу к форме комментирования прикрутить (в comments.php), например
[ET форматирование] ЗДЕСЬ КНОПОЧКИ QUICKTAGS, вызываются функцией квиктагз [/ET]
Прочитайте еще раз первый пункт особенностей плагина.
я понимаю, что он работает в публикациях и комментариях.
Мне бы хотелось дополнительно научиться вызывать его прямой функцией для вставки в код.
Если я правильно понимаю, то надо использовать функцию
et_process($content)
Или это совсем невозможно?
Обновился до BP 1.0.1. Появилось:
Fatal error: Cannot redeclare class bp_activity_activity in /www/psystyle/www/htdocs/wp-content/plugins/buddypress/bp-activity/bp-activity-classes.php on line 3
Что это, Вячеслав?
@shirs:
Эта функция не вызывается напрямую. Она работает в качестве фильтра для блока данных: фильтрует блок текста на предмет спец кода, обрабатывает его, и только потом выводит немного другой вариант текста с добавленным спойлером. Вам необходимо отредактировать файл плагина по образу и подобию (смотрите последние строки, где функция add_filter). Добавьте фильтр на блок вашего текста.
@Александр:
Немного не в той записи вы опубликовали проблему :) Что это за проблема – подумаю. Попробуйте банально отключить BuddyPress и заново его включить. Может помочь (переопределятся функции).
@slaFFik:
Получается, что у меня не текст, а внутри формы commentform вызывается функция, ее вызов нужно вставить в спойлер.
Сделал фильтр на commentform, не работает… :-(
Также просто в комментариях не работает, видимо по-другому называется текст комментария, не comment_text.
А как бы это проверить?…
@slaFFik: Из админки всё работает, а в комментариях не работает. Не родскажешь в чём может быть причина ?
Блеск! Спасибо!
Жаль, что сейчас этот плагин не работает…