Интернет разработки: PHP, Symfony, C#, ASP.NET, Linux, Windows. При поддержке компании HotSupport.Ru
28
Авг
Apostrophe CMS – изменение стандартной слугофикации (slugify)
Posted by Jeka under Новости
В Apostrophe CMS при сохранении страницы или других элементов автоматически преобразует их названия к виду пригодному для отображения в url, но к сожалению для кириллических строк оно работает не так как хочется. Мне например, необходимо чтобы кириллические символы транслировались в аналоги латинского алфавита.
К счастью такое поведение CMS легко исправить без ковыряния в исходниках Apostrophe, для этого надо:
- Скопировать файл "/plugins/apostrophePlugin/lib/aTools.class.php" куда-нибудь в каталог "/lib" например "/lib/aTools.class.php". В этом случае будет использовать наш класс, а не класс из построфа.
- Переопределить статический метод slugify()
Пример:
<?php
// /lib/aTools.class.php
class aTools extends BaseaTools
{
public static function slugify($path, $allowSlashes = false)
{
$path = hsTextUtils::translit($path);
return parent::slugify($path, $allowSlashes);
}
}
В данном примере hsTextUtils::translit() – это мой метод с помощью которого я делаю трансляцию кириллических символов в латинские, вам следует здесь использовать свой.

It’s good that this solution is working for you. However our usual code attempts to use UTF8 characters directly in URLs. It works, at least for French and Greek. I am not sure why you are having difficulty with it in Russian.
Hello Tom!
Russian symbols from url will be transformed to %XX sequences, for example: «абц» to «%D0%B0%D0%B1%D1%86″ ,
but I would like that there was a string – «abc».