Forums / National / Russian / Тех. поддержка / Надо выпилить из cot_url языковую переменную

Roffun
#45260 2020-12-02 00:55

Для примера, если не вникать для чего это нужно, а просто ответить на вопрос как из строки выводимой с помощью cot_url($area, $item), которая выводит значение /en/page/alias.html программно удалить /en или любой другой из языков которые могут быть подключены. Предположим что нужно убирать префикс у en, fr, ru. Например preg_filter:

если $my_url = cot_url($area, $item); // /en/page/alias.html
то
$my_new_url = preg_filter('#/(en|ru|fr)(.+)#i', '$2', $my_url);   //  /page/alias.html

Также есть еще дополнительные параметры у самой функции cot_url:

function cot_url($name, $params = '', $tail = '', $htmlspecialchars_bypass = false, $ignore_appendix = false)

Последний параметр $ignore_appendix, если его переключить в true, отключает автоматические префиксы в url если были объявлены для $cot_url_appendix.

/**
 * Parameters to be automatically appended to all URLs if present
 */
$cot_url_appendix = array();

Например:
cot_url($area, $item, '', false, true);

Насчет cot_url_modify, это функция модификации существующих url. Если переменная пустая, она не выводится. Но если заглянуть в саму функцию, то видно что она по умолчанию формирует url из переданных параметров + GET в строке, и остальная часть берется автоматически. Таким образом можно убрать любую переменную из url передав ее с пустым значением. Например чтобы убрать алиас:

cot_url_modify(array('al'=> ''));

Таким же образом можно убрать из url переменную которая выводит языковую версию.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts