Comers
@Comers
Frontend Dev.

Как упростить и уменьшить код php в opencart?

В списке товаров в админке есть задача выводить кастомные поля под названием товара с соответствующим классом.
Всего 8 полей (количество может меняться). В эти 8 полей вносят известные данные, но порядок их непредсказуем. Вводные данные надо получать, менять и выводить.

Условия (if elseif) вроде как глупо использовать (слишком громоздким код получается), но другого варианта не знаю,т.к. я новичек.

Как это можно сделать правильно? Может в контроллере будет правильным это сделать...

<!-- Поле 1-->
        <?php if ($product['entry_1'] == "Коля") {?>
        <span class="book"><?php echo $product['entry_1'];?></span>
        <?php } elseif ($product['entry_1'] == "Стас") {?>
        <span class="velosiped"><?php echo $product['entry_1'];?></span>
        <?php } elseif ($product['entry_1'] == "Лена") {?>
        <span class="kamen"><?php echo $product['entry_1'];?></span>
        <?php} elseif ($product['entry_1'] == "Фома") {?>
        <span class="armeniya"><?php echo $product['entry_1'];?></span>
        <?php } elseif ($product['entry_1'] == "Олег") {?>
        <span class="buldog"><?php echo $product['entry_1'];?></span>
        <?php } elseif ($product['entry_1'] == "Саша") {?>
        <span class="kirpich"><?php echo $product['entry_1'];?></span>
        <?php } else {?>
        <span class="default"><?php echo $product['entry_1'];?></span>
        <?php }?>

        <!-- Поле 2 -->
        <?php if ($product['entry_2'] == "Коля") {?>
        <span class="book"><?php echo $product['entry_2'];?></span>
        <?php } elseif ($product['entry_2'] == "Стас") {?>
        <span class="velosiped"><?php echo $product['entry_2'];?></span>
        <?php } elseif ($product['entry_2'] == "Лена") {?>
        <span class="kamen"><?php echo $product['entry_2'];?></span>
        <?php} elseif ($product['entry_2'] == "Фома") {?>
        <span class="armeniya"><?php echo $product['entry_2'];?></span>
        <?php } elseif ($product['entry_2'] == "Олег") {?>
        <span class="buldog"><?php echo $product['entry_2'];?></span>
        <?php } elseif ($product['entry_2'] == "Саша") {?>
        <span class="kirpich"><?php echo $product['entry_2'];?></span>
        <?php } else {?>
        <span class="default"><?php echo $product['entry_2'];?></span>
        <?php }?>


https://liveweave.com/4VxxdV
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
<?
$class = ['Коля'=>"book",'Стас'=>"velosiped",'Лена'=>"kamen",...];
?>
<span class="<?=$calass[$product['entry_1']];?>"><?=$product['entry_1'];?></span>
...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы