Друзья, вопрос по php: как получить значение из виджета с переключателем

Аватар пользователя skylanternshop skylanternshop 7 декабря 2019 в 17:15

Добрый день!
Друзья, подскажите как правильно сделать:
В нужном мне типе материала, есть поле категория field_category в которой можно выбрать одно из значений:
- первая категория
- вторая категория
- третья категория

Скажите, пожалуйста, как получить в php значение из виджета с переключателем и правильно его использовать в операторе if для сравнения?

Я хочу сделать проверку для страниц данного типа материала, что если field_category = первая категория, я буду применять стиль flight-tabs к одному объекту на странице, иначе для всех остальных категорий другой стиль flight-tabs-2.

Пишу пример как я хочу сделать, но без правильного синтаксиса:

if  field_category = первая категория

<?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>

Лучший ответ

Комментарии

Аватар пользователя ivnish ivnish 7 декабря 2019 в 17:18
1

А когда вы ходите это делать? При просмотре материала пользователем?

Аватар пользователя skylanternshop skylanternshop 7 декабря 2019 в 17:29

Здравствуйте, да. При просмотре материала пользователем из категории: первая категория страница будет загружаться с таблицей со стилем flight-tabs, а если пользователь смотрит материал, в котором выбраны другие категории, то страница будет загружаться с таблицей со стилем flight-tabs-2

Аватар пользователя skylanternshop skylanternshop 7 декабря 2019 в 17:44

То есть как я "хочу" сделать нельзя, через if - else ?
Мне синтаксис друпала и php плохо знаком. Поэтому с хуком исполнить наверное тоже не получится, а еще в кастомном модуле)

Аватар пользователя voviko voviko 7 декабря 2019 в 19:40
1
<?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 {

    }
}

?>
Аватар пользователя skylanternshop skylanternshop 9 декабря 2019 в 11:11

Здравствуйте! На странице ноды я придумал следующее:

(if)Если у меня нода, в которой field_category = первая категория, то я хочу показывать пользователям таблицу с 4-мя столбцами. Каждый столбец занимает в ширину 25% от общей ширины содержимого, это прописываю в CSS class="flight-tabs-1" (то есть делим поровну ширину для 4-х столбцов)

(else)Если у меня нода, в которой field_category не первая категория, то я хочу показывать пользователям таблицу с 3-мя столбцами. Каждый столбец занимает в ширину 33.3333% от общей ширины содержимого, это прописываю в CSS class="flight-tabs-2" (то есть делим поровну ширину для 3-х столбцов)

        <?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)) {
               
               
                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 ?>

Аватар пользователя skylanternshop skylanternshop 9 декабря 2019 в 11:12

Но код с Вашим приёмом, который я указал в сообщении выше, пока не едет. Разбираюсь в чем ошибка