Создать функцию и вызвать ее - PullRequest
0 голосов
/ 31 января 2020

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

У меня есть этот фрагмент кода:

<div class="av-product-specs-list-container">
    <input type="checkbox" id="chck1" checked>
    <label class="av-product-specs-title" for="chck1">Algemene informatie</label>
    <div class="av-product-specs-table-list first-spec-list">

        <?php if( $av_merk != "" ) : ?>
            <div class="av-product-specs-table-row">
                <div class="av-product-specs-table-row-left">Merk</div>
                <div class="av-product-specs-table-row-right">
                    <?php echo $av_merk; ?>
                </div>
            </div>
        <?php endif; ?>

        <?php 
            $av_attribute_group = $_product->getAttributes(37);

            foreach ($av_attribute_group as $av_attribute_groups):

                $av_attr_name = $av_attribute_groups->getName();
                $av_attr_label = $_product->getResource()->getAttribute($av_attr_name)->getFrontend()->getLabel($_product);
                $av_attr_value = $_product->getResource()->getAttribute($av_attr_name)->getFrontend()->getValue($_product);

                if( $av_attr_value != "" ) :

                ?>

                    <div class="av-product-specs-table-row">
                        <div class="av-product-specs-table-row-left"><?php echo $av_attr_label; ?></div>
                        <div class="av-product-specs-table-row-right">
                            <?php 
                                if( $av_attr_value == "Yes" || $av_attr_value == "Ja" ) : ?>
                                    <div class="av-spec-yes"></div>
                                <?php elseif( $av_attr_value == "No" || $av_attr_value == "Nee" ) : ?>
                                    <div class="av-spec-no"></div>
                                <?php else : 
                                    echo $av_attr_value;
                                endif; 
                            ?>
                        </div>
                    </div>

                <?php endif; ?>             
        <?php endforeach ?>

    </div>
</div>

Вместо создания этого фрагмента кода более 40 раз, мне нужно создать функцию, которую я могу вызывать, и изменить только $ av_attribute_group = $ _product-> getAttributes (37); потому что мне нужно привести разные идентификаторы.

Как я могу это сделать?

1 Ответ

1 голос
/ 31 января 2020

Вы можете просто заключить свой код в декларацию function. Вам необходимо включить переменные $_product и $av_merk в качестве параметров, а также передать значение $id для передачи в $_product->getAttributes. Например:

function show_av($_product, $av_merk, $id) {
?>
... your code
<?php
}

show_av($_product, $av_merk, 37);
?>

Внутри вашего кода вы бы заменили

$av_attribute_group = $_product->getAttributes(37);

на

$av_attribute_group = $_product->getAttributes($id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...