OpenCart-Hellas 

Η Ελληνική κοινότητα υποστήριξης του Opencart

Θέματα που αφορούν τη γενικότερη λειτουργία του Opencart.
#7743
Με το default θέμα του opencart δεν είναι εύκολο ο χρήστης να έχει πρόσβαση στην σύγκριση προϊόντων και έτσι σκέφτηκα να την προσθέσω στο header.

Έκανα τις παρακάτω αλλαγές:
Πρόσθεσα την γλώσσα, στο cataloc/language/el-gr/el-gr.php
Κώδικας: Επιλογή όλων
....
// Buttons
$_['text_compare']          = 'Σύγκριση Προϊόντων (%s)';
$_['button_address_add']    = 'Προσθήκη Διεύθυνσης';
$_['button_back']           = 'Επιστροφή';
....
Αντίστοιχα έπραξα και στο en-gb.php

Στο 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">&times;</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() {

	}
}
με την παρακάτω:
Κώδικας: Επιλογή όλων
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">&times;</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() {

	}
}
Οι γνώσεις μου από ajax είναι νηπιαγωγείου και έφτιαξα τα παραπάνω αντιγράφοντας λίγο τον κώδικα του wishlist και λίγο ψάχνοντας στο internet

Προκύπτουν 2 προβλήματα. Το 1 είναι ότι όταν είναι 0 τα προϊόντα στην σύγκριση, δεν εμφανίζεται ο αριθμός 0 αλλά (%s). Αν προστεθεί κάποιον προϊόν το νούμερο εμφανίζεται σωστά (εικόνα στα συνημμένα)

Το 2ο πρόβλημα είναι στο σύνδεσμο του κουμπιού ο οποίος σε κατευθύνει στην αρχική σελίδα και όχι στην σύγκριση προϊόντων. Πρακτικά εμφανίζεται με το href κενό(εικόνα στα συνημμένα)
Πρέπει να συνδεθείτε για να δείτε τα συνημμένα αρχεία σε αυτήν τη δημοσίευση.
#7745
Καλησπέρα,

Δοκίμασε τα ακόλουθα
Κώδικας: Επιλογή όλων
$data['text_compare'] = sprintf($this->language->get('text_compare'), !empty($this->session->data['compare']) ? count($this->session->data['compare']) : 0);
Κώδικας: Επιλογή όλων
$data['compare'] = $this->url->link('product/compare');

Καλημέρα, Ανέφερες ότι δεν υπάρχει κάποιο λογισμι[…]

Εννοώ να γυρίσεις προσωρινά όλο το theme στο defau[…]

Θα δοκιμάσω να αλλάξω αυτή την επιλογή και να πάω […]

Δεν ήταν από την εταιρεία hosting το πρόβλημα τελι[…]

Πριν ζητήσετε βοήθεια στο φόρουμ, παρακαλούμε ελέγξτε αν υπάρχει έτοιμη λύση στο OpenCart Extension Marketplace!