-------------------------------------------------------------------------------
7.) PHP-Codestücke zur Template Steuerung
-------------------------------------------------------------------------------
Abfrage nach der momentan aufgerufenen Komponente:
Verwendung dieses Werts für die Einbindung einer Modulposition:
PHP-Code:
<?php if (JRequest::getVar('option') == 'com_content' ) : ?>
<jdoc:include type="modules" name="modulposition_nur_bei_com_content" style="xhtml" />
<?php endif; ?>
-------------------------------------------------------------------------------
Abfrage des momentanen Views:
Hier wird beispielsweise abgefragt, ob die Startseite angezeigt wird (genauer, der Startseitenblog unter 1.5 / "Featured" ab Joomla 1.6)
Für Joomla 1.5
PHP-Code:
<?php if(JRequest::getVar('view') != 'frontpage') : ?>
<jdoc:include type="modules" name="moduleposition_ohne_frontpageblog" style="xhtml" />
<?php endif; ?>
Für Joomla 1.6/1.7
PHP-Code:
<?php if(JRequest::getVar('view') != 'featured') : ?>
<jdoc:include type="modules" name="moduleposition_ohne_featured_blog" style="xhtml" />
<?php endif; ?>
-------------------------------------------------------------------------------
Prüfung, ob der momentane Menüpunkt der Standardmenüeintrag ist (Der Menüpunkt, der direkt bei Ersteintritt auf der Seite angezeigt wird. Also dann, wenn die index.php ohne Parameter aufgerufen wird):
PHP-Code:
<?php
$menu = & JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
echo 'This is the front page';
}
?>
Ab Joomla 1.6 reicht folgende Anweisung (das & wird nicht mehr benötigt):
PHP-Code:
<?php
$menu = JSite::getMenu();
if ($menu->getActive() == $menu->getDefault()) {
echo 'This is the front page';
}
?>
Für Mehrsprachige Sites muss der Code wie folgt eingebaut werden
PHP-Code:
<?php $app = JFactory::getApplication(); ?>
<?php $menu = $app->getMenu(); ?>
<?php $lang = JFactory::getLanguage(); ?>
<?php if ($menu->getActive() == $menu->getDefault($lang->getTag())) { ?>
code goes here...
<?php } ?>
damit auch der Language-Tag ausgewertet wird.
Das Gegenstück dazu, um Teile auf der Startseite auszublenden
PHP-Code:
<?php $app = JFactory::getApplication(); ?>
<?php $menu = $app->getMenu(); ?>
<?php $lang = JFactory::getLanguage(); ?>
<?php if ($menu->getActive() != $menu->getDefault($lang->getTag())) { ?>
code goes here...
<?php } ?>
Quelle und Ergänzung von Helrunar
-------------------------------------------------------------------------------
Ausgabe nach Status eingeloggt/nicht eingeloggt
PHP-Code:
<?php
$user = JFactory::getUser();
if (!$user->id) :
?>
Ausgabe nur für eingeloggte User
<?php
endif;
?>
-------------------------------------------------------------------------------
Modulausgabe je nach Benutzergruppe
Für Joomla 1.5:
PHP-Code:
<?php
$userattr = JFactory::getUser();
$condition = $userattr->get('usertype');
if($condition == 'Registered') { ?>
<jdoc:include type="modules" name="positionname" style="xhtml" />
<?php } ?>
Mögliche Werte:
Registered - Author - Editor - Publisher - Manager - Administrator - Super Administrator
Quelle
Für Joomla 1.6+:
Modulausgabe je nach Benutzergruppe per Gruppenname abfragen (fehleranfällig):
PHP-Code:
<?php
// per Gruppenname abfragen (fehleranfällig)
// Achtung: Namen können im Backend geändert werden!
if ( array_key_exists('Registered', JFactory::getUser()->groups) ) : ?>
<jdoc:include type="modules" name="sonderangebote" />
<?php endif; ?>
per Gruppen-ID abfragen (besser)
PHP-Code:
<?php
// per Gruppen-ID abfragen: #2 = Gruppe "Registered"
if ( in_array(2, JFactory::getUser()->groups) ) : ?>
<jdoc:include type="modules" name="sonderangebote" />
<?php endif; ?>
Gast oder angemeldet?
PHP-Code:
<?php
// Gast oder angemeldet?
if ( JFactory::getUser()->guest ) : ?>
<jdoc:include type="modules" name="werbung" />
<?php else: ?>
<jdoc:include type="modules" name="keine_werbung" />
<?php endif; ?>
Dank an CirTap
-------------------------------------------------------------------------------
Itemid Ausgabe im Template
PHP-Code:
<?php
$app = JFactory::getApplication();
$active = $app->getMenu()->getActive()->id;
echo $active;
?>
Quelle
Direkte Verwendung der übergebenen Variablen (funktioniert nicht beim Standardmenüpunkt)
PHP-Code:
<?php if ((JRequest::getVar( 'Itemid', 0 ))==123)
: ?>
<jdoc:include type="modules" name="module_fuer_itemid123" />
<?php else: ?>
<jdoc:include type="modules" name="modul_fuer_alle_anderen_itemids" />
<?php endif; ?>
-------------------------------------------------------------------------------
PHP if Bedingung mit Alternative
PHP-Code:
<?php
if (Bedingung) :
?>
Ausgabe bei Bedingung wahr
<?php
else :
?>
Ausgabe bei Bedingung unwahr
<?php
endif;
?>
-------------------------------------------------------------------------------
Weitere interessante Möglichkeiten zu Joomla 1.5:
http://www.bloggerschmidt.de/blog/it...bdesigner.html
und zu Joomla 1.7
http://open-images.com/referenzen/jo...g-per-php.html
Lesezeichen