Ответ 1
Линия 123 libraries/joomla/database/table/content.php
реализует JFilterOutput::stringURLSafe()
. Перейдите в строку, которую вы хотите сделать "alias friendly", и она вернет вам то, что вам нужно.
Я пишу свой собственный компонент для Joomla 1.5. Я пытаюсь выяснить, как создать "псевдоним" (дружественный URL-адрес) для добавляемого контента. Другими словами, если заголовок "Заголовок статьи", Joomla будет использовать the-article-title
по умолчанию (вы можете отредактировать его, если хотите).
Есть ли встроенная функция Joomla, которая сделает это для меня?
Линия 123 libraries/joomla/database/table/content.php
реализует JFilterOutput::stringURLSafe()
. Перейдите в строку, которую вы хотите сделать "alias friendly", и она вернет вам то, что вам нужно.
Если вы пытаетесь создать псевдоним для созданного компонента, это очень просто. Предположим, что у вас есть click on save
или apply button
в созданном вами компоненте или предположим, что вы хотите сделать псевдоним через свой фрагмент, а затем используйте эту функцию:
$ailias=JFilterOutput::stringURLSafe($_POST['title']);
Теперь вы можете вставить его в базу данных.
Это простой 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;
}