Page 1 of 1

διαφορετικό background σε κάθε κατηγορία

Posted: Tue Feb 19, 2013 9:59 pm
by efesiosp
Καλησπέρα,

μήπως γνωρίζει κάποιος να μου πει πως μπορώ να έχω διαφορετικό background σε κάθε κατηγορία. Κάθε φορά που ο χρήστης αλλάζει κατηγορία να αλλάζει το background και να παραμένει το ίδιο στα προϊόντα της κατηγορίας.

ευχαριστώ πολυ

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Wed Feb 20, 2013 2:10 am
by People's Code
Γίνε λίγο πιο σαφής με κάποιο παράδειγμα.

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Wed Feb 20, 2013 4:39 pm
by efesiosp
λοιπόν παραθέτω το παρακάτω παράδειγμα,

στο site υπάρχουν 5 κατηγορίες π.χ οι κατηγορίες με όνομα '1','2','3','4','5'. στην αρχική (κατηγορία '1')το background θα είναι μια εικόνα. όταν ο χρήστης επιλέγει την κατηγορία με όνομα '2' θα αλλάζει το background και παραμένει το ίδιο στα προϊόντα της κατηγορίας αυτής. όταν ο χρήστης επιλέγει την κατηγορία 3 θα εμφανίζεται καινούργιου background κοκ. κάθε κατηγορία θα έχει το δικό της background.

πιστεύω να έγινα σαφείς

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Wed Feb 20, 2013 5:23 pm
by People's Code
ok κατανοητό, που θες να αλλάζει το background, γενικά στο <body> της σελίδας ή μέσα στο container ?

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Wed Feb 20, 2013 8:31 pm
by efesiosp
στο <body> της σελιδας

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Wed Feb 20, 2013 11:20 pm
by People's Code
Καταρχάς αυτό που ζητάς είναι αρκετά πολύπλοκο για να απαντηθεί από εδώ εξ ολοκλήρου γιατί θέλει χρόνο και ψάξιμο για μια λύση που να καλύπτει όλες τις πιθανότητες.

Μπορώ όμως να σου προτείνω μία σχετικά απλή προσέγγιση που ενδεχομένως να σε καλύψει εν μέρει.

Στο catalog/view/theme/default/template/common/header.tpl (ή στο αντίστοιχο header.tpl που υπάρχει στο φάκελο του template που χρησιμοποιείς)

Αντικαθιστάς το

Code: Select all

<body> 
με

Code: Select all

    <?php
    $get_route = explode('_', preg_replace('/[^0-9_]*/', '', $_SERVER['QUERY_STRING']));
    if ($get_route[0] == '_' || $get_route[0] == '') { ?>
    	<body>
    <?php } else { ?>
   	<body class="<?php echo 'cat_' . $get_route[0]; ?>">
    <?php } ?>
Μετά ανοίγεις το stylesheet.css του template σου και στο κάτω μέρος προσθέτεις classes με τα id's των κατηγοριών που έχεις έτσι: πχ
για τη κατηγορία με id 18 φτιάχνεις .cat_18 {background:blue}
για τη κατηγορία με id 26 φτιάχνεις .cat_26 {background:red}
κλπ
για οποιαδήποτε άλλη σελίδα (ή για τις κατηγορίες που δεν έχεις δηλώσει class στο stylesheet) παραμένει το γενικό background.

Δυστυχώς τα διαφορετικά backgrounds λειτουργούν μόνο αν χρησιμοποιήσεις το μενού (επάνω και αριστερά), αν πας στη σελίδα κάποιου προϊόντος από τα προτεινόμενα, κατασκευαστές κλπ παραμένει το γενικό background.

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Thu Feb 21, 2013 5:12 pm
by efesiosp
σ' ευχαριστώ πολύ για τον χρόνο σου!

για την ώρα μου κάνει αρκετά αυτό που μου έδωσες.

να είσαι καλά και πάλι ευχαριστώ

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Mon Jun 10, 2013 8:07 pm
by efesiosp
Αγαπητέ Opencart-Hellas,

Σε σχέση με τα παραπάνω σε περίπτωση που αλλάξω το site σε SEO URLs δεν δουλεύει. Έχεις να μου προτείνεις τι μπορώ να κάνω για να δουλέψει σε SEO;

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Tue Jun 11, 2013 10:03 pm
by People's Code
Αντικατέστησε το προηγούμενο κώδικα με αυτό:

Code: Select all

<?php
if (strpos($_SERVER['QUERY_STRING'], '_route_') === false) {  ?>
  <body>
<?php
} else {
  $get_route = explode('/', str_replace('_route_=', '', $_SERVER['QUERY_STRING']));
  $myBackgroundClass = strpos(end($get_route), '&') === false ? end($get_route) :
  strstr(end($get_route), '&', true);
?>
  <body class="<?php echo 'cat-' . $myBackgroundClass; ?>">
<?php } ?>
- Τα css classes είναι πλέον cat-kapoio-onoma-katigorias
- Όπου δεν υπάρχει SEO url δεν θα προσθέτει class στο <body>

Re: διαφορετικό background σε κάθε κατηγορία

Posted: Thu Jun 13, 2013 5:51 pm
by efesiosp
Ευχαριστώ πάρα πάρα πολύ!!!