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 или выше