Большая доработка комментариев. [- тема; + #.ip,whois]

Главные вкладки

Аватар пользователя telepat telepat 12 марта 2010 в 22:11

Привет, друпалчане.

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

  1. Убираем поле "тема" из комментариев; Делаем их нумерацию, на номере комментария прямой линк.
  2. Что есть: пробегало решение как сделать простой счетчик, с отсыланием за поддержкой на drupal.org, сейчас не смог найти через поиск. И собственно то, почему я его не подключил — он просто раздает номера комментариям по порядку. Если вид линейный то номер совпадает и статичен.
    Что надо: самый большой минус - вид древовидный. Использование простого счетчика в шаблоне не отражает в каком порядке были сделаны комментарии.
    Предположения: при нумерации оттакливаться не от очереди обработки друпалом, а от времени публикации комментария. Можно взять из базы timestamp и отсортировать по убыванию. Как обработать дальше и вывести?

  3. Добавляем вывод ип адреса для каждого комментария (удобно в модерировании тк. анонимное комментирование разрешено).
  4. Что есть: Редактирование модуля, во время запроса в базу он также берет содержимое колонки "hostname". Вывод переменной через шаблон. Вывод комментария реализован, роли для показа есть.
    Что надо: Хочется узнать какие еще есть способы реализации этого без мародерского редактирования стандартного модуля при каждом апдейте.

  5. Собственно одна из самых сложных для меня задач: как добавить определение провайдера по ипу.
  6. Что есть: Не нашел ничего.
    Что надо: Вывести название провайдера.
    Мои предположения: добавить в таблицу столбик "prov". при отправке комментария делать whois запрос, grep'ать значение провайдера, которой принадлежит адрес и записывать в базу. Каким образом выводить понятно. Хочется оптимизации, есть ли способ получить не сразу всю информацию о адресе а только 1 строчку? Запись в базу человеческих названий. (например: Corbina-Broadband = Корбина)

Вот примерно так, да, много буков. Поправки в предположения приветсвуются.
Заранее благодарен за помощь Smile

Комментарии

Аватар пользователя telepat telepat 12 марта 2010 в 23:55

"penexe" wrote:
1) hook_schema_alter
2) функцию comment_save можно переопределить через hook_form_alter, либо hook_comment
3) hook_comment

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

Аватар пользователя edmi edmi 18 сентября 2010 в 18:36

"telepat" wrote:
# Добавляем вывод ип адреса для каждого комментария (удобно в модерировании тк. анонимное комментирование разрешено).

Что есть: Редактирование модуля, во время запроса в базу он также берет содержимое колонки "hostname". Вывод переменной через шаблон. Вывод комментария реализован, роли для показа есть.

Воскресим тему.

"penexe" wrote:
2) функцию comment_save можно переопределить через hook_form_alter, либо hook_comment

comment_save ненужен, друпал по умолчанию пишет hostname в коммент. Модуль редактируется чтобы он потом эту колонку забирал, и comment->hostname можно было вывести.
hook_comment ближе и не требует убивать_котён^W редактировать ядро, но добавлять модуль с 1м запросом на вывод дополнительного поля к каждому комментарию довольно расточительно. К примеру на странице 50 комментариев и следовательно добавляется 50 запросов, пусть и выполняющихся за 0.03-0.05ms.

Вообще инструментов модерирования комментариев в друпале нехватает. Особенно это заметно с анонимным постингом: вся необходимая информация будь то E-mail или Ип-адрес пишется, но нигде не отображается. Также нехватает массового удаления комментариев не из админки а со страницы ноды =\
Поправьте, если я где не прав.

По 3ему, есть наработки геолокации для комментариев, вопрос только надо ли оно в массе.