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

Kopusha
#1 2020-11-30 19:44

Есть cot_url($area, $item);
Возвращает /en/folio/alias/
Мне нужно получить функцией это же но без /en/ru/ua - только /folio/alias/
Не разобрался как, в functions php в cot_url есть и $ignore_appendix и есть cot_parse_url отдельная функция - но не смог понять как правильно.

 

Added 1 hour later:

Пока сделал через опу, может есть какой то нормальный способ

					$path = $url;
					$path = explode('/', $path);
					unset($path[0]);
					$path = implode('/', $path);

 

This post was edited by Kopusha (2020-11-30 21:08, 3 years ago)
jCube Group
#2 2020-12-01 07:04

а в админке в настройках не пробовали искать?  я там кажись что-то видел.

Я не пользу. мульти язычность,  но думаю должно быть в настройках.

Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Kopusha
#3 2020-12-01 12:41

Мне надо именно из переменной выпилить, не из урла браузера

jCube Group
#4 2020-12-01 14:04

ну и ладно.

Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Kopusha
#5 2020-12-01 15:00

Надеялся кто то подскажет встроенный в движок механизм получить урл по нужным параметрам.

jCube Group
#6 2020-12-01 15:28

cot_url()
но всроенный с функцией убрать то что не нужно нету, но можно написать. 
а еще кстати можно php если язык  это всегда 2 символа то можно substr(cot_url(), 2) ( или 3 если нужно убрать и / )

Сделал группу в телеге https://t.me/Cotonti_help если что помогу с вопросами.
Roffun
#7 2020-12-01 17:32
#45252 Kopusha:

Есть cot_url($area, $item);
Возвращает /en/folio/alias/
Мне нужно получить функцией это же но без /en/ru/ua - только /folio/alias/
Не разобрался как, в functions php в cot_url есть и $ignore_appendix и есть cot_parse_url отдельная функция - но не смог понять как правильно.

 

Added 1 hour later:

Пока сделал через опу, может есть какой то нормальный способ 

Начиная с Cotonti 0.9.15 появилась функция  cot_url_modify(), это если системный модификатор использовать, также можно стандартные функции PHP применять типа str_replace или Функции PCRE.

Улетел на другую планету, а там почты нету.. https://www.cotonti.com/forums/45298?m=posts
Kopusha
#8 2020-12-01 17:47

Ну тогда к примеру - у меня есть
$area - это всегда модуль + категория + подтягивает язык из за cot_url

$item - это алиас или айди

cot_url($area, $item); дает мне /en/page/alias.html

Через что мне лучше получить /page/alias.html ? Как cot_url_modify() сюда присобачить?

А не через  cot_url я получаю array естественно.
Заранее спасибо!

Roffun
#9 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
Kopusha
#10 2020-12-02 08:28

Вот, огромное спасибо!!!!!