αλλαγή background σε εξωτερικό div

Joomla! forum. Joomla! Questions and Answers.

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
peristeri-stores
Δημοσιεύσεις: 26
Εγγραφή: 15 Φεβ 2012 13:37
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από peristeri-stores » 20 Ιουν 2012 13:19

Θέλω να βάλω σε ένα joomla site που φτιάχνω τη δυνατότητα να αλλάζω από τη διαχείριση το background όταν αλλάζω κατηγορία από το μενού. το joomla που έχω είναι το 2.5

Παράδειγμα κώδικα html

Κώδικας: Επιλογή όλων

<html>
<head></head>
<body>
<div class="header">mpla mpla mpla</div>
<div class="outer-page">

</div>
<footer></footer
</body>
</html>
to background που θέλω να αλλάζει βρίσκεται στη class="outer-page" τα άλλα θα μένουν όπως έχουν.
Μήπως υπάχει κανενα έτοιμο extention ή θα πρέπει με κάποιο τρόπο να το φτιάξω εγώ.

Ευχαριστώ

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από alou » 20 Ιουν 2012 16:28

Δεν ξέρω αν υπάρχει κάποια επέκταση, γενικά όμως αν το outer-page περιλαμβάνει μόνο το component είναι απλό: βάζεις prefix στο menu item και φτιάχνεις ανάλογο css rule.

Αν όχι θα χρειαστεί να χρησιμοποιήσεις στο index.php του template κάποιες μεθόδους του joomla για να ξέρεις που βρίσκεσαι και να βάλεις τους αντίστοιχους κανόνες:

Κώδικας: Επιλογή όλων

<?php
$app = JFactory&#58;&#58;getApplication&#40;&#41;;
$menu = $app->getMenu&#40;&#41;;

if &#40;$menu->getActive&#40;&#41; == kapoio menu&#41; &#123;
	echo "<div class="background1">";
&#125; else if &#40;$menu->getActive&#40;&#41; == allo menu&#41; &#123;
        echo "<div class="background2">";
&#125; ...
?>

Αυτό δε λειτουργεί όπως είναι σε multilingual site, θέλει κάποια επιπλέον στοιχεία.
http://docs.joomla.org/How_to_determine ... front_page

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13307
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από EneMe » 20 Ιουν 2012 21:45

Η ιδέα είναι να έχεις ένα κρυφό component για κάθε background και να ενεργοποιείς όποιο θέλεις, ανάλογα με το πιό menu έχεις ενεργό (δηλαδή σε ποιά σελίδα είσαι).

Αυτό βέβαια λέει η θεωρία, δεν το έχω υλοποιήσει ακόμα (αν και θα μου χρειαστεί τους επόμενους μήνες)...

peristeri-stores
Δημοσιεύσεις: 26
Εγγραφή: 15 Φεβ 2012 13:37
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από peristeri-stores » 21 Ιουν 2012 09:56

EneMe έγραψε:Η ιδέα είναι να έχεις ένα κρυφό component για κάθε background και να ενεργοποιείς όποιο θέλεις, ανάλογα με το πιό menu έχεις ενεργό (δηλαδή σε ποιά σελίδα είσαι).

Αυτό βέβαια λέει η θεωρία, δεν το έχω υλοποιήσει ακόμα (αν και θα μου χρειαστεί τους επόμενους μήνες)...
Αυτο που έχω σκεφτεί είναι να φτιάξω ένα πεδίο στη διαχείρση του μενού στο οποίο θα δίνω το όνομα στο class="όνομα που θα πέρνει από τη διαχείριση" συναμικά αλλά θα έχω φροντίσει από πρίν να έχω δημιουργίσει τη και το αντίστοιχο class στο css.

αλλά δεν ξέρω καταπόσο θα δουλέψει αυτό.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από alou » 21 Ιουν 2012 18:12

Διάβασε λίγο τι σου γράφω, αυτό που θες να κάνεις γίνεται έτσι και αλλιώς με prefix, από τη διαχείριση του μενού.

Όμως αφορά το container του component όχι όλου του site, αν αυτό είναι που θες καλώς διαφορετικά πας στην άλλη εναλλακτική που σου γράφω ή κάτι παρόμοιο.

peristeri-stores
Δημοσιεύσεις: 26
Εγγραφή: 15 Φεβ 2012 13:37
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από peristeri-stores » 21 Ιουν 2012 22:04

alou έγραψε:Διάβασε λίγο τι σου γράφω, αυτό που θες να κάνεις γίνεται έτσι και αλλιώς με prefix, από τη διαχείριση του μενού.

Όμως αφορά το container του component όχι όλου του site, αν αυτό είναι που θες καλώς διαφορετικά πας στην άλλη εναλλακτική που σου γράφω ή κάτι παρόμοιο.
Αυτό που θέλω είναι να αλλάζω το background όταν αλλάζω κατηγορία από το μενού μου το outer του template που περιέχει το content της σελίδας όχι το header ούτε το footer αυτά θα είναι σταθερά με ποιο τρόπο να το κάνω?

Ευχαριστώ

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από alou » 21 Ιουν 2012 23:53

Ρε αδερφέ πρέπει να στο πω τρείς φορές για να το πιστέψεις; στη διαχείριση του μενού item, βάζεις κάποιο prefix, ας πούμε -alpha

Αυτό δημιουργεί άλλη κλάση στο component, δηλαδή αν πριν ήταν blog τώρα θα γίνει blog-alpha - ρίξε μια ματιά με firebug να δεις τις κλάσεις.

Στο css, βάζεις .blog-alpha {... ότι θες να αλλάξεις.

peristeri-stores
Δημοσιεύσεις: 26
Εγγραφή: 15 Φεβ 2012 13:37
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από peristeri-stores » 22 Ιουν 2012 01:17

alou έγραψε:Ρε αδερφέ πρέπει να στο πω τρείς φορές για να το πιστέψεις; στη διαχείριση του μενού item, βάζεις κάποιο prefix, ας πούμε -alpha

Αυτό δημιουργεί άλλη κλάση στο component, δηλαδή αν πριν ήταν blog τώρα θα γίνει blog-alpha - ρίξε μια ματιά με firebug να δεις τις κλάσεις.

Στο css, βάζεις .blog-alpha {... ότι θες να αλλάξεις.
"Ρε αδερφέ" Μάλλον δεν με κατάλαβες δεν θέλω να αλλάζω το background του component γιαυτό το ξαναλέω θέλω να αλλάζω το background του template!!! το εγραψα και παραπάνω σε ένα κώδικα παράδειγμα που έστειλα. θέλω το εξωτερικό το background να αλλάζει του div που θα περιέχει μέσα εκέι όλο το περιεχόμενο της σελίδας μου δηλαδή μια αριστερή στήλη μια κεντρική και μια δεξια και δεν θα αλλάζει το header και το footer.

Ελπίζω αν έγινα πιο κατανοητός.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από alou » 22 Ιουν 2012 02:20

Καλή φάση να ειρωνεύεσαι όταν προσπαθούν να σε βοηθήσουν. Αυτό που θες επίσης στο απάντησα.

Στο index.php του template σου, θα πρέπει να πάρεις το menu:

Κώδικας: Επιλογή όλων

<?php
$app = JFactory&#58;&#58;getApplication&#40;&#41;;
$menu = $app->getMenu&#40;&#41;->id;
?>
Το $menu θα έχει το id του μενού που βρίσκεσαι, τα id των menu items τα βλέπεις στη διαχείριση.

Εκεί που έχεις το outer-page, με ένα conditional θα προσθέτεις ένα επιπλέον id:

Κώδικας: Επιλογή όλων

<?php
if &#40;$menu == 101&#41; &#123; //eksetazeis poio menu id fortwnei
$pageSelect = "ntomates"; //to onoma tou id gia na baleis styling
&#125; else if &#40;$menu == 102&#41; &#123;
$pageSelect = "patates";
&#125; else &#123;
$pageSelect = "aggouria";
&#125;
?>
<div class="outer-page" id="<?php echo $pageSelect; ?>">

Και στο css θα βάλεις το φόντο που θες στο συγκεκριμένο id

Κώδικας: Επιλογή όλων

#ntomates &#123;background&#58;url&#40;../images/ntomates.jpg&#41;;&#125;

peristeri-stores
Δημοσιεύσεις: 26
Εγγραφή: 15 Φεβ 2012 13:37
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από peristeri-stores » 22 Ιουν 2012 10:14

alou έγραψε:Καλή φάση να ειρωνεύεσαι όταν προσπαθούν να σε βοηθήσουν. Αυτό που θες επίσης στο απάντησα.

Στο index.php του template σου, θα πρέπει να πάρεις το menu:

Κώδικας: Επιλογή όλων

<?php
$app = JFactory&#58;&#58;getApplication&#40;&#41;;
$menu = $app->getMenu&#40;&#41;->id;
?>
Το $menu θα έχει το id του μενού που βρίσκεσαι, τα id των menu items τα βλέπεις στη διαχείριση.

Εκεί που έχεις το outer-page, με ένα conditional θα προσθέτεις ένα επιπλέον id:

Κώδικας: Επιλογή όλων

<?php
if &#40;$menu == 101&#41; &#123; //eksetazeis poio menu id fortwnei
$pageSelect = "ntomates"; //to onoma tou id gia na baleis styling
&#125; else if &#40;$menu == 102&#41; &#123;
$pageSelect = "patates";
&#125; else &#123;
$pageSelect = "aggouria";
&#125;
?>
<div class="outer-page" id="<?php echo $pageSelect; ?>">

Και στο css θα βάλεις το φόντο που θες στο συγκεκριμένο id

Κώδικας: Επιλογή όλων

#ntomates &#123;background&#58;url&#40;../images/ntomates.jpg&#41;;&#125;
Συγγνώμη για την ειρωνεία αλλα έτσι μου φάνηκε και εμένα όταν μου το έργαψες στο προηγούμενο θέμα. Σε ευχαριστώ για την άμεση απάντηση σου. Θα τα δοκιμάσω αυτά που μου είπε και θα ενημερώσω για το αποτέλεσμα.

Και πάλι συγγνώμη και σε ευχαριστώ.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από alou » 22 Ιουν 2012 12:21

Δεν ειρωνεύτηκα, αγανάκτησα. Σου έχω απαντήσει τι πρέπει να κάνεις από το 2ο post και δεν έδωσες σημασία συνεχίζοντας να ξαναρωτάς το ίδιο.

Αν είναι κάτι που δεν καταλαβαίνεις αφού το ψάξεις, ξαναρωτάς αλλά να μη μπαίνεις καν στον κόπο να το ψάξεις...
Και πάλι συγγνώμη και σε ευχαριστώ.
ΟΚ, μας λες τι έγινε.

peristeri-stores
Δημοσιεύσεις: 26
Εγγραφή: 15 Φεβ 2012 13:37
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από peristeri-stores » 22 Ιουν 2012 13:54

Δυστυχώς δεν τα κατάφερα να το φτιάξω το έβαλα ώς εξής

Κώδικας: Επιλογή όλων


<?php
$app = JFactory&#58;&#58;getApplication&#40;&#41;;
$menu = $app->getMenu&#40;&#41;->id;  

if &#40;$menu == 101&#41; &#123; //eksetazeis poio menu id fortwnei
$pageSelect = "ntomates"; //to onoma tou id gia na baleis styling
&#125; else if &#40;$menu == 102&#41; &#123;
$pageSelect = "patates";
&#125; else &#123;
$pageSelect = "aggouria";
&#125;
?>
<div class="outer-page" id="<?php echo $pageSelect; ?>"> 
Το πρόβλημα είναι ότι πήγαινε αμέσως στην class με τα αγγούρια και δεν έπερνε καθώλου τα άλλα class αν έβαζα στο if ($menu == 101) αντι για == ένα if ($menu = 101) τότε δούλευε αλλά δεν διάβαζε τις άλλες και λογικό μου φαίνεται.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από alou » 22 Ιουν 2012 15:37

Τα μενού σου κοίταξες τι id έχουν;
Πόσταρέ τα και θα σου πω τι να κάνεις ακριβώς.
Τα αγγούρια και τις ντομάτες κλπ καλό είναι να τα αλλάξεις :lol:

anaisthitos
Δημοσιεύσεις: 7
Εγγραφή: 08 Αύγ 2009 16:56
Τοποθεσία: Αθήνα

αλλαγή background σε εξωτερικό div

Δημοσίευση από anaisthitos » 25 Ιουν 2012 10:08

Μπορείς να κάνεις αυτό που έχω κάνει και εγώ σε δύο - τρία site.

Μέσα στο index.php αρχείο σου "τραβάς" μία παράμετρο που βάζεις στο διαχειριστικό σου έτσι ώστε όταν θα προσθέτεις ένα καινούριο menu item να μην χρειάζεται να γράφεις επιπλέον κώδικα. Για παράδειγμα αυτό που έχω κάνει εγώ είναι το εξής.

Κάπου στην αρχή του index.php (εγώ το έβαλα ανάμεσα στο head και στο body), βάζεις τον παρακάτω κωδικά:

Κώδικας: Επιλογή όλων

$menu =& JSite&#58;&#58;getMenu&#40;&#41;;
$active = $menu->getActive&#40;&#41;;
$params = $menu->getParams&#40; $active->id &#41;;
$class = $params->get&#40; 'pageclass_sfx' &#41;;
και μέσα στο html elemenet που θέλεις βάζεις το παρακάτω κώδικα. Εγώ στο παράδειγμα το έβαλα μέσα στο body tag:

Κώδικας: Επιλογή όλων

<body <?php if &#40;$class&#41; echo ' class="' . $class . '"'; else  echo ' class="home"'; ?> >
Έτσι κάθε φορά που ήθελα το body μου να πέρνει διαφορετική class απλά πήγαινα μέσα στο menu item και στο Page Display Options -> Page Class έβαζα το όνομα της κλάσης που ήθελα να πάρει το body μου και συμπλήρωνα μόνο το css.

Πιστεύω να είμαι κατανοητός.

Για οποιαδήποτε πληροφορία μην διστάσεις να απαντήσεις...

peristeri-stores
Δημοσιεύσεις: 26
Εγγραφή: 15 Φεβ 2012 13:37
Επικοινωνία:

αλλαγή background σε εξωτερικό div

Δημοσίευση από peristeri-stores » 25 Ιουν 2012 19:48

Τελικά το έλυσα το θέμα με την αλλαγή background με τον τρόπο του "anaisthitou".
Αλλά επειδή με αυτόν τον τρόπο άλλαζαν και τα class από το K2 έπρεπε να πάω και στα αρχεία του Κ2 ώστε να αφαιρέσω τον κώδικα με το pageclass_sfx ώστε να μην αλλάζει και το περιεχόμενο μου.

Ευχαριστώ.

Απάντηση

Επιστροφή στο “Joomla! γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες