源码论坛公告:本站是一个交流学习建站资源的社区论坛,旨在交流学习源码脚本等资源技术,欢迎大家投稿发言! 【点击此处将锦尚放在桌面

源码论坛,商业源码下载,尽在锦尚中国商业源码论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

查看: 4717|回复: 0

[帝国教程] 帝国cms下拉自动加载文章的实现办法

[复制链接]

3108

主题

3510

帖子

13万

金币

超级版主

Rank: 8Rank: 8

积分
276075
发表于 2023-2-10 21:55:07 | 显示全部楼层 |阅读模式


想要自己加载得要涉及到PHP+JQ+AJAX:

新建个php代码get_news_index.php 上传到 /e/action:

<?php
require('../class/connect.php');
require('../class/db_sql.php');
require('../data/dbcache/class.php');
if($_POST[action] == 'getmorenews'){
$table=htmlspecialchars($_POST[table]);
if(empty($_POST[orderby])){$orderby='newstime';}else{ $orderby=htmlspecialchars($_POST[orderby]);}
if(empty($_POST[myorder])){$myorder='desc';}else{ $myorder='asc';}
if(empty($_POST[limit])){$limit=3;}else{ $limit=(int)$_POST[limit];}
if(empty($_POST[classid])){$where=null;}else{ $where='where classid in('.$_POST[classid].')';}
if(empty($_POST[length])){$length=50;}else{ $length=(int)$_POST[length];}
if(empty($_POST[small_length])){$small_length=120;}else{ $small_length=(int)$_POST[small_length];}

$link=db_connect();
$empire=new mysqlquery();
$num =(int)$_POST['next'] *$limit;

if($table){
$sql=$empire->query("SELECT * FROM `".$dbtbpre."ecms_".$table."` $where order by $orderby $myorder limit $num,$limit");

while($r=$empire->fetch($sql)){

if($r[titlepic]==''){
$r[titlepic]=$public_r[news.url]."e/data/images/notimg.gif";
}
$oldtitle=stripSlashes($r[title]);
$title=sub($oldtitle,'',$length);
$smalltext=stripSlashes($r[smalltext]);
$smalltext=sub($smalltext,'',$small_length);
$classname=$class_r[$r[classid]][classname];
$newsurl=$public_r[newsurl];
$classurl=$newsurl.$class_r[$r[classid]][classpath];

?>
<article class="excerpt excerpt-one" data-id="<?=$r[classid]?>">
<header><a class="cat label label-important" href="<?=$class_r[$r[classid]]['classpath']?> "><?=$class_r[$r[classid]][bname]?><i class="label-arrow"></i></a>
<h2><a href="<?=$r[titleurl]?>" title="<?=$r[oldtitle]?>"><?=$r[title]?></a></h2>
<small class="text-muted"><span class="glyphicon glyphicon-picture"></span><?=$r[imgcount]?></small></header>
<p class="text-muted time"><?=$r[username]?> 发布于 <?=date('Y-m-d',$r[newstime])?></p>
<p class="focus"><a href="<?=$r[titleurl]?>" class="thumbnail"><img src="<?=$r[titlepic]?>" /></a></p>
<p class="note"><?=$smalltext?>...</p>
<p class="text-muted views">
<span class="post-views">阅读(<?=$r[onclick]?>)</span>
<span class="post-comments">评论(<?=$r[plnum]?>)</span><a href="JavaScript:makeRequest('<?=$public_r[news.url]?>e/public/digg?classid=<?=$r[classid]?>&id=<?=$r[id]?>&dotop=1&doajax=1&ajaxarea=diggnum<?=$r[id]?>','EchoReturnedText','GET','');" class="post-like" ><i class="glyphicon glyphicon-thumbs-up"></i>赞 (
<span id="diggnum<?=$r[id]?>"><?=$r[diggtop]?></span>)</a>
<span class="post-tags">标签:<a href="/337/e/tags/?tagname=<?=stripSlashes($r[keyboard])?>" target="_blank" rel="tag" data-original-title><?=stripSlashes($r[keyboard])?></a></span></p>
</article>

//这部分代码添加自己的模板代码
<?php
}
}
}
db_close();
$empire=null;
?>
第二部要写js代码 ajaxShow.js:
  1. $(function() {
  2.     var i =0; //设置当前页数
  3.     if (!NeuF) var NeuF = {};
  4.     NeuF.ScrollPage = function (obj, options, callback) {
  5.         var _defaultOptions = {delay: 500, marginBottom: 200}; //默认配置:延迟时间delay和滚动条距离底部距离marginBottom
  6.         options = $.extend(_defaultOptions, options);
  7.         this.isScrolling = false; //是否在滚动
  8.         this.oriPos = 0; //原始位置
  9.         this.curPos = 0; //当前位置
  10.         var me = this; //顶层
  11.         var $obj = (typeof obj == "string") ? $("#" + obj) : $(obj);
  12.         //绑定滚动事件
  13.         $obj.scroll(function (ev) {
  14.             me.curPos = $obj.scrollTop();
  15.             if ($(window).height() + $(window).scrollTop() >= $(document.body).height() - options.marginBottom) {
  16.                 if (me.isScrolling == true) return;
  17.                 me.isScrolling = true;
  18.                 setTimeout(function () {
  19.                     me.isScrolling = false;
  20.                 }, options.delay);   //重复触发间隔毫秒
  21.                 if (typeof callback == "function") callback.call(null, me.curPos - me.oriPos);
  22.             }
  23.             ;
  24.             me.oriPos = me.curPos;
  25.         });
  26.     };
  27.     $(function () {
  28.         window.scrollTo(0, 0); //每次F5刷新把滚动条置顶
  29.         function show() {
  30.             $.ajax({
  31.                 url: 'http://www.****.com/e/action/get_news_index.php',//自己的域名
  32.                 type: 'POST',
  33.                 data: {
  34.                     "next": i,
  35.                     'table': 'news',
  36.                     'action': 'getmorenews',
  37.                     'limit': 10,
  38.                     'small_length': 120
  39.                 },
  40.                 dataType: 'html',
  41.                 beforeSend: function () {
  42.                     $("#loadmore").show().html('<img  src="/307/skin/ecms103/images/loading.gif"/>正在努力加载中...');

  43.                     $('#loadmore').attr('disabled', 'disabled');
  44.                 },
  45.                 success: function (data) {
  46.                     if (data) {
  47.                         $("#showajaxnews").append(data);

  48.                         $("#loadmore").removeAttr('disabled');
  49.                         $("#loadmore").html('滚动加载更多');
  50.                         i++;
  51.                     } else {
  52.                         $("#loadmore").show().html("已全部加载完毕!");
  53.                         console.log(data);
  54.                         $('#loadmore').attr('disabled', 'disabled');
  55.                         return false;
  56.                     }
  57.                 }
  58.             });

  59.         };
  60.         show();
  61.         //marginBottom表示滚动条离底部的距离,0表示滚动到最底部才加载,可以根据需要修改
  62.         new NeuF.ScrollPage(window, {delay: 1000, marginBottom: 0}, function (offset) {
  63.             if (offset > 0) {
  64.                 setTimeout(show,1000)
  65.             }
  66.         });
  67.     });
  68. });
复制代码

第三部要在 HTML 加入代码:
  1. <div id="showajaxnews">
  2. 列表加载这里面
  3. </div>
  4. <div id="loadmore">滚动加载更多</div>
复制代码


您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

锦尚中国源码论坛

聚合标签|锦尚中国,为中国网站设计添动力 ( 鲁ICP备09033200号 ) |网站地图

GMT+8, 2024-7-14 21:38 , Processed in 0.155067 second(s), 25 queries .

带宽由 锦尚数据 提供 专业的数据中心

© 锦尚中国源码论坛 52jscn Inc. 非法入侵必将受到法律制裁 法律顾问:IT法律网 & 褚福省律师 锦尚爱心 版权申诉 版权与免责声明