各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > phpcms

phpcms后台添加文章预览功能

管理员 2022-08-28
phpcms
330
关于文章发布和编辑的时候预览功能,群里早已经有大神整了出来,这里做了一下整理,并且给列表页也增加了预览功能

(1)在phpcms/modules/content/content.php中增加public_preview2预览方法
  1.    //文章发布前预览 
  2.     public function public_preview2() { 
  3.         $catid = (int)$_GET['catid']; 
  4.         $id = intval($_GET['id']); 
  5.         !$catid && showmessage('分类不存在','blank'); 
  6.         if(empty($id)){//未发布文章预览
  7.              extract($_POST['info']); 
  8.         }else{//已发布文章预览
  9.             $CATEGORYS = getcache('category_content_'.$this->get_siteid(),'commons'); 
  10.          
  11.             if(!isset($CATEGORYS[$catid]) || $CATEGORYS[$catid]['type']!=0) showmessage(L('missing_part_parameters'),'blank'); 
  12.             define('HTML'true); 
  13.             $CAT = $CATEGORYS[$catid]; 
  14.              
  15.             $siteid = $CAT['siteid']; 
  16.             $MODEL = getcache('model','commons'); 
  17.             $modelid = $CAT['modelid']; 
  18.      
  19.             $this->db->table_name = $this->db->db_tablepre.$MODEL[$modelid]['tablename']; 
  20.             $r = $this->db->get_one(array('id'=>$id)); 
  21.             if(!$r) showmessage(L('information_does_not_exist')); 
  22.             $this->db->table_name = $this->db->table_name.'_data'
  23.             $r2 = $this->db->get_one(array('id'=>$id)); 
  24.             $rs = $r2 ? array_merge($r,$r2) : $r; 
  25.      
  26.             //再次重新赋值,以数据库为准 
  27.             $catid = $CATEGORYS[$r['catid']]['catid']; 
  28.             $modelid = $CATEGORYS[$catid]['modelid']; 
  29.              
  30.             require_once CACHE_MODEL_PATH.'content_output.class.php'
  31.             $content_output = new content_output($modelid,$catid,$CATEGORYS); 
  32.             $data = $content_output->get($rs); 
  33.             extract($data); 
  34.         } 
  35.          
  36.         $content = stripcslashes($content); 
  37.         $content = '<p style="text-align:center; background:#A63434; line-height:32px; border: solid 1px #CCC; margin-bottom:10px; color:#FFF; font-size:14px;">请注意,以下为文章预览效果,此文章尚未保存,请预览后保存文章。</p>'.$content; 
  38.         include template('content','show'); 
  39.         echo " 
  40.         <link href="".CSS_PATH."dialog_simp.css" rel="stylesheet" type="text/css" /> 
  41.         <script language="javascript" type="text/javascript" src="".JS_PATH."dialog.js"></script> 
  42.         <script type="text/javascript">art.dialog({lock:false,title:'预览文章',mouse:true, id:'content_m', content:'<span style="color:#FF0000;">注意:此文章尚未保存,请在预览之后保存文章</span>',left:'100%',top:'100%',width:200,height:50,drag:true, fixed:true}); 
  43.         function set_time() { 
  44.             $('#secondid').html(1); 
  45.         } 
  46.         </script>"; 
  47.         exit; 
  48.     } 
(2)phpcms/modules/content/templates/content_add.tpl.php增加预览按钮
找到
  1. <div class="fixed-but text-c"
添加代码:
  1. <div class="button"><input type="button" value="文章预览" onClick='preview_content2();'></div> 
  2.     <script> 
  3.         function preview_content2() { 
  4.             myform.action = "?m=content&c=content&a=public_preview2&catid=<?php echo $catid;?>&pc_hash=<?php echo $_SESSION['pc_hash'];?>"
  5.             myform.target = "_blank"
  6.             myform.submit(); 
  7.             myform.action = "?m=content&c=content&a=add"
  8.             myform.target="_self"
  9.         } 
  10.  </script> 
(3)phpcms/modules/content/templates/content_edit.tpl.php增加预览按钮
同样找到
  1. <div class="fixed-but text-c"
之后添加代码:
  1. <div class="button"><input type="button" value="文章预览" onClick='preview_content2();'></div> 
  2.     <script> 
  3.         function preview_content2() { 
  4.             //将 from 提交到预览页 
  5.             myform.action = "?m=content&c=content&a=public_preview2&catid=<?php echo $catid;?>&pc_hash=<?php echo $_SESSION['pc_hash'];?>"
  6.             myform.target = "_blank"
  7.             myform.submit(); 
  8.             //恢复 form 的默认 Action & target 
  9.             myform.action = "?m=content&c=content&a=edit"
  10.             myform.target="_self"
  11.         } 
  12.     </script> 

(4)phpcms/modules/content/templates/content_list.tpl.php增加预览超链接
在116行左右
  1. <a href="javascript:;" onclick="javascript:openwinx('?m=content&c=content&a=edit&catid=<?php echo $catid;?>&id=<?php echo $r['id']?>','')"><?php echo L('edit');?></a> | <a href="javascript:view_comment('<?php echo id_encode('content_'.$catid,$r['id'],$this->siteid);?>','<?php echo safe_replace($r['title']);?>')"><?php echo L('comment');?></a> 
修改成:

  1. <a href="javascript:;" onclick="javascript:openwinx('?m=content&c=content&a=edit&catid=<?php echo $catid;?>&id=<?php echo $r['id']?>','')"><?php echo L('edit');?></a> | <a href="javascript:;" onclick="javascript:openwinx('?m=content&c=content&a=public_preview2&catid=<?php echo $catid;?>&id=<?php echo $r['id']?>','')">预览</a> | <a href="javascript:view_comment('<?php echo id_encode('content_'.$catid,$r['id'],$this->siteid);?>','<?php echo safe_replace($r['title']);?>')"><?php echo L('comment');?></a> 
效果:


更新缓存之后,既可以看到效果!

相关推荐

扫码关注

qrcode

QQ交谈

回顶部