Пользовательское поле URL в Joomla - Удалить префикс mailto - PullRequest
0 голосов
/ 25 октября 2018

в Joomla Я использую настраиваемое поле URL (схема MAILTO) для отображения адреса электронной почты.Проблема в том, что Joomla вставляет префикс mailto дважды в коде: один раз в атрибуте href, а другой - между тегами ссылки, например:

<span class="field-value"><a href="mailto:myEmail@some.site" rel="nofollow" target="_blank">mailto:myEmail@some.site</a></span>

... и это php-код, который управляет его отображением:

defined('_JEXEC') or die;

$value = $field->value;

if ($value == '')
{
    return;
}

$attributes = '';

if (!JUri::isInternal($value))
{
    $attributes = ' rel="nofollow noopener noreferrer" target="_blank"';
}

echo sprintf('<a href="%s"%s>%s</a>',
    htmlspecialchars($value),
    $attributes,
    htmlspecialchars($value)
);

Я хочу удалить префикс mailto между тегами ссылок.

Как продолжить?... возможно с правилом регулярных выражений?Проблема, я не разработчик ...

Спасибо за вашу помощь,

Лоренцо

Ответы [ 2 ]

0 голосов
/ 30 октября 2018

Вы, вероятно, столкнулись с этой проблемой, потому что Joomla пытается скрыть адрес электронной почты.Лучше всего использовать рекомендуемый способ отображения адреса электронной почты, используя встроенные функции маскировки электронной почты.

echo JHtml::_('email.cloak', $value);

См. Также: https://docs.joomla.org/How_to_cloak_email_addresses

0 голосов
/ 25 октября 2018

Спасибо за ваш ответ, я думаю, вы можете попробовать еще раз.

Мой английский немного плохой, в некоторых местах может быть неясное выражение. введите описание изображения здесь

echo sprintf('<a href="%s"%s>%s</a>',
preg_replace("/(^(http|https|ftp):\/\/)|(^mailto:)/i","",htmlspecialchars($value)),
$attributes,
htmlspecialchars($value));


// you can test it
$value = "http://www.kinoki.at";
$value = "mailto:info@kinoki.at";
echo "<pre>";
print_r( preg_replace("/(^(http|https|ftp):\/\/)|(^mailto:)/i","",htmlspecialchars($value)));
echo "<pre>";exit;
...