Как я могу изменить URL ссылки "Добавить новый комментарий" в тизере?
В настоящее время у меня есть список тизеров, и у них есть количество комментариев и ссылка "Добавить новый комментарий".
Эта ссылка ведет на специальную страницу комментариев с URL-адресом формы "/комментарий/ответ/19#форма комментариев".
Однако я хочу, чтобы он переходил к фактическому узлу, у которого внизу есть форма комментария (например, "/node/19#форма комментария").
Возможно, это можно сделать, если template.php или каким-то другим способом. Любые идеи будут высоко оценены.
1 answers
Перейдите на страницу администратора для вашего типа контента
/администратор/структура/типы/управление/страница
И проверьте Show reply form on the same page as comments
в разделе Comment settings
.
Если вы посмотрите на comment_node_view() в модуле комментариев, вы увидите, где ссылка на комментарий добавляется в тизеры.
if (user_access('post comments')) {
$links['comment-add'] = array(
'title' => t('Add new comment'),
'href' => "comment/reply/$node->nid",
'attributes' => array('title' => t('Add a new comment to this page.')),
'fragment' => 'comment-form',
);
}
Чтобы изменить ссылку, вы можете использовать hook_node_view_alter() в своем модуле.
function MODULE_node_view_alter(&$build) {
$node = $build['#node'];
if (isset($build['links']['comment']['#links']['comment-add'])) {
// Alter the 'Add new comment' link.
$build['links']['comment']['#links']['comment-add']['href'] = "node/$node->nid";
// Fragment is the '#comment-form' part of the url.
$build['links']['comment']['#links']['comment-add']['fragment'] = 'comment-form';
}
}