+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Tutorial: Dynamische Body CSS Klassen (itemid, category, section, usw.)

  1. #1

    Idee Tutorial: Dynamische Body CSS Klassen (itemid, category, section, usw.)

    [Update: In JYAML 3.0.5 bereits intregriert]
    [Dies ist bereits in der Joomla 1.6+ Version integriert.] - (http://www.jyaml.de/dokumentation/jy...s-klassen.html)

    Hallo,
    das es öfter mal benötigt wird, auch von mir selbst, hier eine komplette Funktion zum erzeugen von wichtigen body-CSS-Klassen.

    Hinzugefügt wird...
    • Itemid (Menü-Id)
    • Eltern Itemids der aktuellen Itemid
    • Komponenten-Namen, Komponenten-Tasks und Komponenten-View-Namen
    • Bereichs-ID, Kategorie-ID(inkl. Bereichs-Id) und Beitrags-ID(inkl. Bereichs- und Kategorie-Id)
    • Verwendete Browser Engine des Clients und die Client Plattform
    Einfach in den Quelltext der jeweiligen Seiten schauen mit dem Browser, dann sieht man ja was drin steht bei <body>.

    Und hier die Anleitung:

    1. Folgende PHP-Funktion in die verwendete index HTML Datei kopieren ([template]/html/index/index_xyz.php).
    Am besten gleich nach "defined( '_JEXEC' ) or die( 'Restricted access' );" einfügen.
    PHP-Code:
    /**
     * Generate string for open items for including as css class
     */
    function getBodyClassString($jyaml) {
      
    $db =& JFactory::getDBO();

      
    $arr = array();
      
    $class '';

      
    // add active html_file alias
      
    $arr[] = 'tmpl-'.$jyaml->config->html_file;

      
    // current Itemid
      
    if ($Itemid = (int)$jyaml->config->currentItemID) {
        
    $arr[] = 'itemid-'.$Itemid;
      }
      
    // parent Itemid's
      
    $parentItemIDs = (array)$jyaml->config->parentItemIDs;
      if (!empty(
    $parentItemIDs)) {
        foreach(
    $parentItemIDs as $value) {
          
    $arr[] = 'parent-itemid-'.$value;
        }
      }

      
    // add component name, view, task and id of reqeust
      
    if ($component JRequest::getVar('option')) {
        if (
    $view JRequest::getVar('view')) {
          
    $arr[] = $component.'-view-'.$view;
        }
        if (
    $task JRequest::getVar('task')) {
          
    $arr[] = $component.'-task-'.$task;
        }
        if (
    $id JRequest::getInt('id')) {
          
    $additional = ($view '-'.$view '').($task '-'.$task '');
          
    $arr[] = $component.$additional.$id;
        }
      }

      
    // find section and category items (including articles detail page)
      
    if (JRequest::getVar('option')=='com_content') {
        if (
    JRequest::getVar('view')=='category' && $id JRequest::getInt('id')) {
          
    // from category with parent section
          
    $db->setQuery('SELECT section FROM #__categories WHERE id ='.$id);
          if (
    $section $db->loadResult()) {
            
    $arr[] = 'section-'.$section;
            
    $arr[] = 'category-'.$id;
          }
        }
        elseif(
    JRequest::getVar('view')=='section' && $id JRequest::getInt('id')) {
          
    // from section
          
    $arr[] = 'section-'.$id;
        }
        elseif(
    JRequest::getVar('view')=='article' && $id JRequest::getInt('id'))
        {
          
    // from article with category and section
          
    $db->setQuery('SELECT sectionid, catid FROM #__content WHERE id ='.$id);
          if (
    $result $db->loadObject()) {
            
    $arr[] = 'section-'.$result->sectionid;
            
    $arr[] = 'category-'.$result->catid;
            
    $arr[] = 'article-'.$id;
          }
        }
      }

      
    // add browser engine
      
    if($jyaml->user_browser) {
        
    $browser strtolower($jyaml->user_browser);
        
    $browser preg_replace('#[^a-z0-9]#'''$browser);
        
    $arr[] = 'browser-'.$browser;
      }
      
    // add user plattform
      
    if($jyaml->user_platform) {
        
    $arr[] = 'browser-plattform-'.$jyaml->user_platform;
      }

      
    // add language-code if available
      
    if($_lang JRequest::getString('lang')) {
        
    $arr[] = 'lang-'.$_lang;
      }

      
    // prepare class string
      
    if(count($arr)) {
        
    $class ' class="'.implode(' '$arr).'"';
      }

      return 
    $class;

    2. Den Funktionsaufruf in den Body-Tag setzen.
    Code:
    <body<?php echo getBodyClassString($jyaml); ?>>
    PS: Nur getestet mit JYAML 3.0.4 (Sollten aber alle 3.0er funktionieren). Das ist eine Portierung der internen Entwickler Version. Somit für die später mal kommende Version für Joomla!1.6 standard mit dabei.

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

  2. #2
    Neuer Benutzer
    Registriert seit
    22.12.2008
    Beiträge
    17

    AW: Tutorial: Dynamische Body CSS Klassen (itemid, category, section, usw.)

    Hallo
    Wird der dynamische Body String welcher in jYaml 3.0.5 bereits enthalten ist, in Joomla 1.5 gebraucht oder kann ich den auch löschen?
    Gruss
    Beat

  3. #3

    AW: Tutorial: Dynamische Body CSS Klassen (itemid, category, section, usw.)

    Hallo,
    in Joomla 1.5 ist der optional. Es ist auch nichts vordefiniert in der CSS.

    In Joomla1.6 wird dass dann allerdings anders aussehen, aber da wird man bestimmte Teile deaktivieren können.

    Gruß
    Reinhard
    :: JYAML :: HieblMedia :: Twitter ::
    Zufrieden mit meinem Support? Ich lasse mich gerne überraschen - Meine Wunschliste / oder Spende.

  4. #4
    Neuer Benutzer
    Registriert seit
    09.03.2009
    Beiträge
    16

    AW: Tutorial: Dynamische Body CSS Klassen (itemid, category, section, usw.)

    Das ist super. Vielen Dank!

+ Antworten

Ähnliche Themen

  1. Heartbleed: US-Regierung hält IT-Schwachstellen geheim
    Von itratosBot im Forum Security tweets
    Antworten: 0
    Letzter Beitrag: 29.04.2014, 12:41
  2. Firefox-Update behebt Flash-Probleme
    Von itratosBot im Forum Security tweets
    Antworten: 0
    Letzter Beitrag: 16.06.2012, 15:58
  3. Col3 in Firefox verschoben dargestellt
    Von buddhaman im Forum HTML, CSS und Gestaltung
    Antworten: 6
    Letzter Beitrag: 12.12.2007, 16:38
  4. Kategorie Navigation
    Von imported_Caruso im Forum xt:Commerce
    Antworten: 5
    Letzter Beitrag: 26.11.2006, 22:20

Lesezeichen

Berechtigungen

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