Nachladen von CSS Dateien bei Joomla Webseiten

Joomla 1.5Joomla 1.6Joomla 1.7Joomla 2.5Joomla 3.x

Nehmen wir einmal an wir wollen auf der Startseite unserer Joomla Webseite einen bestimmten Inhalt nachladen. Dieser Inhalt kann Beispielsweise eine CSS Datei sein und soll ausschließlich auf der Startseite angezeigt werden.

Joomla 1.0

Bei Joomla 1.0 konnte man das oben genannte Beispiel mit Folgendem Quellcode im Template lösen:

<?php
if ($option == 'com_frontpage' || $option == '') {
        echo 'This is the front page';
}
?>

Das "com_frontpage" steht hier beispielhaft für die Komponente Startseite

Joomla 1.5

Bei Joomla 1.5 konnte man das oben genannte Beispiel mit Folgendem Quellcode im Template lösen:

<?php
$menu = & JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
        echo 'This is the front page';
}
?>

Bei dieser Abfrage wird geschaut ob der gewählte (aktive) Menüpunkt als Startseite markiert wurde.

Joomla 2.5 and 3.x series

Hier das selbe Beispiel für Joomla 1.6, 1.7 2.5 und 3.x bei einsprachigen Webseiten:

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault()) {
        echo 'This is the front page';
}
?>

Für mehrsprachige Webseiten kann folgender Code verwendet werden, wenn für jede Sprache ein anderer Inhalt geladen werden soll:

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
if ($menu->getActive() == $menu->getDefault( 'en-GB' )) {
        echo 'This is the front page';
}
elseif ($menu->getActive() == $menu->getDefault( 'fr-FR' )) {
        echo 'Accueil';
}
?>

Und für alle mehrsprachigen Joomla Webseiten die bei jeder Sprache den seleben Inhalt nachladen wollen gilt folgender Quelltext:

<?php
$app = JFactory::getApplication();
$menu = $app->getMenu();
$lang = JFactory::getLanguage();
if ($menu->getActive() == $menu->getDefault($lang->getTag())) {
        echo 'This is the front page';
}
else {
        echo 'Accueil';
}
?>

Andere Wege für Joomla 1.6, 1.7, 2.5 und 3.x

CSS für bestemmte Seitenklasse nachladen

Der Folgende Quelltext muss in der index.php des Templates oben geladen werden um die Seitenklasse verwenden zu können.

$pageclass = $params->get( 'pageclass_sfx' ); 

Folgende Abschnitt muss dann in den <head> Bereich der Webseite kopiert werden.

<?php if ($pageclass=="home") { ?>
<script src="/<?php echo $templateUrl; ?>/jquery.reveal.js"></script>
<?php } ?>
CSS laden bei einer bestimmten Menüpunkt
$menu =&JSite::getMenu();
$menuItem = $menu->getActive();
$Itemid = $menuItem->id;if($Itemid!=1){
$doc->addStyleSheet($pluginAssetsUrl .'/css/aecuserpage.css');}

Bei "$Itemid!=1" muss die "1" durch die Id des gewünschten Menüpunktes ersetzt werden.

CSS Datei für eine bestimmte Komponente laden
if(JRequest::getCmd('option')=='com_k2'){
        $doc->addStyleSheet($pluginAssetsUrl .'/css/aecuserpage.css');}
CSS Datei alle Punkte eine bestimmten Menüs laden
<?php
$menuID =JSite::getMenu()->getActive()->id ;if($menuID =='6'){
   $doc->addStyleSheet($pluginAssetsUrl .'/css/aecuserpage.css');}?>

Bei "$menuID == '6'" muss die "6" durch die Id des gewünschten Menüs ersetzt werden.

CSS bei bestimmter Sprache laden:
$lang =&JFactory::getLanguage();switch($lang){case'en-gb':
$doc->addStyleSheet($pluginAssetsUrl .'/css/aecuserpage.css');break;}
CSS Laden wenn sich ein Benutzer angemeldet hat
$user =&JFactory::getUser();if($user->get('id')==0){//user is logged in
 $doc->addStyleSheet($pluginAssetsUrl .'/css/aecuserpage.css');}
CSS laden beim Aufruf einer bestimmten URL
$u =&JFactory::getURI();if($u=="http://www.example.com/joomla/index.php?task=view&id=12&Itemid=29"){
$doc->addStyleSheet($pluginAssetsUrl .'/css/aecuserpage.css');}

Verwandte Themen

Weiterführende Links

http://stackoverflow.com/questions/13544421/joomla-plugin-extension-loads-css-file-on-every-page

Quelle: Websiten Titel
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen Ok