如何动态的修改配置文件的选项
我之前的一些设置都是放在数据库里面的最近做的一个功能需要根据不同的配置来设置路由
if ($this->config->item('is_auto_layout'))
{
$route['default_controller'] = "xixi";
}
else
{
$route['default_controller'] = "xixi/page";
$route['(:num)'] = 'xixi/page/$1';
}
这里调用数据库读取系统设置是不行的。
所以我把设置写到配置文件中。
可以达到我要的效果。
/*
|
| 是否开启自动布局功能。开启后首页使用瀑布流的方式展示图片。
| 不开启使用分页的方式展示图片。默认开启。
| TRUE- 开启。
| FALSE - 关闭。
*/
$config['is_auto_layout'] = FALSE;
那么问题来了
这个配置文件怎么动态的修改is_auto_layout的值呢?
就是通过程序修改,不是手动修改再上传。
Closer 发表于 2014-11-18 11:06
看了很久還是不懂你的需求
你真正想達到的效果是甚麼?
我的程序是展示图片的
http://xiximage.com/
现在使用的展示方法是瀑布流方法。就是首页向下拖就无限加载图片。
这个时候默认访问的路径是http://xiximage.com/,对应的控制器是:xixi/index
$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
$route['default_controller'] = "xixi/page";
$route['(:num)'] = 'xixi/page/$1';
但是我需要可以在这两种方法之间切换。
对 大概意思就是这样。不同的模式对应不同的路由。
wlyx 发表于 2014-11-18 10:48
这个工作可以在controller里做啊
根据不同的配置,渲染不同的view
这个配置还可以从数据库里读取 ...
的确是可以的。
主要是这个路由
$route['(:num)'] = 'xixi/page/$1';
在控制器里面控制的话
这个路由配置就需要写入路由配置文件
这样的话
可以根据配置 显示不同的首页
但是 当选择瀑布流的方法是
由于
$route['(:num)'] = 'xixi/page/$1';
的存在
翻页还是可以看。
虽然首页没有地方进入这样的地址。手动访问还是可以的。
dolphin 发表于 2014-11-18 11:33
是的。
我的想法是這樣,你看看有沒有符合你的需求:
系統必須知道你目前要用的是瀑布式還是分頁式
不能給他一個可能會混淆的 http://xiximage.com/
因為他無從判定,這樣就必須用 http://xiximage.com/1
後面有數字就執行分頁式的方式
然後在控制器裡面判定
若有承接到 $1 的值就執行分頁式
若為空就執行瀑布式
分別以不同 view 與資料庫去展示
这个工作可以在controller里做啊
根据不同的配置,渲染不同的view
这个配置还可以从数据库里读取 {:1_1:} 这个配置文件应该是不能修改的。
配置文件是只读的。
要么手动修改后上传。
要么用数据库来存储设置。 看了很久還是不懂你的需求
你真正想達到的效果是甚麼? dolphin 发表于 2014-11-18 11:17
我的程序是展示图片的
http://xiximage.com/
你所指的"另一種模式"
是指點一個連結(分頁式)
而圖片呈現方式都是用那種
而不會跑回瀑布式? Closer 发表于 2014-11-18 11:32
你所指的"另一種模式"
是指點一個連結(分頁式)
而圖片呈現方式都是用那種
是的。
CI 的配置是只读的,不过你想让他可写很简单,就是扩展下 config 类库就可以了。。。
CI 没有不能扩展的代码。
页:
[1]
2