ocmod,在控制器Opencart 2.0.1.1中替换
ocmod, replace in controller Opencart 2.0.1.1
我确实在 OpenCart 的论坛上问过这个问题,但没有得到任何答案,所以我试着在这里问,希望能得到一个好的答案:)。
好的,让我们来解决我的问题。我试图在管理员的产品页面上删除产品名称的必填字段。这是因为如果您有一个多语言安装但只想为一种语言命名产品,那么如果您不为每种语言命名它就会出错(是的,这很愚蠢)。
嗯。我确实知道如何使这成为可能,并且想用新的 OCMOD 来实现。我已经在核心文件 "live" 中对其进行了测试,它可以正常工作。但是当我在 ocmod xml 文件中实现它时它不想工作。
<file path="admin/view/template/catalog/product_form.tpl">
<operation>
<search><![CDATA[
<div class="form-group required">
<label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label>]]></search>
<add position="replace"><![CDATA[
<div class="form-group">
<label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label>
]]></add>
</operation>
</file>
<file path="admin/controller/catalog/product.php">
<operation>
<search><![CDATA[
foreach ($this->request->post['product_description'] as $language_id => $value) {
if ((utf8_strlen($value['name']) < 3) || (utf8_strlen($value['name']) > 255)) {
$this->error['name'][$language_id] = $this->language->get('error_name');
}
if ((utf8_strlen($value['meta_title']) < 3) || (utf8_strlen($value['meta_title']) > 255)) {
$this->error['meta_title'][$language_id] = $this->language->get('error_meta_title');
}
}
]]></search>
<add position="replace"><![CDATA[
]]></add>
</operation>
</file>
<file path="admin/controller/setting/setting.php">
<operation>
<search><![CDATA[
if (isset($this->error['name'])) {
$data['error_name'] = $this->error['name'];
} else {
$data['error_name'] = '';
}
]]></search>
<add position="replace"><![CDATA[
]]></add>
</operation>
</file>
我希望这里有人能帮助我解决我的小问题。一切都应该工作正常,但不知何故这对我不起作用。
我有同样的问题,当我得到答案或找到正确的方法时,我所做的(作为一个丑陋的解决方法)是使用索引进行单行搜索,例如:
<search index="131"><![CDATA[
}
]]></search>
所以不用搜索:
<search><![CDATA[
<div class="form-group required">
<label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label>
]]></search>
您可以使用类似的东西:
<search index="X"><![CDATA[
<div class="form-group required">
]]></search>
记住索引是从 0 开始的,还有日志中的行号。
我确实在 OpenCart 的论坛上问过这个问题,但没有得到任何答案,所以我试着在这里问,希望能得到一个好的答案:)。
好的,让我们来解决我的问题。我试图在管理员的产品页面上删除产品名称的必填字段。这是因为如果您有一个多语言安装但只想为一种语言命名产品,那么如果您不为每种语言命名它就会出错(是的,这很愚蠢)。
嗯。我确实知道如何使这成为可能,并且想用新的 OCMOD 来实现。我已经在核心文件 "live" 中对其进行了测试,它可以正常工作。但是当我在 ocmod xml 文件中实现它时它不想工作。
<file path="admin/view/template/catalog/product_form.tpl">
<operation>
<search><![CDATA[
<div class="form-group required">
<label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label>]]></search>
<add position="replace"><![CDATA[
<div class="form-group">
<label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label>
]]></add>
</operation>
</file>
<file path="admin/controller/catalog/product.php">
<operation>
<search><![CDATA[
foreach ($this->request->post['product_description'] as $language_id => $value) {
if ((utf8_strlen($value['name']) < 3) || (utf8_strlen($value['name']) > 255)) {
$this->error['name'][$language_id] = $this->language->get('error_name');
}
if ((utf8_strlen($value['meta_title']) < 3) || (utf8_strlen($value['meta_title']) > 255)) {
$this->error['meta_title'][$language_id] = $this->language->get('error_meta_title');
}
}
]]></search>
<add position="replace"><![CDATA[
]]></add>
</operation>
</file>
<file path="admin/controller/setting/setting.php">
<operation>
<search><![CDATA[
if (isset($this->error['name'])) {
$data['error_name'] = $this->error['name'];
} else {
$data['error_name'] = '';
}
]]></search>
<add position="replace"><![CDATA[
]]></add>
</operation>
</file>
我希望这里有人能帮助我解决我的小问题。一切都应该工作正常,但不知何故这对我不起作用。
我有同样的问题,当我得到答案或找到正确的方法时,我所做的(作为一个丑陋的解决方法)是使用索引进行单行搜索,例如:
<search index="131"><![CDATA[
}
]]></search>
所以不用搜索:
<search><![CDATA[
<div class="form-group required">
<label class="col-sm-2 control-label" for="input-name<?php echo $language['language_id']; ?>"><?php echo $entry_name; ?></label>
]]></search>
您可以使用类似的东西:
<search index="X"><![CDATA[
<div class="form-group required">
]]></search>
记住索引是从 0 开始的,还有日志中的行号。