Block 3 module latime variabila in joomla

User Rating: / 0
PoorBest 

Acest tutorial prezinta modalitatea prin care trei module pozitionate unul langa altul, intr-un block, isi adapteaza latimea in functie de starea de publicare a lor.



Mai exact putem avea trei stari:

  • Toate cele trei module sunt publicate, in acest caz fiecare avand 33% din latimea totala a spatiului;
  • Doar doua module sunt publicate, fiacare cu 50% din latimea totala a spatiului;
  • Doar un modul publicat, acesta dispunand de 100% din latimea totala a spatiului;


Vom numi cele trei module in felul urmator: USER1, USER2, USER3.

Urmatorul cod va fi inserat in portiunea <head> a fisierului index.php  inainte de </head>

<?php
$blockmodules = 0;
if ($this->countModules('user1')) $blockmodules++;
if ($this->countModules('user2')) $blockmodules++;
if ($this->countModules('user3')) $blockmodules++;
if ( $blockmodules == 3 )
{
$divwidth = '32%';
}
else if ($blockmodules == 2)
{
$divwidth = '49%';
}
else if ($blockmodules == 1)
{
$divwidth = '99%';
}
?>


Urmeaza constructia modulelor in interiorul <body></body>

Vom atribui id-ul  "user" block-ului ce contine cele trei module.
De asemenea, vom dori ca  toate DIV-urile care contin module sa fie afisate numai daca cel puţin un modul este publicat :

<?php if($this->countModules('user1') || $this->countModules('user2') || $this->countModules('user3')) : ?>
<div id="users">


Apoi inseram scriptul de afisare modul in cazul in care acesta este publicat.

<?php if($this->countModules('user1')) : ?>


Si aplicarea clasei acestuia

<div id="moduser1" <?php if ( $blockmodules < 4 ):echo ('style="width:'.$divwidth.';"'); 
endif;?>>

Rezultatul final este:

<?php if($this->countModules('user1') || $this->countModules('user2') || $this->countModules('user3')) : ?>
<div id="users">
<?php if($this->countModules('user1')) : ?>
<div id="moduser1" <?php if ( $blockmodules < 4 ):echo ('style="width:'.$divwidth.';"'); endif;?>>
<jdoc:include type="modules" name="user1" style="rounded" />
</div>
<?php endif; ?>

<?php if($this->countModules('user2')) : ?>
<div id="moduser2" <?php if ( $blockmodules < 4 ):echo ('style="width:'.$divwidth.';"'); endif;?>>
<jdoc:include type="modules" name="user2" style="rounded" />
</div>
<?php endif; ?>

<?php if($this->countModules('user3')) : ?>
<div id="moduser3" <?php if ( $blockmodules < 4 ):echo ('style="width:'.$divwidth.';"'); endif;?>>
<jdoc:include type="modules" name="user3" style="rounded" />
</div>
<?php endif; ?>
<div></div>
</div>
<?php endif; ?>

.clr {clear:both;}  //*

* a fost atasata proprietatea ‘clear’ deoarece modulele trebuie afisate unul langa altul, intr-un block, pe un singur rand.

 
You are here: Home Diverse Block 3 module latime variabila in joomla