dongtou2097 2015-05-26 20:08
浏览 79
已采纳

在CodeIgniter中添加URL变量

I want to add a new URL variable on CI 3.0 like site_url or base_url.

For example; I want to add an admin_url variable for administration area and assets_url variable for assets.

I checked CI 3.0 guide but couldn't find a solution.

Thanks in advance.

  • 写回答

4条回答 默认 最新

  • dongting3135 2015-05-26 21:09
    关注

    I got the answer now,

    add these lines on system/helpers/url_helper.php file:

    if ( ! function_exists('admin_css'))
    {
        /**
         * Base URL
         *
         * Create a local URL based on your basepath.
         * Segments can be passed in as a string or an array, same as site_url
         * or a URL to a file can be passed in, e.g. to an image file.
         *
         * @param   string  $uri
         * @param   string  $protocol
         * @return  string
         */
        function admin_css($uri = '', $protocol = NULL)
        {
            return get_instance()->config->admin_css($uri, $protocol);
        }
    }
    

    and add these lines on system/core/Config.php

    public function admin_css($uri = '', $protocol = NULL)
        {
            $base_url = base_url('assets/staff/css').'/';
    
            if (isset($protocol))
            {
                $base_url = $protocol.substr($base_url, strpos($base_url, '://'));
            }
    
            if (empty($uri))
            {
                return $base_url.$this->item('index_page');
            }
    
            $uri = $this->_uri_string($uri);
    
            if ($this->item('enable_query_strings') === FALSE)
            {
                $suffix = isset($this->config['url_suffix']) ? $this->config['url_suffix'] : '';
    
                if ($suffix !== '')
                {
                    if (($offset = strpos($uri, '?')) !== FALSE)
                    {
                        $uri = substr($uri, 0, $offset).$suffix.substr($uri, $offset);
                    }
                    else
                    {
                        $uri .= $suffix;
                    }
                }
    
                return $base_url.$this->slash_item('index_page').$uri;
            }
            elseif (strpos($uri, '?') === FALSE)
            {
                $uri = '?'.$uri;
            }
    
            return $base_url.$this->item('index_page').$uri;
        }
    

    don't forget to autoload url_helper. With this way, you can use admin_css variable like this: <?php echo admin_css('foo.css'); ?>

    If you use the other answers on this post, you can not use like <?php echo admin_css('foo.css'); ?>

    Thank you all.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站