我需要在每个页面的产品中显示标签:
- category
- search results
- related products
- featured
- special
- latest
- bestsellers
- main picture on product page
我有以下代码,仅在产品视图中显示:
有人能帮我吗?
<?xml version="1.0" encoding="utf-8"?>
<modification>
<name>Percentage of special price Simple by TobikSoft.com</name>
<code>percentage-of-special-price</code>
<version>1.1</version>
<file path="catalog/model/catalog/product.php">
<operation error="abort" info="">
<search><![CDATA[
class ModelCatalogProduct extends Model {
]]></search>
<add position="after"><![CDATA[
public function getPercentage($product_id) {
$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");
if ($query->num_rows && $query->row['special']) {
return $percentage = round(($query->row['price'] - $query->row['special']) / $query->row['price'] * 100);
} else {
return false;
}
}
]]></add>
</operation>
</file>
<file path="admin/controller/setting/setting.php">
<operation info="add variables" error="abort" >
<search><![CDATA[
$data['tab_server'] = $this->language->get('tab_server');
]]></search>
<add position="after"><![CDATA[
if (isset($this->request->post['config_percentage_status'])) {
$data['config_percentage_status'] = $this->request->post['config_percentage_status'];
} else {
$data['config_percentage_status'] = $this->config->get('config_percentage_status');
}
]]></add>
</operation>
</file>
<file path="admin/view/template/setting/setting.tpl">
<operation error="abort" info="backend">
<search><![CDATA[
<input type="hidden" name="config_icon" value="<?php echo $config_icon; ?>" id="input-icon" />
]]></search>
<add position="replace" offset="2" ><![CDATA[
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-config_percentage_status">Labels % of special price <br><br>More features are available in the <a href="https://tobiksoft.com/percentage-of-special-price">Full version</a></label>
<div class="col-sm-10">
<select name="config_percentage_status" id="input-config_percentage_status" class="form-control">
<?php if ($config_percentage_status == '0') { ?>
<option value="0" selected="selected"><?php echo "OFF"; ?></option>
<?php } else { ?>
<option value="0"><?php echo "OFF"; ?></option>
<?php } ?>
<?php if ($config_percentage_status == '1') { ?>
<option value="1" selected="selected"><?php echo "ON"; ?></option>
<?php } else { ?>
<option value="1"><?php echo "ON"; ?></option>
<?php } ?>
</select><br>
<label class="col-sm-2 control-label" for="input-config_percentage_align_x"><span data-toggle="tooltip" title="This setting is available in the Full Version">Align horizontal</span></label>
<div class="col-sm-2">
<?php !empty($config_percentage_align_x) ? : $config_percentage_align_x = 'right' ; ?>
<span data-toggle="tooltip" title="This setting is available in the Full Version"><select name="config_percentage_align_x" id="input-config_percentage_align_x" class="form-control" disabled>
<option value="right" <?php if ($config_percentage_align_x == 'right' ) echo 'selected' ; ?>>Right</option>
<option value="left" <?php if ($config_percentage_align_x == 'left' ) echo 'selected' ; ?>>Left</option>
</select></span><br>
</div>
<label class="col-sm-2 control-label" for="input-config_percentage_background"><span data-toggle="tooltip" title="This setting is available in the Full Version">Label color</span></label>
<div class="col-sm-2">
<span data-toggle="tooltip" title="This setting is available in the Full Version"><input type="color" name="config_percentage_background" value="<?php echo !empty($config_percentage_background) ? $config_percentage_background : '#0000FF'; ?>" placeholder="config_percentage_background" id="input-config_percentage_background" class="form-control" disabled /></span><br>
</div>
<label class="col-sm-2 control-label" for="input-config_percentage_color"><span data-toggle="tooltip" title="This setting is available in the Full Version">Text color</span></label>
<div class="col-sm-2">
<span data-toggle="tooltip" title="This setting is available in the Full Version"><input type="color" name="config_percentage_color" value="<?php echo !empty($config_percentage_color) ? $config_percentage_color : '#FFFFFF'; ?>" placeholder="config_percentage_color" id="input-config_percentage_color" class="form-control" disabled /></span><br>
</div>
</div>
</div>
]]></add>
</operation>
</file>
<file path="catalog/controller/product/product.php">
<operation error="abort" info="">
<search><![CDATA[
$data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');
]]></search>
<add position="after"><![CDATA[
$data['percentage'] = $this->model_catalog_product->getPercentage($product_id);
]]></add>
</operation>
<operation error="abort" info="">
<search><![CDATA[
$product_info = $this->model_catalog_product->getProduct($product_id);
]]></search>
<add position="after"><![CDATA[
$data['config_percentage_status'] = $this->config->get('config_percentage_status');
$data['config_percentage_align_x'] = 'right';
$data['config_percentage_background'] = '#0000FF';
$data['config_percentage_color'] = '#FFFFFF';
]]></add>
</operation>
</file>
<file path="catalog/view/theme/*/template/product/product.tpl">
<operation error="skip" info="">
<search><![CDATA[
<a class="thumbnail" href="<?php echo $popup; ?>"
]]></search>
<add position="after"><![CDATA[
<?php if ($config_percentage_status == 1) {
if (isset($percentage)) {
if ($percentage > 0 && $percentage < 100 ) { ?>
<span style='position: absolute; top: 5px; <?php echo !empty($config_percentage_align_x) ? $config_percentage_align_x : 'right'; ?>: 20px; background: <?php echo !empty($config_percentage_background) ? $config_percentage_background : '#EA2E49'; ?>; color: <?php echo !empty($config_percentage_color) ? $config_percentage_color : '#FFFFFF'; ?>; padding: 5px 5px 5px 5px;'><b><?php echo '-' . $percentage . '%'; ?></b></span>
<?php }}} ?>
]]></add>
</operation>
</file>
</modification>