国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

article_soft.htm 10KB

10 个月前
1年前
1年前
1年前
1年前
1年前
1年前
10 个月前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
10 个月前
1年前
1年前
1年前
1年前
1年前
10 个月前
1年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
  6. <title>{dede:field.title/}-{dede:global.cfg_webname/}</title>
  7. <meta name="keywords" content="{dede:field.keywords/}">
  8. <meta name="description" content="{dede:field.description/}">
  9. <link rel="stylesheet" href="/static/web/css/font-awesome.min.css">
  10. <link rel="stylesheet" href="/static/web/css/bootstrap.min.css">
  11. <link rel="stylesheet" href="/static/web/css/style.css">
  12. </head>
  13. <body>
  14. {dede:include filename='top.htm'/}
  15. {dede:include filename='head.htm'/}
  16. <div class="container py-3">
  17. <ol class="breadcrumb mb-0">
  18. <li class="breadcrumb-item">当前位置</li>
  19. {dede:field name='position'/}
  20. </ol>
  21. </div>
  22. <main class="container py-3">
  23. <div class="row">
  24. <div class="col-md-9">
  25. <article class="article-main bg-white shadow-sm rounded p-3">
  26. <div class="title">
  27. <h1>{dede:field.title/}</h1>
  28. </div>
  29. <div class="meta py-3">
  30. <a href="{dede:field.userurl/}"><span><img src="{dede:field.face/}" class="user-img-xs mr-2">{dede:field.uname/}</span></a>
  31. <span><i class="fa fa-calendar mr-2"></i>{dede:field.pubdate function="MyDate('Y-m-d',@me)"/}</span>
  32. <span><i class="fa fa-globe mr-2"></i>{dede:field.source/}</span>
  33. <span><i class="fa fa-user mr-2"></i>{dede:field.writer/}</span>
  34. <span><i class="fa fa-eye mr-2"></i><script src="{dede:global.cfg_phpurl/}/count.php?view=yes&aid={dede:field.id/}&mid={dede:field name='mid'/}"></script>次</span>
  35. </div>
  36. <div class="img py-3">{dede:field.image/}</div>
  37. <div class="info py-3">
  38. <p>软件类型:{dede:field.softtype/}</p>
  39. <p>授权方式:{dede:field.accredit/}</p>
  40. <p>界面语言:{dede:field.language/}</p>
  41. <p>软件大小:{dede:field.softsize/}</p>
  42. <p>文件类型:{dede:field.filetype/}</p>
  43. <p>运行环境:{dede:field.os/}</p>
  44. <p>软件等级:{dede:field.softrank function='GetRankStar(@me)'/}</p>
  45. <p>发布时间:{dede:field.pubdate function="GetDateMk('@me')"/}</p>
  46. <p>官方网址:{dede:field.officialurl/}</p>
  47. <p>演示网址:{dede:field.officialdemo/}</p>
  48. <p>下载次数:<script src="{dede:field.phpurl/}/disdls.php?aid={dede:field.id/}"></script></p>
  49. </div>
  50. <div class="body py-3">
  51. {dede:field.introduce/}
  52. <p>工具于 {dede:field.senddate function="MyDate('Y-m-d H:i',@me)"/} 修改</p>
  53. </div>
  54. <div class="download py-3">
  55. <h4>下载地址</h4>
  56. <ul class="downurllist">
  57. {dede:field.softlinks/}
  58. </ul>
  59. </div>
  60. <div class="alert alert-success my-3">{dede:softmsg/}</div>
  61. <div class="edit py-3">责任编辑:{dede:adminname/}</div>
  62. <div class="page py-3 row">
  63. <div class="col-md-4 prenext">
  64. <div class="pagination-previous mb-3">{dede:prenext get='pre'/}</div>
  65. <div class="pagination-next">{dede:prenext get='next'/}</div>
  66. </div>
  67. <div class="col-md-8">
  68. <div class="row actbox">
  69. <ul>
  70. <li><i class="fa fa-star-o mr-2"></i><a href="{dede:global.cfg_phpurl/}/stow.php?aid={dede:field.id/}">收藏</a></li>
  71. <li><i class="fa fa-bug mr-2"></i><a href="javascript:ErrorAddSave({dede:field.id/}, '{dede:field.title/}');">挑错</a></li>
  72. <li><i class="fa fa-thumbs-o-up mr-2"></i><a href="{dede:global.cfg_phpurl/}/recommend.php?aid={dede:field.id/}">推荐</a></li>
  73. <li><i class="fa fa-print mr-2"></i><a href="javascript:;" onclick="window.print();">打印</a></li>
  74. </ul>
  75. </div>
  76. </div>
  77. </div>
  78. {dede:include filename='widget_article_likes.htm'/}
  79. {dede:include filename='widget_article_feedback.htm'/}
  80. </article>
  81. </div>
  82. <aside class="col-md-3">
  83. <div class="pb-3">{dede:include filename='widget_search.htm'/}</div>
  84. <div class="pb-3">{dede:include filename='widget_menu.htm'/}</div>
  85. <div class="pb-3">{dede:include filename='widget_hot.htm'/}</div>
  86. </aside>
  87. </div>
  88. </main>
  89. <script>const PHPURL = '{dede:global.cfg_phpurl/}';</script>
  90. {dede:include filename='foot.htm'/}
  91. <script>
  92. //顶踩功能
  93. function GetDigg(aid,cid) {
  94. let url = `{dede:global.cfg_phpurl/}/digg_ajax.php?id=${aid}&cid=${cid}&format=json`;
  95. $.get(url, function(data) {
  96. let reval = JSON.parse(data);
  97. if (reval.code === 200) {
  98. $("#goodpost").html(reval.data.goodpost);
  99. $("#badpost").html(reval.data.badpost);
  100. $("#goodper").css("width", `${reval.data.goodper}%`)
  101. $("#badper").css("width", `${reval.data.badper}%`)
  102. }
  103. })
  104. }
  105. function PostDigg(ftype, aid) {
  106. var saveid = GetCookie('diggid');
  107. if (saveid != null) {
  108. var saveids = saveid.split(',');
  109. var hasid = false;
  110. saveid = '';
  111. j = 1;
  112. for (i = saveids.length - 1; i >= 0; i--) {
  113. if (saveids[i] == aid && hasid) continue;
  114. else {
  115. if (saveids[i] == aid && !hasid) hasid = true;
  116. saveid += (saveid == '' ? saveids[i] : ',' + saveids[i]);
  117. j++;
  118. if (j == 20 && hasid) break;
  119. if (j == 19 && !hasid) break;
  120. }
  121. }
  122. if (hasid) { ShowMsg("您已经顶过该帖,请不要重复顶帖"); return; }
  123. else saveid += ',' + aid;
  124. SetCookie('diggid', saveid, 1);
  125. } else {
  126. SetCookie('diggid', aid, 1);
  127. }
  128. let url = "{dede:global.cfg_phpurl/}/digg_ajax.php?action=" + ftype + "&id=" + aid + "&format=json&cid={dede:field.channel/}";
  129. $.get(url, function(data) {
  130. let reval = JSON.parse(data);
  131. if (reval.code === 200) {
  132. $("#goodpost").html(reval.data.goodpost);
  133. $("#badpost").html(reval.data.badpost);
  134. $("#goodper").css("width", `${reval.data.goodper}%`)
  135. $("#badper").css("width", `${reval.data.badper}%`)
  136. }
  137. });
  138. }
  139. GetDigg("{dede:field.id/}", "{dede:field.channel/}");
  140. //发表评论
  141. function SendFeedback() {
  142. let feedback = {
  143. action: "send",
  144. comtype: "comments",
  145. aid: "{dede:field.id/}",
  146. msg: $("#iptMsg").val(),
  147. username: $("#iptUsername").val(),
  148. validate: $("#iptValidate").val(),
  149. notuser: $("#iptAny").is(":checked") ? "1" : "",
  150. };
  151. $.post("{dede:global.cfg_phpurl/}/feedback.php", feedback, function(data) {
  152. let result = JSON.parse(data);
  153. if (result.code === 200) {
  154. ShowAlert("#feedback-alert", result.msg, "success");
  155. $("#iptMsg").val("");
  156. $("#iptValidate").val("");
  157. ($("#iptUsername").attr("disabled") !== "disabled") && $("#iptUsername").val("");
  158. $("#validateimg").attr("src", '{dede:global.cfg_phpurl/}/vdimgck.php?' + new Date().getTime() + Math.round(Math.random() * 10000));
  159. } else {
  160. ShowAlert("#feedback-alert", `评论失败:${result.msg}`, "danger");
  161. $("#validateimg").attr("src", '{dede:global.cfg_phpurl/}/vdimgck.php?' + new Date().getTime() + Math.round(Math.random() * 10000));
  162. }
  163. });
  164. }
  165. //回复评论,回复必须登录
  166. function SendReplyFeedback(fid) {
  167. let content = $(`._feedback_reply[for="${fid}"]`).find(".iptReplyContent").val();
  168. let reply = {
  169. action : "send",
  170. comtype : "reply",
  171. fid : fid,
  172. aid : "{dede:field.id/}",
  173. msg : content,
  174. }
  175. $.post("{dede:global.cfg_phpurl/}/feedback.php", reply, function(data) {
  176. let result = JSON.parse(data);
  177. if (result.code === 200) {
  178. ShowAlert(`._feedback_reply[for="${fid}"]`, result.msg, "success");
  179. } else {
  180. ShowAlert(`._feedback_reply[for="${fid}"]`, `评论失败:${result.msg}`, "danger");
  181. }
  182. })
  183. $(`._feedback_reply[for="${fid}"]`).find(".btn-send").attr("disabled", "disabled");
  184. }
  185. //回复某个评论
  186. function ReplyFeedback(fid) {
  187. let replyPannel = `<div class="form-group">
  188. <div class="input-group">
  189. <input type="text" class="form-control iptReplyContent">
  190. <div class="input-group-append"><button type="button" class="btn btn-success btn-send" onclick='SendReplyFeedback(${fid})'>评论</button></div>
  191. </div>
  192. </div>`;
  193. $.get("{dede:global.cfg_memberurl/}/api.php?format=json", function(result) {
  194. if (result.code !== 200) {
  195. $(`._feedback_reply`).html("");
  196. ShowAlert(`._feedback_reply[for="${fid}"]`, '回复需要登录会员中心,您可以<a href="{dede:global.cfg_memberurl/}/login.php">点击登录</a>后再来回复', 'warning', 3000);
  197. } else {
  198. $(`._feedback_reply`).html("");
  199. $(`._feedback_reply[for="${fid}"]`).html(replyPannel);
  200. }
  201. });
  202. $(`._feedback_reply[for="${fid}"]`).html('<i class="fa fa-spinner"></i>');
  203. }
  204. //加载回复评论
  205. function LoadReplyFeedbacks(fid) {
  206. $(`.feedback_replies[for="${fid}"]`).html('<i class="fa fa-spinner"></i>');
  207. $.get("{dede:global.cfg_phpurl/}/feedback.php", {
  208. "aid" : "{dede:field.id/}",
  209. "fid" : fid,
  210. }, function(data) {
  211. let result = JSON.parse(data);
  212. let tpl = `<div class="media py-3">
  213. <img src="~face~" class="face mr-3">
  214. <div class="media-body">
  215. <div class="feedback-infos pb-3">
  216. <div class="feedback-basic">
  217. <span>~username~</span>
  218. <span>~dtimestr~</span>
  219. </div>
  220. <div class="feedback-action">
  221. <a href="javascript:GoodFeedback(~id~, ~good~)">
  222. <i class="fa fa-thumbs-up"></i>
  223. <i id="feedbackGood~id~">~good~</i>
  224. </a>
  225. </div>
  226. </div>
  227. <div class="feedback-content">~msg~</div>
  228. </div>
  229. </div>`;
  230. if (result.code === 200) {
  231. $(`.feedback_replies[for="${fid}"]`).html("");
  232. for (let i = 0; i < result.data.length; i++) {
  233. const feedback = result.data[i];
  234. let rs = tpl;
  235. for (const key in feedback) {
  236. if (feedback.hasOwnProperty(key)) {
  237. rs = rs.replace(new RegExp(`~${key}~`,"gm"), feedback[key])
  238. }
  239. }
  240. $(`.feedback_replies[for="${fid}"]`).append(rs);
  241. }
  242. }
  243. })
  244. }
  245. //评论点赞
  246. function GoodFeedback(fid, g) {
  247. let good = {
  248. action : "send",
  249. feedbacktype : "good",
  250. good : g,
  251. fid : fid,
  252. }
  253. $.post("{dede:global.cfg_phpurl/}/feedback.php", good, function(data) {
  254. let result = JSON.parse(data);
  255. $(`#feedbackGood${fid}`).html(result.data);
  256. })
  257. }
  258. </script>
  259. </body>
  260. </html>