-
Notifications
You must be signed in to change notification settings - Fork 33
Doku Entwickler Captcha
captchaNeeded() verfügbar ab Ilch 2.1.8.
Der Administrator kann im Admincenter angeben welche Benutzer-Gruppen kein Captcha lösen müssen. Ein Modul sollte diese Einstellungen respektieren, wenn ein Captcha genutzt wird. Damit ein Modul einfach abfragen kann ob ein Captcha angezeigt werden soll oder nicht wurde die Funktion captchaNeeded() geschaffen. Die Funktion captchaNeeded() gibt einen Rückgabewert vom Typ Boolean (true, false) zurück. "true" wird zurückgegeben, wenn das Lösen eines Captcha notwendig ist, andernfalls "false".
Im Controller des Moduls wird die Validator-Klasse genutzt. Hier muss man natürlich je nach Rückgabewert von captchaNeeded() die Regeln für den Validator anpassen. Der Rückgabewert dieser Funktion wird an die View übergeben, damit dort das Captcha aus- bzw. eingeblendet werden kann.
$captchaNeeded = captchaNeeded();
[...]
$validationRules = [
'name' => 'required',
'link' => 'required|url',
'banner' => 'required|url'
];
if ($captchaNeeded) {
$validationRules['captcha'] = 'captcha';
}
$validation = Validation::create($post, $validationRules);
[...]
$this->getView()->set('captchaNeeded', $captchaNeeded);
Hier wird der Rückgabewert von captchaNeeded() genutzt um zu entscheiden ob ein Captcha in die View eingebunden wird oder nicht.
<?php if ($this->get('captchaNeeded')) : ?>
<div class="form-group <?=$this->validation()->hasError('captcha') ? 'has-error' : '' ?>">
<label class="col-lg-2 control-label">
<?=$this->getTrans('captcha') ?>
</label>
<div class="col-lg-8">
<?=$this->getCaptchaField() ?>
</div>
</div>
<div class="form-group <?=$this->validation()->hasError('captcha') ? 'has-error' : '' ?>">
<div class="col-lg-offset-2 col-lg-8 input-group captcha">
<input type="text"
class="form-control"
id="captcha-form"
name="captcha"
autocomplete="off"
placeholder="<?=$this->getTrans('captcha') ?>" />
<span class="input-group-addon">
<a href="javascript:void(0)" onclick="
document.getElementById('captcha').src='<?=$this->getUrl() ?>/application/libraries/Captcha/Captcha.php?'+Math.random();
document.getElementById('captcha-form').focus();"
id="change-image">
<i class="fa fa-refresh"></i>
</a>
</span>
</div>
</div>
<?php endif; ?>
Dokumentation für ilch 2 | Content-Management-System | Copyright © 2004-2024 by ilch.de
-
Inhaltsverzeichnis
Hier findet man u.a. die Installationsanleitung, sowie Fehler- und Problem-behebungen
-
Inhaltsverzeichnis
Hier findet man Informationen zum Script, Konzept und dem Programmierstil
-
Inhaltsverzeichnis
Hier findet man Informationen über den Aufbau und Anpassung von Layouts und Modulen
-
Inhaltsverzeichnis
Hier findet man einige Video-Tutorials um und mit unserem CMS