Files
dokuwiki-plugin-struct/types/Mail.php
Andreas Gohr 7fe2cdf28c apply #670 and manually cleanup afterwards
fixes some failing tests
uses sexplode over array_pad
reformats multiline arrays
2023-09-13 13:28:04 +02:00

47 lines
1.1 KiB
PHP

<?php
namespace dokuwiki\plugin\struct\types;
use dokuwiki\plugin\struct\meta\ValidationException;
class Mail extends Text
{
protected $config = [
'prefix' => '',
'postfix' => ''
];
/**
* Output the stored data
*
* @param string|int $value the value stored in the database
* @param \Doku_Renderer $R the renderer currently used to render the data
* @param string $mode The mode the output is rendered in (eg. XHTML)
* @return bool true if $mode could be satisfied
*/
public function renderValue($value, \Doku_Renderer $R, $mode)
{
$mail = $this->config['prefix'] . $value . $this->config['postfix'];
$R->emaillink($mail);
return true;
}
/**
* Validate
*
* @param int|string $rawvalue
* @return int|string
*/
public function validate($rawvalue)
{
$rawvalue = parent::validate($rawvalue);
$mail = $this->config['prefix'] . $rawvalue . $this->config['postfix'];
if (!mail_isvalid($mail)) {
throw new ValidationException('Mail invalid', $mail);
}
return $rawvalue;
}
}