Добавление полей Сайт и Ник в форму комментирования для комюзеров в MaxSite CMS

Добавление полей Сайт и Ник в форму комментирования для комюзеров в MaxSite CMS

25 ноября 2011 г. Sadovnik Просмотров: 299 RSS
MaxSite CMS практика

В статье пойдет речь о том, как и зачем добавить в форму комментирования комюзерами еще два поля: Сайт и Ник.

Совсем небольшой модификации подвергнутся функции mso_get_new_comment() и get_mso_get_comments(), которые находятся в файле common/comments.php.

Кроме того, нужно добавить в свой шаблон type_foreach файлы page-comment-form.php и page-comments.php.

Зачем нужны еще два поля Ник и Сайт в форме комментирования MaxSite CMS?

В MaxSite CMS, в форме добавления комментария незарегистрированным комюзером имеется только два поля: email и пароль. Остальные атрибуты, предполагается, что комментатор заполнит после регистрации, зайдя в свой профиль.

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

В итоге, комюзеры так и остаются без Ника и в ленте комментариев мы вместо имен видим Комментатор nn.

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

При комментировании же анонимно все ясно – имеется единственное поле для Имени.

Как результат - все Анонимы имеют имена, а все комюзеры только номера.

Пойдем далее.

Не секрет, что большинство комментариев в блогах возникают лишь с одной целью – оставить адрес сайта. Форма комментирования в MaxSite CMS не имеет поля Сайт или URL, чем отпугивает вышеуказанных комментаторов. Это не всегда хорошо.

Можно, конечно, написать что указать сайт и т. п. можно, зайдя к себе в профиль, но это мне кажется слишком лишней суетой.

Как изменить MaxSite CMS для добавления полей Сайт и Ник в форму добавления комментария.

Сразу огорчу – придется править две функции в файле common/comments.php, правда – совсем не много.

Или создать в functions.php шаблона модифицированные функции и вызывать их.

Модифицировать же придется две функции: mso_get_new_comment() и mso_get_comments()

Модификация mso_get_new_comment()

Научим эту функцию принимать Сайт И Ник нового комюзера.

В коде функции нужно найти такое:

  1.  // такого комюзера нет
  2.   $ins_data = array (
  3.   'comusers_email' => $comments_email,
  4.   'comusers_password' => mso_md5($comments_password)
  5.   );
И заменить на
  1.  // такого комюзера нет
  2.  
  3.   $comusers_url = mso_xss_clean($post['comusers_url']);
  4.   if ($comusers_url and strpos($comusers_url, 'http://') === false)
  5.   $comusers_url = 'http://' . $comusers_url;
  6.   $comusers_nik = mso_xss_clean($post['comusers_nik']);
  7.   $ins_data = array (
  8.   'comusers_email' => $comments_email,
  9.   'comusers_password' => mso_md5($comments_password),
  10.   'comusers_url' => $comusers_url,
  11.   'comusers_nik' => $comusers_nik,
  12.   );
Из замены видно, что мы, кроме всего прочего, берем из post Ник и Сайт.

Модификация mso_get_comments()

В этой функции найдем формирование в SQL запросе списка полей, получаемых из БД:
  1.  comusers.comusers_id,
  2.   comusers.comusers_nik,
  3.   comusers.comusers_count_comments,
  4.   comusers.comusers_allow_publish,
  5.   comusers.comusers_email,
  6.   comusers.comusers_avatar_url
Нужно добавить одно поле - url комюзера.
  1.  comusers.comusers_url,

Дальше – проще. Теперь нужно подправить шаблонный файл вывода формы комментирования.

Шаблонный файл type_foreach/page-comment-form.php

Правильно изменять шаблон путем добавления foreach-файлов в папку type_foreach.

Скопируем файл шаблона type/page-comment-form.php в папку type_foreach.

И добавим в форму для нового комюзера поля ввода comusers_nik и comuser_url.

Вот как выглядит участок кода ввода атрибутов нового комюзера после модификации:

Показать...

Шаблонный файл type_foreach/page-comments.php

Теперь самое главное – чтобы адрес сайта комментатора выводился при выводе комментов.

Сейчас ссылка с Ника комментатора ведет на страницу его профиля в MAX Site CMS.

Сделаем по другому: Ссылка с ника комъюзера будет вести на его сайт а затем выведем ссылку "(профиль)", которая и будет вести на станицу профиля на вашем сайте.

Сделать это правильно нужно, опять же, при помощи foreach-файла page-comments.php.

В этом файле реализуется тело цикла вывода комментариев.

Содержимое файла type_foreach/page-comments.php:

Показать...

Разместите его в папке type_foreach вашего шаблона и он подхватится циклом вывода комментариев.

Можете поправить оформление этого файла.

Скачать готовые файлы page-comment-form.php и page-comments.php: type_foreach.zip

Результат можете протестировать в этом блоге.

Похожие страницы
Комментариев: 2
  1. Руслан Сафин (профиль) 28 ноября 2011 в 14:42:37 (ссылка)

    Спасибо. Давно ждал подобного решения сей проблемы

    Как раз начал делать приватный блог для своей группы инвесторов.

  2. Sadovnik 29 ноября 2011 в 09:25:31 (ссылка)

    Я сам давно ждал решение этой проблемы.

    Если бы я раньше знал что так просто - давно бы сделал.

    Впрочем, в MaxSite все просто!!!

Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация: Авторизация MaxSite CMS. Facebook.

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

(обязательно)