Включить/отключить форму комментариев в модуле?
Я хотел бы установить флаг комментария для данного узла равным 1 или 2 (чтобы либо показывать, либо скрывать форму комментария) с помощью моего пользовательского модуля, в зависимости от определенных условий.
Я пробовал использовать hook_node_view, но этот подход, похоже, не сработал:
function custom_node_view($node, $view_mode, $langcode) { $node->comment = 1; }
Даже если я явно установлю флаг комментария равным 1, он останется 2 для данного узла. Если я dpm($node);
сразу после установки флага, правильное значение будет отображаться в информации о разработке, но форма комментария будет все еще показывают...
Согласно модулю comment., значения таковы:
/**
* Comments for this node are closed.
*/
define('COMMENT_NODE_CLOSED', 1);
/**
* Comments for this node are open.
*/
define('COMMENT_NODE_OPEN', 2);
Есть ли другой крючок, который я должен использовать для программного отображения/скрытия формы комментария?
1 answers
Похоже, я могу правильно настроить отображение комментариев в hook_node_load(). Я предполагаю, что это выполняется немного раньше в процессе и указывает comment.module не отображать форму для данного узла.
Вот пример того, что я в итоге реализовал:
<?php
/**
* Implements hook_node_load().
*/
function custom_node_load($nodes, $types) {
foreach ($nodes as $node) {
$node->comment = COMMENT_NODE_CLOSED; // to close comments
}
}
?>