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 mysql , 用自己创建的本地主机和用户名 登录不上
  • ¥15 关于#web项目#的问题,请各位专家解答!
  • ¥15 vmtools环境不正常
  • ¥15 请问如何在Ubuntu系统中安装使用microsoft R open?
  • ¥15 jupyter notebook
  • ¥30 informer时间序列预测
  • ¥20 SSR引物多态性分析
  • ¥15 大漠插件在Win11易语言注册调用和免注册灵异事件,VS上注册调用完全没问题
  • ¥15 Addressable缓存机制做热更新的问题
  • ¥15 微信开发者工具vant组件