У меня проблемы с вызовом функции PHP в шаблоне TPL. Файл PHP и функция находятся в другой папке, чем мой файл шаблона TPL.
У меня есть функция в php файле, которая выглядит так:
function redirecttrack($param) {
$url = $param;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
$html = curl_exec($ch);
$redirectedUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
curl_close($ch);
echo "Original URL: " . $url . "<br/>";
echo "Redirected URL: " . $redirectedUrl . "<br/>";
return $redirectedUrl;
}
$functioncall = redirecttrack($param);
smarty->assign('redirectHelp', $functioncall);
Я пытался вызвать функцию в tpl с {$ a | redirecttrack: "URL для отслеживания "} и другие решения, которые я нашел в inte rnet, но они не будут работать.
Есть ли ошибка в коде функции, вызывая ее? И нужно ли мне каким-то образом включать мой php файл, чтобы он работал.
Или, может быть, есть решение следовать перенаправлению без использования php, но в самом tpl. Чтобы добавить контекст, мне нужно реализовать hreflangs для другой языковой версии, и мне нужно получить эквивалент текущего URL. На сайте, на котором я работаю, есть перенаправление, например, URL:
URL: domain.com/category/product
Эквивалентный URL, который мне нужно получить: domain.de / category / product (а здесь перенаправление на категорию in и product на немецком языке). Итак, наконец, мне нужен этот url domain.de/categoryingerman/productingerman, и этот URL-адрес возвращает моя функция в php, но он мне нужен, чтобы использовать его в tpl.
Я пытался использовать {php} myfunction {/ php}, и это работает, но это делает сайт крайне медленным.
Извините за длинный вопрос, надеюсь, я опишу его полностью. Спасибо за каждый ответ.