- 11 Ιαν 2022, 0:46
#7743
Με το default θέμα του opencart δεν είναι εύκολο ο χρήστης να έχει πρόσβαση στην σύγκριση προϊόντων και έτσι σκέφτηκα να την προσθέσω στο header.
Έκανα τις παρακάτω αλλαγές:
Πρόσθεσα την γλώσσα, στο cataloc/language/el-gr/el-gr.php
Στο controller/common/header.php
Μετά το
Στο ίδιο αρχείο για να ανακατευθύνει το κουμπί στην σύγκριση προϊόντων μετά το
Έπειτα πήγα στο catalog/view/theme/default/template/common/header.twig και έπειτα από:
Τέλος στο catalog/view/javascript/common.js 'άλλαξα την παρακάτω συνάρτηση
Προκύπτουν 2 προβλήματα. Το 1 είναι ότι όταν είναι 0 τα προϊόντα στην σύγκριση, δεν εμφανίζεται ο αριθμός 0 αλλά (%s). Αν προστεθεί κάποιον προϊόν το νούμερο εμφανίζεται σωστά (εικόνα στα συνημμένα)
Το 2ο πρόβλημα είναι στο σύνδεσμο του κουμπιού ο οποίος σε κατευθύνει στην αρχική σελίδα και όχι στην σύγκριση προϊόντων. Πρακτικά εμφανίζεται με το href κενό(εικόνα στα συνημμένα)
Έκανα τις παρακάτω αλλαγές:
Πρόσθεσα την γλώσσα, στο cataloc/language/el-gr/el-gr.php
Κώδικας: Επιλογή όλων
Αντίστοιχα έπραξα και στο en-gb.php....
// Buttons
$_['text_compare'] = 'Σύγκριση Προϊόντων (%s)';
$_['button_address_add'] = 'Προσθήκη Διεύθυνσης';
$_['button_back'] = 'Επιστροφή';
....
Στο controller/common/header.php
Μετά το
Κώδικας: Επιλογή όλων
πρόσθεσα την παρακάτω γραμμή για να εμφανίζεται η σύγκριση προϊόντων καθώς και ο αριθμός των προϊόντων που είναι στην σύγκριση
$data['direction'] = $this->language->get('direction');
Κώδικας: Επιλογή όλων
$data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
Στο ίδιο αρχείο για να ανακατευθύνει το κουμπί στην σύγκριση προϊόντων μετά το
Κώδικας: Επιλογή όλων
πρόσθεσα :
$data['telephone'] = $this->config->get('config_telephone');
Κώδικας: Επιλογή όλων
$data['compare'] = $this->url->link('product/compare', '', true);
Έπειτα πήγα στο catalog/view/theme/default/template/common/header.twig και έπειτα από:
Κώδικας: Επιλογή όλων
πρόσθεσα την παρακάτω γραμμή:
<li><a href="{{ wishlist }}" id="wishlist-total" title="{{ text_wishlist }}"><i class="fa fa-heart"></i> <span class="hidden-xs hidden-sm hidden-md">{{ text_wishlist }}</span></a></li>
Κώδικας: Επιλογή όλων
<li><a href="{{ compare }}" id="compare-total" title="{{ text_compare }}"><i class="fa fa-exchange"></i> <span class="hidden-xs hidden-sm hidden-md">{{ text_compare }}</span></a></li>
Τέλος στο catalog/view/javascript/common.js 'άλλαξα την παρακάτω συνάρτηση
Κώδικας: Επιλογή όλων
με την παρακάτω:
var compare = {
'add': function(product_id) {
$.ajax({
url: 'index.php?route=product/compare/add',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
$('.alert-dismissible').remove();
if (json['success']) {
$('#content').parent().before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');
$('#compare-total').html(json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
},
'remove': function() {
}
}
Κώδικας: Επιλογή όλων
Οι γνώσεις μου από ajax είναι νηπιαγωγείου και έφτιαξα τα παραπάνω αντιγράφοντας λίγο τον κώδικα του wishlist και λίγο ψάχνοντας στο internet var compare = {
'add': function(product_id) {
$.ajax({
url: 'index.php?route=product/compare/add',
type: 'post',
data: 'product_id=' + product_id,
dataType: 'json',
success: function(json) {
$('.alert-dismissible').remove();
//ΑDD THIS
if (json['redirect']) {
location = json['redirect'];
}
if (json['success']) {
$('#content').parent().before('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');
//CHANGE THIS
$('#compare-total span').html(json['total']);
$('#compare-total').attr('title', json['total']);
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
},
'remove': function() {
}
}
Προκύπτουν 2 προβλήματα. Το 1 είναι ότι όταν είναι 0 τα προϊόντα στην σύγκριση, δεν εμφανίζεται ο αριθμός 0 αλλά (%s). Αν προστεθεί κάποιον προϊόν το νούμερο εμφανίζεται σωστά (εικόνα στα συνημμένα)
Το 2ο πρόβλημα είναι στο σύνδεσμο του κουμπιού ο οποίος σε κατευθύνει στην αρχική σελίδα και όχι στην σύγκριση προϊόντων. Πρακτικά εμφανίζεται με το href κενό(εικόνα στα συνημμένα)
Πρέπει να συνδεθείτε για να δείτε τα συνημμένα αρχεία σε αυτήν τη δημοσίευση.