[JS] Temas recientes de foros específicos - 3/7/2019, 9:36 am
Descripción:Elija qué foros muestran los temas más recientes. Código:Crear un nuevo JavaScript (La colocación: Índice): - Código:
/* * Application: Recent topics from specific forums * Date: 23/05/2018 * Version: 1.223052018 * Copyright (c) 2018 Daemon <help.forumotion.com> * This work is free. You can redistribute it and/or modify it */ (function() { recentPosts = { initialize: function() { $(function() { recentPosts.setupRecentPosts(); }); }, forums: [ { active: true, // Selected as active forum_name: 'Tutorials', forum_id: 2 }, { forum_name: 'Gunbound Utilities', forum_id: 14 } ], loading: 'Loading...', by: 'By', comments: 'Comments', views: 'Views', loadingImg: 'https://imgur.com/oBkwUIV.gif', numberPosts: 7, // Number of posts shown recent: $("<div>", { id: 'recent-topics' }).html( '<ul class="recent-tabs"></ul>' + '<div class="loaded-recent">' + ' <ul class="loaded-topics"></ul>' + '</div>' ), myCSS: '<style type="text/css">' + '* {' + ' -webkit-box-sizing: border-box;' + ' -moz-box-sizing: border-box;' + ' box-sizing: border-box;' + '}' + '#recent-topics {' + ' background-color: #428bca;' + ' margin: 11px 0;' + ' padding: 5px;' + ' display: -webkit-box;' + '}' + '#recent-topics, .loaded-recent, .loaded-topics {' + ' border-radius: 4px;' + '}' + '.recent-tabs {' + ' margin-top: 5px;' + ' list-style-type: none;' + ' float: left;' + ' width: 18%' + '}' + '#recent-topics:after, #recent-topics:before, .recent-tabs:after, .recent-tabs:before, .loaded-recent:after {' + ' display: table;' + ' content: " ";' + '}' + '.recent-tabs li, .recent-tabs li a {' + ' display: block;' + ' position: relative;' + '}' + '.recent-tabs li a {' + ' padding: 10px 15px;' + ' text-decoration: none;' + ' color: #fff !important;' + ' cursor: pointer;' + ' border-radius: 4px 0 0 4px;' + '}' + '.recent-tabs li a:hover {' + ' background-color: rgba(0,0,0,0.3);' + '}' + '.recent-tabs li a.active {' + ' background-color: #fefefe;' + ' font-weight: 600;' + ' color: #428bca !important;' + '}' + '.loaded-recent {' + ' position: relative;' + ' min-height: 1px;' + ' background-color: #fefefe;' + ' padding: 10px;' + ' float: left;' + ' width: 82%;' + '}' + '.loaded-recent:after {' + ' clear: both;' + '}' + '.loaded-topics {' + ' background-color: #fff;' + ' border: 1px solid #ddd;' + ' list-style-type: none;' + '}' + '.loaded-recent li {' + ' border-bottom: 1px dashed #ddd;' + ' line-height: 30px;' + ' text-align: left;' + '}' + '.loaded-recent li:last-child {' + ' border-bottom: 0;' + '}' + '.loaded-recent li .topictitle {' + ' font-weight: 600;' + ' margin: 0 0 0 15px;' + ' text-decoration: none;' + '}' + '.recent-tabs li a, .loaded-topics, .loaded-recent li .topictitle {' + ' font-size: 13px;' + '}' + '.loaded-recent li .recent-author {' + ' float: right;' + ' padding: 0 10px;' + '}' + '</style>', load: function(a) { $.ajax({ type: "GET", url: "/f" + a + "-?change_version=punbb", beforeSend: function(obj) { recentPosts.recent.find(".loaded-topics").html( '<center>' + ' <br>' + recentPosts.loading + '<br><img src="' + recentPosts.loadingImg + '" style="height:100px" alt>' + '</center>' ); }, success: function(data) { recentPosts.recent.find(".loaded-topics").html(""); $("#main-content .table:last a.topictitle:lt(" + recentPosts.numberPosts + ")", data).each(function() { var oThis = $(this), blog = oThis.closest("tr").find(".blog_comments"), topicLink = oThis.prop("outerHTML"), author = oThis.closest("tr").find("td.tcl a[href^='/u']").prop("outerHTML"), numberAnswers = oThis.closest("tr").find("td.tc2").text(), numberViewers = oThis.closest("tr").find("td.tc3").text(), blogNumbers = blog.text().match(/\d+/g), href = null; if (blog.length) { numberAnswers = blogNumbers[0]; numberViewers = blogNumbers[1]; } recentPosts.recent.find(".loaded-topics").append( '<li>' + ' <span class="recent-author">' + recentPosts.by + ' ' + author + ' - ' + recentPosts.comments + ': ' + numberAnswers + ' - ' + recentPosts.views + ': ' + numberViewers + '</span>' + topicLink + '</a>' + '</li>' ); recentPosts.recent.find("a").each(function() { href = $(this).attr("href").split(/(&change|\?change)/g)[0]; $(this).attr("href", href); }); }); }, error: function(jqXHR, textStatus, errorThrown) { console.log(textStatus, errorThrown); } }); }, request: function(a) { recentPosts.recent.find(".active").removeClass("active"); // Remove class active $(a).addClass("active"); // Add class active // Picking the selected tab id a = $(a).attr("attr-data"); recentPosts.load(a); }, setupRecentPosts: function() { $(recentPosts.myCSS).appendTo("head"); $(recentPosts.recent).prependTo("#main-content"); var activeMenu = ""; for (var i in recentPosts.forums) { var item = recentPosts.forums[i]; if (item.active) { activeMenu = " active"; recentPosts.load(item.forum_id); } else { activeMenu = ""; } recentPosts.recent.find(".recent-tabs").append( '<li>' + ' <a href="javascript:void(0)" onclick="recentPosts.request(this)" class="request-topics' + activeMenu + '" attr-data="' + item.forum_id + '">' + item.forum_name + '</a>' + '</li>' ); } } }; recentPosts.initialize() })();
|