首页 > 代码库 > 1117添加挂件场馆楼层
1117添加挂件场馆楼层
实现效果图:
当添加第二个挂件时,不会冲突。其中第二个是,轮播图。
分成三块内容来做。
第一块内容,要上传10张图片,在挂件里$widgets.php里面设置一个数组。设置循环。注意需要一个隐藏的框。
<{foreach from=$setting.brand key=key item=item}>
...
<th><{t app=‘b2c‘}>图片<{$key+1}>:<{/t}></th>
<td>
<input type=hidden name="ad_pic<{$key}>" value="http://www.mamicode.com/<{$setting.ad_pic.$key.pic_path}>">
<input name=‘ad_pic[<{$key}>][pic_path]‘ class="imgsrc" id="ad_pic<{$key}>" value="http://www.mamicode.com/<{$setting.ad_pic.$key.pic_path}>">
<input type=button value="http://www.mamicode.com/<{t app=‘b2c‘}>上传图片<{/t}>" class="uploadbtn" onclick="addPic(<{$key}>)">
</td>
<td><{t app=‘b2c‘}>图片链接:<{/t}><input type="text" name="ad_pic[<{$key}>][pic_url]" value="http://www.mamicode.com/<{$setting.ad_pic.$key.pic_url}>"></td>
. ..
js:
function addPic(id){
var url=‘index.php?app=desktop&act=alertpages&goto=‘+encodeURIComponent("index.php?app=image&ctl=admin_manage&act=image_broswer&type=big");
Ex_Loader(‘modedialog‘,function(){
return new imgDialog(url,{onCallback:function(image_id,image_src){
$(‘ad_pic‘+id).value=http://www.mamicode.com/image_src;
....
第二块内容,是轮播图,可以借鉴pic_6.传递图片地址,以及相关描述。
<{foreach from=$setting.pic item=data key=key}>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<th><{t app="b2c"}>图片地址:<{/t}></th>
<td><input type=hidden name=pic[<{$data.id}>][id] value="http://www.mamicode.com/<{$data.id}>"><input name=‘pic[<{$data.id}>][link]‘ class="imgsrc" id="pic[<{$data.id}>][link]" value="http://www.mamicode.com/<{$data.link}>"><input type=button value=http://www.mamicode.com/上传图片 class="uploadbtn"></td>
<th><{t app="b2c"}>链接地址:<{/t}></th>
<td><input name="pic[<{$data.id}>][linktarget]" value="http://www.mamicode.com/<{$data.linktarget}>"></td>
</tr>
<tr>
<th><{t app="b2c"}>描述:<{/t}></th>
<td><input name="pic[<{$data.id}>][linkinfo]" value="http://www.mamicode.com/<{$data.linkinfo}>"> </td>
<th><{t app="b2c"}>删除该图片及描述:<{/t}></th>
<td><span onclick="$(this).getParent(‘table‘).destroy()"><{img src="http://www.mamicode.com/delecate.gif" style="cursor:pointer;" alt=$___b2c="删除"|t:‘b2c‘ title=$___b2c="删除"|t:‘b2c‘}></span></td>
</tr>
</table>
<{/foreach}>
js:
(function(){
var tag_type=‘table‘,tag_class=‘pic_items‘;
document.getElement(".addimage").addEvent(‘click‘,function(){
var i=new Date().getTime();
var tpl=‘\
<tr><th><{t app="b2c"}>图片地址:<{/t}></th>\
<td><input type=hidden name=pic[‘+i+‘][id] value="http://www.mamicode.com/‘+i+‘"><input name="pic[‘+i+‘][link]" class="imgsrc">\
<input type=button value=http://www.mamicode.com/<{t app="b2c"}>上传图片<{/t}> class="uploadbtn" id="pic[‘+i+‘]"></td>\
<th><{t app="b2c"}>链接地址:<{/t}></th>\
<td><input name="pic[‘+i+‘][linktarget]"></td></tr>\
<tr><th><{t app="b2c"}>描述:<{/t}></th>\
<td><input name="pic[‘+i+‘][linkinfo]"></td>\
<th><{t app="b2c"}>删除该图片:<{/t}></th>\
<td><span onclick="$(this).getParent(\‘table\‘).destroy()"><{img src="http://www.mamicode.com/delecate.gif" style="cursor:pointer;" alt=$___b2c="删除"|t:‘b2c‘ title=$___b2c="删除"|t:‘b2c‘}></span></td>\
</tr>‘;
$(‘picAddress‘).getElement(‘.piccontent‘).adopt(new Element(tag_type,{‘html‘:tpl,‘width‘:‘100%‘,‘class‘:tag_class}));
$(‘pic[‘+i+‘]‘).addEvent(‘click‘,function(e){bindevent(this)});
});
$$(".piccontent .uploadbtn").addEvent(‘click‘,function(e){bindevent(this)});
function bindevent(el){
var target=$(el).getParent(tag_type).getElement(‘.imgsrc‘);
var url=‘index.php?app=desktop&act=alertpages&goto=‘+encodeURIComponent("index.php?app=image&ctl=admin_manage&act=image_broswer&type=big");
return new imgDialog(url,{onCallback:function(image_id,image_src){
target.value=http://www.mamicode.com/image_src;
}})
}
})();
第三块是上传文字及其链接。类似图片。
心得收获:
1.svn解决冲突办法:先把冲突解决掉,然后把当前冲突的文件改一个名字,比较版本之间差异,然后修改掉。
2.<div class="clear"></div>
加点空的区域
3.js网站都有。网站js有的话,必须要释放$的控制权。;(function($){
挂件里的img必须改成images才能读取到挂件里的图片。
相同挂件添加时,涉及到div中id唯一的话,会冲突,必须将id加上一个随机数,在挂件里,直接加上一个widgets_id这个挂件id.
元素浮动问题。
4.想要看,网站代码,可以用审查代码。(firefox)
1117添加挂件场馆楼层