Für ein ganz einfaches horizontales Menü wie unter www.dietges.de ohne Unterscheidung auf active/first/last und mit ” | ” zwischen den Punkten genügt folgendes Template:
<ul class="<?php echo $this->level; ?>">
<?php foreach ($this->items as $item): ?>
<li<?php if ($item['class']): ?> class=”<?php echo $item['class']; ?>”<?php endif; ?>><?php if ($item['class'] != “first”): ?> | <?php endif; ?><a href=”<?php echo $item['href']; ?>” title=”<?php echo $item['pageTitle'] ? $item['pageTitle'] : $item['title']; ?>”<?php if ($item['class']): ?> class=”<?php echo $item['class']; ?>”<?php endif; ?><?php if ($item['accesskey'] != ”): ?> accesskey=”<?php echo $item['accesskey']; ?>”<?php endif; ?><?php if ($item['tabindex']): ?> tabindex=”<?php echo $item['tabindex']; ?>”<?php endif; ?><?php if ($item['nofollow']): ?> rel=”nofollow”<?php endif; ?> onclick=”this.blur();<?php echo $item['target']; ?>”><?php echo $item['link']; ?></a><?php echo $item['subitems']; ?></li>
<?php endforeach; ?>
</ul>
Im meinem Falle wollte ich die Frontend-Registrierung nur für Mitglieder mit E-Mail Adressen auf einer Whitelist zulassen. Ist sicher nicht die feinste und update-freundlichste Lösung, aber ich habe dazu die Datei /system/libraries/Widget.php editiert.
Suchen (Zeile 555 in 2.6.7):
case 'email':
if (!preg_match('/^\w+([!#\$%&\'\*\+\-\/=\?^_`\.\{\|\}~]*\w+)*@\w+([_\.-]*\w+)*\.[a-z]{2,6}$/i’, $varInput))
{
$this->addError(sprintf($GLOBALS['TL_LANG']['ERR']['email'], $this->strLabel));
}
Danach einfügen:
if($_SERVER["HTTP_REFERER"] == “http://et-fulda.flowtec.net/registrieren.html”) {
$file_whitelist = file(’whitelist.txt’);
$file_blacklist = file(’blacklist.txt’);
$whitelist = array();
$blacklist = array();
foreach($file_whitelist AS $key => $value) $whitelist[] = trim($value);
foreach($file_blacklist AS $key => $value) $blacklist[] = trim($value);if((in_array($varInput, $blacklist)) OR (in_array(str_replace(’hs-fulda’, ‘fh-fulda’, $varInput), $blacklist))) {
$this->addError(”Das ist keine bekannte E-Mail Adresse unseres Fachbereiches.)”, $this->strLabel);
}
if(!(in_array($varInput, $whitelist) OR in_array(str_replace(’hs-fulda’, ‘fh-fulda’, $varInput), $whitelist))) {
$this->addError(”Das ist keine bekannte E-Mail Adresse unseres Fachbereiches”, $this->strLabel);
}
}
Nur Adressen in der whitelist.txt dürfen, aber die von der blacklist.txt haben Priorität und dürfen nicht (auch wenn sie gleichzeitig auf der whitelist stehen). Die Prüfung mit dem Referer war nötig, warum weiß ich aber nicht mehr (ist schon ne Weile her)
Gestetet mit 2.6.1 und 2.6.7.
Die minimale Länge von standardmäßig 8 Zeichen kann nicht direkt im Backend als Option verändert werden, ist aber in folgenden Dateien verankert:
/system/modules/backend/dca/tl_user.php
/system/modules/backend/dca/tl_member.php
/system/modules/backend/password.php
/system/modules/frontend/FormPassword.php
Einfach im Editor nach “8″ suchen und nötige Stellen ersetzen. Getestet mit TL bis Version 2.6.7.