Jedno od najčešćih pitanja i najvećih nedoumica je pitanje pozicioniranja modula. Kako dodati ili predefinisati već neku postojeću poziciju?
Pozicije se odredjuju u Joomla template-u, odnosno šablonu.
Definiše poziciju npr:
<positions> <position>user1</position> <position>top</position> <position>left</position> <position>banner</position> <position>right</position> <position>footer</position> </positions>
Osnovna sintaksa je:
<jdoc:include type="modules" name="LOCATION" style="OPTION" />
Primer jednog index.php
<body> <div id="wrap"> <div id="header"> <div class="inside"> <h1><?php echo $mainframe->getCfg('sitename');?></h1> <jdoc:include type="modules" name="top" style="xhtml" /> </div> </div> <div id="sidebar"> <div class="inside"> <jdoc:include type="modules" name="left" style="xhtml" /> </div> </div> <div id="content"> <div class="inside"> <jdoc:include type="module" name="breadcrumbs" style="none" /> <jdoc:include type="component" /> </div> </div> <div id="sidebar-2"> <div class="inside"> <jdoc:include type="modules" name="right" style="xhtml" /> </div> </div> <div id="footer"> <div class="inside"> <jdoc:include type="modules" name="footer" style="xhtml" /> </div> </div> <!--end of wrap--> </body>
Naravno stilove treba definisati u CSS kao sto je npr.
body {
text-align:center; /*center hack*/
}
#wrap {
min-width:760px;
max-width:960px;
width: auto !important; /*IE6 hack*/
width:960px; /*IE6 hack*/
margin:0 auto; /*center hack*/
text-align:left; /*center hack*/
}
#header {}
#sidebar {float:left;width:20%; overflow:hidden; }
#content {float:left;width:60%;overflow:hidden;}
#sidebar-2 {float:left;width:20%; overflow:hidden; }
#footer {clear:both; }
.inside {padding:10px;}
* {
margin:0;
padding:0;
}
h1,h2,h3,h4,h5,h6,p,blockquote,form,label,ul,ol,dl,fieldset,address {
margin: 0.5em 0;
}
li,dd {
margin-left:1em;
}
fieldset {
padding:.5em;
}
body {
font-size:76%;
font-family:Verdana, Arial, Helvetica, sans-serif;
line-height:1.3;
margin:1em 0;
}
#wrap{
border:1px solid #999;
}
Kada se poziva modul u index.php, ima nekoliko opcija kako se prikazuje.
Sintaksa je:
<jdoc:include type="modules" name="LOCATION" style="OPTION" />
Stil je opcioni definisan u templates/system/html/modules.php. Uopšteno podrazumevana modules.php datoteka sadrži sledeće prikaze (layouts).
OPTION=“table” (podrazumevani prikaz) modul prikazuje u koloni. Sledi primer:
<table cellpadding="0" cellspacing="0" class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<tr>
<th valign="top">
<?php echo $module->title; ?>
</th>
</tr>
<?php endif; ?>
<tr>
<td>
<?php echo $module->content; ?>
</td>
</tr>
</table>
OPTION=“horz” pravi horizontalni modul. Svaki modul je u okviru ćelije tabele. Primer:
<table cellspacing="1" cellpadding="0" border="0" width="100%"> <tr> <td valign="top"> <?php modChrome_table($module, $params, $attribs); ?> </td> </tr> </table>
OPTION=“xhtml” pravi module u okviru div elementa. Primer:
<div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
OPTION=“rounded” pravi modul u formatu koji dozvoljava, npr. Razvijene zaobljene ivice. Ako se koristi ovaj $style ime <div> menja od moduletable u module. Primer:
<div class="module<?php echo $params->get('moduleclass_sfx'); ?>">
<div>
<div>
<div>
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
</div>
</div>
</div>
OPTION=“none” pravi modul koji se pojavljuje sirov, nema elemenata ni naslova. Primer:
echo $module->content;
Preporuka je da se ne koriste sufiksi table (default) ili horz osim ako nisu baš potrebni.
Korisno!
Ako istražite modules.php datoteku, videćete sve opcije koje postoje za module. Vrlo je lako da dodate svoje; ove je novost u J1.5 kod template-a.
*Ovaj tekst je preuzet sa sajta Compass Designs