你现在的位置:首页 > PHP网站建设知识库 > phpcms > 正文

phpcms V9专题增加多图集功能代码

虽然phpcms V9本身专题也有哥图片集的功能

但是一个专题只能用一个图集所以不好实现

下面我就把自己的思路讲一下

第一步:当然要加字段,找到V9_speacial_c_data表增加字段 morepic  类型text

第三步:找到phpcms\modules\special\templates下的content_add.tpl.php增加

 <tr>
      <th width="80"> 多图片   </th>
      <td><input name="data[morepic]" type="hidden" value="1">
  <fieldset class="blue pad-10">
        <legend>图片列表</legend><center><div class='onShow' id='nameTip'>您最多可以同时上传 <font color='red'>10</font> 张</div></center><ul id="morepic" class="picList"></ul>
  </fieldset>
  <div class="bk10"></div>
  <div class='picBut cu'><a herf='javascript:void(0);' onclick="javascript:flashupload('morepic_images', '附件上传 ','morepic',change_images,'10,gif|jpg|jpeg|png|bmp,0','sepecial','0','<?=upload_key('10,gif|jpg|jpeg|png|bmp,0')?>')"/> 选择图片 </a></div>  多图片</td>
</tr>

然后再找到\phpcms\modules\special下的content.php文件

修改add函数讲代码

   if ($info['isdata']) {
    $data = $this->check($_POST['data'], 'data'); //验证数据的合法性
    $data['id'] = $contentid;
    $data['morepic']="array(";
    $this->data_db->insert($data);
    $searchid = $this->search_api($contentid, $data, $info['title'], 'update', $info['inputtime']);
    $url = $html->_create_content($contentid);
    $this->db->update(array('url'=>$url[0], 'searchid'=>$searchid), array('id'=>$contentid, 'specialid'=>$_GET['specialid']));
   }

修改为:

  if ($info['isdata']) {
    $data = $this->check($_POST['data'], 'data'); //验证数据的合法性
    $data['id'] = $contentid;
    $data['morepic']="array(";
    foreach($_POST["morepic_url"] as $key=>$list)
    {
     $data['morepic']=$data['morepic'].$key."=>array(\'url\'=>\'".$list."\',\'alt\'=>\'".$_POST["morepic_alt"][$key]."\',),";

    }
    $data['morepic']=$data['morepic'].")";
    $this->data_db->insert($data);
    $searchid = $this->search_api($contentid, $data, $info['title'], 'update', $info['inputtime']);
    $url = $html->_create_content($contentid);
    $this->db->update(array('url'=>$url[0], 'searchid'=>$searchid), array('id'=>$contentid, 'specialid'=>$_GET['specialid']));
   }

第四步:添加成功了,那么修改页面成功啊,开始操作找到phpcms\modules\special\templates下的content_edit.tpl.php增加

 <tr>
      <th width="80"> 多图片   </th>
      <td><input name="data[morepic]" type="hidden" value="1">
  <fieldset class="blue pad-10">
        <legend>图片列表</legend><center><div class='onShow' id='nameTip'>您最多可以同时上传 <font color='red'>10</font> 张</div></center><ul id="morepic" class="picList">
        <?php
        foreach($morepic as $key=>$list)
  { 
  ?>
        <li class="morepic<?=$key;?>"><input type="text" name="morepic_url[]"  style="width:310px;" value="<?=$list['url']?>" /> <input type="text" name="morepic_alt[]" style="width:160px;"  value="<?=$list['alt']?>"  /> <a onclick="$('.morepic<?=$key;?>').remove();">移除</a>< /li>
        <?php
  }
  ?>
        </ul>
  </fieldset>
  <div class="bk10"></div>
  <div class='picBut cu'><a herf='javascript:void(0);' onclick="javascript:flashupload('morepic_images', '附件上传 ','morepic',change_images,'10,gif|jpg|jpeg|png|bmp,0','sepecial','0','<?=upload_key('10,gif|jpg|jpeg|png|bmp,0')?>')"/> 选择图片 </a></div>  多图片

        </td>
    </tr>

再修改phpcms\modules\special下content.php文件

修改edit函数查找非提交区段代码(即dosubmit外的else)

在isdata后增加   $morepic=string2array($data['morepic']);(提供修改模版显示已经添加的图片)

顺便提下保存在数据库附表的数据是字符串的所以要转换成数组

添加代码以下代码在//更新附件状态前

   $data['morepic']="array(";
   foreach($_POST["morepic_url"] as $key=>$list)
   {
    $data['morepic']=$data['morepic'].$key."=>array(\'url\'=>\'".$list."\',\'alt\'=>\'".$_POST["morepic_alt"][$key]."\',),";

   }
   $data['morepic']=$data['morepic'].")";  
   $this->data_db->update(array('morepic'=>$data['morepic']), array('id'=>$_GET['id']));