用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3753|回复: 13
收起左侧

[HELP] 如何动态的修改配置文件的选项

[复制链接]
发表于 2014-11-18 10:43:28 | 显示全部楼层 |阅读模式
我之前的一些设置都是放在数据库里面的

最近做的一个功能需要根据不同的配置来设置路由

PHP复制代码
 
if ($this->config->item('is_auto_layout'))
{
        $route['default_controller'] = "xixi";
}
else
{
        $route['default_controller'] = "xixi/page";
        $route['(:num)'] = 'xixi/page/$1';
}
 
 
复制代码



这里调用数据库读取系统设置是不行的。

所以我把设置写到配置文件中。

可以达到我要的效果。

PHP复制代码
 
/*
|
| 是否开启自动布局功能。开启后首页使用瀑布流的方式展示图片。
| 不开启使用分页的方式展示图片。默认开启。
| TRUE  - 开启。
| FALSE - 关闭。
*/

$config['is_auto_layout'] = FALSE;
 
 
复制代码



那么问题来了

这个配置文件怎么动态的修改is_auto_layout的值呢?


就是通过程序修改,不是手动修改再上传。




 楼主| 发表于 2014-11-18 11:17:11 | 显示全部楼层
Closer 发表于 2014-11-18 11:06
看了很久  還是不懂你的需求
你真正想達到的效果是甚麼?

我的程序是展示图片的

http://xiximage.com/


现在使用的展示方法是瀑布流方法。就是首页向下拖就无限加载图片。

这个时候默认访问的路径是http://xiximage.com/,对应的控制器是:xixi/index


PHP复制代码
 
        $route['default_controller'] = "xixi";
 
复制代码




现在我要增加另一种模式。

就是分页。每页显示12张图片。

使用:
http://xiximage.com/
http://xiximage.com/2
http://xiximage.com/3
http://xiximage.com/4
http://xiximage.com/5

这样的路径来浏览图片。

访问的控制器是xixi/page/$1

这里就需要使用路由将http://xiximage.com/xixi/page/2这样的路径修改为http://xiximage.com/2


PHP复制代码
 
        $route['default_controller'] = "xixi/page";
        $route['(:num)'] = 'xixi/page/$1';
 
 
复制代码



但是我需要可以在这两种方法之间切换。

对 大概意思就是这样。不同的模式对应不同的路由。

 楼主| 发表于 2014-11-18 11:00:22 | 显示全部楼层
wlyx 发表于 2014-11-18 10:48
这个工作可以在controller里做啊
根据不同的配置,渲染不同的view
这个配置还可以从数据库里读取 ...

的确是可以的。

主要是这个路由

PHP复制代码
 
$route['(:num)'] = 'xixi/page/$1';
 
复制代码



在控制器里面控制的话

这个路由配置就需要写入路由配置文件

这样的话

可以根据配置 显示不同的首页

但是 当选择瀑布流的方法是

由于
PHP复制代码
 
$route['(:num)'] = 'xixi/page/$1';
 
复制代码


的存在

翻页还是可以看。

虽然首页没有地方进入这样的地址。手动访问还是可以的。
发表于 2014-11-18 11:39:53 | 显示全部楼层

我的想法是這樣,你看看有沒有符合你的需求:

  系統必須知道你目前要用的是瀑布式還是分頁式
  不能給他一個可能會混淆的 http://xiximage.com/
  因為他無從判定,這樣就必須用 http://xiximage.com/1
  後面有數字就執行分頁式的方式

  然後在控制器裡面判定
  若有承接到 $1 的值就執行分頁式
  若為空就執行瀑布式
  分別以不同 view 與資料庫去展示


  
发表于 2014-11-18 10:48:05 | 显示全部楼层
这个工作可以在controller里做啊
根据不同的配置,渲染不同的view
这个配置还可以从数据库里读取
 楼主| 发表于 2014-11-18 11:01:16 | 显示全部楼层
这个配置文件应该是不能修改的。

配置文件是只读的。

要么手动修改后上传。

要么用数据库来存储设置。
发表于 2014-11-18 11:06:51 | 显示全部楼层
看了很久  還是不懂你的需求
你真正想達到的效果是甚麼?
发表于 2014-11-18 11:32:03 | 显示全部楼层
dolphin 发表于 2014-11-18 11:17
我的程序是展示图片的

http://xiximage.com/

你所指的"另一種模式"
是指點一個連結(分頁式)
而圖片呈現方式都是用那種
而不會跑回瀑布式?
 楼主| 发表于 2014-11-18 11:33:26 | 显示全部楼层
Closer 发表于 2014-11-18 11:32
你所指的"另一種模式"
是指點一個連結(分頁式)
而圖片呈現方式都是用那種

是的。
发表于 2014-11-18 11:39:45 | 显示全部楼层
CI 的配置是只读的,不过你想让他可写很简单,就是扩展下 config 类库就可以了。。。
CI 没有不能扩展的代码。

本版积分规则