Html 在OpenCart 3.x的产品描述页面中添加自定义字段
我想通过添加一个额外的字段来定制我的基于OpenCart的站点的产品描述页面,但是我无法定义描述页面的文件。我已经检查了目录/视图/主题/(mytemplate)/product/product.twig文件,但这不是我的产品描述页面的文件。在OpenCart 3.x中编辑.twig文件时,您经常会遇到twig缓存问题。您将编辑该文件,但看不到任何更改 为了避免这种情况,, 1.转到您的管理面板 2.在右上角单击齿轮图标。 3.关闭细枝缓存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 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文件和数据库。但别担心。我会描述一切。