话题:68 动态:0 发新帖

XiunoPHP开发笔记!

谈 笑 间 2018-4-28 1039

本帖记录一部分在做XiunoBBS模板开发中遇到的知识点


1、JQ-DIV TOP=0 Change style.

(function(){
  var oDiv=document.getElementById("ID");
  var H=0,iE6;
  var Y=oDiv;
  while(Y){H+=Y.offsetTop;Y=Y.offsetParent};
  iE6=window.ActiveXObject&&!window.XMLHttpRequest;
  if(!iE6){
    window.onscroll=function() 
    {
      var s=document.body.scrollTop||document.documentElement.scrollTop;
      if(s>H){oDiv.className="class newclass";if(iE6){oDiv.style.top=(s-H)+"px";}}
      else{oDiv.className="class";}
    };
  }
})();

2、列表过滤指定fid-x

foreach ($threadlist as $key => $_forum) {
if ($_forum['fid'] ==x ) unset($threadlist[$key]);}

排他

foreach ($threadlist as $key => $_forum) {
if ($_forum['fid'] !=x ) unset($threadlist[$key]);}


3、响应式导航弹出渐变过渡

bootstrap.js

var TRANSITION_DURATION = 600;


4、修改Mysql数据表前缀

Mysql文件名
数据库配置文件/conf/conf.php
内置浏览数量/model/thread.func.php
第三方搜索插件调用表段
....


5、文章页显示上一篇、下一篇

    建议hook位置 thread_plugin_after.htm

<?php
$arrlist_n = db_find_one('thread', array('fid'=>$fid, 'tid'=>array('>'=>$tid)), array('tid'=>1));
$arrlist_p = db_find_one('thread', array('fid'=>$fid, 'tid'=>array('<'=>$tid)), array('tid'=>-1));
if($arrlist_p){
echo '<a href="'.url("thread-".$arrlist_p['tid']).'"><span>上一篇:'.$arrlist_p['subject'].'</span></a>';
}else{echo '<span>上一篇:没了</span>';}
if($arrlist_n){
echo '<a href="'.url("thread-".$arrlist_n['tid']).'"><span>下一篇:'.$arrlist_n['subject'].'</span></a>';
}else{echo '<span>下一篇:没了</span>';}
?>
//可直接hook在帖子结尾


6、列表分页样式及结构

xiunophp/xiunophp.min.php显示结构,可选多页时上一页&下一页的按钮

xiunophp/misc.func.php设置具体显示框架

function pagination($url, $totalnum, $page, $pagesize = 20) { $totalpage = ceil($totalnum / $pagesize); if($totalpage < 2) return ''; $page = min($totalpage, $page); $shownum = 5; $start = max(1, $page - $shownum); $end = min($totalpage, $page + $shownum); $right = $page + $shownum - $totalpage; $right > 0 && $start = max(1, $start -= $right); $left = $page - $shownum; $left < 0 && $end = min($totalpage, $end -= $left); $s = ''; $page != 1 && $s .= pagination_tpl(str_replace('{page}', $page-1, $url), '◀', ''); if($start > 1) $s .= pagination_tpl(str_replace('{page}', 1, $url),'1 '.($start > 2 ? '...' : '')); for($i=$start; $i<=$end; $i++) { $s .= pagination_tpl(str_replace('{page}', $i, $url), $i, $i == $page ? ' active' : ''); } if($end != $totalpage) $s .= pagination_tpl(str_replace('{page}', $totalpage, $url), ($totalpage - $end > 1 ? '...' : '').$totalpage); $page != $totalpage && $s .= pagination_tpl(str_replace('{page}', $page+1, $url), '▶'); return $s; }


7、轮播

指定大框架类 左右=缺省;上下=carousel-vertical;淡出淡入=carousel-fade


8、未使用的上传图片自动删除

function attach_delete_no_img($pid,$message) {
    $attachlist = $imagelist = $filelist = array();
    $attachlist = attach__find(array('pid'=>$pid), array(), 1, 1000);
    if($attachlist) {
        foreach ($attachlist as $attach) {
            attach_format($attach);
            if($attach['isimage']){
                if(!strstr($message,end(explode('/',$attach['filename'])))){
                    attach_delete($attach['aid']);
                }
            }
        }
    }
}
attach_delete_no_img($pid,$message);
// hook post_update_post_end.php

9、时间显示格式

#年-月-日
<?php echo date("Y-m-d",$_thread['create_date']);?>
#xx之前
<?php echo $_thread['create_date_fmt'];?>

10、游客回复

【hook】  index_inc_route_before.php

empty
(
$user
) AND 
$user
 
= user_read(
'218'
);

218位预留【游客】ID,需提前注册获得。

最新回复 (1)
  • wen9 2018-5-9
    0 引用 2
    老大,之前那篇防模板的帖子还有吗