Я разместил сообщение в сообществе Joomla и получил отличное решение. Для тех, кто сталкивается с той же проблемой, вот решение/код, который работает:
"Свойство value поля возвращает визуализированный HTML. Чтобы получить значение, введенное в форму, используйте rawvalue Кроме того, весь пользовательский ввод должен быть экранирован, чтобы предотвратить XSS-атаки. Было бы неплохо проверить наличие полей, чтобы предотвратить предупреждения PHP и недопустимый вывод HTML:"
.
Код: Выделить всё
'
[url=">[/url]
'
Мой текущий код (для тестирования):
Код: Выделить всё
[url=https://vendor-website]https://vendor-website.com/tdmSmO[/url]"
Это Похоже, что url.php Joomla из /plugins/fields/urls/tmpl играет важную роль в неправильном целевом URL. Код url.php:
.[code] 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);
}
echo sprintf(
'[url=%s]%s[/url]',
htmlspecialchars($value),
$attributes,
$text
);
2-е ОБНОВЛЕНИЕ
Я добился некоторого прогресса, и теперь у меня есть такой код, который работает после добавления двух глобальных переменных:
Код: Выделить всё
$buyURL = $this->item->jcfields[19]->value;
$vendorName = $this->item->jcfields[7]->value;
[url=$buyURL][/url]
Я проверил ссылку $buyURL с помощью который показывает правильный URL-адрес во внешнем интерфейсе. Однако встроенный URL-адрес показывает https://my-website.com/demo/category/$buyURL
ЛЮБЫЕ ПРЕДЛОЖЕНИЯ, ЧТО Я ДЕЛАЮ НЕПРАВИЛЬНО?< /strong>
ОБНОВЛЕНО Используя настраиваемые поля в Joomla, я создал несколько настраиваемых полей для макета статьи. Данные, которые будут заполнять настраиваемые поля, будут включать 1) имя поставщика и 2) URL-адрес веб-сайта поставщика.
Код PHP, загружающий эти данные:
(Название поставщика)
Код: Выделить всё
Код: Выделить всё
Я добавил глобальную переменную для URL-адреса в верхней части файла под другими глобальными переменными, как таковыми. : $buyURL = $this->item->jcfields[19]->value;
Я пытался использовать переменную $buyURL в операторе href в качестве ссылки, но она выводит имя переменной в конце URL-адреса моего веб-сайта.
Я безуспешно пробовал несколько вариантов оператора.
Как мне написать php с [url=
Подробнее здесь: https://stackoverflow.com/questions/791 ... -url-in-ph