28
Авг

Apostrophe CMS – изменение стандартной слугофикации (slugify)

В 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() – это мой метод с помощью которого я делаю трансляцию кириллических символов в латинские, вам следует здесь использовать свой.