Drupal 7 - раскрывающаяся форма комментирования

В чем проблема?

Представим следующую, возможно имеющую место быть, ситуацию. Необходимо улучшить форму отправки комментариев. Как улучшить? Ну к примеру, чтобы отправлять отзывы посетители могли с той же страницы, что и материал, который они просматривают. Но с такой оговоркой: занимающая порой непомерно большое пространство форма по умолчанию должна быть скрыта, раскрываться должна по клику мышкой на соответсвующую надпись.

Сразу отмечу, что подобный функционал реализует модуль "AJAX Comments". Но для Друпал 7 он мягко говоря "глючный". Один клик - один показ, второй клик - ниже с какого-то перепугу снова появляется вторая(!) form. Третий - третья, и так до бесконечности.

Предлагаемое мною решение

Создайте в папке вашей темы JavaScript файл. Назовите его, например, hidecomments.js. Заполните его кодом, представленным ниже:

Drupal.behaviors.maroniteBehavior = {
  attach: function(context) {
    // спрячем по умолчанию
    jQuery('#comment-form').hide();
    // обернем заголовок ссылкой    	
    var jMyHeadline = jQuery('#comments h2');
    jMyHeadline.html('<a href="#">' + jMyHeadline.html() + '</a>');
    var jMyLink = jMyHeadline.find('a');
    jMyLink.css({'text-decoration':'none', 'border-bottom':'1px dashed'});
    // обработка нажатия, разворачиваем
    jMyLink.click(function(){
        jQuery('#comment-form').slideToggle('fast');
        return false;
    });
  }
};

Открываете файл с информацией о текущей теме (*.info), вписываете всего лишь 1 строчку:

scripts[] = hidecomments.js

Править CSS не требуется. Проверял на стандартных шаблонах Garland и Bartik. Конечно многое зависит также от того какой "скин" используете конкретно вы. Будут вопросы, - пишите. Постараюсь ответить.

Вот как это выглядит в деле:

Drupal 7 Улучшенная форма отправки комментариев





© 2012-2014 Druweb.ru. Вы можете спокойно копировать любые материалы сайта только при наличии обратной ссылки.