Вызов функции PHP в шаблоне TPL с параметрами - PullRequest
0 голосов
/ 07 апреля 2020

У меня проблемы с вызовом функции 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}, и это работает, но это делает сайт крайне медленным.

Извините за длинный вопрос, надеюсь, я опишу его полностью. Спасибо за каждый ответ.

...