Пару часов провозился с блогом, добавляя себе список похожих и популярных постов. Но это была лёгкая часть. Веселуха началась потом, когда понадобилось поставить его куда-нибудь. А комментарии, как оказалось, неразрывно связаны с самой заметкой. Теперь зародилась мысль ещё и форму для комментирования поднять повыше. А при отправке нового комментария — скрыть старые. Ну да ладно, это ещё потом будет. Попробую рассказать, как я боролся с этой проблемой.
Во-первых, пригодился модуль статистики: drush en statistics.
Во-вторых, модуль рекомендаций по истории: drush dl history_rec и затем drush en history_rec.
Заодно поставится модуль Drupal Computing и ещё всякое.
Затем в настройках модуля History Recommender я указал, что надо бы учитывать историю браузинга всех пользователей, а не только зарегистрированных. Да и вообще, у меня на блоге два зарегистрированных пользователя! Я серьёзно. Один из них — я.
Затем, через консоль команд модуля Recommender, я вызвал обновление рекомендаций. Пришлось правда ещё выполнить drush recommender-run. На самом деле, этот drush recommender-run я запустил, наверное, раз 80. Всё дело в том, что у меня для Drupal используется префикс перед всеми таблицами, а модуль рекомендаций не очень к этому приспособлен.
Но даже это было не очень-то и сложно. Добавил десяток строчек error_log, и всё. Нашёл косячок, надо будет разузнать теперь, как бы его заслать к авторам модуля. Ну да ладно, ещё успею. И дальше я пришёл к тому, что надо изменить положение блока. Поставил я его для начала в контейнер bottom.
if (isset($page['bottom']['views_0f744d1a611ac369ebe0c6474b0678b3'])) { $seeAlso = $page['bottom']['views_0f744d1a611ac369ebe0c6474b0678b3']; hide($seeAlso); $page['bottom']['views_0f744d1a611ac369ebe0c6474b0678b3'] = array(); $firstKey = key($page['content']['system_main']['nodes']); reset($page['content']['system_main']['nodes']); $page['content']['system_main']['nodes'][$firstKey]['see_also'] = $seeAlso; }
К сожалению, этот код у меня забрать нельзя: в другой инсталляции друпала, у вида будет другой идентификатор.
А вот так я прописываю в $content новый параметр see_also. И делаю я это в шаблоне page.tpl.php. Этот блок в нижнем контейнере я скрыл. А заодно теперь внутри $content появилась новая штуковина, надо отредактировать соответствующим образом:
<?php print render($content['see_also']);
Всё хорошо, но… как же это через жопу! :-) До сих пор, уже с год, если не больше, хочу взять и написать своё и нормальное, но как представлю, сколько это делать — прихожу в уныние.