如何重命名 http://vanillaforums.cn/categories/xxxx 中的 categories

回复

  • edited 2013年09月15日

    刚才试验了一下,可行。过程如下。

    1 . 在后台"管理路径"页面(/dashboard/routes),点击“添加路径”,表单中“路径”填写c/(.*),
    “目标”填写categories/$1,类型选择“内部”(internal),并提交。如图

    vanilla管理路径

    此时在浏览器输入 {域名}/c/{分类url} 已经可以访问分类页面,但是页面中的链接仍然是{域名}/categories/{分类url}

    2 . 查看源码,我们可以发现,显示分类页面的路径是用一个叫做CategoryUrl的函数,注意这句,
    if (!function_exists('CategoryUrl')):
    所以我们可以覆盖这个函数定义。那么,在conf文件夹中新建bootstrap.before.php文件(如果已存在则不用),在这个文件中重写这个函数,把"categories"改为你想要的路径前缀名称,此例为c

    function CategoryUrl($Category, $Page = '', $WithDomain = TRUE) {
       if (is_string($Category))
          $Category = CategoryModel::Categories($Category);
       $Category = (array)$Category;
       $Result = '/c/'.rawurlencode($Category['UrlCode']);
       if ($Page && $Page > 1) {
             $Result .= '/p'.$Page;
       }
       return Url($Result, $WithDomain);
    }
    

    此时网站页面中的分类链接也已经改为{域名}/c/{分类url} 的形式

  • BTW,我在Github发了2个Issue

  • @6b79 好的,谢谢

  • @chuck911 好像Issue5是核心模版问题。我看了英文版也有这个问题。不过,Orchid模版还有几处CSS有待完善。

  • @6b79 我待会儿完善一下。meta charset加在当前主题文件夹的views/default.master.tpl 里面也可以

  • edited 2013年09月15日

    THX Issue4 我已经发了一个pr

登录注册 才能回复。