Ecstore vobject插件使用

smarty解析时调用
business/lib/view/input.php =〉 function input_vobject
传的参数
<{input type="vobject" object="members@b2c" filter=$filter multiple="true" rowselect="true" textcol="name" name="get_member_id" value='' callback=$callback crmoun_change='login_name^pam_account@member_id'}>

详细注释
1.type==vobject ;smarty解析根据这个标记去读取input.php的对应function,
2.object==members@b2c app_id=b2c model=members
3.filter由php输出到页面的过滤条件,这个过滤条件用于在调取数据时过滤使用 传出的是个数组即$this->pagedata['filter']=array(); rowselect=='true'||'false' 经测试没有什么区别应该是代码里面有区别但是这个地方直接就没有处理,所以随意填写但是一定要有,
textcol这个地方是数据库模型中要返回的字段,
name这个字段是页面在数据选择完成之后显示到页面时有input type='hidden' 这个dom元素的name属性使用(注:默认为数组)
crmoun_change:自己定义的写法 如下面叙述的关联调用(注,一定是用主键关联)如上解析使用member_id关联到pam_account表中的login_name字段并输出前面的允许被关联表显示做个字段(注:这个地方默认显示的是以";"号作为每个字段的界定符号)


这个地方整体流程由
function input_vobject输出到页面(site/tools/input_radio.html','business')
并且把goto=urlencode(url)[这个url里面就是要调用到的模型和控制器就是调用页面上写出的object,
其中有一项控制弹窗出来的页面是radio或是checkbox就在于试图中是否制定为checkbox
(注:这个地方如果需要弹出的页面为radio的话不要写select),
如果输出是radio的话里面包含有singleselect=radio这个URL参数,
如过调用页面没有写returnurl的话默认回调
$url=app::get('site')->router()->gen_url(array('app'=>'business','ctl'=>'site_tools','act'=>'object_rows'));
这个url]这个url传给页面; 然后当点击触发时由input_radio.html页面的js使用弹窗的形式调用控制器desktop/controller/default.php->alertpages()
方法获取到url中的gotu这个URL参数并输出,然后由该方法
输出页面到desktop视图文件夹下面的loadpage.html,loadpage.html
根据goto去调用控制器和方法
desktop&ctl=editor&act=finder_common(这个是写死的)输出到'editor/object_selector.html')
这个页面这个时候就有下面的确认和取消按钮了并且也有了finder列表内容就是object的模型,
点击选择一项提交这时候触发回调,并把数据用post到回调地址上这个地方默认的是
business/ectools.php->object_rows()方法,
由于有url参数中含有过滤条件以及模型控制器这时候就在这个方法中使用getlist方法
去调去到数据并返回到('site/tools/input-row.html','business')
页面上这里有个弊端就是无法使用关联查询,所以这个地方要留意,
如果你想用关联查询可以在url参数中增加标记在这个地方进行判断
然后关联查询出你要用到的数据库字段 并输出显示,
关联调用具体事例可以查看代码

你可能感兴趣的:(Ecstore vobject插件使用)