Joomla!-Template Schnipsel (1.5) - Code-Fetzen für den Webdesigner

Geschrieben am 08. Dezember 2009 von Alexander Schmidt 1 Kommentar

Mootools entfernen, Modalbox einbinden oder sexy Tooltipps erstellen. Einiges lässt sich durch wenige Zeilen Code realisieren. Einfach die index.php des jeweiligen Templates öffnen und mit folgenden Schnippseln bestücken...

code

Mootools entfernen

Die Javascript-Bibliothek mootools.js und caption.js lassen sich mit Hilfe von PHP entfernen. Einfach eine der nachfolgenden Methoden auswählen und vor dem HTML-Quelltext platzieren (PHP) (Quelle: How to pimp your Joomla! Template).

Methode 1

$user =& JFactory::getUser();
if ($user->get('guest') == 1 or $user->usertype == 'Registered') {
   $headerstuff = $this->getHeadData();
   $headerstuff['scripts'] = array();
   $this->setHeadData($headerstuff);
}

Methode 2

$headerstuff=$this->getHeadData();
reset($headerstuff['scripts']);
foreach($headerstuff['scripts'] as $key=>$value){
  unset($headerstuff['scripts'][$key]);
}
$this->setHeadData($headerstuff);

Allerdings entfernen diese beiden Methoden alle Skripte aus dem Header, was bei eingesetzten Komponenten zu Fehler führen kann. Um lediglich Mootools zu entfernen benutzt man folgende Methode:

Methode 3

$headerstuff=$this->getHeadData();
reset($headerstuff['scripts']);
unset($headerst uff['scripts'][$this->baseurl.'/media/system/js/mootools.js']);
$this->setHeadData($headerstuff);

Modalbox (Lightbox) einbinden

Die Modalbox setzt Mootools voraus, sprich: Mootools darf nicht (wie oben beschrieben) deaktiviert sein. Um den Effekt einer Modalbox nun zu bekommen, platziert man am Anfang der index.php folgende Zeile (PHP-Code) (Quelle: Modal Box im Frontend nutzen)

JHTML::_('behavior.modal');

und den Link, der die Box öffnen soll, mit der Klasse „modal“ versehen.

<a class="modal">Link</a>

Sexy Tooltipps erstellen

Die Tooltipps, die schon im Backend von Joomla genutzt werden, können ganz leicht für das Frontend aktiviert werden. Folgender PHP-Einzeiler am Anfang der index.php aktiviert die Tipps (Quelle: How to add tooltips to your Joomla! website):

JHTML::_('behavior.tooltip');

Dazu ein bißchen Javascript zwischen und ...

<script type="text/javascript">
    window.addEvent('domready', function(){
       var JTooltips = new Tips($$('.hasTip'),
       { maxTitleChars: 50, fixed: false});
    });
</script>

... und schon bekommen alle Links, die mit der Klasse „hastip“ und einem title versehen sind den schicken Tipp angezeigt.

<a class="hasTip" title="Tooltipp-Titel::Das ist der Tooltipp-Text">Link</a>

Tipp: Im Cascading Style Sheet läßt sich der Tooltipp nach Belieben gestalten.

/* Tooltips */
.tool-tip {
   float:left;
   background:#ffc;
   border:1px solid #D4D5AA;
   padding:5px;
   max-width:200px;
}
.tool-title {
   padding: 0;
   margin: 0;
   font-size: 100%;
   font-weight: bold;
   margin-top: -15px;
   padding-top: 15px;
   padding-bottom: 5px;
   background: url(../images/selector-arrow.png) no-repeat;
}
.tool-text {
   font-size: 100%;
   margin: 0;
}

Kontrollstrukturen für das Template

Ist das Template z. B. in drei Spalten eingeteilt - left, content, right - kann man durch kleine PHP-Schnippsel die rechte Spalte nur dann anzeigen lassen, wenn darin auch ein Modul angezeigt wird.

if ($this->countModules( 'right' )) :

Danach folgt der Inhalt der rechten Spalte und mit

endif;

schliessen wir die Anweisung wieder. Mit else können wir noch ein Verzweigung einbauen; sprich, einen anderen Inhalt anzeigen lassen, wenn kein Modul angezeigt wird.

if ($this->countModules( 'right' )) :
// Inhalt rechte Spalte
else :
// Anderer Inhalt
endif;

Oftmals möchte man nur eine CSS-Klasse (class="...") davon abhängig machen, ob ein Modul angezeigt wird oder nicht. Dann sieht das PHP dafür so aus:

echo ($this->countModules('right')) ? ('rightclass') : ('otherclass');

Allgemeine Template-Befehle

Hier noch einige allgemeine Template-Befehle:

// Kein direkter Zugriff
defined( '_JEXEC' ) or die( 'Restricted access' );
 
// Generator Tag auf Null setzen
$this->setGenerator(null);
 
// Anzeiger der Modulpositionen ausschalten
JRequest::setVar('tp', 0);
 
// Template Parameter
$this->params->get('ParameterName');
 
// Seitenname
echo $mainframe->getCfg('sitename');
 
// Titel
echo $mainframe->getPageTitle();
 
// Beschreibung
echo $this->description;
 
// Sprache
echo $this->language;
 
// Datum / Zeit
$date = new JDate(time());
echo $date->toFormat();
 
// Stammverzeichnis
echo $this->baseurl;
 
// Aktives Template; aktiver Template-Ordner
echo $this->template;
 
// Übersetzbarer Text
echo JText::_('Text');
 
// Artikel Parameter
print_r ($this->params);
 
// Artikel Eigenschaften
print_r ($this->article);

Über den Autor

Alexander Schmidt

Alexander Schmidt ist Webentwickler, Buchautor und Dozent. Er lebt mit seiner Familie in Bad Nauheim / Hessen. Seit 2005 realisiert er als Einzelunternehmer Websites mit Joomla und hat sich sich auf hochwertige Template-Umsetzungen spezialisiert. Er ist Fachautor der Zeitschrift t3n.

 

 

Kommentare (1)

  • Unallykashy

    Unallykashy

    06 Mai 2012 um 04:53 |
     Alle der AP war im Grunde weitem im Rahmen der wegen , einer Person Assistant US Attorney, die Nugent Dieser wohnen in mit Ketchikan, Alaska. Eine E-Mail sucht Kommentar von in Karen Loeffler, die US-Justizminister zum Zweck der Alaska, wurde got nicht berücksichtigt darf nicht sofort zurückgegeben. [url= http://www.michaelkorswien.com]michael kors schuhe[/url]
    Kommandeure auf ein neues spezifischen Fort Knox, Kentucky, Post nixed Nugents Segment im das gesamte Wippe und auch gefunden bei a real jüngsten verstaatlicht , die kann sie oder er möglicherweise sein "tot oder Alternativ in Bezug gefunden zum Dieser wichtige Zeitspanne höchste Zeit, im nächsten Jahr ", wenn Obama ist ist wirklich wiedergewählt. [url= http://www.michaelkorsgermany.com]michael kors uhren[/url]
    Um Gegen nur so, dass da ist ein wichtiger in seiner Unsere Nation meiste have vielleicht related to allererste Sitz in seit jeher auf dem Markt zu aus ist sicherlich ein Beleidigung sowie seiner Opfer Zusammenhang mit zwischen den Helden, die zu erreichen, um zu gewinnen Art der , in zwischen Rights ", sagte Nugent. http://www.michaelkorswien.com

Bitte Kommentar schreiben

Sie kommentieren als Gast.