QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

PHPCMS

phpcms栏目增加多图片上传功能

 admin  2022-06-03 19:29:06
phpcms虽然字段里边有多图上传字段,但是我们在其他地方却无法想单图上传那样,随意使用,单图调用的代码是:
  1. <?php echo form::images('info[image]''image', $image, 'content');?> 
但是却没有多图调用的方法,添加方法如下:

(1)找到phpcms/libs/classes/form.class.php添加多图上传方法:
  1. /** 
  2.      * 多图上传 
  3.      * @param string    $name       表单名称 
  4.      * @param string    $id         文件列表ID 
  5.      * @param string    $alowexts   允许上传的文件格式 
  6.      * @param string    $buttonname 上传按钮名称 
  7.      * @param string    $ext        表单扩展属性 如果 js事件等 
  8.      * @param string    $modelname  模块名称 
  9.      */ 
  10.     public static function muupimages($name, $id = '', $value = '', $moudle='content', $catid='', $size = 50, $class = '', $ext = '', $alowexts = '',$watermark_setting = 0 ){ 
  11.         if(!$id) $id = $name; 
  12.         if(!$size) $size= 50; 
  13.         $authkey = upload_key("10,$alowexts,0"); 
  14.         //$value = string2array($value); 
  15.         $str = '<script type="text/javascript" src="'.JS_PATH.'content_addtop.js"></script>'
  16.         $str .= '<script type="text/javascript" src="'.JS_PATH.'swfupload/swf2ckeditor.js"></script>';; 
  17.         $str .= "<input name=\"$name\" type=\"hidden\" value=\"1\"
  18.             <fieldset class=\"blue pad-10\"
  19.             <legend>图片列表</legend>"; 
  20.         foreach($value as $k => $v){ 
  21.             $str .= "<div id=\"image_".$name."_".$k."\" style='padding:1px'><input type='text' name='".$name."_url[]' value='".$v['url']."' style='width:310px;' ondblclick='image_priview(this.value);' class='input-text'
  22.                 <input type='text' name='".$name."_alt[]' value='".$v['alt']."' style='width:160px;' class='input-text'> <a href=\"javascript:remove_div('image_".$name."_".$k."')\">移除</a></div> 
  23.             "; 
  24.         } 
  25.         $str .= '<center><div class="onShow" id="nameTip">您最多可以同时上传 <font color="red">10</font> 张</div></center> 
  26.                 <div id="'.$id.'" class="picList"></div> 
  27.             </fieldset> 
  28.             <div class="bk10"></div>'; 
  29.         $str .= "<input type=\"button\" class=\"button\" value='".L('imagesupload')."' onclick=\"javascript:flashupload('{$id}_images''".L('attachmentupload')."','{$id}', change_images,'10,$alowexts,0','$moudel','0''$authkey')\">"; 
  30.         return $str; 
  31.     } 
(2)找到phpcms\modules\admin\templates栏目新增(category_add.tpl.php)和修改(category_edit.tpl.php)的页面,在合适位置添加调用代码
  1. <?php echo form::muupimages('photo''photo', $info['photo'], 'content');?> 
第一个photo是对应name,第二个photo是对应input的id,第三个参数$info['photo']是传递进来的值,第四个参数表示content模块,

(3)在phpcms\modules\admin\category的add和edit方法里边添加接受组图的方法:
  1. //所有的图片url 
  2. $photo = $_POST['photo_url']; 
  3.             //取得图片说明 
  4.             $photo_alt = isset($_POST['photo_alt']) ? $_POST['photo_alt'] : array(); 
  5.             $array = $temp = array(); 
  6.             if(!empty($photo)) { 
  7.                 foreach($photo as $key=>$pic) { 
  8.                     $temp['url'] = $pic; 
  9.                     $temp['alt'] = str_replace(array('"',"'"),'`',$photo_alt[$key]); 
  10.                     $_POST['info']['photo'][] = $temp; 
  11.                 } 
  12.             } 
这样组图的字段信息就存储到了$_POST['info']['photo']字段里边了

(4)对应修改的时候需要在phpcms\modules\admin\category的edit方法的:
  1. if($r) extract($r); 
之前加个对刚才你的组图字段的转换,因为默认 存储的是json我们需要转成数组格式:
  1. if(array_key_exists('photo', $r)){ 
  2.                 $r['photo'] = string2array($r['photo']); 
  3.             } 
这样就可以正确读取到组图列表信息了,效果如图:




¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《phpcms栏目增加多图片上传功能》发布于石头博客文章,作者:admin,如若转载,请注明出处:https://www.pweb123.com/cms/phpcms/828.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序