Дефолтная форма комментариев занимает кучу места на странице. Поэтому хорошим решением будет скрыть её, и показывать только когда пользователь захочет оставить комментарий.
Первым шагом прячем форму комментариев для пользователей, у которых включён javascript. Для этого в css файл добавляем:
.js .blog + #comments #comment-form { display: none; }
Вместо .blog
указываем класс, которым помечены ноды. Например, если комментарии разрешены для материала типа Story (Заметка), то класс у ноды будет story
и селектор соответственно:
.js .story + #comments #comment-form { display: none; }
Это необходимо, чтобы форма пряталась только на странице просмотра ноды, и не пряталась на странице ответа на чей нибудь коммент.
Вторым шагом добавляем javascript. Если у вас уже есть .js файл который использует тема, то добавляем код туда:
$(function(){
var jHeadline = $('#comments h2');
jHeadline.html('<a href="#">' + jHeadline.html() + '</a>');
var jLink = jHeadline.find('a');
jLink.css({'text-decoration':'none', 'border-bottom':'1px dashed'});
jLink.click(function(){
$('#comment-form').slideToggle('fast');
return false;
});
});
Если нет, то открываем файл ваша-тема.info и добавляем туда строчку:
scripts[] = scripts.js
Далее, в папке темы создаём файл scripts.js и добавляем туда код, приведённый выше. Очищаем кэш.
Результат можно посмотреть в форме ниже.
- Отсылка на сервер дополнительных данных в системном автокомплите
- Разрешить сабмит формы с открытым автокомплитом (autocomplete)
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Как выполнять свой js-код до или после любых AJAX запросов (изменение работы AJAX API)
- Как добавить базовое поле сущности (сохраняем User Agent комментатора)
Комментарии
А чем отличается - ajax_comments от этого варианта?
Ну это не модуль, а простая темизация формы комментариев средствами js и css. Ставить ajax_comments ради одной ui функции как то не разумно ;)
У меня форма открыта при переходе к комментам, а у Вас закрыта. Как исправить?
крутить css селектор который скрывает форму
Не работает.
Может тут не указано, что надо установить доп модули, типа jQuery или типа того?
нет. jquery входит в ядро друпала
У меня что-то тоже не работает
у меня по стандарту развернуто получается
если быть точном не понял откуда брать класс для типа материала допустим машинное название mob
http://getfirebug.com/
Работает только через стандартный шаблон как только вставляю node-product.tpl.php Неработает
Если вместо правки css и добавления display:none; мы вставим в начало script.js
$('#comment-form').hide();
то в браузерах, не поддерживающих js, форма будет отображаться, а в поддерживающих - скрываться и работать наш скрипт.
piterden, скрипт выдает ошибку в таком раскладе. Напишите полный код плиз.
Для drupal 7 немного скорректировал, может кому полезно будет
1. в css пишем
2. в js пишем
ajax comments по моему не скрывает форму, а тут хайд шоу есть, то что надо. хандедх отличный спец имхо
Код для drupal 7, скрывает форму не через css, а через javascript - форма будет видна тем, у кого не включен js.
Помню, что где то видел эту статейку на сайте, но где... Два дня искал ;-) Я то всё вбивал: форма комментариев скрыть, блок, как на этом сайте и т.п. А тут написано прячем... ;-) "Отправить комментарий" а сейчас - "Оставить комментарий".
У меня #comments h3 тегом вывожу. Это чертово seo так глубоко в мозг засело... Ведь заголовок на странице - это большой вес этого текста, а чем выше заголовок, тем больше его значимость. Вот я тут seo поднял ;-) xandeadx его не [любит] сейчас, не хочет думать. А раньше, смотрю записи 2009 - 2010 года очень даже писал эти три волшебные буквы ;-)
Иногда бывает мешает глазу выбор форматов ввода. Можно вот так же спрятать. Сделал по аналогии. Это для body, можно или для каждого или что-то по универсальнее. Хотя бывает это даже удаляют в php.
Добавить комментарий