Zitat von
Daniel24
Da ich in PHP nicht so fit bin - kann ich die Überprüfung der Prüfziffer in den (das?) Hook einbauen? Oder geht das an der Stelle nicht?
l
Warum sollte das nicht gehen? (Annahme natürlich: die von Dir verwendete Bibliothek ist in PHP geschrieben und installiert). Am Beispiel des oben vorgeschlagenen lobalcitizen/php-iban in etwa so:
PHP-Code:
// Annahme: globalcitizen/php-iban ist über Composer installiert
require_once(TL_ROOT.'/composer/vendor/globalcitizen/php-iban/php-iban.php');
class yesdoHooks
{
public function myAddCustomRegexp($strRegexp, $varValue, Widget $objWidget)
{
/**
* @param string $strRegexp The unknown regular expression string
* @param mixed $varValue The input value to be validated
* @param Widget $objWidget Form widget which is handling this input value. Use the widget's properties to retrieve information about the field configuration.
*
* @return boolean expects a boolean return value
*/
if ($strRegexp == 'iban')
{
//if (!preg_match('/DE\d{2}([ ]\d{4}){4}[ ]\d{2}|DE\d{20}/', $varValue))
if (!verify_iban(strtoupper($varValue)))
{
$objWidget->addError(sprintf($GLOBALS['TL_LANG']['ERR']['iban'], $objWidget->label));
}
return true;
}
if ($strRegexp == 'bic')
{
if (!preg_match('/[A-Z]{6}[A-Z2-9]{1}[A-NP-Z0-9]{1}(XXX|[a-wyzA-WYZ0-9]{1}[a-zA-Z0-9]{2}){0,1}/', $varValue))
{
$objWidget->addError(sprintf($GLOBALS['TL_LANG']['ERR']['bic'], $objWidget->label));
}
return true;
}
return false;
}
}
Edit: siehe #19