Δημιουργία module position από το μηδέν!

Joomla! Extensions (Components, Modules, Plugins)

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

Απάντηση
aguila21
Honorary Member
Δημοσιεύσεις: 3510
Εγγραφή: 30 Απρ 2003 21:44
Επικοινωνία:

Δημιουργία module position από το μηδέν!

Δημοσίευση από aguila21 » 24 Ιουν 2010 09:19

Βρήκα ένα ωραίο template και θέλω να βάλω ένα module position για banner επειδή δεν έχει.Κάπου είχα διαβάσει ότι γίνεται αλλά δε βρίσκω τη σελίδα αναφοράς.Μήπως ξέρει κάποιος πώς μπορώ να το κάνω;

Άβαταρ μέλους
manolism
Super Moderator
Δημοσιεύσεις: 6652
Εγγραφή: 25 Ιαν 2004 16:01
Τοποθεσία: Wild West
Επικοινωνία:

Δημιουργία module position από το μηδέν!

Δημοσίευση από manolism » 24 Ιουν 2010 10:18

Στο index.php του template σου και στο σημείο όπου θέλεις να εμφανίζεται το module θα βάλεις το παρακάτω:

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

<jdoc&#58;include type="modules" name="banners" />
Στη συνέχεια θα ορίσεις, μέσα στη διαχείριση, τη θέση "banners" για το module σου.

Για δες και αυτό:

http://www.freestuff.gr/forums/viewtopic.php?t=40607

aguila21
Honorary Member
Δημοσιεύσεις: 3510
Εγγραφή: 30 Απρ 2003 21:44
Επικοινωνία:

Δημιουργία module position από το μηδέν!

Δημοσίευση από aguila21 » 24 Ιουν 2010 10:48

Ευχαριστώ θα το δω!

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

Δημιουργία module position από το μηδέν!

Δημοσίευση από alou » 24 Ιουν 2010 11:02

Γενικά μιλώντας, στο Joomla υπάρχουν 3 σημεία που χρειάζεται να πειράξεις για τη δημιουργία ενός module, το index.php του template που θα το 'φορτώσει' σε κάποιο σημείο, το templatedetails.xml που βρίσκεται στο φάκελο του template και προσθέτει στο back end την δυνατότητα να επιλέξουμε τη συγκεκριμένη θέση και το css (εφόσον θέλουμε να δώσουμε κάποιες ιδιότητες styling, δλδ class / id στο φόρτωμα του module μέσα από το index.php του template).

Δηλαδή, έστω ότι μιλάμε για τη θέση 'alou' που θέλουμε να είναι κάπου στο header, θέλουμε να πιάνει όλο το πλάτος, να έχει 100 pixel ύψος και να έχει ένα border.

Λίγο tricky ίσως είναι να βρούμε ακριβώς σε ποιο σημείο του index.php θα 'φορτώσουμε' το module, μια λύση είναι να δούμε τι θέσεις ήδη υπάρχουν και να προσθέσουμε στο ανάλογο σημείο αυτό που θέλουμε επιπλέον: πατώντας to url mas.gr/index.php?tp=1 βλέπουμε τις υπάρχουσες θέσεις, έστω ότι υπάρχει πάνω μια θέση 'topmenu' και εμείς θέλουμε να βάλουμε τη θέση 'alou' από κάτω, αφήνοντας και ένα περιθώριο 10pixel.

Βρίσκουμε στι index.php το κομμάτι που λέει

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

<jdoc&#58;include type="modules" name="topmenu" style="xhtml" /> 
Λογικά, θα περικλείεται σε κάποιο div, δηλαδή πιθανώς να είναι κάπως έτσι

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

<div class="kati">
        <jdoc&#58;include type="modules" name="topmenu" style="xhtml" />
    </div>
και επίσης πολύ πιθανό να φορτώνεται η συγκεκριμένη θέση μόνο όταν υπάρχει κάποιο δημοσιευμένο module για εκεί, οπότε ο κώδικας θα είναι

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

<?php if &#40;$this->countModules&#40;'topmenu'&#41;&#41; &#58; ?>
    <div class="kati">
        <jdoc&#58;include type="modules" name="topmenu" style="xhtml" />
    </div><?php endif; ?>
Εμείς θέλουμε αμέσως μετά από αυτό να φορτώσουμε τη θέση 'alou', με ότι ιδιότητες είπαμε παραπάνω, οπότε :

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

<?php if &#40;$this->countModules&#40;'topmenu'&#41;&#41; &#58; ?>
    <div class="kati">
        <jdoc&#58;include type="modules" name="topmenu" style="xhtml" />
    </div><?php endif; ?>

<?php if &#40;$this->countModules&#40;'alou'&#41;&#41; &#58; ?>
    <div class="alou_class">
        <jdoc&#58;include type="modules" name="alou" style="xhtml" />
    </div><?php endif; ?>

Υπάρχουν πολλές λεπτομέρεις που μπορεί να δημιουργήσουν θέματα εδώ, όπως το αν το παραπάνω div περιλαμβάνεται μέσα σε κάποιο άλλο div που του προσθέτει κάποιες ανεπιθύμητες ιδιότητες και θέλει πολύ κουβέντα για να καλύψουμε κάθε περίπωση, οπότε για να συνεχίσω, θεωρώ ότι κάνοντας αυτό είμαστε ΟΚ με το index.php του template.

Στο css (συνήθως template_css.css) προσθέτουμε τα χαρακηριστικά του div που δηλώσαμε για το παραπάνω module (το βάλαμε μέσα σε ένα div class="alou_class" οπότε θα πάει να ψάξει στο css τα αντίστοιχα χαρακτηριστικά):

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

.alou_class &#123;
width&#58;100%; //αυτό προϋποθέτει ότι είμαστε ήδη σε κάποιο div / container που περιορίζει το πλάτος στο μέγεθος του template
height&#58;100px;
border&#58;1px solid #dedede;
margin-top&#58;10px;
&#125;
Και εδώ υπάρχουν πολλές λεπτομέρειες που μπορεί να χρειαστεί να 'παίξουμε'.

Τελευταίο βήμα να δηλώσουμε στο templatedetails.xml που βρίσκεται στο φάκελο του template την αντίστοιχη θέση (μαζί με τις υπόλοιπες που υπάρχουν, συνήθως στο τελευταίο κομμάτι του αρχείου):

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

<position>alou</position>
και βέβαια να δημοσιεύσουμε το module στην αντίστοιχη θέση.

Για επιπλέον styling του module, υπάρχει και το prefix αλλά δεν έχω άλλη όρεξη πρωινιάτικα :P

aguila21
Honorary Member
Δημοσιεύσεις: 3510
Εγγραφή: 30 Απρ 2003 21:44
Επικοινωνία:

Δημιουργία module position από το μηδέν!

Δημοσίευση από aguila21 » 24 Ιουν 2010 14:08

Εξαιρετική η βοήθεια σας!Θα τα δοκιμάσω όμως άλλη στιγμή.Προς το παρών το νέο template που βρήκα είναι εδώ!
http://www.imaginas.gr

aguila21
Honorary Member
Δημοσιεύσεις: 3510
Εγγραφή: 30 Απρ 2003 21:44
Επικοινωνία:

Δημιουργία module position από το μηδέν!

Δημοσίευση από aguila21 » 09 Ιούλ 2010 16:13

manolism έγραψε:Στο index.php του template σου και στο σημείο όπου θέλεις να εμφανίζεται το module θα βάλεις το παρακάτω:

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

<jdoc&#58;include type="modules" name="banners" />
Στη συνέχεια θα ορίσεις, μέσα στη διαχείριση, τη θέση "banners" για το module σου.
Το δοκίμασα και δουλεύει!Πώς όμως ρυθμίζουμε το μέγεθος του banner ;

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

Δημιουργία module position από το μηδέν!

Δημοσίευση από alou » 09 Ιούλ 2010 16:35

Το μέγεθος του banner ή το πλαίσιο μέσα στο οποίο θα είναι το banner; Αν μιλάς για το ίδιο το banner, θα είναι όσο ορίζεται, π.χ. αν είναι εικόνα όσο δηλώνεις το width / height της εικόνας, εκτός αν υπάρχει κάποιος περιορισμός από τις διαστάσεις του πλαισίου που απεικονίζεται.

Αν μιλάς για ορισμό του πλαισίου στο οποίο θα φέρνεις το banner εξαρτάται από αρκετά πράγματα, ένα link θα βοηθούσε για συγκεκριμένη απάντηση. Πολύ γενικά, του ορίζεις κάποια χαρακτηριστικά βάζοντάς το σε ένα div

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

<div class="oti_thes">
<jdoc&#58;include type="modules" name="banners" />
</div>
και ορίζοντας τα χαρακτηριστικά αυτού στο css σου:

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

.oti_thes &#123;
width&#58;600px;
height&#58;200px;
klp
&#125;

Απάντηση

Επιστροφή στο “Joomla! Extensions (Components, Modules, Plugins)”

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

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