Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在OpenCart 2.x.x.x管理员(OCmod)中将必需的模型字段设置为可选_Php_Xml_Opencart_Opencart2.x - Fatal编程技术网

Php 在OpenCart 2.x.x.x管理员(OCmod)中将必需的模型字段设置为可选

Php 在OpenCart 2.x.x.x管理员(OCmod)中将必需的模型字段设置为可选,php,xml,opencart,opencart2.x,Php,Xml,Opencart,Opencart2.x,我试图通过在OpenCart版本2.0.1.1中编写以下OCmod,使OpenCart中的必需模型字段成为可选字段 <modification> <name>Remove required model (OC 2.0+)</name> <version>v1.0</version> <link>http://www.example.com</link> <author>

我试图通过在OpenCart版本2.0.1.1中编写以下OCmod,使OpenCart中的必需模型字段成为可选字段

<modification>
    <name>Remove required model (OC 2.0+)</name>
    <version>v1.0</version>
    <link>http://www.example.com</link> 
    <author>John Doe</author>
    <code>fv16343000</code>

    <!-- Remove required "Model" from Product controller -->
    <file path="admin/model/catalog/product.php">
    <operation>
        <search><![CDATA[if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {]]></search>
        <add position="replace"><![CDATA[if (utf8_strlen($this->request->post['model']) > 64) {]]></add>
    </operation>
    </file>
</modification>
如你所见,我的目的是替换条件,使其忽略最小长度

我还修改了product_form.tpl,删除了form group旁边的必需类:

      <div class="form-group">
        <label class="col-sm-2 control-label" for="input-model"><?php echo $entry_model; ?></label>
        <div class="col-sm-10">
          <input type="text" name="model" value="<?php echo $model; ?>" placeholder="<?php echo $entry_model; ?>" id="input-model" class="form-control" />
          <?php if ($error_model) { ?>
          <div class="text-danger"><?php echo $error_model; ?></div>
          <?php } ?>
        </div>
      </div>
然后我尝试添加没有模型的产品,星号消失了,但错误仍然弹出,说我需要用最少1个字符到最多64个字符来完成字段

我认为我的OCmod可能不够好,所以我尝试直接编辑controller product.php,如OCmod中所示。错误仍然存在,因此我从.tpl中完全删除了条件和以下代码:

  <?php if ($error_model) { ?>
  <div class="text-danger"><?php echo $error_model; ?></div>
  <?php } ?>  
删除引导类不显示星号,但由于某些原因,该字段仍然是必需的,即使控制器中的条件消失了


我做错了什么?如何使“模型”字段成为可选字段?

一旦应用vQmod,将覆盖的文件连同修改一起重写到vqcache文件夹。因此,更改原始文件不再生效

通过删除vqcache文件夹中的相应文件来清除vQmod缓存。您还可以检查同一文件夹中的文件,以确保您最近的mod已生效


现在,继续您正在尝试的操作,删除长度限制。要做到这一点,只需将if语句替换为if false{,以确保它不会触发。

我开发了一个免费扩展,使添加产品时模型字段成为可选的。我希望这就是您所寻找的-


Joel

我通过使用OCmod解决了我的问题。删除模型的正确方法是:

<!-- Remove required class from register.tpl-->
<file path="admin/view/template/catalog/product_form.tpl">
<operation>
    <search offset="1" index="2"><![CDATA[<div class="form-group required">]]></search>
    <add position="replace"><![CDATA[<div class="form-group">]]></add>
</operation>
</file>
<!-- Comment the error line from the controller-->
<file path="admin/controller/catalog/product.php">
<operation>
    <search><![CDATA[$this->error['model'] = $this->language->get('error_model');]]></search>
    <add position="replace"><![CDATA[//$this->error['model'] = $this->language->get('error_model');]]></add>
</operation>
</file>
如果在此之前使用了正确的标记,则此代码也可以用作VQmod

对于那些不了解OCMOD如何工作并且仍然希望硬编码删除强制模型的人,您需要做以下几点:

打开admin/view/template/catalog/product_form.tpl 搜索与模型字段相关的类,并删除所需的类 打开admin/controller/catalog/product.php文件 寻找这行:$this->error['model']=$this->language->get'error\u model'; 评论一下
您完成了。

我尝试在OCmod未激活的情况下完全删除该条件,但它似乎没有从那里触发。我仍然收到错误。我很困惑,如果不使用它,为什么会出现该错误?