Добрый день!
Друзья, подскажите как правильно сделать:
В нужном мне типе материала, есть поле категория field_category в которой можно выбрать одно из значений:
- первая категория
- вторая категория
- третья категория
Скажите, пожалуйста, как получить в php значение из виджета с переключателем и правильно его использовать в операторе if для сравнения?
Я хочу сделать проверку для страниц данного типа материала, что если field_category = первая категория, я буду применять стиль flight-tabs к одному объекту на странице, иначе для всех остальных категорий другой стиль flight-tabs-2.
Пишу пример как я хочу сделать, но без правильного синтаксиса:
<?php if($tab1 || $tab4 || $tab3 || $tab2): ?>
<div class="flight-tabs">
<ul>
<?php if($tab1): ?><li><a href="#f-tab-1">Описание</a></li><?php endif; ?>
<?php if($tab4): ?><li><a href="#f-tab-4">Маршрут</a></li><?php endif; ?>
<?php if($tab2): ?><li><a href="#f-tab-2">Ограничения</a></li><?php endif; ?>
<?php if($tab3): ?><li><a href="#f-tab-3">Фотографии</a></li><?php endif; ?>
</ul>
else
<?php if($tab1 || $tab4 || $tab3 || $tab2): ?>
<div class="flight-tabs-2">
<ul>
<?php if($tab1): ?><li><a href="#f-tab-1">Описание</a></li><?php endif; ?>
<?php if($tab4): ?><li><a href="#f-tab-4">Маршрут</a></li><?php endif; ?>
<?php if($tab2): ?><li><a href="#f-tab-2">Ограничения</a></li><?php endif; ?>
<?php if($tab3): ?><li><a href="#f-tab-3">Фотографии</a></li><?php endif; ?>
</ul>
Комментарии
А когда вы ходите это делать? При просмотре материала пользователем?
Здравствуйте, да. При просмотре материала пользователем из категории: первая категория страница будет загружаться с таблицей со стилем flight-tabs, а если пользователь смотрит материал, в котором выбраны другие категории, то страница будет загружаться с таблицей со стилем flight-tabs-2
Попробуйте воспользоваться хуком hook_node_view https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function...
Он как раз вызывается при просмотре материала.
Код нужно писать в отдельном (кастомном) модуле
То есть как я "хочу" сделать нельзя, через if - else ?
Мне синтаксис друпала и php плохо знаком. Поэтому с хуком исполнить наверное тоже не получится, а еще в кастомном модуле)
<?php
//Только на странице ноды, непонятно что вы там придумали
$node = node_load(arg(1));
$field_category = $node->field_category;
if(!empty($field_category)) {
$parents = taxonomy_get_parents($field_category['und'][0]['tid']);
if(empty($parents)) {
//первый уровень
} else {
}
?>}
Здравствуйте! На странице ноды я придумал следующее:
(if)Если у меня нода, в которой field_category = первая категория, то я хочу показывать пользователям таблицу с 4-мя столбцами. Каждый столбец занимает в ширину 25% от общей ширины содержимого, это прописываю в CSS class="flight-tabs-1" (то есть делим поровну ширину для 4-х столбцов)
(else)Если у меня нода, в которой field_category не первая категория, то я хочу показывать пользователям таблицу с 3-мя столбцами. Каждый столбец занимает в ширину 33.3333% от общей ширины содержимого, это прописываю в CSS class="flight-tabs-2" (то есть делим поровну ширину для 3-х столбцов)
$node = node_load(arg(1));
$field_category = $node->field_category;
if(!empty($field_category)) {
$parents = taxonomy_get_parents($field_category['und'][0]['tid']);
if(empty($parents)) {
if($tab1 || $tab4 || $tab3 || $tab2): ?>
<div class="flight-tabs-1">
<ul>
<?php if($tab1): ?><li><a href="#f-tab-1">Описание</a></li><?php endif; ?>
<?php if($tab4): ?><li><a href="#f-tab-4">Маршрут</a></li><?php endif; ?>
<?php if($tab2): ?><li><a href="#f-tab-2">Ограничения</a></li><?php endif; ?>
<?php if($tab3): ?><li><a href="#f-tab-3">Фотографии</a></li><?php endif; ?>
</ul>
<?php if($tab1): ?>
<div class="f-tab" id="f-tab-1">
<?php if(isset($node->body['und'][0]['value'])): ?>
<?= $node->body['und'][0]['value']; ?>
<?php endif; ?>
<div class="ftb">
<?php if(isset($node->field_description['und'][0]['value'])): ?>
<div class="desc"><?= $node->field_description['und'][0]['value']; ?></div>
<?php endif; ?>
<div class="location">
<?= render($content['field_location']); ?>
<?php if(isset($node->field_driving_directions['und'][0]['nid'])): ?>
<?php $u = url('node/'.$node->field_driving_directions['und'][0]['nid']); ?>
<a class="hide" href="<?= $u; ?>"></a>
<a class="link" href="<?= $u; ?>">Схема проезда</a>
<?php endif; ?>
</div>
</div>
</div>
<?php endif; ?>
<?php if($tab4): ?>
<div class="f-tab" id="f-tab-4">
<?php if(isset($node->field_track_body['und'][0]['value'])): ?>
<?= $node->field_track_body['und'][0]['value']; ?>
<?php endif; ?>
</div>
<?php endif; ?>
<?php if($tab2): ?>
<div class="f-tab" id="f-tab-2">
<table>
<tbody>
<tr>
<td><?= render($content['field_restrictions']); ?></td>
<td><?= render($content['field_restrictions_add']); ?></td>
</tr>
</tbody>
</table>
<div class="location">
<?= render($content['field_location']); ?>
<?php if(isset($node->field_driving_directions['und'][0]['nid'])): ?>
<?php $u = url('node/'.$node->field_driving_directions['und'][0]['nid']); ?>
<a class="hide" href="<?= $u; ?>"></a>
<a class="link" href="<?= $u; ?>">Схема проезда</a>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<?php if($tab3): ?>
<div class="f-tab" id="f-tab-3"><?= render($content['field_photo']); ?></div>
<?php endif; ?>
</div>
} else {
if($tab1 || $tab2 || $tab3): ?>
<div class="flight-tabs-2">
<ul>
<?php if($tab1): ?><li><a href="#f-tab-1">Описание</a></li><?php endif; ?>
<?php if($tab2): ?><li><a href="#f-tab-2">Ограничения</a></li><?php endif; ?>
<?php if($tab3): ?><li><a href="#f-tab-3">Фотографии</a></li><?php endif; ?>
</ul>
<?php if($tab1): ?>
<div class="f-tab" id="f-tab-1">
<?php if(isset($node->body['und'][0]['value'])): ?>
<?= $node->body['und'][0]['value']; ?>
<?php endif; ?>
<div class="ftb">
<?php if(isset($node->field_description['und'][0]['value'])): ?>
<div class="desc"><?= $node->field_description['und'][0]['value']; ?></div>
<?php endif; ?>
<div class="location">
<?= render($content['field_location']); ?>
<?php if(isset($node->field_driving_directions['und'][0]['nid'])): ?>
<?php $u = url('node/'.$node->field_driving_directions['und'][0]['nid']); ?>
<a class="hide" href="<?= $u; ?>"></a>
<a class="link" href="<?= $u; ?>">Схема проезда</a>
<?php endif; ?>
</div>
</div>
</div>
<?php endif; ?>
<?php if($tab2): ?>
<div class="f-tab" id="f-tab-2">
<table>
<tbody>
<tr>
<td><?= render($content['field_restrictions']); ?></td>
<td><?= render($content['field_restrictions_add']); ?></td>
</tr>
</tbody>
</table>
<div class="location">
<?= render($content['field_location']); ?>
<?php if(isset($node->field_driving_directions['und'][0]['nid'])): ?>
<?php $u = url('node/'.$node->field_driving_directions['und'][0]['nid']); ?>
<a class="hide" href="<?= $u; ?>"></a>
<a class="link" href="<?= $u; ?>">Схема проезда</a>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<?php if($tab3): ?>
<div class="f-tab" id="f-tab-3"><?= render($content['field_photo']); ?></div>
<?php endif; ?>
</div>
<?php endif ?>
}
}
<?php endif ?>
Но код с Вашим приёмом, который я указал в сообщении выше, пока не едет. Разбираюсь в чем ошибка