XiunoPHP开发笔记 xiuno建站日记

已认证 修罗大仙 4月前 1400

本帖记录一部分在做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

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

排他

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


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

bootstrap.js

1
var TRANSITION_DURATION = 600;


4、修改Mysql数据表前缀

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


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

    建议hook位置 thread_plugin_after.htm

1
2
3
4
5
6
7
8
9
10
11
<?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设置具体显示框架

1

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、轮播

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


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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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、时间显示格式

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

10、游客回复

【hook】  index_inc_route_before.php

1
2
3
4
5
6
7
8
9
empty
(
$user
) AND 
$user
  
= user_read(
'218'
);

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

转载自@ok0816

打赏记录:该主题共收到 0笔打赏。

用户 时间 经验 金币 人民币
最新回复 (1)
返回
首页
插件
搜索