ocmod,替换为控制器Opencart 2.0.1.1

时间:2015-02-24 12:45:25

标签: opencart2.x

我确实在OpenCart的论坛上提出了这个问题,但没有得到任何答案,所以我试着在这里问一下,希望得到一个好的答案:)。

好吧,让我们回答我的问题。我正在尝试在管理员的产品页面上删除产品名称的必填字段。这是因为如果您有多语言安装,但只想为1种语言命名产品,那么如果您不为每种语言命名,就会出错(是的,这是愚蠢的)。

好。我知道如何使这成为可能,并希望使用新的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>

我希望有人可以帮我解决我的小问题。所有人都应该工作得很好,但不知怎的,这对我来说不起作用。

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我做的(作为一个丑陋的解决方法),当我得到答案或找到正确的方法是使用索引的单行搜索,如:

<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的,也是日志中的行号。