Ремикс Comment Toolbar

Гм, формат большой «публикации» не совсем вписался. Отсутствие понятной четкой структуры, иллюстраций (ну лузер я в этом плане, не то, что meshkoff) и всего прочего отнюдь не положительно влияет на восприятие текста. Ну да бог с ними — все равно, по большей части, это черновики для себя на будущее.

По заявке локализатора этого плагина, вернусь к теме цитирования и сделаю то, что давно должен был сделать не говорящий по-русски автор плагина. Т.е. выложу модифицированную версию плагина Comment Toolbar (сваяно с перевода AlexNote), соответственно моим представлениям о юзабилити подобной функциональности. Конечно, я обожаю GPL.

Я бы не сказал, что плагин полностью валиден (использование <b> валидным не назовешь), есть проблемы и с кроссбраузерностью js-скрипта. Но с заявлением о особой громоздкости я погорячился. И в первый момент не заметил стандартный скрипт плавной прокрутки для любителей красивых эффектов — меня, конечно, устраивает и «резкая», но само наличие — хорошо.

Итак, мои исправления:

  • Вкладка настроек перенесена из «Плагинов» в «Параметры» (Options), где им самое место.
  • Более логично сгруппированы поля в настройках, добавлены лейблы к инпутам, почищен код.
  • Изменены настройки по умолчанию (перевод на русский жесткий из-за лени).
  • Убрана полностью навигация по комментарием как пример анти-юзабилити.
  • Добавлена настройка ID поля textarea ввода комментария — в случае, если для защиты от авто-спама он был изменен.
  • Сокращен и почищен текст вставляемого в код javascript'а.
  • В случае, если цитирование или ответ отключен (пустое поле), то используемая функция не выводится (экономия места, да-да-да).
  • Когда цитирование выключено, текст комментария не оборачивается в лишний спан.
  • Т.к. можно цитировать, на самом деле, любой кусок текста, выделяя его, введена возможность цитирования по горячим клавишам. Выделяете текст и жмете шоткат Ctrl+Shift+C. Из-за объема js-кода по умолчанию отключен.
  • Убрана поддержка скрипта «плавной» прокрутки.
  • Достигнута полная кроссбраузерность — и по шоткатам, и по самим функциям. Т.к. решил не загромождать код сохранением положения курсора, курсор при вставке цитирования устанавливается в конец текста комментария.
  • Самое вкусное — 5 вариантов выделения ответов: просто имя, выделение <strong> (вместо расово неверного <b>), @Twitter-like стиль, 2форумный стиль и кастомный CSS (добавляется класс quoteauthor в спан или ссылку.)
  • Наконец, есть возможность включить в настройках автоматическую подстановку ссылки на цитируемый комментарий (и комментарий автора, которому отвечаете). Автоматически изменяются скрипты, ссылка формируется из установленной маски, а также функции get_comment_ID(). Работает вроде отлично.

Нерешенная проблема (тоже лень) — зачистка правильных запросов настроек плагина. Сейчас при каждом выводе комментария кадый раз запрашивается, если я не ошибаюсь в том, как работает ВП-функция get_option(). Ну, хотя бы, лишнего запроса не делает (но опять же, лишнее количество опшнов увеличивает объем загружаемой инфы из базы).

Итак, идите качайте укороченную и исправленную версия Comment Toolbar →

Про то, как это сделать все то же самое, но ручками, писать уже не буду, т.к. пустое это. Все равно все с ума свихнулись на плагинах. А сделать все просто, чуть-чуть поработав копипастой. Маленький совет — сделайте под это один подключаемый файл скрипта, особенно, если замещаете другие плагины, которые также подключают кучу js.


И все же пару типов.

Если в теме используется get_comment_text() (ну что-то вы делаете с комментариями сами) вместо comment_text(), то, естественно, блок от плагина не подключится. Соответственно, придется ручками прописывать в нужном месте (как раз после вывода текста комментария в шаблоне):

<php cf_comment_toolbar(); ?>

Не используйте выравнивание в настройках плагина — выберите «кастомный CSS». Т.к. если позиция «над» или «под» комментариям делается php-скриптом, то здесь стиль добавляется прямо в тег, что неправильно. Настройте его CSS, просто установив необходимые параметры блоку comment-toolbar. Например:

.comment-toolbar {text-align:right;}

В некоторых темах, возможно, придется работать с float. Но, вообще, с этим «тулбаром» можно сделать что угодно — выделить цветом или еще как-нибудь извратиться (пока это удобно комментаторам).

Аналогично при выборе кастомного CSS в имени автора, которого цитируете или которому отвечаете, нужно указать стиль класса .quoteauthor (потому как использование b или strong, например, плохо с сеошной точки зрения). Если же используете кнопки вместо ссылок (опция осталась), то работать с CSS придется точно.

Стрелочки навигации по комментариям я убрал полностью, по уже названным в предыдущих статьях причинам. Переход в начало комментариев и конец можно, конечно, реализовать блоком, который всегда будет висеть слева-справа по абсолютной позиции (а можно и шоткатами по js, кстати), но кнопки home-end все-таки эффективней.

Но вот два элемента будут очень и очень полезны в вашем блоге. Если в вашей теме их нет, то стоит сделать.

Во-первых, т.к. ссылка с главной страницы ведет на #comments, т.е. начало комментариев (некоторые ставят на форму, что вообще ни в какие ворота), нам нужна ссылка рядом, ведущая на на форму, для быстрого ответа. Скажем, если id у формы выглядит так:

<form id="commentform" ...

То нам нужна ссылка туда, оформленная в виде элемента управления (лучше стрелочки):

<a href="#commentform" title="комментировать">&darr;</a>

Аналогично с элемента рядом с формой (рядом с ее заголовком навроде "Написать комментарий) должен аналогичный элемент, ведущий наверх:

<a href="#comments" title="к комментариям">&uarr;</a>

Такие дела.

{18 комментариев} Подписка на комментарии

Спасибо за плагин, воспользовался. но обнаружился глучок...

когда кто-то регистрируется, то в «Настройках» у человека остается этот плагин... и он его может менять.

ну у меня так точно получилось. Может, у меня руки кривые : ) в других режимах не пробовал, пробовал только когда регистрируемый — в роли Автора.

ах, черт, да. Там надо поменять подключение этого пункта меню, а то, действительно, как-то неправильно получается...

я не программер не фига, и не знаю, как это делать : (

можно подсказать? если это немного...

седня, собссно, первый же, кто зарегистрился, поменял вот такую же красивую надпись ответить | цитировать на кнопки... : )

@Pashka.Ru: Только если завтра, к сожалению. На этом компе нет ничего, чтобы сделать это быстро.

@автор: да мне не сложно : ) я все равно на стадии тестирования...5-ый день тока WP изучаю...

скажу спасибо, жду! : )

@Pashka.Ru: я извинтиляюсь, совсем забыл. Плагин поправил, перезалил.

В принципе, можете сами у себя поправить 69 строчку, заменив в

add_options_page('Comment Toolbar Options', 'Comment Toolbar Options', 1, basename(<em>FILE</em>), 'cf_comment_toolbar_options_page');

цифру 1 на 8.

Спасибо большое, я и сам почти забыл : )

Точнее, я сам хотел уже пойти посмотреть, что и как там работает : )

1 и 8 — это роли?

Почти, точнее говоря, это левелы — уровни доступа. codex.wordpress.org/Roles_and_Capabilities, если интересно.

ну, так они тами называются ролями : )

первый же плагин, который щас открыл для сравнения — кросс линкер, там как раз вот точно такая же строчка и имеется.

Ой, не ту ссылку дал. Роли — это администратор, автор и т.п., каждому из которых можно назначить (условно говоря) возможность на действия. А вот уровни — это как раз области возможностей — 8 доступен тем, кто имеет доступ ко всем, для 1 же достаточно быть зарегистрированным codex.wordpress.org/User_Levels

Ну, это я из принципиальности.

Вообще, я не помню, с чего я так скосячил. А для верности надо ставить вообще 10 уровень — чтобы бул доступ только у админа. Благодаря тебе, теперь этот пункт в моем чеклисте )

Ну я думаю, что накосячил при проверке : )

бывает такое... я вот про профессии больше связан с сантехникой и отоплением... так вот недавно залил комнату у клиента : ))) ну, чтобы водичка стекала быстрее — открутил вторую трубу. а потом, конечно же, забыл ее прикрутить : )

кста, и еще : ) этот косячок заметил первый же зарегистрированый юзер : ) я удивился, когда вместо надписей ответить | цитировать оказались серые кнопочки...

Мммм, вообще, это не мой плагин, я только правил его :). В настройках же можно настроить — кнопочками будет, или ссылками «ответить».

О! кста, Щас посмотрю, что там в оригинальном плагине было!

Так юзер сразу же залез в настройки и там поменял! Это у Админа много ссылочек, а Автора — не много. Проще найди что-то : )

В оригинале, правда, в последней версии, там 5.

Ну, это не совсем правильно — менять такие натройки должен только суперюзер, админ.

Добрый день.

Для активации при get_comment_text (); надо использовать следующий код:

Так как cf_comment_toolbar () возвращает переменную, которую ещё надо вывести.

Вы не можете подсказать, почему, при объявлении функции вручную, цитирование комментария без выделения (просто, при клике на «Цитировать») не работает?

А всё, разобрался.

Вопрос снимается :)

В версии 3.0 перестал выводить ссылки на кнопки Цитата. Стиль старых комментариев с цитированием через плагин сохранен.

Подскажите, как вывести эти кнопки?

А здесь можно оставить свое мнение ↓ Подписка на комментарии
какие-то из следующих трех полей можно оставить пустыми


нет тегам!!! **эмоция**, __ирония__, >цитата, {[код]}