Показать название узла незарегистрированным пользователям
5 ответов
Я не использовал это лично, но я только что видел, как это всплыло в ленте модуля drupal.org несколько дней назад, и это должно помочь: http://drupal.org/project/views_ignore_node_permissions
Хорошо, если вы просто хотите отобразить заголовок узла в php (с включенным в тело узла), то включите php:
<?php
if (arg(0) == 'node' && is_numeric(arg(1))) $nodeid = arg(1);
$node = node_load($nodeid);
print $node->title;
?>
Blockquote
и вы сделали
Вы можете написать для этого простой модуль, который выполняет следующие действия:
- запросить названия узлов, которые вы хотите показать (вызывается hook_menu)
- тема результат (hook_theme)
- отобразить результат (hook_block)
в hook_perm вы можете создать новое разрешение, которому вы хотите показывать заголовки узлов, если это для всех, просто используйте "доступ к контенту".
Решение здесь:
В параметрах-параметрах представлений "Параметры запроса" можно установить "Отключить перезапись SQL" ("Отключение перезаписи SQL отключит проверки node_access, а также других модулей, которые реализуют hook_query_alter()."), Что делает этот модуль ненужным с последними представлениями. версия.
Если вы хотите ограничить доступ к некоторым полям, а не к другим, вам действительно следует использовать разрешения для каждого поля. Я предполагаю, что все поля построены с помощью CCK, поэтому просто включите разрешение для типа содержимого, но отключите для всех полей.
Таким образом, виден только заголовок. Я не думаю, что вы можете отключить разрешения для стандартного поля тела, но я всегда использую для этого текстовую область CCK, для css это намного проще, так как стандартное поле тела не переносится при печати узла по умолчанию.