Этот заключительный пост из серии Украшаем комментарии в WordPress, Украшаем комментарии в WordPress – часть 2 и часть 3-я. Итак, мы добрались почти до самого конца, и если в предыдущей части мы, в основном, вносили изменения в код, то последние украшательства/улучшательства будем делать с помощью плагинов. Должен сказать, что иногда эти плагины ведут себя весьма неадекватно – такие я даже не привожу в постах, чтобы случайно не поломать чего, ненароком. Последний из примеров – после установки одного из них пропала панелька TinyMCE, визуальный WYSIWYG редактор постов, остались одни шорткоды, ну т.е. совсем исчезла, даже кнопка ее вывода.
Я минут 15 страдал, прежде чем догадаться, что один из установленных и снесенных потом плагинов ее отключил, и при деактивации и удалении забыл обратно включить. Слава богу, что вернуть ее обратно оказалось достаточно просто – необходимо зайти в меню “Пользователи”, там – “Ваш профиль”, и снять галочку с самого верхнего чек-бокса. Но поди-ж ты догадайся!
Но вернемся к нашим баранам. Первое, что хотелось сделать – это прикрутить отправку комментариев без перезагрузки страницы, т.е. на AJAX. Плагинов, реализующих это – вагон и маленькая тележка. Особо о них рассказывать нечего, просто скажу, что я перепробовал следующие:
Ajax Comments-Reply – жутко глючный, до неузнаваемости изменяет тему
AJAX Comments 2.08 – выдает не очень красивое сообщение об ошибках в отправке комментария, и не хочет работать с антиспам-защитой (AntispamBee) и WYSIWYG редактором комментариев
WordPress Thread Comment – тоже самое, вид сбоку
Ajax Comment Posting 2.0 – глючит не меньше, вообще ничего не отправляет
Silk AJAX Comments 1.0 – комментарии отправляются, но если включено предварительное модерирование, то абсолютно не видно, ушел ли комментарий, или нет, плюс – все на английском, переводить влом
WP-Ajaxify-Comments 0.5.2 – не совсем отправка комментов через аякс. Скорее, это всплывающая подсказка в случае, если не заполнено какое-либо обязательное поле, вместо вывода отдельной страницы с ошибкой, хотя авторы утверждают, что и отправка происходит через аякс. В целом, он мне понравился – множество настроек, стабильная работа на теме. Хотя шрифт подсказки вызывает некоторые нарекания. И пока нет русской локализации, но это вопрос времени.
wp-comment-master 1.7 – очень неплохой плагин, достаточно грамотно отрабатывает отправку комментариев, надпись об ошибке выводит почти там где надо – это легко можно поправить. Присутствуют две проблемы:
1) если установлен плагин WP Ajax Edit Comments (о нем будет чуть ниже), то возможность редактировать комментарии появляется только после перезагрузки страницы. Так что придется выбирать – или этот плагин, или тот, или поясняющую подпись вводить
2) если установлен какой-либо WYSIWYG редактор для комментариев, например, Tiny MCEcomments, то по первому нажатию кнопки “отправить комментарий” – выводится надпись, что поле для комментария не заполнено, и только после второго нажатия он уже отправляется (а, к слову сказать, с CLEditor for WordPress работает вообще криво, прогружая комментарии только после обновления страницы)
PTM AJAX Comments 1.04 – проблемы начались, когда я пытался его скачать – zip файл успешно скачивался, но внутри был пустым. Тогда скачал со страницы разработчика. Установил. Настроек – очень много. Но, к сожалению, адекватно на теме вместе с остальными плагинами работать не смог.
В результате я решил остановиться на wp-comment-master 1.7, с небольшими его доработками: а) для того, чтобы сообщение об ошибке выводилось не внизу формы комментария, а наверху, необходимо в файле “cm.js” строчку
1 |
var $message=jQuery('<span></span>').appendTo("#commentform"); |
заменить на:
1 |
var $message=jQuery('<span></span>').prependTo("#commentform"); |
б) для того, чтобы сообщение об ошибке выводилось красным цветом, а об успехе – зеленым, в том же файле необходимо строчку
1 |
$message.empty().append((yjlSettings.thank!=''?yjlSettings.thank:'Thank you for your comment!')); |
заменить на:
1 |
$message.empty().append((yjlSettings.thank!=''?yjlSettings.thank:'Thank you for your comment!')).css('color', 'green'); |
К сожалению, необходимость двойного нажатия на кнопку отправки комментария при установленном TinyMCEComments портит всю малину. Я так чувствую – посмотрю, покопаюсь, и если не смогу решить эту проблему – то временно его отключу. Также есть желание попробовать описанный здесь способ – ну это если время будет.
Выше я упомянул о плагине WP Ajax Edit Comments 5.0.7.0. Это как раз является следующим пунктом тюнинга наших комментариев. После того, как я его себе поставил и увидел, как он работает – рассмотрение остальных подобных плагинов уже не имело никакого смысла. О его возможностях можно рассказывать бесконечно. Среди них:
- Возможность дать незарегистрированному пользователю редактировать свои комментарии в течение установленного администратором времени, удалить комментарий, или послать запрос на его удаление (настраивается администратором), причем вне зависимости – был ли уже опубликован комментарий, или стоит в очереди на публикацию
- Настроить, что позволять редактировать – только сам комментарий, или еще и личную информацию
- Настроить, будет ли админу отправляться письмо о том, что комментарий был отредактирован
- Позволять ли редактировать комментарий, если появились еще комментарии в ответ
- Прикрутить обратный отсчет этого времени (но я, к примеру, отключил его вывод, чтобы не смущать пользователей)
- Выводить сообщение комментатору о том, что он может делать со своим комментарием
- Возможность управлять всеми комментариями как из админки, так и непосредственно с сайта (с сайта – если комментарий отправляется без постановки в очередь на модерацию)
- Под понятие управление входят следующие возможности:
- Можно удалить, подтвердить комментарий
- Можно перенести его в другую ветку, если комментатор промахнулся
- Можно занести комментатора в черный список по e-mail, нику, IP, URL, и отправить туда же все его комментарии одним кликом
- Удалить одним нажатием кнопки все ссылки из комментария – как все, так и только в теле комментария
- Отправить комментатору письмо, кликнув на кнопку в выпадающем меню у комментария, и введя текст в открывшемся поле
- В плагине предусмотрено использование нескольких скинов, которые подойдут к практически любой теме
- Возможность расположить кнопки редактирования не только списком, но и в выпадающем меню, использовать просто надписи, кнопки и надписи, или только кнопки
- И множество чего еще по мелочам.
Рассказать все невозможно, это необходимо просто видеть:
А попробовать, как работает редактирование комментариев – можно у меня здесь. Когда-то этот плагин был платным, и стоил весьма прилично. Сейчас его можно скачать и установить бесплатно. Сколько такая халява продлится – не известно. Но однозначно, это один из must have плагинов.
Огорчает в нем три вещи:
1. В случае, если не установлен счетчик времени, то ссылка (кнопка) на редактирование комментария пользователем остается, а по истечению указанного времени просто становится неактивной до перезагрузки страницы. В случае, если счетчик стоит – то как только до нуля дошли, так сразу плавно и исчезает.
2. Невозможно редактировать комментарии без Pop-up Colorbox, чтобы прямо на месте, внутри комментария
3. Нет возможности админу редактировать и модерировать прямо из статьи комментарии, ожидающие модерации (все равно приходится в админку залезать (это, впрочем, свойство вордпресса)
И вот тут-то пришло время поговорить о следующем весьма интересном плагине. Который позволяет модерировать комментарии в вордпрессе не из админки, а прямо со страницы поста. Называется он Thoughtful Comments 0.2.3.3, находится стандартно в депозитарии, а его собственная страничка – здесь. В рунете о нем особо и упоминаний никаких нет. Тем не менее, он весьма интересен. Вот как выглядит страничка из под администратора:
Красным отмечены пока еще неапрувленные комментарии. Нажав на соответствующие ссылки, можно допустить к публикации, удалить, отправить в бан. И это все – во фронт-энде! Плюс к этому – если комментарии древовидные – позволяет удалить всю ветку. После его установки хак из предыдущего поста, где мы выводили ссылки на удаление комментария – просто и не очень-то нужны (удалять не стал, т.к. времени на это нет, пусть пока побудут). А теперь главная фишка – этот плагин совершенно замечательно, и абсолютно не конфликтуя, работает с WP Ajax Edit Comments 5.0.7.0. Конечно, они в части удаления комментария пересекаются друг с другом, но это – не большая беда. Почему этот плагин незаслуженно остался обделенным вниманием русскоязычной части интернета – я не понимаю.
Ну и последнее, о чем я хотел бы рассказать – это как раз то, что слишком хорошо освещено на просторах рунета, поэтому долго распространяться не буду. Плагин Subscribe to Comments 2.1.2 – из протестированных мне понравился больше всего. Качал его русскую версию, а здесь описание, как поправить его руссификацию, если не хочется в корне папок плагинов держать файлы руссификации. Единственное, что пришлось сделать – так это вставить в самый конец 85-ой строчи файла subscribe-to-comments.php после кода
1 |
<?php _e('Subscribe without commenting', 'subscribe-to-comments'); ?> |
код
1 |
<br /><br /> |
Для того, чтобы надпись “Подписаться, не комментируя”, не залезала на форму ввода е-мэйла. Получилось так:
И еще момент – вставлять форму “подписки, не комментируя” так, как написано в ридми и большинстве наших русскоязычных сайтов – не стоит, поскольку тогда она будет выводится даже там, где комментарии закрыты. Пофиксить это просто – надо внести после кода
1 2 |
comment_form($args); ?> |
в файл /wp-content/themes/ваша_тема/comments.php не
<?php show_manual_subscription_form(); ?>
а код
1 2 |
<br /> <?php if ( comments_open() ) { show_manual_subscription_form(); } ?> |
Спасибо доброму человеку OlegBon (ссылки нет, к сожалению). Ну а остальное (настройка и т.п.) – уже все просто и понятно – в настройках прописать путь к шапке, сайдбару и футеру, и поставить галку на “использовать свой стиль”. Можете прочитать хоть здесь, а вообще – гугль в помощь. Кстати, осталось впечатление, что если человек, комментируя, подписался, но его комментарий не пропустил автор сайта – то подписка тоже не сработает. В случае, если пропустили и одобрили – работает и для mail.ru, и для yandex.ru, и для gmail.com, проверил основные. Если хотим вписать стандартно используемый плагином стиль, то в style.css файл темы, в самый конец, надо не забыть добавить код:
/* SUBSCRIPTION MANAGER STYLE */
.subscription-manager {
padding: 10px 0 20px 0;
margin: 5px 0 0 55px;
width: 650px;
}
div.wrap {
background: #fafafa;
padding: 5px 10px;
margin: 20px 0;
border: 1px solid #ccc;
}
div.wrap h2 {
margin: .5em 0 1em 0;
border-bottom: 2px solid #589bd2;
}
div.wrap fieldset {
border: 1px solid #555;
margin: 1em 0;
padding: 5px 10px;
}
div.wrap fieldset legend {
font-weight: bold;
font-size: small;
}
div.wrap p.submit {
text-align: right;
}
.updated {
background: #B9D6EF;
border: 1px solid #589bd2;
margin: 1em 5% 10px;
padding: 0 1em;
}
.updated-error {
background-color: #FFA3A3;
border: 1px solid #FF5D5D;
}
div.wrap form {
margin: 0;
padding: 0;
}
div.warp li {
margin-bottom: 6px;
line-height: 130%;
}
/* END SUBSCRIPTION MANAGER STYLE */
Результат страницы управления подпиской вышел вот такой:
Надо немножко пофиксить верхнюю шапку – но это потом.
Upd: Поправил верхнюю шапку, внеся в css код следующие изменения:
1 2 3 4 5 6 7 8 |
div.wrap h2 { margin: .5em 0 1em 0; border-bottom: 2px solid #589bd2; font-family: Monotype Corsiva, Helvetica, Verdana, Arial, sans-serif; font-size:26px; font-weight:bold; text-align:center; } |
Необходимо помнить, что Monotype Corsiva должен лежать у вас на сайте, и в css должны быть внесены необходимые изменения, как описано у меня здесь. А вот и результат шапки (вид из админки, но из под пользователя выглядит аналогично):
Вот и все. Вскоре буду объединять все четыре части обзора в один, еще пару мыслей есть по тому, что надо сделать, да пока не знаю как (с тем же самым Аяксом, который я все-таки решил пока отключить, с одной неувязкой с выделением автора через css3, ну и т.п.) . Но в целом – с комментариями, их украшательством и настройкой все закончено.
Ну а в следующий раз нас ждет подробный разбор полетов, как сделать рассылку о новых статьях с сайта, и как привести в общий стиль с сайтом посредством CSS3 не только кнопки, которые отвечают за отправку комментариев, но и к примеру, за подписку на новые комментарии. Вернее, как я со всем этим возился.
Добавить комментарий