Jetzt habe ich es hinbekommen.
Ich suche im Wert welcher ins Feld eingegeben wurde nach dem @-Zeichen. Ist es vorhanden, wird ein korrekter mailto-Link erstellt.
Von der url.php muss ein Override erstellt werden (/templates/[Name des Templates]/html/plg_fields_url/url.php) und danach der Code mit dem nachstehenden ersetzt werden:
<?php
/**
* @package Joomla.Plugin
* @subpackage Fields.URL
*
* @copyright (C) 2016 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Uri\Uri;
$value = $field->value;
if ($value == '')
{
return;
}
$attributes = '';
if (!Uri::isInternal($value))
{
$attributes = ' rel="nofollow noopener noreferrer" target="_blank"';
$text = Text::_('JVISIT_WEBSITE');
}
else
{
$text = Text::_('JVISIT_LINK');
}
if ($fieldParams->get('show_url', 0))
{
$text = htmlspecialchars($value);
}
$mailSchema = 'mailto:';
$isat = '@';
$isMail = (false !== strpos($value, $isat, 0));
if($isMail) {
echo sprintf('<a href="'.$mailSchema.htmlspecialchars($value).'">'.htmlspecialchars($value).'</a>',
);
}
else {
echo sprintf('<a href="%s"%s>%s</a>',
htmlspecialchars($value),
$attributes,
$text
);
}
Sicher keine Glanzlösung, aber sie funktioniert.
Thanks @Roger fürs Vorspuren mit der Lösung für J3!