Есть ли функция Joomla для генерации поля "псевдоним"?

Я пишу свой собственный компонент для Joomla 1.5. Я пытаюсь выяснить, как создать "псевдоним" (дружественный URL-адрес) для добавляемого контента. Другими словами, если заголовок "Заголовок статьи", Joomla будет использовать the-article-title по умолчанию (вы можете отредактировать его, если хотите).

Есть ли встроенная функция Joomla, которая сделает это для меня?

Ответ 1

Линия 123 libraries/joomla/database/table/content.php реализует JFilterOutput::stringURLSafe(). Перейдите в строку, которую вы хотите сделать "alias friendly", и она вернет вам то, что вам нужно.

Ответ 2

Если вы пытаетесь создать псевдоним для созданного компонента, это очень просто. Предположим, что у вас есть click on save или apply button в созданном вами компоненте или предположим, что вы хотите сделать псевдоним через свой фрагмент, а затем используйте эту функцию:

$ailias=JFilterOutput::stringURLSafe($_POST['title']);

Теперь вы можете вставить его в базу данных.

Ответ 3

Это простой PHP.

Вот функция из источника Joomla 1.5:

Обратите внимание: я прокомментировал две строки. Вы можете вызвать функцию, например

$new_alias = stringURLSafe ($ your_title);

function stringURLSafe($string)
    {
        //remove any '-' from the string they will be used as concatonater
        $str = str_replace('-', ' ', $string);
        $str = str_replace('_', ' ', $string);

        //$lang =& JFactory::getLanguage();
        //$str = $lang->transliterate($str);

        // remove any duplicate whitespace, and ensure all characters are alphanumeric
        $str = preg_replace(array('/\s+/','/[^A-Za-z0-9\-]/'), array('-',''), $str);

        // lowercase and trim
        $str = trim(strtolower($str));
        return $str;
    }