+ Antworten
Ergebnis 1 bis 1 von 1

Thema: Subtemplates Modulposition

  1. #1

    Subtemplates Modulposition

    [Dies ist bereits in der Joomla 1.6+ Version integriert.] - (http://www.jyaml.de/dokumentation/jy...ositionen.html)

    Hallo zusammen,
    da ich des öfteren gefragt werde wie man Subtemplates als Modulpositon nutzt, ohne das man die Spalten fest definieren muss, hier ein Beispiel dafür.

    Z.B. Modulposition 'footer'. Wenn sich dort 3 aktive Module befinden wird automatich ein 33/33/33 Subtemplate erzeugt. Bei 2 Modules 50/50 usw.

    (mod)Chrome Style 'subtemplates' erstellen:
    Folgende Funktionen in die modules.php einfügen (\templates\hm_yaml\html\modules.php)

    PHP-Code:
    <?php
    // ...

    function modChrome_subtemplates($module, &$params, &$attribs) {
      static 
    $modules;

      if(!isset(
    $modules[$module->position])) :
        
    $mods JModuleHelper::getModules($module->position);

        
    $modules[$module->position]['count'] = count($mods);
        
    $modules[$module->position]['first'] = array_shift($mods);
        
    $modules[$module->position]['last'] = array_pop($mods);
      endif;

      
    $showEmpty = isset($attribs['showEmpty']) ? $attribs['showEmpty'] : false;
      
    $module->content trim($module->content);

      if(isset(
    $modules[$module->position]) && $modules[$module->position]['count']>1) :
        if ((!empty(
    $module->content) && !$showEmpty) || $showEmpty) : ?>
          <?php if($modules[$module->position]['first']->id==$module->id) : ?>
          <div class="subcolumns">
          <?php endif; ?>
            <?php modChrome_subtemplates_col($module$params$attribs$modules[$module->position]); ?>
          <?php if($modules[$module->position]['last']->id==$module->id) : ?>
          </div>
          <?php endif; ?>
        <?php endif;
      else :
        
    $subStyle 'modChrome_'.(isset($attribs['subStyle']) ? $attribs['subStyle'] : 'xhtml');
        
    $subStyle($module$params$attribs); // 1col
      
    endif;
    }

    function 
    modChrome_subtemplates_col($module, &$params, &$attribs$modules)
    {
      
    $subStyle 'modChrome_'.(isset($attribs['subStyle']) ? $attribs['subStyle'] : 'xhtml');

      
    $subcClass 'subc';
      
    $cAlign 'l';
      if(
    $modules['first']->id==$module->id) {
        
    $subcClass 'subcl';
      } elseif(
    $modules['last']->id==$module->id) {
        
    $subcClass 'subcr';
        
    $cAlign 'r';
      }

      
    $width = (100 $modules['count']); // auto width

      
    $mClass $params->get('moduleclass_sfx');
      
    $mClasses explode(' '$mClass);
      foreach(
    $mClasses as $i=>$class) {
        
    $class trim($class);

        if(
    strpos($class'%') !== false) {
          
    $width str_replace('%'''$class);
          unset(
    $mClasses[$i]);
        }
      }
      
    $mClass implode(' '$mClasses);
      
    $params->set('moduleclass_sfx'$mClass); // set without % data for module inner rendering

      
    $width floor($width);

      
    $cClass 'c'.$width.$cAlign;

      
    ?>
      <div class="<?php echo $cClass?>">
        <div class="<?php echo $subcClass?>">
           <?php $subStyle($module$params$attribs); ?>
        </div>
      </div>
      <?php
    }
    Nach dem speichern der Datei kann der Style entweder über die Konfiguration ausgewählt werden oder ganz normal als jdoc satement eingefügt werden.

    Z.B.
    Code:
    <jdoc:include type="modules" name="footer" style="subtemplates" subStyle="xhtml" />
    oder
    Code:
    <?php $jyaml->getPosition('modules', 'footer', 'subtemplates', 'subStyle="xhtml"'); ?>
    Verfügbare Attribute:
    subStyle = modCrhome Style für die Spalten (xhtml, none, rounded, jyaml, etc) (standard xhtml)
    Alle weitern Attribute werden übergeben (beim style jyaml z.B. kann headerLevel verwendet werden).

    Spaltenmaß anpassen pro Modul.
    Im Footer sind z.B. 2 Module. Diese werden automatisch in 50/50 aufgeteilt. Man kann dies manipulieren und z.B. eine 33/66 aufteilung erstellen.
    Modul-Class-Suffix erstes Modul = ' 33%' eingeben.
    Modul-Class-Suffix zweites Modul = ' 66%' eingeben.
    Und schon hat man eine 33/66 Spaltenaufteilung.

    Gruß
    Reinhard
    Geändert von hieblmedia (17.01.2012 um 15:38 Uhr)
    :: JYAML :: HieblMedia :: Twitter ::
    Zufrieden mit meinem Support? Ich lasse mich gerne überraschen - Meine Wunschliste / oder Spende.

+ Antworten

Ähnliche Themen

  1. MOVED: Probleme Installation JYAML
    Von djesse im Forum HTML, CSS und Gestaltung
    Antworten: 0
    Letzter Beitrag: 24.04.2009, 17:07

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein