I've edited all these files.
I've been thinking, ... should I edit any other files if I'm using Journal 2.xx.x?
Code: Select all
admin/language/en-gb/marketing/coupon.php
Code: Select all
// Entry
.
.
.
$_['entry_category'] = 'Category';
$_['entry_manufacturer'] = 'Manufacturer';
.
.
.
Code: Select all
admin/controller/marketing/coupon.php
Code: Select all
if (isset($this->request->post['coupon_category'])) {
$categories = $this->request->post['coupon_category'];
} elseif (isset($this->request->get['coupon_id'])) {
$categories = $this->model_marketing_coupon->getCouponCategories($this->request->get['coupon_id']);
} else {
$categories = array();
}
$this->load->model('catalog/category');
$data['coupon_category'] = array();
foreach ($categories as $category_id) {
$category_info = $this->model_catalog_category->getCategory($category_id);
if ($category_info) {
$data['coupon_category'][] = array(
'category_id' => $category_info['category_id'],
'name' => ($category_info['path'] ? $category_info['path'] . ' > ' : '') . $category_info['name']
);
}
}
if (isset($this->request->post['coupon_manufacturer'])) {
$manufacturer = $this->request->post['coupon_manufacturer'];
} elseif (isset($this->request->get['coupon_id'])) {
$manufacturer = $this->model_marketing_coupon->getCouponManufacturer($this->request->get['coupon_id']);
} else {
$manufacturer = array();
}
$this->load->model('catalog/manufacturer');
$data['coupon_manufacturer'] = array();
foreach ($manufacturer as $manufacturer_id) {
$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id);
if ($manufacturer_info) {
$data['coupon_manufacturer'][] = array(
'manufacturer_id' => $manufacturer_info['manufacturer_id'],
'name' => ($manufacturer_info['path'] ? $manufacturer_info['path'] . ' > ' : '') . $manufacturer_info['name']
);
}
}
Code: Select all
if (isset($data['coupon_category'])) {
foreach ($data['coupon_category'] as $category_id) {
$this->db->query("INSERT INTO " . DB_PREFIX . "coupon_category SET coupon_id = '" . (int)$coupon_id . "', category_id = '" . (int)$category_id . "'");
}
}
if (isset($data['coupon_manufacturer'])) {
foreach ($data['coupon_manufacturer'] as $manufacturer_id) {
$this->db->query("INSERT INTO " . DB_PREFIX . "coupon_manufacturer SET coupon_id ='" . (int)$coupon_id . "', manufacturer_id = '" . (int)$manufacturer_id . "'");
}
}
$this->db->query("DELETE FROM " . DB_PREFIX . "coupon_category WHERE coupon_id = '" . (int)$coupon_id . "'");
if (isset($data['coupon_category'])) {
foreach ($data['coupon_category'] as $category_id) {
$this->db->query("INSERT INTO " . DB_PREFIX . "coupon_category SET coupon_id = '" . (int)$coupon_id . "', category_id = '" . (int)$category_id . "'");
}
}
$this->db->query("DELETE FROM " . DB_PREFIX . "coupon_manufacturer WHERE coupon_id = '" . (int)$coupon_id . "'");
if (isset($data['coupon_manufacturer'])) {
foreach ($data['coupon_manufacturer'] as $manufacturer_id) {
$this->db->query("INSERT INTO " . DB_PREFIX . "coupon_manufacturer SET coupon_id = '" . (int)$coupon_id . "', manufacturer_id = '" . (int)$manufacturer_id . "'");
}
}
public function getCouponCategories($coupon_id) {
$coupon_category_data = array();
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "coupon_category WHERE coupon_id = '" . (int)$coupon_id . "'");
foreach ($query->rows as $result) {
$coupon_category_data[] = $result['category_id'];
}
return $coupon_category_data;
}
public function getCouponManufacturer($coupon_id) {
$coupon_manufacturer_data = array();
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "coupon_manufacturer WHERE coupon_id = '" . (int)$coupon_id . "'");
foreach ($query->rows as $result) {
$coupon_manufacturer_data[] = $result['manufacturer_id'];
}
return $coupon_manufacturer_data;
}
Code: Select all
admin/view/template/marketing/coupon_form.twig
Code: Select all
<div class="form-group">
<label class="col-sm-2 control-label" for="input-category"><span data-toggle="tooltip" title="{{ help_category }}">{{ entry_category }}</span></label>
<div class="col-sm-10">
<input type="text" name="category" value="" placeholder="{{ entry_category }}" id="input-category" class="form-control" />
<div id="coupon-category" class="well well-sm" style="height: 150px; overflow: auto;"> {% for coupon_category in coupon_category %}
<div id="coupon-category{{ coupon_category.category_id }}"><i class="fa fa-minus-circle"></i> {{ coupon_category.name }}
<input type="hidden" name="coupon_category[]" value="{{ coupon_category.category_id }}" />
</div>
{% endfor %} </div>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label" for="input-manufacturer"><span data-toggle="tooltip" title="{{ help_manufacturer }}">{{ entry_manufacturer }}</span></label>
<div class="col-sm-10">
<input type="text" name="manufacturer" value="" placeholder="{{ entry_manufacturer }}" id="input-manufacturer" class="form-control" />
<div id="coupon-manufacturer" class="well well-sm" style="height: 150px; overflow: auto;"> {% for coupon_manufacturer in coupon_manufacturer %}
<div id="coupon-manufacturer{{ coupon_manufacturer.manufacturer_id }}"><i class="fa fa-minus-circle"></i> {{ coupon_manufacturer.name }}
<input type="hidden" name="coupon_manufacturer[]" value="{{ coupon_manufacturer.manufacturer_id }}" />
</div>
{% endfor %} </div>
</div>
</div>
// Category
$('input[name=\'category\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=catalog/category/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item['name'],
value: item['category_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'category\']').val('');
$('#coupon-category' + item['value']).remove();
$('#coupon-category').append('<div id="coupon-category' + item['value'] + '"><i class="fa fa-minus-circle"></i> ' + item['label'] + '<input type="hidden" name="coupon_category[]" value="' + item['value'] + '" /></div>');
}
});
$('#coupon-category').delegate('.fa-minus-circle', 'click', function() {
$(this).parent().remove();
});
// Manufacturer
$('input[name=\'manufacturer\']').autocomplete({
'source': function(request, response) {
$.ajax({
url: 'index.php?route=catalog/manufacturer/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request),
dataType: 'json',
success: function(json) {
response($.map(json, function(item) {
return {
label: item['name'],
value: item['manufacturer_id']
}
}));
}
});
},
'select': function(item) {
$('input[name=\'manufacturer\']').val('');
$('#coupon-manufacturer' + item['value']).remove();
$('#coupon-manufacturer').append('<div id="coupon-manufacturer' + item['value'] + '"><i class="fa fa-minus-circle"></i> ' + item['label'] + '<input type="hidden" name="coupon_manufacturer[]" value="' + item['value'] + '" /></div>');
}
});
Code: Select all
catalog/model/extension/total/coupon.php
Code: Select all
// Categories
$coupon_category_data = array();
$coupon_category_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "coupon_category` cc LEFT JOIN `" . DB_PREFIX . "category_path` cp ON (cc.category_id = cp.path_id) WHERE cc.coupon_id = '" . (int)$coupon_query->row['coupon_id'] . "'");
foreach ($coupon_category_query->rows as $category) {
$coupon_category_data[] = $category['category_id'];
}
$product_data = array();
if ($coupon_product_data || $coupon_category_data) {
foreach ($this->cart->getProducts() as $product) {
if (in_array($product['product_id'], $coupon_product_data)) {
$product_data[] = $product['product_id'];
continue;
}
foreach ($coupon_category_data as $category_id) {
$coupon_category_query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "product_to_category` WHERE `product_id` = '" . (int)$product['product_id'] . "' AND category_id = '" . (int)$category_id . "'");
if ($coupon_category_query->row['total']) {
$product_data[] = $product['product_id'];
continue;
}
}
}
if (!$product_data) {
$status = false;
}
}
// Manufacturers
$coupon_manufacturer_data = array();
$coupon_manufacturer_query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "coupon_manufacturer` cc LEFT JOIN `" . DB_PREFIX . "manufacturer_path` cp ON (cc.manufacturer_id = cp.path_id) WHERE cc.coupon_id = '" . (int)$coupon_query->row['coupon_id'] . "'");
foreach ($coupon_manufacturer_query->rows as $manufacturer) {
$coupon_manufacturer_data[] = $manufacturer['manufacturer_id'];
}
$product_data = array();
if ($coupon_product_data || $coupon_manufacturer_data) {
foreach ($this->cart->getProducts() as $product) {
if (in_array($product['product_id'], $coupon_product_data)) {
$product_data[] = $product['product_id'];
continue;
}
foreach ($coupon_manufacturer_data as $manufacturer_id) {
$coupon_manufacturer_query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "product_to_manufacturer` WHERE `product_id` = '" . (int)$product['product_id'] . "' AND manufacturer_id = '" . (int)$manufacturer_id . "'");
if ($coupon_manufacturer_query->row['total']) {
$product_data[] = $product['product_id'];
continue;
}
}
}
if (!$product_data) {
$status = false;
}
}