Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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
Html 在OpenCart 3.x的产品描述页面中添加自定义字段_Html_Css_Twig_Opencart_Opencart 3 - Fatal编程技术网

Html 在OpenCart 3.x的产品描述页面中添加自定义字段

Html 在OpenCart 3.x的产品描述页面中添加自定义字段,html,css,twig,opencart,opencart-3,Html,Css,Twig,Opencart,Opencart 3,我想通过添加一个额外的字段来定制我的基于OpenCart的站点的产品描述页面,但是我无法定义描述页面的文件。我已经检查了目录/视图/主题/(mytemplate)/product/product.twig文件,但这不是我的产品描述页面的文件。在OpenCart 3.x中编辑.twig文件时,您经常会遇到twig缓存问题。您将编辑该文件,但看不到任何更改 为了避免这种情况,, 1.转到您的管理面板 2.在右上角单击齿轮图标。 3.关闭细枝缓存 让我知道这是否有用 在产品说明OpenCart 3.X

我想通过添加一个额外的字段来定制我的基于OpenCart的站点的产品描述页面,但是我无法定义描述页面的文件。我已经检查了目录/视图/主题/(mytemplate)/product/product.twig文件,但这不是我的产品描述页面的文件。

在OpenCart 3.x中编辑.twig文件时,您经常会遇到twig缓存问题。您将编辑该文件,但看不到任何更改

为了避免这种情况,, 1.转到您的管理面板 2.在右上角单击齿轮图标。 3.关闭细枝缓存


让我知道这是否有用

在产品说明OpenCart 3.X(多语言)中添加新字段

在右上角管理员的仪表板上单击齿轮图标。在弹出窗口中,关闭缓存(两个)并刷新。这是必要的,以便可以看到编辑的结果

1。首先,您需要在数据库中添加一个新字段。使用phpMyAdmin,打开数据库,查找表oc_产品描述(oc_-是我的前缀,使用你的前缀)

当您打开oc_产品描述时,请打开SQL选项卡并写入(不要忘记将oc_更改为您的DB前缀):

这将添加一个新的列标题

2。版本管理模型admin/model/catalog/product.php

发现(≈12行)

取代

foreach ($data['product_description'] as $language_id => $value) {
  $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', subtitle = '" . $this->db->escape($value['subtitle']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
}
foreach ($data['product_description'] as $language_id => $value) {
  $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', subtitle = '" . $this->db->escape($value['subtitle']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
}
发现(≈(第146行)

取代

foreach ($data['product_description'] as $language_id => $value) {
  $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', subtitle = '" . $this->db->escape($value['subtitle']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
}
foreach ($data['product_description'] as $language_id => $value) {
  $this->db->query("INSERT INTO " . DB_PREFIX . "product_description SET product_id = '" . (int)$product_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', subtitle = '" . $this->db->escape($value['subtitle']) . "', description = '" . $this->db->escape($value['description']) . "', tag = '" . $this->db->escape($value['tag']) . "', meta_title = '" . $this->db->escape($value['meta_title']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "'");
}
发现(≈432行)

加在下面

  'subtitle'         => $result['subtitle'],
if (isset($this->error['subtitle'])) {
  $data['error_subtitle'] = $this->error['subtitle'];
} else {
  $data['error_subtitle'] = array();
}
<div class="form-group">
  <label class="col-sm-2 control-label" for="input-name{{ language.language_id }}">{{ entry_subtitle }}</label>
  <div class="col-sm-10">
    <input type="text" name="product_description[{{ language.language_id }}][subtitle]" value="{{ product_description[language.language_id] ? product_description[language.language_id].subtitle }}" placeholder="{{ entry_subtitle }}" id="input-subtitle{{ language.language_id }}" class="form-control"/>
    {% if error_subtitle[language.language_id] %}
      <div class="text-danger">{{ error_subtitle[language.language_id] }}</div>
    {% endif %} </div>
</div>
'subtitle'         => $query->row['subtitle'],
<h3>{{ subtitle }}</h3>
3。版本管理模型admin/controller/catalog/product.php

发现(≈500行)

加在下面

  'subtitle'         => $result['subtitle'],
if (isset($this->error['subtitle'])) {
  $data['error_subtitle'] = $this->error['subtitle'];
} else {
  $data['error_subtitle'] = array();
}
<div class="form-group">
  <label class="col-sm-2 control-label" for="input-name{{ language.language_id }}">{{ entry_subtitle }}</label>
  <div class="col-sm-10">
    <input type="text" name="product_description[{{ language.language_id }}][subtitle]" value="{{ product_description[language.language_id] ? product_description[language.language_id].subtitle }}" placeholder="{{ entry_subtitle }}" id="input-subtitle{{ language.language_id }}" class="form-control"/>
    {% if error_subtitle[language.language_id] %}
      <div class="text-danger">{{ error_subtitle[language.language_id] }}</div>
    {% endif %} </div>
</div>
'subtitle'         => $query->row['subtitle'],
<h3>{{ subtitle }}</h3>
发现

4。编辑管理员语言admin/language/en gb(或您的管理员语言)/catalog/product.php

在末尾加上

$_['entry_subtitle']         = 'Product Subtitle';
$_['error_subtitle']         = 'Product Subtitle must less than 255 characters!';
5。编辑管理员视图管理员/视图/模板/目录/产品

发现(≈50行)

加在下面

  'subtitle'         => $result['subtitle'],
if (isset($this->error['subtitle'])) {
  $data['error_subtitle'] = $this->error['subtitle'];
} else {
  $data['error_subtitle'] = array();
}
<div class="form-group">
  <label class="col-sm-2 control-label" for="input-name{{ language.language_id }}">{{ entry_subtitle }}</label>
  <div class="col-sm-10">
    <input type="text" name="product_description[{{ language.language_id }}][subtitle]" value="{{ product_description[language.language_id] ? product_description[language.language_id].subtitle }}" placeholder="{{ entry_subtitle }}" id="input-subtitle{{ language.language_id }}" class="form-control"/>
    {% if error_subtitle[language.language_id] %}
      <div class="text-danger">{{ error_subtitle[language.language_id] }}</div>
    {% endif %} </div>
</div>
'subtitle'         => $query->row['subtitle'],
<h3>{{ subtitle }}</h3>
7。编辑客户控制器目录/controller/product/product.php

发现(≈228行)

加在下面

if (utf8_strlen($value['subtitle']) > 255) {
  $this->error['subtitle'][$language_id] = $this->language->get('error_subtitle');
}
$data['subtitle'] = $product_info['subtitle'];
8。编辑客户视图目录/视图/主题/默认(或您的主题)/模板/产品/产品.twig

发现

{{heading\u title}
加在下面

  'subtitle'         => $result['subtitle'],
if (isset($this->error['subtitle'])) {
  $data['error_subtitle'] = $this->error['subtitle'];
} else {
  $data['error_subtitle'] = array();
}
<div class="form-group">
  <label class="col-sm-2 control-label" for="input-name{{ language.language_id }}">{{ entry_subtitle }}</label>
  <div class="col-sm-10">
    <input type="text" name="product_description[{{ language.language_id }}][subtitle]" value="{{ product_description[language.language_id] ? product_description[language.language_id].subtitle }}" placeholder="{{ entry_subtitle }}" id="input-subtitle{{ language.language_id }}" class="form-control"/>
    {% if error_subtitle[language.language_id] %}
      <div class="text-danger">{{ error_subtitle[language.language_id] }}</div>
    {% endif %} </div>
</div>
'subtitle'         => $query->row['subtitle'],
<h3>{{ subtitle }}</h3>
{{subtitle}
恭喜你!我们已经做到了!经过数千次操作后,您必须清除ocmod缓存。转到管理员,扩展-修改,右上角按钮刷新。然后返回管理仪表板,单击右上角的齿轮图标。在弹出窗口中打开缓存(两个)并刷新它。更多关于缓存OpenCart 3.X缓存清理的信息


这适用于任何OpenCart 3.X,但在一些较旧的3.X版本中,您必须通过清理文件系统中的存储来清除twig缓存。

实际上是这样。当然还有相应的控制器文件。编辑文件后,不要忘记刷新修改和清除管理仪表板中的缓存。您要在模板中检索的所有数据都必须在相应的控制器文件中定义。@K.B.我已清除了管理仪表板和浏览器中的缓存。我只想在页面中添加自定义部分。自定义部分,您想从管理面板编辑吗?像第二个描述?请写更多细节。我想在产品标题下面添加一个子标题。我已经搜索了相同的扩展名,但找不到任何内容。好的。我懂了。会为你写下详细的答案,你应该EDID6文件和数据库。但别担心。我会描述一切。