国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

154 satır
5.3KB

  1. <?php if(!defined('DEDEINC')) exit('Request Error!');
  2. /**
  3. * 连载图书调用
  4. *
  5. * @version $Id: booklist.lib.php 1 9:29 2010年7月6日Z tianya $
  6. * @package DedeCMS.Taglib
  7. * @copyright Copyright (c) 2007 - 2020, DesDev, Inc.
  8. * @license http://help.dedecms.com/usersguide/license.html
  9. * @link http://www.dedecms.com
  10. */
  11. /**
  12. * 图书列表调用
  13. *
  14. * @access public
  15. * @param object $ctag 解析标签
  16. * @param object $refObj 引用对象
  17. * @param int $getcontent 是否调用内容
  18. * @return string
  19. */
  20. /*>>dede>>
  21. <name>连载图书</name>
  22. <type>全局标记</type>
  23. <for>V55,V56,V57</for>
  24. <description>连载图书调用</description>
  25. <demo>
  26. {dede:booklist row='12' booktype='-1' orderby='lastpost' author='' keyword=''}
  27. <a href='[field:bookurl /]'>[field:bookname /]</a><br />
  28. {/dede:booklist}
  29. </demo>
  30. <attributes>
  31. <iterm>row:调用记录条数</iterm>
  32. <iterm>booktype:图书类型,0 图书、1 漫画,默认全部</iterm>
  33. <iterm>orderby:排序类型,当按排序类型为 commend 表示推荐图书</iterm>
  34. <iterm>author:作者</iterm>
  35. <iterm>keyword:关键字</iterm>
  36. </attributes>
  37. >>dede>>*/
  38. function lib_booklist(&$ctag, &$refObj, $getcontent=0)
  39. {
  40. global $dsql, $envs, $cfg_dbprefix, $cfg_cmsurl;
  41. //属性处理
  42. $attlist="row|12,booktype|-1,titlelen|30,orderby|lastpost,author|,keyword|";
  43. FillAttsDefault($ctag->CAttribute->Items,$attlist);
  44. extract($ctag->CAttribute->Items, EXTR_SKIP);
  45. if( !$dsql->IsTable("{$cfg_dbprefix}story_books") ) return '没安装连载模块';
  46. $addquery = '';
  47. if(empty($innertext))
  48. {
  49. if($getcontent==0) $innertext = GetSysTemplets('booklist.htm');
  50. else $innertext = GetSysTemplets('bookcontentlist.htm');
  51. }
  52. //图书类型
  53. if($booktype!=-1) {
  54. $addquery .= " AND b.booktype='{$booktype}' ";
  55. }
  56. //推荐
  57. if($orderby=='commend')
  58. {
  59. $addquery .= " AND b.iscommend=1 ";
  60. $orderby = 'lastpost';
  61. }
  62. //作者条件
  63. if(!empty($author))
  64. {
  65. $addquery .= " AND b.author LIKE '$author' ";
  66. }
  67. //关键字条件
  68. if(!empty($keyword))
  69. {
  70. $keywords = explode(',', $keyword);
  71. $keywords = array_unique($keywords);
  72. if(count($keywords) > 0) {
  73. $addquery .= " AND (";
  74. }
  75. foreach($keywords as $v) {
  76. $addquery .= " CONCAT(b.author,b.bookname,b.keywords) LIKE '%$v%' OR";
  77. }
  78. $addquery = preg_replace("# OR$#", "", $addquery);
  79. $addquery .= ")";
  80. }
  81. $clist = '';
  82. $query = "SELECT b.id,b.catid,b.ischeck,b.booktype,b.iscommend,b.click,b.bookname,b.lastpost,
  83. b.author,b.mid,b.litpic,b.pubdate,b.weekcc,b.monthcc,b.description,c.classname,c.classname as typename,c.booktype as catalogtype
  84. FROM `#@__story_books` b LEFT JOIN `#@__story_catalog` c ON c.id = b.catid
  85. WHERE b.postnum>0 AND b.ischeck>0 $addquery ORDER BY b.{$orderby} DESC LIMIT 0, $row";
  86. $dsql->SetQuery($query);
  87. $dsql->Execute();
  88. $ndtp = new DedeTagParse();
  89. $ndtp->SetNameSpace('field', '[', ']');
  90. $GLOBALS['autoindex'] = 0;
  91. while($row = $dsql->GetArray())
  92. {
  93. $GLOBALS['autoindex']++;
  94. $row['title'] = $row['bookname'];
  95. $ndtp->LoadString($innertext);
  96. //获得图书最新的一个更新章节
  97. $row['contenttitle'] = '';
  98. $row['contentid'] = '';
  99. if($getcontent==1) {
  100. $nrow = $dsql->GetOne("SELECT id,title,chapterid FROM `#@__story_content` WHERE bookid='{$row['id']}' order by id desc ");
  101. $row['contenttitle'] = $nrow['title'];
  102. $row['contentid'] = $nrow['id'];
  103. }
  104. if($row['booktype']==1) {
  105. $row['contenturl'] = $cfg_cmspath.'/book/show-photo.php?id='.$row['contentid'];
  106. }
  107. else {
  108. $row['contenturl'] = $cfg_cmspath.'/book/story.php?id='.$row['contentid'];
  109. }
  110. //动态网址
  111. $row['dmbookurl'] = $cfg_cmspath.'/book/book.php?id='.$row['id'];
  112. //静态网址
  113. $row['bookurl'] = $row['url'] = GetBookUrl($row['id'],$row['bookname']);
  114. $row['catalogurl'] = $cfg_cmspath.'/book/list.php?id='.$row['catid'];
  115. $row['cataloglink'] = "<a href='{$row['catalogurl']}'>{$row['classname']}</a>";
  116. $row['booklink'] = "<a href='{$row['bookurl']}'>{$row['bookname']}</a>";
  117. $row['contentlink'] = "<a href='{$row['contenturl']}'>{$row['contenttitle']}</a>";
  118. $row['imglink'] = "<a href='{$row['bookurl']}'><img src='{$row['litpic']}' width='$imgwidth' height='$imgheight' border='0' /></a>";
  119. if($row['ischeck']==2) $row['ischeck']='已完成连载';
  120. else $row['ischeck']='连载中...';
  121. if($row['booktype']==0) $row['booktypename']='小说';
  122. else $row['booktypename']='漫画';
  123. if(is_array($ndtp->CTags))
  124. {
  125. foreach($ndtp->CTags as $tagid=>$ctag)
  126. {
  127. $tagname = $ctag->GetTagName();
  128. if(isset($row[$tagname])) $ndtp->Assign($tagid,$row[$tagname]);
  129. else $ndtp->Assign($tagid,'');
  130. }
  131. }
  132. $clist .= $ndtp->GetResult();
  133. }
  134. return $clist;
  135. }