Hov. Du er ikke logget ind.
DU SKAL VÆRE LOGGET IND, FOR AT INTERAGERE PÅ DENNE SIDE

Joomla countModules (Bootstrap)

Side 1 ud af 1 (7 indlæg)
  • 1
Fra Odense N
Tilmeldt 30. Mar 11
Indlæg ialt: 160
Skrevet kl. 17:40
Hvor mange stjerner giver du? :

Hej Amino'er

Jeg arbejder på et template til Joomla med bootstrap, men er løbet ind i nogle problemer. Min kammerat som skal benytte sig af dette template spørg om det er muligt at få selve templatet til automatisk at tilpasse sig efter hvor mange aktive modules der er.

Et eksempel kunne være at footeren er delt op i fire div tags, så hvis der er aktive modules i alle fire div-tags så vil de alle få en class="span3". Så når der kun er aktive modules i tre af de fire div-tags så vil de tre få "class="span4", og den sidste div-tag vil blive "deaktiveret" altså have en width på "0", eller være helt væk.

Jeg har rodet en del med HTML, CSS, men da jeg ikke har så god erfaring med if, else - så driller det mig ret meget.

Venlig hilsen/best regards:
Niluan - Nikolaj Lund Andreasen
Fra Odense N
Tilmeldt 30. Mar 11
Indlæg ialt: 160
Skrevet kl. 17:51
Hvor mange stjerner giver du? :

Hov, det må i undskylde. Har oprettet indlæget i et forkert forum. :(

Kan en admin muligvis flytte den for mig?

Venlig hilsen/best regards:
Niluan - Nikolaj Lund Andreasen
Fra Odense N
Tilmeldt 30. Mar 11
Indlæg ialt: 160
Skrevet kl. 19:36
Hvor mange stjerner giver du? :
Venlig hilsen/best regards:
Niluan - Nikolaj Lund Andreasen
Fra Mørkøv
Tilmeldt 26. Jan 10
Indlæg ialt: 363
Skrevet kl. 19:40
Hvor mange stjerner giver du? :

Du kunne jo gøre noget ala dette:

<?php if ($this->countModules( 'user1' )) : ?>
  <div class="user1">
    <jdoc:include type="modules" name="user1" style="rounded" />
  </div>
<?php endif; ?>
Og så loope igennem det antal gange der er moduler i den position.
Fra Odense N
Tilmeldt 30. Mar 11
Indlæg ialt: 160
Skrevet kl. 19:46
Hvor mange stjerner giver du? :

Jens:

Du kunne jo gøre noget ala dette:

<?php if ($this->countModules( 'user1' )) : ?>
  <div class="user1">
    <jdoc:include type="modules" name="user1" style="rounded" />
  </div>
<?php endif; ?>
Og så loope igennem det antal gange der er moduler i den position.

Hvis man gør det på den måde, så vil de ikke ændre på hvilken størrelse div-tagget får, så der vil derfor blot være en tom plads, i stedet for at de andre div-tags fylder den resterende plads ud. :)

Venlig hilsen/best regards:
Niluan - Nikolaj Lund Andreasen
Fra Mørkøv
Tilmeldt 26. Jan 10
Indlæg ialt: 363
Skrevet kl. 20:40
Hvor mange stjerner giver du? :

Nikolaj Lund Andreasen:
Hvis man gør det på den måde, så vil de ikke ændre på hvilken størrelse div-tagget får, så der vil derfor blot være en tom plads, i stedet for at de andre div-tags fylder den resterende plads ud. :)


Okay, så modificerer vi den lidt i stedet for. Jeg er ikke 100% sikker på hvad du vil opnå, men jeg prøver noget. Jeg mener $this->countModules() indeholder selve antallet af moduler i en position. Så er det jo bare at lave tallet om til en % værdi og så loope igennem
<div id="container">
<?php
if ($this->countModules( 'user1' )) :
$width = 100 / $this->countModules( 'user1')); // Udregn width i %
for($i = 0; $i < $this->countModules( 'user1' ); $i = $i + 1) {
?>
<div class="user1" style="width: <?php echo $i ?>%">
<jdoc:include type="modules" name="user1" style="rounded" />
</div>
<?php } ?>
<?php endif; ?>
</div>
Har ikke testet ovenstående, men det burde være noget ala dette.

*EDIT* fandt lige ud af, at det jo ikke er dette, der skal ske!!! nu gentager den bare jdoc:include

Beklager... Jeg går lige i tænkeboks :) Det er nok i modulets template fil, der skal ændres i.

Fra Odense N
Tilmeldt 30. Mar 11
Indlæg ialt: 160
Skrevet kl. 15:13
Hvor mange stjerner giver du? :

Jens:
<?php
if ($this->countModules( 'user1' )) :
$width = 100 / $this->countModules( 'user1')); // Udregn width i %
for($i = 0; $i < $this->countModules( 'user1' ); $i = $i + 1) {
?>
<div class="user1" style="width: <?php echo $i ?>%">
<jdoc:include type="modules" name="user1" style="rounded" />
</div>
<?php } ?>
<?php endif; ?>
</div>

Alle størrelserne til de forskellige div-tags ligger i CSS koderne, så der skal blot ændres class eftersom hvor mange moduler der er aktive.

Jeg havde lidt mit hoved i blød i kaffepausen på arbejdet i dag, og bikset noget hurtigt sammen.

Kan man ikke gøre på følgende måde?

KODE:

<?php
function getActiveColoums()
{
    $column1 = ($this->countModules('user1') > 1)? 1: 0;
    $column2 = ($this->countModules('user2') > 1)? 1: 0;
    $column3 = ($this->countModules('user3') > 1)? 1: 0;
    $column4 = ($this->countModules('user4') > 1)? 1: 0;
   
    return $columns = $column1 + $column2 + $column3 + $column4;
}
?>

<?php if (getActiveModules() == 1): ?>

    <?php if ($this->countModules( 'user1' )) : ?>
        <div class="span12">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user2' )) : ?>
        <div class="span12">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user3' )) : ?>
        <div class="span12">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user4' )) : ?>
        <div class="span12">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
<?php endif; ?>

<?php if (getActiveModules() == 2): ?>

   <?php if ($this->countModules( 'user1' )) : ?>
        <div class="span6">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user2' )) : ?>
        <div class="span6">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user3' )) : ?>
        <div class="span6">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user4' )) : ?>
        <div class="span6">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
<?php endif; ?>

<?php if (getActiveModules() == 3): ?>

   <?php if ($this->countModules( 'user1' )) : ?>
        <div class="span4">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user2' )) : ?>
        <div class="span4">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user3' )) : ?>
        <div class="span4">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user4' )) : ?>
        <div class="span4">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
<?php endif; ?>

<?php if (getActiveModules() == 4): ?>
   
    <?php if ($this->countModules( 'user1' )) : ?>
        <div class="span3">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user2' )) : ?>
        <div class="span3">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user3' )) : ?>
        <div class="span3">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
    <?php if ($this->countModules( 'user4' )) : ?>
        <div class="span3">
           <jdoc:include type="modules" name="user1" style="html5" />
        </div>
    <?php endif; ?>
   
<?php endif; ?>

Venlig hilsen/best regards:
Niluan - Nikolaj Lund Andreasen
Side 1 ud af 1 (7 indlæg)