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');
#7845
Είχα άλλες προτεραιότητες και έπιασα το συγκεκριμένο ζήτημα μετά από καιρό. Το έλυσα μάλιστα σε λιγότερο από 5 λεπτά.
Το πρόβλημα βρίσκεται στην λανθασμένη επιλογή αρχείου γλώσσας. Η προσθήκη πρέπει να γίνει στο /public_html/catalog/language/el-gr/common/header.php και ΟΧΙ στο cataloc/language/el-gr/el-gr.php

Αντίστοιχα η αλλαγή πρέπει να γίνει και σε όποια άλλη γλώσσα χρησιμοποιείτε.

Αλεξάνδρα σ' ευχαριστώ άλλη μια φορά για την βοήθεια σου. Κρατάς ζωντανή την κοινότητα !
#7846
Να 'σαι καλά!
email μέσω SMTP

Καλημέρα, Το έχω δοκιμάσει και με ssl:////mail.m[…]

Απλά να αναφέρω ότι με ένα πρόσθετο έγινε αυτό που[…]

Καλησπέρα, πως μπορώ να προσθέσω το usergroup στο […]

Καλησπέρα, Ναι, με 15000 θα είσαι σιγουρα οκ. Για[…]

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