Suche im Forum:
Suchen


Autor Nachricht
Beitrag17.11.2011 um 19:57 (UTC)    
Titel: Extra Forum: Themen schließen

Hallo,

da sich schon viele Leute eine Funktion wünschten, mit der man Themen im Extra Forum schließen kann, haben o-4-n und ich das ganze mal mit javascript umgesetzt.

Da Javascript ohne große Probleme deaktiviert werden kann, wird das Formular, mit dem man Beiträge verfassen kann, bei Deaktivierung von Javascript einfach ausgeblendet.
Außerdem wird in diesem Fall auch auf eine andere Seite weitergeleitet.

Der folgende Code muss bei:
Arrow Klicke hier: http://www.homepage-baukasten.de/design.php
Arrow Reiter "Erweiterte Einstellungen"
Arrow "Text über dem Design"
eingefügt werden
Zitat:
<style type="text/css">
form {
display:none;
}
</style>
<noscript>
<meta http-equiv="refresh" content="0; URL=http://www.homepage-baukasten.de/forum/">
</noscript>

<script type="text/javascript">
var threadsToClose = new Array();
//Hier die Threads eintragen, die geschlossen werden sollen
threadsToClose[0] = 'urlThread';
threadsToClose[1] = 'weiterer Thread';


function showAllForms()
{
var i;
var forms = document.getElementsByTagName('form');
for(i = 0; i < forms.length; i++)
{
forms[i].style.display = 'block';
}
}


function closeAThread()
{
var i;
var theForms;
var theDivs;
var found = 0;
var locStr = window.location.href;

for(i = 0; i < threadsToClose.length; i++)
{
var posThema = locStr.indexOf('thema');
posThema += 6;
var posMinus = locStr.indexOf('-', posThema);
posMinus++;
var poshtm = locStr.indexOf('.htm', posMinus);
var length = poshtm-posMinus;
var substring = locStr.substr(posMinus, length);
if(threadsToClose[i] == substring)
{
theForms = document.getElementsByTagName('form');
theDivs = document.getElementsByTagName('div');

for(i = 0; (i < theForms.length) && (found == 0); i++)
{
if(theForms[i].name == 'post')
{
theForms[i].parentNode.removeChild(theForms[i]);
found=1;
}
}

for(i = 0; i < theDivs.length; i++)
{
if((theDivs[i].className == 'forumueberschrift') && (theDivs[i].firstChild.nodeValue == 'Antworten:'))
{
theDivs[i].firstChild.nodeValue = 'CLOSED';
}
}
}
}
}

function aStatusCol()
{
var i;
var j;
var found = 0;
var theTBC;
var tempStr;
var allAs = document.getElementsByTagName('a');
var allTables = document.getElementsByTagName('table');
var newTDKat = document.createElement('td');
newTDKat.width = 33;
newTDKat.align = 'left';
var newTDKatText = document.createTextNode('Status');
var newImage;

newTDKat.appendChild(newTDKatText);

for(i = 0; (i < allTables.length) && (found == 0); i++)
{
if((allTables[i].className == 'forumtabelle') && (allTables[i].firstChild.firstChild.firstChild.firstChild.nodeValue == 'Thema'))
{
allTables[i].firstChild.firstChild.insertBefore(newTDKat, allTables[i].firstChild.firstChild.firstChild);
theTBC = allTables[i].firstChild.childNodes;
found = 1;
}
}

found=0;

for(i = 1; i < theTBC.length; i++)
{
var tdElement = document.createElement('td');
tdElement.align = 'center';
theTBC[i].insertBefore(tdElement, theTBC[i].firstChild);
}

for(i = 0; i < allAs.length; i++)
{
if(allAs[i].className == 'cat')
{
for(j = 0; (j < threadsToClose.length) && (found == 0); j++)
{
tempStr = allAs[i].href;
var posThema = tempStr.indexOf('thema');
posThema += 6;
var posMinus = tempStr.indexOf('-', posThema);
posMinus++;
var poshtm = tempStr.indexOf('.htm', posMinus);
var length = poshtm-posMinus;
var substring = tempStr.substr(posMinus, length);
if(threadsToClose[j] == substring)
{
newImage = document.createElement('img');

newImage.src='http://img.webme.com/pic/p/philipp7/closed.png';
newImage.alt='CLOSED';
newImage.height = 25;
newImage.width = 25;

allAs[i].parentNode.parentNode.firstChild.appendChild(newImage);
found = 1;
} else if(j == (threadsToClose.length - 1)) {
newImage = document.createElement('img');

newImage.src='http://img.webme.com/pic/p/philipp7/open.png';
newImage.alt='OPEN';
newImage.height = '25';
newImage.width = '25';

allAs[i].parentNode.parentNode.firstChild.appendChild(newImage);
}
}
found = 0;
}
}
}
</script>

http://www.homepage-baukasten.de/forum/: Hier wird definiert, wohin weitergeleitet werden soll, wenn Javascript deaktiviert ist.
Man könnte beispielsweise auf die Hauptseite seiner Homepage weiterleiten.
Wenn man keine Weiterleitung haben will, kann man den Teil von <noscript> zu </noscript> löschen.

Bei den 2 orangen Zeilen werden die Threads eingefügt, die geschlossen werden sollen.
In den einfachen Anführungszeichen (zum Beispiel bei 'urlThread' und 'weiterer Thread') wird der Name des Threads eingefügt, wie er in der URL steht.
Bei folgendem Thread:

müsste man zum Beispiel den rot unterlegten Teil einfügen.
Also würde man dann mit folgender Zeile den Thread schließen:
threadsToClose[0] = 'test';
Es können natürlich auch noch weitere Threads hinzugefügt werden.
Dazu einfach immer folgende Zeile unter die anderen kopieren:
threadsToClose[n] = 'test';
Beim Grünen muss die fortlaufende Nummer eingefügt werden.
Es beginnt bei 0.
Der 3. Thread, den man schließen möchte, müsste also eine 2 statt dem n haben.

Folgender Code muss dann bei:
Arrow Klicke hier: http://www.homepage-baukasten.de/design.php
Arrow Reiter "Erweiterte Einstellungen"
Arrow "Text unter dem Design"
eingefügt werden
Zitat:
<script type="text/javascript">
var name = 'forum';
var locStr = window.location.href.toLowerCase();

if((locStr.indexOf('/' + name.toLowerCase() + '/') != -1) && (locStr.indexOf('/' + name.toLowerCase() + '/index.htm') == -1) && (locStr.indexOf('/' + name.toLowerCase() + '/cat-') == -1))
closeAThread();
else
if(locStr.indexOf('/' + name.toLowerCase() + '/cat-') != -1)
aStatusCol();
showAllForms();
</script>

Beim violetten muss dann noch der Teil der URL eingefügt werden, der zwischen dem de.tl/ und dem weiteren / steht:

Standardmäßig ist das forum, aber das kann je nach Name des Forums auch anders sein.

Abschließend möchten wir noch sagen, dass das Extra Forum aber dennoch nicht die Beste Wahl ist, wenn man ein richtiges Forum haben möchte.
Stattdessen sollte man ein externes Forum nehmen!

Sollte es noch Fragen/Verbesserungsvorschläge geben, bitte einfach eine PN an mich oder o-4-n senden.

mfg Philipp
______________
Forenregeln, FAQ, Suchfunktion


Zuletzt bearbeitet von philipp7 am 12.05.2014, 14:31, insgesamt 8-mal bearbeitet
Beiträge der letzten Zeit anzeigen:   


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de