Бывает, что в уже в клиентской части страницы, в HTML-коде, в ссылке вместо «&» получаем «&».
Это потому, что со знака «&» (амперсанд) начинаются комбинации символов (HTML-коды), чтобы корректно отображать определенные знаки на веб-страницах.
например:
© - © - копирайт
$ - $ - знак доллара
😀 - 😀 - Улыбающееся лицо.
Например, в каком либо плагине, в php-файлах нужно получить ссылку и передать её tpl-файлы, чтобы уже в нужном месте, эту гипертекстовую ссылку вывести или подключить.
В .tpl
создаем тег {MY_TAG}, для размещения его в шаблоне.
В .php
$my_url = str_replace('&', '&', cot_url('forums', "m=posts&id=" . $p));
....
$mskin = cot_tplfile([
'zakaz',
'posts',
Cot::$structure['zakaz'][$s]['tpl']
]);
$t = new XTemplate($mskin);
$arrayMyTags = [
...
'MY_TAG' => Cot::$cfg['mainurl'] . '/' . $my_url,
....
];
....
$t->assign($arrayMyTags);
......
$t->parse('MAIN');
str_replace - в данном случае, - это функция, которая возвращает строку,
где ищем первый аргумент '&'
и заменяем на второй аргумент '&'
в третьем аргументе - тело ссылки cot_url('forums', "m=posts&id=" . $p)