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条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题