我正在尝试为 opencart 开发一个扩展。我正在尝试读取所有树枝文件中的自定义标志变量“dataopen_location”。这个变量(dataopen_location)在树枝文件中用于决定是否在新选项卡中打开所有链接。该变量由用户在扩展的管理面板(主页)中设置。我正在尝试$data
在所有控制器文件的数组中添加变量。用于在控制器文件中发送数据的代码:
<file path="catalog/controller/*/*.php">
<operation>
<search><![CDATA[$this->response->setOutput($this->load->view('error/not_found', $data));]]></search>
<add position="before"><![CDATA[
if ($this->config->get('module_dataopen_location') == 1){
$data['dataopen_location'] = "1";
}
]]></add>
</operation>
</file>
然后在树枝文件中,我有一个“if”条件来检查是否设置了“dataopen_location”。用于更新 install.xml 中的 .twig 文件的代码
<file path="catalog/view/theme/*/template/*/*.twig">
<operation>
<search><![CDATA[<a href]]></search>
<add position="after"><![CDATA[{% if dataopen_location==1 or dataopen_location=='1' %}target="_blank"{% else %}target="_parent"{% endif %} ]]></add>
</operation>
</file>
<file path="catalog/view/theme/*/template/*/*/*.twig">
<operation>
<search><![CDATA[<a href]]></search>
<add position="after"><![CDATA[{% if dataopen_location==1 or dataopen_location=='1' %}target="_blank"{% else %}target="_parent"{% endif %}]]></add>
</operation>
</file>
<file path="catalog/view/theme/*/template/*/*/*/*.twig">
<operation>
<search><![CDATA[<a href]]></search>
<add position="after"><![CDATA[ {% if dataopen_location==1 or dataopen_location=='1' %}target="_blank"{% else %}target="_parent"{% endif %} ]]></add>
</operation>
</file>
但是每次显示“其他”条件时,即。target=" parent" 即使变量“module dataopen_location”设置为 1。有人能指出我做错了什么吗?我使用正确的变量($data)发送(附加 'dataopen_location')标志吗?如果没有,我应该在哪里添加控制器代码?我正在使用 opencart 版本3.0.3.8 我对 ocmod 和 stackoverflow 非常陌生,所以如果我错过了一些最佳实践,我很抱歉,请帮助我。
注意:我知道在新选项卡中打开所有链接会破坏网站,但这不是问题。