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

dilicms插件辅助函数:_url($action [,$qs = '']) 问题?

[复制链接]
发表于 2011-7-23 12:44:35 | 显示全部楼层 |阅读模式
本帖最后由 mvc999 于 2011-7-23 12:45 编辑

做了个测试得到这样一个结果不知道是设计成这个样子还是代码偏差了

原方法:
function _url($action , $qs = '')
{
return backend_url('module/run','plugin='.$this->_name.'&action='.$action).$qs;
}

插件调用:
echo $this->_url('plugin_method' , $qs = 'plugin_querystring');

下面是生成的url规范实例

localhost:8080/di/index.php/admin/module/run?plugin=helloworld&action=plugin_methodplugin_querystring

问题这个时候url里的 $action与 $qs 参数就合并在一块了,如果程序调用如何获取呢?

修改

  function _url($action , $qs = '')
  {
   return backend_url('module/run','plugin='.$this->_name.'&action='.$action).($qs == '  ' ? '  ' : '&qs='.$qs);
  }


下面是生成的url规范实例

localhost:8080/di/index.php/admin/module/run?plugin=helloworld&action=plugin_method&qs=plugin_querystring

问:不知道就是这样设计的还是我理解错误!求真相!



发表于 2011-7-23 12:48:43 | 显示全部楼层
这个嘛,是临时加的一个函数,期望用法是
$this->_url($action,'&a=aa&b=bb&c=cc');
要是按照你说的那样的话,只增加了一个qs参数,使用余地太狭隘啦
 楼主| 发表于 2011-7-23 12:55:12 | 显示全部楼层
jeongee 发表于 2011-7-23 12:48
这个嘛,是临时加的一个函数,期望用法是
$this->_url($action,'&a=aa&b=bb&c=cc');
要是按照你说的那样的 ...

哦!我恍然大悟啊,确实是考虑周到!

还有个小疑问插件模型最终的定义概念是什么,看了代码说好像只针对 module的$data进行一些前后操作!
求一段插件模型实例代码!感谢感谢!
发表于 2011-7-23 13:02:06 | 显示全部楼层
mvc999 发表于 2011-7-23 12:55
哦!我恍然大悟啊,确实是考虑周到!

还有个小疑问插件模型最终的定义概念是什么,看了代码说好像只针对 ...

我给你举个例子吧
比如说插入前的函数,这个函数接收到了待插入的数据,在这里你可以对操作者身份进行验证,可以对数据进行进一步验证,或者对数据做一些处理(比如说,你建了一个不可编辑的字段,就可以通过这里来给这个字段进行赋值,并一并插入到数据库中),也可能要做一些记录信息,如谁添加了这个信息,这个信息包含什么内容。

利用添加修改view的钩子,可以利用js改变表单的布局等。

扩展下思维,使用起来其实很灵活。
 楼主| 发表于 2011-7-23 13:23:30 | 显示全部楼层
jeongee 发表于 2011-7-23 13:02
我给你举个例子吧
比如说插入前的函数,这个函数接收到了待插入的数据,在这里你可以对操作者身份进行验证 ...

我明白了怪不得是针对全局的!厉害厉害!我刚才做了一个用户测试对可编辑字段用户判断,实现了!呵呵看来前端和后端对他的依赖是非常之大就可以开发一个评论插件,投票,必要时做个购物车都可以吗!
是不是dilicms是在成熟的项目里产生的,越看越有门道!

本版积分规则