DefinizioneCon questo codice, i membri avranno la possibilità impostare alcuni forum come preferiti; I forum contrassegnati vengono posizionati in cima all'elenco dei forum, quindi puoi accedere facilmente ai tuoi forum preferiti.
Caratteristiche
- Usabilità! Puoi aggiungere i forum a Speciali passando con il mouse sul titolo del forum e facendo clic sulla stella accanto ad esso. Puoi rimuovere da Speciali i forum nello stesso modo.
- Accesso facile! Tutti i forum che hai contrassegnato come speciali saranno disponibili all'inizio dell'elenco dei forum.
- Modificabilità! Personalizza questo plugin modificando il testo, le icone, ecc ..!
Installazione del codice JavascriptLe pagine JavaScript attive nel tuo forum ti consentono di inserire script e jQuery per personalizzare il tuo forum, tuttavia è importante sapere che qualsiasi script trovato su Internet non finisce per apparire nei forum.
Non dobbiamo fare altro che andare verso Pannello di amministrazione ► Moduli ► HTML & Javascript ► Gestione del codice Javascript, assicurarci che la gestione dei codici javascript sia attiva e crearne uno nuovo con queste impostazioni:
- Titolo: a tua scelta
- Dove: in tutte le pagine
- Codice:
- Codice:
$(function() { if (/\/c\d+-/.test(window.location.href)) return; // return if category // automatically detects the version var version = $('.bodylinewidth')[0] ? 0 : document.getElementById('wrap') ? 1 : $('div.pun')[0] ? 2 : document.getElementById('ipbwrapper') ? 3 : document.getElementById('fa_edge') ? 4 : 'badapple'; // error notifications if (version == 'badapple' || !window.JSON || !window.localStorage) { var errString = 'The plugin "fa_starred" could not be executed because : '; if (version == 'badapple') errString += '\nYour forum version is not supported.'; if (!window.JSON) errString += '\nJSON is not supported by your browser'; if (!window.localStorage) errString += '\nThe Storage API is not support by your browser.'; window.console && console.error ? console.error(errString) : alert(errString); return; } // get fontawesome if unavailable if (!$('link[href$="font-awesome.min.css"]')[0]) { document.getElementsByTagName('HEAD')[0].insertAdjacentHTML('beforeend', '<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.0/css/font-awesome.min.css" />'); } window.fa_starred = { version : version, // forum version forums : localStorage.fa_starred_forums ? JSON.parse(localStorage.fa_starred_forums) : null, // language settings lang : { star : 'Segna come preferito', unstar : 'Rimuovi dai preferiti', starred : 'Forum preferiti' }, icon : { star : '', unstar : '' }, // selectors select : { content : version ? document.getElementById('main-content') : $('#content-container td:has(> img[height="5"])')[0], category : ['.forumline:has(.secondarytitle)', '.forabg', '.main:has(.tcr) .main-content', '.borderwrap:has(.index-box)', '.forum-category'][version], forum : 'a.' + (version ? 'forumtitle' : 'forumlink'), row : version == 1 ? 'li' : version == 4 ? '.forum-block' : 'tr' }, // move the selected forum to the "starred" category star : function(that, id, startup) { if (!fa_starred.forums) fa_starred.forums = {}; if (!fa_starred.board) fa_starred.createStarBoard(); if (!fa_starred.forums[id]) { // clone the row and add it to the star board var clone = $(that).closest(fa_starred.select.row)[0].cloneNode(true), rows = $(that).closest(fa_starred.select.row).parent().find(fa_starred.select.row); // update the star attributes for the clone $('.fa_star', clone).attr({ 'onclick' : 'fa_starred.unstar(this, ' + id + '); return false', 'class' : 'fa_unstar', 'title' : fa_starred.lang.unstar }).html('<i class="fa">' + fa_starred.icon.unstar + '</i>'); fa_starred.list.appendChild(clone); // append the clone to the starred category $(that).closest(fa_starred.select.row)[0].style.display = 'none'; // hide the original row // check if all forums are hidden for this category for (var i = 0, j = rows.length, k = 0; i < j; i++) { if (/none/.test(rows[i].style.display)) k++; } // hide the category if all forums are hidden if (i == k) { $(that).closest(fa_starred.select.category)[0].className += ' fa_star_hidden'; } // jump to the star board if it's out of sight if (!startup && document.getElementById('fa_star_board').getBoundingClientRect().top < 0) { window.location.hash = ''; window.location.hash = '#fa_star_board'; } // update storage fa_starred.forums[id] = 1; localStorage.fa_starred_forums = JSON.stringify(fa_starred.forums); } }, // unstar the selected forum unstar : function (that, id) { var forum, catg, i = 0, j; fa_starred.list.removeChild($(that).closest(fa_starred.select.row)[0]); // remove cloned row // update variables forum = $(fa_starred.select.forum + '[href^="/f' + id + '-"]')[0]; // original forum catg = $(forum).closest(fa_starred.select.category)[0]; // original category $(forum).closest(fa_starred.select.row)[0].style.display = ''; // show the original forum's row // show the category if all forums were hidden if (/fa_star_hidden/.test(catg.className)) { catg.className = catg.className.replace(/fa_star_hidden/, ''); } // delete the starred forum and check if there are anymore stars delete fa_starred.forums[id]; for (j in fa_starred.forums) { if (fa_starred.forums[j]) i++; } // update storage if (i) { localStorage.fa_starred_forums = JSON.stringify(fa_starred.forums); } else { fa_starred.forums = null; localStorage.removeItem('fa_starred_forums'); // remove nodes if (version == 2) { fa_starred.board.parentNode.removeChild(fa_starred.board.previousSibling); // remove header for punbb } fa_starred.board.parentNode.removeChild(fa_starred.board); // delete node references delete fa_starred.board; delete fa_starred.list; } }, // create the "starred" category createStarBoard : function() { var catg = $(fa_starred.select.category, fa_starred.select.content)[0], board = catg ? catg.cloneNode(true) : null, rows = $(fa_starred.select.row, board); if (!catg) return; board.id = 'fa_star_board'; board.style.display = ''; if (version != 2) { board.getElementsByTagName('H2')[0].innerHTML = fa_starred.lang.starred; // change category title } // find forum list and remove exisiting rows in the clone fa_starred.list = rows[0].parentNode; rows.remove(); // punbb insertion method if (version == 2) { var head = catg.previousSibling.cloneNode(true); head.getElementsByTagName('H2')[0].innerHTML = fa_starred.lang.starred; catg.parentNode.insertBefore(board, catg.previousSibling); board.parentNode.insertBefore(head, board); } else { catg.parentNode.insertBefore(board, catg); // default insertion } fa_starred.board = board; } }; fa_starred.select.row += ':has(' + fa_starred.select.forum + ')'; // update row selector // general startup var a = $(fa_starred.select.forum, fa_starred.select.content), i = 0, j = a.length, k, id; // setup star board and reset forum states if starred if (fa_starred.forums) { if (!fa_starred.board) fa_starred.createStarBoard(); for (k in fa_starred.forums) { fa_starred.forums[k] = 0; } } // setup stars and starred forums for (; i < j; i++) { id = a[i].href.replace(/.*?\/f(\d+).*/, '$1'); a[i].insertAdjacentHTML('afterend', '<a href="#" class="fa_star" onclick="fa_starred.star(this, ' + id + '); return false;" title="' + fa_starred.lang.star + '"><i class="fa">' + fa_starred.icon.unstar + '</i></a>'); if (fa_starred.forums) { for (k in fa_starred.forums) { if (k == id) { fa_starred.star(a[i], id, true); } } } } document.getElementsByTagName('HEAD')[0].insertAdjacentHTML('beforeend', '<style type="text/css">a.fa_star,a.fa_unstar{color:#999!important;font-size:16px;vertical-align:-2px;margin-left:3px;opacity:0}a.fa_star:hover,a.fa_unstar,li:hover a.fa_star,tr:hover a.fa_star{opacity:1}a.fa_star i,a.fa_unstar i{position:relative}a.fa_star i:hover:after,a.fa_unstar i:after{content:"' + fa_starred.icon.star + '";position:absolute;left:0;bottom:0}a.fa_unstar i:hover:after{content:""}.fa_star_hidden {display:none!important}</style>'); });
Quando hai finito, salva lo script e il plugin verrà installato! Vai al tuo forum e passa il mouse su un forum, così facendo dovrebbe visualizzare una stella. Facendo clic su questa stella, il forum verrà aggiunto in cima all'elenco in modo da potervi accedere facilmente. Puoi rimuovere i forum da Speciali e rimuoverli dall'elenco degli Speciali facendo clic sulla stella accanto al titolo del forum.
Se desideri apportare modifiche a questo plugin, consulta la sezione successiva.
PersonalizzazioneDi seguito sono riportate le modifiche che possono essere apportate a questo plugin.
LinguaSe vuoi cambiare la formulazione o tradurre i testi, trova l' oggetto lang nello script e modifica i testi come preferisci.
- Codice:
lang : { star : 'Segna come preferito', unstar : 'Rimuovi dai preferiti', starred : 'Forum preferiti' },
L'icona della stellaSe vuoi cambiare l'icona della stella in qualcos'altro, trova l' oggetto icona nello script. Per impostazione predefinita utilizza le icone FontAwesome . Tuttavia, puoi anche utilizzare immagini HTML se lo desideri.
- Codice:
icon : { star : '', unstar : '' },
Il temaSe vuoi cambiare il colore delle icone delle stelle, trova questo foglio di stile nella parte inferiore dello script e cambia questo colore #999
- Codice:
document.getElementsByTagName('HEAD')[0].insertAdjacentHTML('beforeend', '<style type="text/css">a.fa_star,a.fa_unstar{color:#999!important;font-size:16px;vertical-align:-2px;margin-left:3px;opacity:0}a.fa_star:hover,a.fa_unstar,li:hover a.fa_star,tr:hover a.fa_star{opacity:1}a.fa_star i,a.fa_unstar i{position:relative}a.fa_star i:hover:after,a.fa_unstar i:after{content:"' + fa_starred.icon.star + '";position:absolute;left:0;bottom:0}a.fa_unstar i:hover:after{content:""}.fa_star_hidden {display:none!important}</style>'); Puoi anche modificare la dimensione del carattere e altri attributi.
|