Fork me on GitHub

别人用什么办法把中文网址变成数字ID的呢?

edited 2012年07月08日 问答求助

我也想改下网址,要不然,很麻烦的。

此话题使用的标签:

回复

  • edited 2012年05月14日 #1

    这个版本(2.1.*)改的方法是:在conf/bootstrap.late.php 里加上

    function DiscussionUrl($Discussion, $Page = '', $WithDomain = TRUE) {
       $Discussion = (object)$Discussion;
       $Result = '/discussion/'.$Discussion->DiscussionID;
       if ($Page) {
          if ($Page > 1 || Gdn::Session()->UserID)
             $Result .= '/p'.$Page;
       }
       return Url($Result, $WithDomain);
    }

    这样改不会触及核心代码
  • 如果是改代码,是这样的,找到 library/core/functions.render.php 中的DiscussionUrl函数,把它的第二行改成$Result = '/discussion/'.$Discussion->DiscussionID;

  • 2.0.*版本的要这样改:
    找到 applications/vanilla/views/discussions/helper_functions.php 文件34行附近的这句
    <?php echo Anchor($DiscussionName, '/discussion/'.$Discussion->DiscussionID.'/'.Gdn_Format::Url($Discussion->Name).($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') && $Session->UserID > 0 ? '/#Item_'.$Discussion->CountCommentWatch : ''), 'Title'); ?>
    删掉里面的.Gdn_Format::Url($Discussion->Name)
    变为<?php echo Anchor($DiscussionName, '/discussion/'.$Discussion->DiscussionID.'/'.($Discussion->CountCommentWatch > 0 && C('Vanilla.Comments.AutoOffset') && $Session->UserID > 0 ? '/#Item_'.$Discussion->CountCommentWatch : ''), 'Title'); ?>

  • @chuck911 太感谢了,开源真好,我是个很细心的人,估计能发现最多的问题,你有技术,这样可以把这个程序做得很完善。以前我买过两次付费程序,都很垃圾,bug一大堆,让改也不改。
    开源的确太好了。
    你有技术,我有很好的创意,想不想再立新项目呀?我给你分享我颠覆性的创意产品。

  • @hege123 我现在背了挺多项目的,都只在雏形状态...这里我也就空闲的时候顾一下了

  • edited 2012年05月15日 #6

    @chuck911 哦,你太有水平了,我也好喜欢你的这种精神。我的时间也紧,但我还是想抽时间出来学php开发。这太有趣了!我的创新想法多,就是没有技术。

  • @hege123 我也是为了实现自己的想法慢慢学了很多需要用到的技术,你也要加油啊

  • 汗···真不明白编写这个程序的老外脑子里面装什么。。几个版本居然里面文件名什么的都不同。

  • @winson 0.1的版本号差距不小了,但至少插件接口基本还是兼容的。

    程序和架构有不完善的地方就得调整嘛,要是总是做兼容,毛病就越积越多,代码就越来越恶心了。

    所以,强烈建议不要自己改内核的代码...

  • @weiw 你说的翻页问题确定是bootstrap.late.php 那段代码造成的吗? 删掉这段就不会了?

  • 你可以试试啊

  • @weiw 测了下,的确是!那只好这样了

    function DiscussionUrl($Discussion, $Page = '', $WithDomain = TRUE) {
       $Discussion = (object)$Discussion;
       $Result = '/discussion/'.$Discussion->DiscussionID.'/-';
       if ($Page) {
          if ($Page > 1 || Gdn::Session()->UserID)
             $Result .= '/p'.$Page;
       }
       return Url($Result, $WithDomain);
    }
    

    加了个'-' 来占位

  • @chuck911 翻页仍然没有变成短链接哦

  • 如果是改代码,是这样的,找到 library/core/functions.render.php 中的DiscussionUrl函数,把它的第二行改成
    $Result = '/discussion/'.$Discussion->DiscussionID;

    我是按这样改。。。但是好像主题变得不能翻页了。

登录注册 才能回复。