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 iscsi服务无法访问,如何解决?
  • ¥15 感应式传感器制作的感应式讯响器
  • ¥15 如何使用SC92F8003固件库解析私有协议数据?
  • ¥15 如何在音频中嵌入字符串(水印)信息进行传递
  • ¥30 plc怎么以设计说明书申请软著
  • ¥15 硬盘识别不了,需要初始化,可我的数据怎么办
  • ¥15 lvm2被mask了,怎么unmask都没用(标签-ubuntu|关键词-apt)
  • ¥15 交叉注意力机制的残差问题
  • ¥15 微信小程序:渲染收货地址时页面不显示
  • ¥20 win7 64位DirectShow提示初始化失败如何解决?