Есть ли функция Joomla для генерации поля 'alias'? - PullRequest
12 голосов
/ 12 ноября 2009

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

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

Ответы [ 3 ]

31 голосов
/ 12 ноября 2009

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

3 голосов
/ 30 декабря 2010

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

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

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

1 голос
/ 13 декабря 2012

Это простой 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;
    }
...