Page 1 of 1

Μενού γλώσσας: εμφάνιση τρέχουσας γλώσσας κ.α. τροποποιήσεις

Posted: Tue Oct 21, 2014 12:26 am
by Louis7777
Έχω τροποποιήσει το catalog/view/theme/mycustomtheme/template/module/language.tpl, το stylesheet.css και το common.js και έχω φτιάξει ένα drop down μενού για τις γλώσσες.

Το concept είναι γνωστό και απλό: Κάνεις κλικ πάνω στην τρέχουσα γλώσσα και ανοίγει ένα μενού με τις υπόλοιπες διαθέσιμες γλώσσες για να διαλέξεις.

Κολλάω σε δύο σημεία.

1) Πώς εμφανίζω το όνομα της τρέχουσας γλώσσας (π.χ. "Greek");

Δοκίμασα το:

Code: Select all

<?php echo $_SESSION['language']; ?>
...όμως αυτό εμφανίζει τον κωδικό της γλώσσας και όχι το όνομά της. Δηλαδή εμφανίζει "el" αντί για "Greek".

2) Πώς κρύβω την τρέχουσα γλώσσα από τη λίστα με τις γλώσσες;

Στο αρχείο language.tpl υπάρχει ο εξής κώδικας:

Code: Select all

<?php foreach ($languages as $language) { ?>
// language list items here
<?php } ?>
Δοκίμασα το εξής και δεν έπιασε:

Code: Select all

<?php foreach ($languages as $language) {  if(strcmp($_SESSION['language'],$language['code']) == 0) ?>
// language list items here
<?php } ?>
Αφού το $_SESSION['language'] και το $language['code'] δίνουν και τα δύο τον κωδικό της γλώσσας (το δεύτερο μόνο στο context του foreach φυσικά) σκέφτηκα να τα συγκρίνω... Καμιά ιδέα;

Re: Μενού γλώσσας: εμφάνιση τρέχουσας γλώσσας κ.α. τροποποιή

Posted: Tue Oct 21, 2014 11:43 pm
by botonakis
Στο πως θα βρεις το όνομα της γλώσσας πρέπει να την φέρεις από την βάση και έρχεται στο παρακάτω loop:

Code: Select all

<?php foreach ($languages as $language) { ?>
Στο πως θα καταλάβεις εάν είναι επιλεγμένη γλώσσα χρησιμοποίησε αυτό:

Code: Select all

<?php foreach ($languages as $language) {  

if(isset($_SESSION['language']) && $_SESSION['language'] == $language['code']) {
//κανε εδώ ότι θες
}else{

}

<?php } ?>

Re: Μενού γλώσσας: εμφάνιση τρέχουσας γλώσσας κ.α. τροποποιή

Posted: Wed Oct 29, 2014 9:11 pm
by Louis7777
botonakis wrote:Στο πως θα βρεις το όνομα της γλώσσας πρέπει να την φέρεις από την βάση και έρχεται στο παρακάτω loop:

Code: Select all

<?php foreach ($languages as $language) { ?>
Θέλω να εμφανίσω το όνομα μόνο μία φορά και έξω από την λίστα με τις γλώσσες, οπότε πρέπει να το κάνω έξω από το loop.

Δηλαδή θέλω να κάνω αυτό:

Greek ↓
⚑ English
⚑ German
⚑ French

Οι English, German και French είναι μέσα στο loop ενώ το μπλε κουμπί είναι ένα <span> εκτός λίστας το οποίο ανοιγοκλείνει την λίστα και εμφανίζει την τρέχουσα γλώσσα.

Αυτό που σκέφτηκα είναι να να φτιάξω έναν πίνακα με όλα τα ονόματα των γλωσσών και να ελέγχω σε ποιο αντιστοιχεί ο κωδικός του $_SESSION['language']. Αν δεν υπάρχει καλύτερος τρόπος για να πάρω το όνομα δηλαδή...
botonakis wrote: Στο πως θα καταλάβεις εάν είναι επιλεγμένη γλώσσα χρησιμοποίησε αυτό:

Code: Select all

<?php foreach ($languages as $language) { 

if(isset($_SESSION['language']) && $_SESSION['language'] == $language['code']) {
//κανε εδώ ότι θες
}else{

}

<?php } ?>
Το παραπάνω δούλεψε, σ' ευχαριστώ. :)

Οπότε μου μένει να βρω το πως θα εμφανίσω το όνομα της τρέχουσας γλώσσας.

Re: Μενού γλώσσας: εμφάνιση τρέχουσας γλώσσας κ.α. τροποποιή

Posted: Wed Oct 29, 2014 9:15 pm
by botonakis
Θα τρέξεις δύο φορές την loop

Code: Select all

<?php 
foreach ($languages as $language) { 

}
?>
την 1η φορά θα εμφανίσεις μόνο την επιλεγμένη γλώσσα και την 2η φορά θα εμφανίσεις όλες τις άλλες.
Την 1η θα την έχεις σε <span> και τις άλλες σε <div> layer κρυφό.
Θα βάλεις το απαραίτητο javascript ώστε να εμφανίζεις και να εξαφανίζεις το div layer.

Re: Μενού γλώσσας: εμφάνιση τρέχουσας γλώσσας κ.α. τροποποιή

Posted: Wed Oct 29, 2014 9:37 pm
by Louis7777
Σ' ευχαριστώ για την γρήγορη απάντηση! Όλα μια χαρά τώρα. ;D