之前做这个项目的时候 ,我来改过前台的模板,当时,改的我晕乎乎。文件层级深,来回引用,幸好有强大的编辑器帮忙,不然真的浪费很多时间。废话不多说了,来看看,怎么给destoon加上自定义的图片上传吧。
案例: 我这里是以商家修改资料为例,填写资料时,必须上传企业资质图片。
我这里的前台样式是修改过的,功能没怎么动,可以借鉴。
前台效果图:
准备:首先你要找到,你要修改的表,destoon_company 添加一个字段 thumb1 。
第一部分:前台的功能实现与显示。
第一步、【前台文件】 edit.html 在你需要添加图片的位置,加上下面的代码:
- <!-- 2015/11/27 添加上传证书 begin 高蒙-->
- <tbody id=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifTabs5http://www.qiyeyunshang.com/skin/gw/image/nopic.gif style=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifdisplay: none;http://www.qiyeyunshang.com/skin/gw/image/nopic.gif>
- <tr>
- <td class=http://www.qiyeyunshang.com/skin/gw/image/nopic.giftlhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif>上传证书副本:</td>
- <td colspan=http://www.qiyeyunshang.com/skin/gw/image/nopic.giftrhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif><input type=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifhiddenhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif name=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifpost[thumb1]http://www.qiyeyunshang.com/skin/gw/image/nopic.gif id=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifthumb1http://www.qiyeyunshang.com/skin/gw/image/nopic.gif value=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif{$thumb1}http://www.qiyeyunshang.com/skin/gw/image/nopic.gif/></td>
- </tr>
- <tr>
- <td class=http://www.qiyeyunshang.com/skin/gw/image/nopic.giftlhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif></td>
- <td class=http://www.qiyeyunshang.com/skin/gw/image/nopic.giftrhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif><img src=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif{if $thumb1}{$thumb1}{else}{DT_SKIN}image/waitpic.gif{/if}http://www.qiyeyunshang.com/skin/gw/image/nopic.gif width=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif100http://www.qiyeyunshang.com/skin/gw/image/nopic.gif height=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif100http://www.qiyeyunshang.com/skin/gw/image/nopic.gif id=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifshowthumb1http://www.qiyeyunshang.com/skin/gw/image/nopic.gif title=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif预览图片http://www.qiyeyunshang.com/skin/gw/image/nopic.gif alt=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif
- onclick=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifif(this.src.indexOf('waitpic.gif') == -1) {_preview(Dd('showthumb1').src, 1);}else{Dalbum(1,{$moduleid},600,450, Dd('thumb1').value, true);}http://www.qiyeyunshang.com/skin/gw/image/nopic.gif/></td>
- </tr>
- <tr>
- <td class=http://www.qiyeyunshang.com/skin/gw/image/nopic.giftlhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif></td>
- <td class=http://www.qiyeyunshang.com/skin/gw/image/nopic.giftrhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif><img src=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif{DT_STATIC}{$MODULE[2][moduledir]}/image/img_upload.gifhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif width=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif12http://www.qiyeyunshang.com/skin/gw/image/nopic.gif height=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif12http://www.qiyeyunshang.com/skin/gw/image/nopic.gif title=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif上传http://www.qiyeyunshang.com/skin/gw/image/nopic.gif
- onclick=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifDalbum(1,{$moduleid},600,450, Dd('thumb1').value, true);http://www.qiyeyunshang.com/skin/gw/image/nopic.gif/>
- <img src=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif{DT_STATIC}{$MODULE[2][moduledir]}/image/img_select.gifhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif width=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif12http://www.qiyeyunshang.com/skin/gw/image/nopic.gif height=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif12http://www.qiyeyunshang.com/skin/gw/image/nopic.gif title=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif选择http://www.qiyeyunshang.com/skin/gw/image/nopic.gif onclick=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifselAlbum(1);http://www.qiyeyunshang.com/skin/gw/image/nopic.gif/>
- <img src=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif{DT_STATIC}{$MODULE[2][moduledir]}/image/img_delete.gifhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif width=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif12http://www.qiyeyunshang.com/skin/gw/image/nopic.gif height=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif12http://www.qiyeyunshang.com/skin/gw/image/nopic.gif title=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif删除http://www.qiyeyunshang.com/skin/gw/image/nopic.gif onclick=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifdelAlbum(1,'wait');http://www.qiyeyunshang.com/skin/gw/image/nopic.gif/></td>
- </tr>
- </tbody>
- <!-- 2015 11 27 添加上传证书 end-->
第二步、edit.inc.php 这是会员资料修改的处理文件 其中注意的代码是第50行左右如下:
- 文件路径 /module/member/edit.inc.php
- if($do->edit($post)) {
其中的 edit() 方法就是控制表单的上传和修改的,通过追踪代码,我们发现它继承的是member.class.php,那
我们就来看看这个类。
第三步、member.class.php的类文件。
一、通过找代码,我们找到380行的 edit()方法。在此方法里面,set_member()是控制用户修改资料的。由于我
们是新加的功能 所以,我们尽量的不修改它的代码,避免意想不到的错误,所以我们就复制其中的方法,改成自己的名字set_member_g()。
- 文件路径 /module/member/member.class.php
- function edit($member) {
- if(!$this->is_member($member)) return false;
- $member = $this->set_member_g($member); // 将原来的set_member() 修改为 set_member_g()
- // 新加的方法 2015/11/30 boom
- function set_member_g($member) {
- global $MOD;
- $member['email'] = trim($member['email']);
- $member['mail'] = isset($member['mail']) ? trim($member['mail']) : '';
- is_email($member['mail']) or $member['mail'] = '';
- $member['msn'] = isset($member['msn']) ? trim($member['msn']) : '';
- is_email($member['msn']) or $member['msn'] = '';
- $member['qq'] = isset($member['qq']) ? trim($member['qq']) : '';
- is_numeric($member['qq']) or $member['qq'] = '';
- $member['ali'] = isset($member['ali']) ? trim($member['ali']) : '';
- if(!$this->is_clean($member['ali'])) $member['ali'] = '';
- $member['skype'] = isset($member['skype']) ? trim($member['skype']) : '';
- if(!$this->is_clean($member['skype'])) $member['skype'] = '';
- $member['address'] = isset($member['address']) ? trim($member['address']) : '';
- if(!$this->is_clean($member['address'])) $member['address'] = '';
- $member['postcode'] = isset($member['postcode']) ? trim($member['postcode']) : '';
- is_numeric($member['postcode']) or $member['postcode'] = '';
- $member['mode'] = (isset($member['mode']) && is_array($member['mode']) && $member['mode'])
- ? implode(',', $member['mode']) : '';
- $member['keyword'] = $member['company'];
- $member['homepage'] = isset($member['homepage']) ? fix_link($member['homepage']) : '';
- $member['capital'] = isset($member['capital']) ? dround($member['capital']) : '';
- $member['sound'] = intval($member['sound']);
- if($this->userid) {
- $member['keyword'] = $member['company'].strip_tags(area_pos($member['areaid'],
- ',')).','.$member['business'].','.$member['sell'].','.$member['buy'].','.$member['mode'];
- clear_upload_g($member['thumb'].$member['introduce'], $this->userid);
- $new = $member['introduce'];
- if($member['thumb']) $new .= '<img src=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif'.$member['thumb'].'http://www.qiyeyunshang.com/skin/gw/image/nopic.gif>';
- $content_table = content_table(4, $this->userid, is_file(DT_CACHE.'/4.part'),$this->table_company_data);
- $r = $this->db->get_one(http://www.qiyeyunshang.com/skin/gw/image/nopic.gifSELECT content FROM {$content_table} WHERe userid=$this->useridhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif);
- $old = $r['content'];
- $r = $this->get_one();
- if($r['thumb']) $old .= '<img src=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif'.$r['thumb'].'http://www.qiyeyunshang.com/skin/gw/image/nopic.gif>';
- delete_diff($new, $old);
- } else {
- if($member['thumb']) clear_upload($member['thumb'].$member['introduce']);
- }
- $member['content'] = $member['introduce'];
- $member['introduce'] = addslashes(get_intro($member['content'], $MOD['introduce_length']));
- if(!defined('DT_ADMIN')) {
- $content = $member['content'];
- unset($member['content']);
- $member = dhtmlspecialchars($member);
- $member['content'] = dsafe($content);
- }
- if($MOD['introduce_clear'] || $MOD['introduce_save']) {
- $member['content'] = stripslashes($member['content']);
- $member['content'] = save_local($member['content']);
- if($MOD['introduce_clear']) $member['content'] = clear_link($member['content']);
- if($MOD['introduce_save']) $member['content'] = save_remote($member['content']);
- $member['content'] = addslashes($member['content']);
- }
- if($member['catid']) {
- $catids = explode(',', substr($member['catid'], 1, -1));
- $cids = '';
- foreach($catids as $catid) {
- $C = get_cat($catid);
- if($C) {
- $catid = $C['parentid'] ? $C['arrparentid'].','.$catid : $catid;
- $cids .= $catid.',';
- }
- }
- $cids = array_unique(explode(',', substr(str_replace(',0,', ',', ','.$cids), 1, -1)));
- $member['catids'] = ','.implode(',', $cids).',';
- }
- return $member;
- }
- //end
二、在上面的方法中,我们又引用到了clear_upload()的方法,所以,同样的道理,找到这个函数并且复制此函数,改为自己的名字clear_upload_g。
- 路径:/include/post.func.php
- function clear_upload_g($content = '', $itemid = 0) {
- global $DT, $db, $session, $_userid;
- if(!is_object($session)) $session = new dsession();
- if(!isset($_SESSION['uploads']) || !$_SESSION['uploads'] || !$content) return;
- $update = array();
- foreach($_SESSION['uploads'] as $file) {
- if(strpos($content, $file) === false) {
- //delete_upload($file, $_userid); 注释掉此行代码
- } else {
- if($DT['uploadlog'] && $itemid) $update[] = http://www.qiyeyunshang.com/skin/gw/image/nopic.gif'http://www.qiyeyunshang.com/skin/gw/image/nopic.gif.md5($file).http://www.qiyeyunshang.com/skin/gw/image/nopic.gif'http://www.qiyeyunshang.com/skin/gw/image/nopic.gif;
- }
- }
- if($update) $db->query(http://www.qiyeyunshang.com/skin/gw/image/nopic.gifUPDATE {$db->pre}upload_http://www.qiyeyunshang.com/skin/gw/image/nopic.gif.($_userid%10).http://www.qiyeyunshang.com/skin/gw/image/nopic.gif SET itemid=$itemid WHERe item IN (http://www.qiyeyunshang.com/skin/gw/image/nopic.gif.implode(',', $update).http://www.qiyeyunshang.com/skin/gw/image/nopic.gif)http://www.qiyeyunshang.com/skin/gw/image/nopic.gif);
- $_SESSION['uploads'] = array();
- }
第二部分:后台管理的管理与查看
后台实现的效果:
一、找到修改会员资料的文件,添加上我们添加的企业资质的图片。
- 文件地址:/module/member/admin/template/member_edit.tpl.php
添加的代码:
- <tr>
- <td class=http://www.qiyeyunshang.com/skin/gw/image/nopic.giftlhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif>上传证书副本:</td>
- <td colspan=http://www.qiyeyunshang.com/skin/gw/image/nopic.giftrhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif>
- <?php if($thumb1 != http://www.qiyeyunshang.com/skin/gw/image/nopic.gifhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif){ ?>
- <input type=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifhiddenhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gif name=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifmember[thumb1]http://www.qiyeyunshang.com/skin/gw/image/nopic.gif id=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifthumb1http://www.qiyeyunshang.com/skin/gw/image/nopic.gif value=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif<?php echo $thumb1;?>http://www.qiyeyunshang.com/skin/gw/image/nopic.gif/>
- <img src=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif<?php echo $thumb1;?>http://www.qiyeyunshang.com/skin/gw/image/nopic.gif width=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif100http://www.qiyeyunshang.com/skin/gw/image/nopic.gif height=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif100http://www.qiyeyunshang.com/skin/gw/image/nopic.gif id=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifshowthumb1http://www.qiyeyunshang.com/skin/gw/image/nopic.gif title=http://www.qiyeyunshang.com/skin/gw/image/nopic.gif预览图片http://www.qiyeyunshang.com/skin/gw/image/nopic.gif
- alt=http://www.qiyeyunshang.com/skin/gw/image/nopic.gifhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gifhttp://www.qiyeyunshang.com/skin/gw/image/nopic.gifif(this.src.indexOf('waitpic.gif') == -1){_preview(Dd('showthumb1').src, 1);}
- else{Dalbum(1,2,600,450, Dd('thumb1').value, true);}http://www.qiyeyunshang.com/skin/gw/image/nopic.gif/></td>
- <?php }else{ ?>
- 该用户没有上传企业资质!
- <?php }?>
- </tr>
到此,按照上面的几个步骤,轻松的就实现了destoon自定义上传图片,想哪里上传图片,就在哪里上传图。