Скрыть поле если нода выключена

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

Аватар пользователя vsmr vsmr 8 декабря 2013 в 19:25

Поиск как обычно не помог, вернее частично помог но решение не найдено

Что есть:
- всем разрешен просмотр материалов снятых с публикации, но только определенных типов материалов (модуль drupal.org/project/view_unpublished)

Что нужно:
- в снятой с публикации ноде нужно запертить вывод некоторых полей

Делаю
1. по инструкции создал скопировал из модуля fields файл шаблона field.tpl.php в папку с темой и переименовал как положено field--FIELD_NAME.tpl.php (эта часть работает, проверено)
2. модифицирую код
из

<?php
print render($item);
?>

в

<?php
if ($node->status "1")
{
print 
render($item);    
}
else
{
print 
"запрещено к просмотру";            
}
?>

и все равно это поле доступно при выключенном материале, поможите чем сможите Smile
видимо как то неправильно написано условие пробовал и if (!$satus) - не помогает, но такой вариант срабатывал в шаблоне node.tpl.php

Комментарии

Аватар пользователя Niklan Niklan 8 декабря 2013 в 19:36

А кто сказал что в field--*.tpl.php передается $node

Поройтесь там в массиве $element или $items. Если там нету, то явно должен быть параметр nid, по ней грузим ноду и получаем статус, а уже заем такое условие заработает.

Аватар пользователя vsmr vsmr 8 декабря 2013 в 20:14

Niklan спасибо, сейчас и у вкл и у выкл ноды сделал print_r ($element);
есть такие даныне

(
    [#theme] => field
...
    [#object] => stdClass Object
        (
            [vid] => 4100
...
            [status] => 0
....

у выключенной и соотв [status] => 1 у включенной ноды

т.е. это ОНО как я понял
подскажите плз как в коде прописать правильно? я в php не силен.
пробовал
if ($element[object]->status = 1)
не помогло

Аватар пользователя Niklan Niklan 8 декабря 2013 в 20:17

Нет это статус поля скорее всего.

Если не можете добраться до масссива, то скачайте девел.

по сути должно быть так $element['#object']->status