Запретить просмотр определенного типа контента в D7

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

Аватар пользователя Goodseeker Goodseeker 10 декабря 2012 в 21:39

Нужно запретить просмотр не своих нод определенного типа.
Для этого использовал в D7 модуль Content Access 7.x-1.2-beta1
Однако он сделал "каку", из-за которой пропали настройки полей к комментариям (admin/structure/types/manage/page/comment/fields)

Посоветуйте пожалуйста способ для ограничения на просмотр?

Комментарии

Аватар пользователя iNFerNo iNFerNo 10 декабря 2012 в 22:49

снесите друпал и поставте с дефолтно темой и в ней все собирайтесь потом фантазируйте с др темами...

Аватар пользователя Goodseeker Goodseeker 10 декабря 2012 в 23:17

iNFerNo wrote:
снесите друпал и поставте с дефолтно темой и в ней все собирайтесь потом фантазируйте с др темами...

Зачем давать совет не разобравшись?
Вы сначала топик внимательно почитайте.

А друпал стоит новый с темой бартик. Поэтому не в тему совет.

Аватар пользователя iNFerNo iNFerNo 11 декабря 2012 в 8:55

так в том то и дело. что озвученный модуль никаких таких "как" не делает... (у меня точно). И сиди себе выставляй нодам права.

Аватар пользователя Niklan Niklan 11 декабря 2012 в 1:03

Если запретить на странице материала. То можно обычным условием обойтись на php. Если везде и всюду по сайту, даже в тизерах и т.д., то скорее всего модуль.

Аватар пользователя Niklan Niklan 11 декабря 2012 в 1:25

Держи. Пихать в файл template.php темы
Указываешь в массив allowed_types машинные имена типов материалов для которых будет срабатывать обработка, например у меня указан тип материала blog_entry.
Соответственно, если пользователь не автор, то контент заменится на данное сообщение.

<?php
function THEMENAME_preprocess_node(&$variables) {
    
$allowed_types = array(
        
"blog_entry"// Запись в блог
    
);
    global 
$user;
    if (
$user->uid != $variables['uid'] && in_array($variables['type'], $allowed_types)) {
        
$variables['content']['body'][0]['#markup'] = "<p>Вы не автор данного материала и не имеете прав на его просмотр.</p>";
    }
}
?>

Если нужно более гибко, то как уже писалось, проще написать модуль или поискать.