ZebroidФорумПубличный разделВопросыВопрос по транслиту

Вопрос по транслиту

07 июня 2014, 12:18
Зарегистрирован: 09 июля 2013, 02:07
Здравствуйте.

Подскажите пожалуйста, как решить проблему с обрезкой транслитированного текста, какие параметры настроек нужно изменить?

Допустим есть текст «Помогите решить проблему с обрезкой урлачтонеобходимо поправить» — ставим в настройках 45
и на выходе получаем «promigite-reshit-problemu-s-obrezkoj» — 36 символов,
а должно быть 45 «promigite-reshit-problemu-s-obrezkoj-urlacht».
Т.е получается если слово транслитрируется целиком, а если оно не попадает в диапазон 45, то оно попросту выкидывается вместо того, чтобы обрезать часть слова.
Спасибо.

07 июня 2014, 12:20
Зарегистрирован: 10 апреля 2012, 00:00
Все верно, программа не обрезает слова по середине.

07 июня 2014, 12:36
Зарегистрирован: 09 июля 2013, 02:07
А как-то решить данную проблему можно?
Просто о данном нюансе не знал, до тех пор пока не потребовалось отредактировать несколько статей, в результате чего они по старому адресу стали отдавать ошибку 404. Поскольку cms обновила урл, а она, cms, обрезает слова.

07 июня 2014, 13:27
Зарегистрирован: 10 апреля 2012, 00:00
Если вам нужно отредактировать записи так, чтобы не изменялся alt_name, тогда в настройках стоило активировать опцию «Не изменять alt_name для существующих записей»

07 июня 2014, 15:58
Зарегистрирован: 09 июля 2013, 02:07
Я не про работу зеброида. А про CMS.
Импортировал статьи на сайт и на нем стали их редактировать, после чего url обновляется.
Соответственно нужна возможность настройки транслита таким образом, чтобы при редактировании на сайте не нужно было думать о том, что url изменится.
Чтобы была возможность поставить нужную
<pre class="brush: xml;"><MaxLength>40</MaxLength>
и указать, обрезать url на середине слова, или оставлять только целые как сейчас.

Комментарий отредактирован 2 раз(а). Последний раз редактировал AlexSandr 07 июня 2014, 16:02.
07 июня 2014, 16:26
Зарегистрирован: 10 апреля 2012, 00:00
Такой возможности нету, Зеброид обрезает по словам, попытайтесь настроить вашу CMS чтобы она не изменяла урлы во время редактирования или хотя бы убрать лимит на длину урл в CMS и в программе.

Тут явно не правильное поведение CMS, так как урлы менять во время редактирования в любом случае не хорошо.

07 июня 2014, 18:14
Зарегистрирован: 09 июля 2013, 02:07
Ясно спасибо.
Пока решил данную проблему тем, что залез в код CMS, что, конечно, не очень хорошо.
Если у кого будет подобная проблема, ищите в своей cms функцию, которая отвечает за формирование урл, и напиши примерно следующее:
$string_strlen= strlen($string);
	   if ($string_strlen>40) {
	   $string_url = substr($string,0,mb_strripos(mb_substr($string,0,40),'-')); 
	   return $string_url;
	   }
	   else return mb_substr($string, 0, 40);
	   }
$string — тот урл, который изначально отдает cms, 40 — максимальное кол-во символов в URL, которое вы хотите видеть в адресной строке.
Решение, конечно, не совсем грамотное, но возможно кому-нибудь поможет.