VQMod добавить HTML внутри Div не работает

У меня есть этот оригинальный код:

<div class="heading">
      <h1><img src="view/image/customer.png" alt="" /> <?php echo $heading_title; ?></h1>
      <div class="buttons"><a href="<?php echo $cancel; ?>" class="button"><?php echo $button_cancel; ?></a></div>
    </div>

Мой файл VQMod выглядит так:

<modification>
    <id>Backorder</id>
    <version>1.0</version>
    <vqmver>1.2.3</vqmver>
    <author>Author</author>

    <file name="admin/controller/sale/order.php">
        <operation>
            <search position="after"><![CDATA[$this->data['heading_title'] = $this->language->get('heading_title');]]></search>
            <add><![CDATA[
            $this->data['backorder_text'] = 'Backorder';
            $this->data['backorder_link'] = $this->url->link('backorder/backorder', 'token=' . $this->session->data['token'] . '&ouid=' . $order_id, 'SSL');
                ]]></add>
        </operation>
    </file>

    <file name="admin/view/template/sale/order_info.tpl">
        <operation>
            <search position="after"><![CDATA[<?php echo $button_cancel; ?></a>]]></search>
            <add><![CDATA[<a href="<?php echo $backorder_link; ?>" class="button"><?php echo $backorder_text; ?></a>]]></add>
        </operation>
    </file>

</modification>

Если я правильно понимаю VQMod, должен ли это быть выводимый HTML:

    <div class="heading">
            <h1><img src="view/image/order.png" alt=""> Bestellingen</h1>
            <div class="buttons">
                <a href="leLink" target="_blank" class="button">Factuur printen</a>
                <a href="leLink" class="button">Annuleren</a>
                <a href="leLink" class="button">Backorder</a>
            </div>
        </div>

Но это генерируется:

    <div class="heading">
            <h1><img src="view/image/order.png" alt=""> Bestellingen</h1>
            <div class="buttons">
                <a href="leLink" target="_blank" class="button">Factuur printen</a>
                <a href="leLink" class="button">Annuleren</a>
            </div>
            <a href="leLink" class="button">Backorder</a>
        </div>

Как вы видите, ссылка, которую я вставил, вышла из div. Это разрушает макет. Кто-нибудь знает, что я делаю не так?

1 ответ

Решение

Проблема в том, что вы используете after положение, когда вся кнопка div на самом деле представляет собой одну строку, если вы проверяете ее исходный код. Вместо этого используйте replace так:

    <operation>
        <search position="replace"><![CDATA[<?php echo $button_cancel; ?></a>]]></search>
        <add><![CDATA[<?php echo $button_cancel; ?></a><a href="<?php echo $backorder_link; ?>" class="button"><?php echo $backorder_text; ?></a>]]></add>
    </operation>

Обратите внимание, что вы также можете использовать iafter на месте after если вы используете vQmod 2.4.0 или выше

Другие вопросы по тегам