12

我正在为 Joomla 1.5 编写自己的组件。我试图弄清楚如何为我添加的内容生成一个“别名”(友好的 URL slug)。换句话说,如果标题是“文章标题”,Joomla 将the-article-title默认使用(您可以根据需要编辑它)。

是否有内置的 Joomla 功能可以为我执行此操作?

4

3 回答 3

34

libraries/joomla/database/table/content.php工具的第 123 行JFilterOutput::stringURLSafe()。传入您想要使“别名友好”的字符串,它将返回您需要的内容。

于 2009-11-12T19:52:38.387 回答
4

如果您尝试为创建的组件生成别名,这非常简单。假设您有click on saveapply button在您创建的组件中,或者假设您想通过您的 tile 制作别名,然后使用此函数:

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

现在您可以将其插入数据库。

于 2010-12-30T07:40:23.733 回答
1

这是简单的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;
    }
于 2012-12-13T15:24:57.867 回答