Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

[其他] 怎样在dz的home页中调用ss的资讯类文章标题

[复制链接]
weinuoer 发表于 2009-5-21 13:41:35 | 显示全部楼层 |阅读模式
本帖最后由 weinuoer 于 2009-5-21 13:48 编辑
今天在写dz的home页时突然想到一点问题就是怎样在dz的home页中调用ss的资讯类文章标题
问题的起因是这样的:由于dz论坛本身不带采集 但是ss能弥补这一点,但是本站是论坛在根目录下 ss是在news目录下如果想用dz的home页调用ss的文章类标题的话只能用到ss的内置模块来建立一个js调用类的模块!这样放在home页中是既不利于seo的蜘蛛爬行的!
于是想到自己用调用数据库的办法来实现
废话不多说了 看操作吧:
有钱的朋友捧个钱场 没钱的朋友到
麦迪墨客的博客去看吧 http://www.mdcms.cn/article/wangluobiancheng/zaidzzhongdiaoyong.htm
第一步 在论坛的根目录下建立一个mdcmscn.php文件
复制一下代码保存

<?php

/*
[Discuz!] (C)2001-2007 Comsenz Inc.
This is NOT a freeware, use is subject to license terms

$Id: index.php 13764 2008-05-19 03:14:01Z heyond $
*/

define('CURSCRIPT', 'index');

require_once './include/common.inc.php';

require_once DISCUZ_ROOT.'./include/forum.func.php';

require_once DISCUZ_ROOT.'./include/misc.func.php';



//调用ss文章排行//
$hack_cut_str =20; //修改标题显示字数
$newsubject_mdcmscn_threadlist = array();
$mdcmscnstr = array();
$query = $db->query("Select itemid, username, subject FROM supe_spaceitems orDER BY itemid DESC LIMIT 30");
while($comiistr = $db->fetch_array($query)) {
        
        $mdcmscnstr['forumname'] = $mdcmscnstr['username'];
        $mdcmscnstr['view_subject'] = mdcmsscneftstr($mdcmscnstr['subject'],$hack_cut_str);
        if($comiistr['highlight']) {
                $string = sprintf('%02d', $mdcmscnstr['highlight']);
                $stylestr = sprintf('%03b', $string[0]);
                $mdcmscnstr['highlight'] = 'style="';
                $mdcmscnstr['highlight'] .= $stylestr[0] ? 'font-weight: bold;' : '';
                $mdcmscnstr['highlight'] .= $stylestr[1] ? 'font-style: italic;' : '';
                $mdcmscnstr['highlight'] .= $stylestr[2] ? 'text-decoration: underline;' : '';
                $mdcmscnstr['highlight'] .= $string[1] ? 'color: '.$colorarray[$string[1]] : '';
                $mdcmscnstr['highlight'] .= '"';
        } else {
                $mdcmscnstr['highlight'] = '';
        }
        $newsubject_mdcmscn_threadlist[] = $mdcmscnstr;
}

//调用ss文章排行结束//



$discuz_action = 1;


if($cacheindexlife && !$discuz_uid && $showoldetails != 'yes' && (!$_DCACHE['settings']['frameon'] || $_DCACHE['settings']['frameon'] && $_GET['frameon'] != 'yes') && empty($gid)) {

$indexcache = getcacheinfo(0);

if($timestamp - $indexcache['filemtime'] > $cacheindexlife) {
  @unlink($indexcache['filename']);
  define('CACHE_FILE', $indexcache['filename']);
  $styleid = $_DCACHE['settings']['styleid'];
} elseif($indexcache['filename']) {
  @readfile($indexcache['filename']);
  $debug && debuginfo();
  $debug ? die('<script type="text/javascript">document.getElementById("debuginfo").innerHTML = " '.($debug ? 'Updated at '.gmdate("H:i:s", $indexcache['filemtime'] + 3600 * 8).', Processed in '.$debuginfo['time'].' second(s), '.$debuginfo['queries'].' Queries'.($gzipcompress ? ', Gzip enabled' : '') : '').'";</script>') : die();
}
}

$validdays = $discuz_uid && !empty($groupexpiry) && $groupexpiry >= $timestamp ? ceil(($groupexpiry - $timestamp) / 86400) : 0;
if(isset($showoldetails)) {
switch($showoldetails) {
  case 'no': dsetcookie('onlineindex', 0, 86400 * 365); break;
  case 'yes': dsetcookie('onlineindex', 1, 86400 * 365); break;
}
} else {
$showoldetails = false;
}

$currenttime = gmdate($timeformat, $timestamp + $timeoffset * 3600);
$lastvisittime = gmdate("$dateformat $timeformat", $lastvisit + $timeoffset * 3600);

$memberenc = rawurlencode($lastmember);
$newthreads = round(($timestamp - $lastvisit + 600) / 1000) * 1000;
$rsshead = $rssstatus ? ('<link rel="alternate" type="application/rss+xml" title="'.$bbname.'" href="'.$boardurl.'rss.php?auth='.$rssauth."\" />\n") : '';
$customtopics = '';
if($qihoo['maxtopics']) {
foreach(explode("\t", isset($_DCOOKIE['customkw']) ? $_DCOOKIE['customkw'] : '') as $topic) {
  $topic = dhtmlspecialchars(trim(stripslashes($topic)));
  $customtopics .= '<a href="topic.php?keyword='.rawurlencode($topic).'" target="_blank">'.$topic.'</a>  ';
}
}
$hottagstatus = $tagstatus && $hottags && $_DCACHE['tags'];

$catlist = $forumlist = $sublist = $forumname = $collapseimg = $collapse = array();
$threads = $posts = $todayposts = $fids = $announcepm = 0;
$postdata = $historyposts ? explode("\t", $historyposts) : array();

foreach(array('forumlinks', 'birthdays') as $key) {
if(!isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], $key) === FALSE) {
  $collapseimg[$key] = 'collapsed_no.gif';
  $collapse[$key] = '';
} else {
  $collapseimg[$key] = 'collapsed_yes.gif';
  $collapse[$key] = 'display: none';
}
}

$gid = !empty($gid) ? intval($gid) : 0;
if(!$gid) {
$announcements = '';
if($_DCACHE['announcements']) {
  $readapmids = !empty($_DCOOKIE['readapmid']) ? explode('D', $_DCOOKIE['readapmid']) : array();
  foreach($_DCACHE['announcements'] as $announcement) {
   if(empty($announcement['groups']) || in_array($groupid, $announcement['groups'])) {
    if(empty($announcement['type'])) {
     $announcements .= '<li><a href="announcement.php?id='.$announcement['id'].'">'.$announcement['subject'].
      '<em>('.gmdate($dateformat, $announcement['starttime'] + $timeoffset * 3600).')</em></a></li>';
    } elseif($announcement['type'] == 1) {
     $announcements .= '<li><a href="'.$announcement['message'].'" target="_blank">'.$announcement['subject'].
      '<em>('.gmdate($dateformat, $announcement['starttime'] + $timeoffset * 3600).')</em></a></li>';
    }
   }
  }
}
unset($_DCACHE['announcements']);

$sql = !empty($accessmasks) ?
    "Select f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.todayposts, f.lastpost, f.inheritedmod, f.forumcolumns, f.simple, ff.description, ff.moderators, ff.icon, ff.viewperm, ff.redirect, a.allowview FROM {$tablepre}forums f
     LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid
     LEFT JOIN {$tablepre}access a ON a.uid='$discuz_uid' AND a.fid=f.fid
     Where f.status>0 orDER BY f.type, f.displayorder"
    : "Select f.fid, f.fup, f.type, f.name, f.threads, f.posts, f.todayposts, f.lastpost, f.inheritedmod, f.forumcolumns, f.simple, ff.description, ff.moderators, ff.icon, ff.viewperm, ff.redirect FROM {$tablepre}forums f
     LEFT JOIN {$tablepre}forumfields ff USING(fid)
     Where f.status>0 orDER BY f.type, f.displayorder";

$query = $db->query($sql);

while($forum = $db->fetch_array($query)) {
  $forumname[$forum['fid']] = strip_tags($forum['name']);
  if($forum['type'] != 'group') {
   $threads += $forum['threads'];
   $posts += $forum['posts'];
   $todayposts += $forum['todayposts'];

   if($forum['type'] == 'forum') {

    if(forum($forum)) {
     $catlist[$forum['fup']]['forums'][] = $forum['fid'];
     $forum['orderid'] = $catlist[$forum['fup']]['forumscount']++;
     $forum['subforums'] = '';
     $forumlist[$forum['fid']] = $forum;
    }

   } elseif(isset($forumlist[$forum['fup']])) {

    $forumlist[$forum['fup']]['threads'] += $forum['threads'];
    $forumlist[$forum['fup']]['posts'] += $forum['posts'];
    $forumlist[$forum['fup']]['todayposts'] += $forum['todayposts'];
    if($subforumsindex && $forumlist[$forum['fup']]['permission'] == 2 && !($forumlist[$forum['fup']]['simple'] & 16) || ($forumlist[$forum['fup']]['simple'] & 8)) {
     $forumlist[$forum['fup']]['subforums'] .= '<a href="forumdisplay.php?fid='.$forum['fid'].'">'.$forum['name'].'</a>  ';
    }

   }

  } else {

   if(!isset($_COOKIE['discuz_collapse']) || strpos($_COOKIE['discuz_collapse'], 'category_'.$forum['fid']) === FALSE) {
    $forum['collapseimg'] = 'collapsed_no.gif';
    $collapse['category_'.$forum['fid']] = '';
   } else {
    $forum['collapseimg'] = 'collapsed_yes.gif';
    $collapse['category_'.$forum['fid']] = 'display: none';
   }

   if($forum['moderators']) {
     $forum['moderators'] = moddisplay($forum['moderators'], 'flat');
   }
   $forum['forumscount']  = 0;
   $catlist[$forum['fid']] = $forum;
  }
}

foreach($catlist as  $catid => $category) {
  if($catlist[$catid]['forumscount'] && $category['forumcolumns']) {
   $catlist[$catid]['forumcolwidth'] = floor(100 / $category['forumcolumns']).'%';
   $catlist[$catid]['endrows'] = '';
   if($colspan = $category['forumscount'] % $category['forumcolumns']) {
    while(($category['forumcolumns'] - $colspan) > 0) {
     $catlist[$catid]['endrows'] .= '<td> </td>';
     $colspan ++;
    }
    $catlist[$catid]['endrows'] .= '</tr>';
   }

  } elseif(empty($category['forumscount'])) {
   unset($catlist[$catid]);
  }
}
unset($catid, $category);

if(isset($catlist[0]) && $catlist[0]['forumscount']) {
  $catlist[0]['fid'] = 0;
  $catlist[0]['type'] = 'group';
  $catlist[0]['name'] = $bbname;
  $catlist[0]['collapseimg'] = 'collapsed_no.gif';
} else {
  unset($catlist[0]);
}

if($whosonlinestatus == 1 || $whosonlinestatus == 3) {
  $whosonlinestatus = 1;

  $onlineinfo = explode("\t", $onlinerecord);
  if(empty($_DCOOKIE['onlineusernum'])) {
   $onlinenum = $db->result_first("Select COUNT(*) FROM {$tablepre}sessions");
   if($onlinenum > $onlineinfo[0]) {
    $_DCACHE['settings']['onlinerecord'] = $onlinerecord = "$onlinenum\t$timestamp";
    $db->query("Update {$tablepre}settings SET value='$onlinerecord' Where variable='onlinerecord'");
    require_once DISCUZ_ROOT.'./include/cache.func.php';
    updatesettings();
    $onlineinfo = array($onlinenum, $timestamp);
   }
   dsetcookie('onlineusernum', intval($onlinenum), 300);
  } else {
   $onlinenum = intval($_DCOOKIE['onlineusernum']);
  }
  $onlineinfo[1] = gmdate($dateformat, $onlineinfo[1] + ($timeoffset * 3600));

  $detailstatus = $showoldetails == 'yes' || (((!isset($_DCOOKIE['onlineindex']) && !$whosonline_contract) || $_DCOOKIE['onlineindex']) && $onlinenum < 500 && !$showoldetails);

  if($detailstatus) {
   @include language('actions');

   $discuz_uid && updatesession();
   $membercount = $invisiblecount = 0;
   $whosonline = array();

   $maxonlinelist = $maxonlinelist ? $maxonlinelist : 500;

   $query = $db->query("Select uid, username, groupid, invisible, action, lastactivity, fid FROM {$tablepre}sessions ".(isset($_DCACHE['onlinelist'][7]) ? '' : 'Where uid <> 0')." orDER BY uid DESC LIMIT ".$maxonlinelist);
   while($online = $db->fetch_array($query)) {
    if($online['uid']) {
     $membercount ++;
     if($online['invisible']) {
      $invisiblecount++;
      continue;
     } else {
      $online['icon'] = isset($_DCACHE['onlinelist'][$online['groupid']]) ? $_DCACHE['onlinelist'][$online['groupid']] : $_DCACHE['onlinelist'][0];
     }

    } else {
     $online['icon'] = $_DCACHE['onlinelist'][7];
     $online['username'] = $_DCACHE['onlinelist']['guest'];
    }

    $online['fid'] = $online['fid'] ? $forumname[$online['fid']] : 0;
    $online['action'] = $actioncode[$online['action']];
    $online['lastactivity'] = gmdate($timeformat, $online['lastactivity'] + ($timeoffset * 3600));
    $whosonline[] = $online;
   }
   unset($actioncode, $online);

   if($onlinenum > $maxonlinelist) {
    $membercount = $db->result_first("Select COUNT(*) FROM {$tablepre}sessions Where uid <> '0'");
    $invisiblecount = $db->result_first("Select COUNT(*) FROM {$tablepre}sessions Where invisible = '1'");
   }

   if($onlinenum < $membercount) {
    $onlinenum = $db->result_first("Select COUNT(*) FROM {$tablepre}sessions");
    dsetcookie('onlineusernum', intval($onlinenum), 300);
   }

   $guestcount = $onlinenum - $membercount;

   $db->free_result($query);
   unset($online);
  }

} else {
  $whosonlinestatus = 0;
}

} else {
require_once DISCUZ_ROOT.'./include/category.inc.php';

}

function discuz_uc_avatar1($uid, $size = '', $returnsrc = FALSE) {
$size = in_array($size, array('big', 'middle', 'small')) ? $size : 'middle';
$uid = abs(intval($uid));
$uid = sprintf("%09d", $uid);
$dir1 = substr($uid, 0, 3);
$dir2 = substr($uid, 3, 2);
$dir3 = substr($uid, 5, 2);
return $returnsrc ? UC_API.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2)."_avatar_$size.jpg" : '<img width=12 height=12 border=0 src="'.UC_API.'/data/avatar/'.$dir1.'/'.$dir2.'/'.$dir3.'/'.substr($uid, -2)."_avatar_$size.jpg".'">';
}


function comiisleftstr($string, $length, $dot = '') {
global $charset;

if(strlen($string) <= $length) {
  return $string;
}

$string = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string);

$strcut = '';
if(strtolower($charset) == 'utf-8') {

  $n = $tn = $noc = 0;
  while($n < strlen($string)) {

   $t = ord($string[$n]);
   if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) {
    $tn = 1; $n++; $noc++;
   } elseif(194 <= $t && $t <= 223) {
    $tn = 2; $n += 2; $noc += 2;
   } elseif(224 <= $t && $t < 239) {
    $tn = 3; $n += 3; $noc += 2;
   } elseif(240 <= $t && $t <= 247) {
    $tn = 4; $n += 4; $noc += 2;
   } elseif(248 <= $t && $t <= 251) {
    $tn = 5; $n += 5; $noc += 2;
   } elseif($t == 252 || $t == 253) {
    $tn = 6; $n += 6; $noc += 2;
   } else {
    $n++;
   }

   if($noc >= $length) {
    break;
   }

  }
  if($noc > $length) {
   $n -= $tn;
  }

  $strcut = substr($string, 0, $n);

} else {
  for($i = 0; $i < $length; $i++) {
   $strcut .= ord($string[$i]) > 127 ? $string[$i].$string[++$i] : $string[$i];
  }
}

$strcut = str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $strcut);

return $strcut.$dot;
}
include template('mdcmscn');

?>
第二部然后在默认的模板目录下建立一个mdcmscn.htm
复制一下代码保存
<!DOCTYPE html PUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><head>
<meta http-equiv="Content-Type" content="text/html; charset=$charset" />
<title>$navtitle $bbname $seotitle - {$boardurl}</title>
</head>
<body  onkeydown="if(event.keyCode==27) return false;">
  <div>
   <!--{loop $newsubject_mdcmscn_threadlist $mdcmscnstr}-->  <li>
<a href="{$boardurl}ss/?action-viewnews-itemid-$mdcmscnstr[itemid]" target="_blank">$mdcmscnstr[view_subject]</a>
   </li>
  
   <!--{/loop}--></div>
</body>
  </html>
然后在网址中输入http://localhost/mdcmscn.php 运行测试成功
有钱的朋友捧个钱场吧
回复

使用道具 举报

508zcom 发表于 2009-5-21 13:51:07 | 显示全部楼层
沙发。。支持
回复

使用道具 举报

 楼主| weinuoer 发表于 2009-5-21 14:00:19 | 显示全部楼层
这只是简单的应用 如果够聪明的话 可以演变出很多的用法来
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-10-19 11:23 , Processed in 0.128868 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表