Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

... eine Fortsetzung eines Artikels mit DIV einblenden?

Begonnen von PTV, 17. April 2009, 15:16:29

« vorheriges - nächstes »

azett

#15
Feine Sache, da wird ja eine schöne Lösung draus. Wenn wir es richtig "rund" haben, würde ich daraus dann ein Howto bei den Tips und Tricks machen.

Zitat von: "PTV"Was muss ich denn da im JavaScript ändern damit die Fortsetzung ausgeblendet wir wenn Sie im CSS standardmäßig eingeblendet wird?
Für die Frage fehlt mir der letzte Tiefgang in JS...ich hatte es so probiert: Zuerst eine weitere Funktion für die toggle.js... function hide(objToHide) {
    objToHide.style.display = "none";
}
...und dann das DIV beim Laden ("onload") verstecken: verstecktesdiv = <a href="#{DESCRIPTION}" onclick="toggle('{DESCRIPTION}', this, 'verstecken', 'weiterlesen...');">weiterlesen...</a><div id="{DESCRIPTION}" onload="hide(this);">{VALUE}</div>
Leider greift das "onload" nicht - warum, kann ich aber aus der Kalten nicht beantworten. Mit "oncklick" funktionierts, aber das hilft uns ja nicht weiter ;)

JavaScript-Spezis hier, die helfen können? ;)

Moondancer

#16
mmh, ich kann da jetzt auch nur eine Idee einreichen, da ich nicht vor meinen Ressourcen sitze...

onload ist jedenfalls nur im body- und frame- Tag erlaubt  :(

darum würde ich die Funktion hide() im script-Tag direkt nach dem verborgenen Text aufrufen, so in etwa:

verstecktesdiv = ... <script type='text/javascript'>hide(document.getElementById("{DESCRIPTION}"));</script>
den Link könnte man mit document.write() ausgeben lassen, das er nur mit aktivierten Javascript angezeigt wird

ist nur ein Vorschlag - testen kann ich es derzeit leider nicht
bye
Dirk
Suchmaschinenoptimierung, Webentwicklung und Onlineshops http://flupdiwup.de

Moondancer

#17
eine Lösung wäre also:
verstecktesdiv = <script type='text/javascript'>document.write("<a href="#{DESCRIPTION}" onclick="toggle('{DESCRIPTION}', this, 'verstecken', 'weiterlesen...');">weiterlesen...</a>");</script><div id="{DESCRIPTION}">{VALUE}</div><script type='text/javascript'>hide(document.getElementById("{DESCRIPTION}"));</script>
im IE sieht es noch nicht optimal aus, aber das Prinzip funktioniert soweit  ;)
Suchmaschinenoptimierung, Webentwicklung und Onlineshops http://flupdiwup.de

PTV

#18
Mit deaktiviertem JavaScript klappt es wie es soll (der gesamte Artikel wird eingeblendet). Mit JavaScript ist bei mir zwar die Fortsetzung ausgeblendet leider aber auch der Link zur Sichtbarmachung der Fortsetzung (Firefox sowie IE sowie Safari).

Moondancer

#19
Ich habe es online mal hochgeladen: http://guardian.redio.de/testcenter/moziloCMS
ganz unten... . Siehst Du den Link weiterlesen? Ich sehe ihn im IE und FF unter Win. Safari zum testen habe ich nicht installiert.
Suchmaschinenoptimierung, Webentwicklung und Onlineshops http://flupdiwup.de

PTV

#20
Zitat von: "Moondancer"Siehst Du den Link weiterlesen?

Yup! Ich sehe den Link. Da hab ich wohl noch irgendwo eine alte Version im script. Ich such mal....

Tests Deiner Version in verschiedenen Browsern waren erfolgreich.

Moondancer

#21
Zitat von: "PTV"Tests Deiner Version in verschiedenen Browsern waren erfolgreich.

danke für Deine Rückmeldung - ich habe mich genau an Arvids Workshop gehalten

das benutzerdefiniertes Syntaxelement sollte keine Zeilenumbrüche beinhalten, vielleicht ist das ja schon der Unterschied

viel Erfolg beim Einbauen und Umstylen  ;)

bye
Dirk
Suchmaschinenoptimierung, Webentwicklung und Onlineshops http://flupdiwup.de

PTV

#22
Kannst du bitte nochmal den gesamten Teil für die Zusatzfunktion posten? Ich befürchte hier ist etwas verloren gegangen.

Moondancer

#23
Hallo nochmal,

ich habe es so in einem anderen Template eingebunden

in der template.html vom aktuellen Templateverzeichnis habe ich die Zeile:
<script src="layouts/{LAYOUT_DIR}/toggle.js" type="text/javascript"></script>im Head Bereich eingefügt

eine Datei im entsprechenden Templateverzeichnis angelegt: toggle.js
http://pastebin.com/d308bd8da

ein benutzerdefiniertes Syntaxelement nach dem Wikipedia Eintrag angelegt:
http://pastebin.com/m6d299e56
dort gibt es dann bei mir nur 2 Zeilen

und im Contentbereich einer Inhaltsseite habe ich den Beispieltext plaziert:
http://pastebin.com/d6cc45811

mehr habe ich nicht getan...  :?

wenn alles nichts hilft Archiviere ich Dir mal die Version, die ich zur Demonstration verwendet habe oder gewähre Dir Zugriff auf meinen Dateimanager -> PN

ich denke ich weis jetzt woran es bei Dir liegt! probiere mal das:
http://pastebin.com/m65bcd725
Suchmaschinenoptimierung, Webentwicklung und Onlineshops http://flupdiwup.de

Moondancer

#24
ggf. müsste man noch die GET Parameter der jeweiligen Seite im Linkziel zwischen der index.php Angabe und dem Sprungziel einfügen
Suchmaschinenoptimierung, Webentwicklung und Onlineshops http://flupdiwup.de

PTV

#25
Mit dem großen Ziel hier den größten Thread des Forums zu erzeugen muß ich Dir leider sagen das die Copy/Paste geschichte keinen erfolg gehabt hat.

Wenn ich mir allerdings den Quellcode deiner ausgeführten Seite betrachte habe ich das gefühl das da mehr drin steht als im Code der Zusatzfuktion:

Quellcode der ausgeführten Seite:
Der Teaser-Text mit ein paar Infos...mehr gibts nach dem Klick auf "Weiterlesen".<br><script type="text/javascript">document.write("<a href="index.php#id1" onclick="toggle('id1', this, 'verstecken', 'weiterlesen...');">weiterlesen...</a>");</script><a href="index.php#id1" onclick="toggle('id1', this, 'verstecken', 'weiterlesen...');">verstecken</a><div style="display: block;" id="id1">Das ist nun der Text, der nach dem Klick zum Vorschein kommt. Der kann z.B. auch <a class="link" href="http://www.test.de" title="Externe Adresse &quot;http://www.test.de&quot; aufrufen" target="_blank">Links</a> enthalten - oder irgendwelche anderen Syntaxelemente.</div><script type="text/javascript">hide(document.getElementById("id1"));</script>
Und damit es uns hier nicht langweilig wird, noch eine kleines Problemchen mit dem "#"Ankerlink. Wenn man die Fortsetzung einblendet springt man zwar wunderbar zum jeweiligen Artikel, jedoch springt man genau ein Zeile tiefer, so das der Button zum ausblenden leider immer nur durch leichtes herunterscrollen der Seite erreichbar ist. Ich habe schon versucht an den Anfang der Zusatzfunktion folgendes zu schreiben: <a name="{DESCRIPTION}"></a>. leider ohne erfolg. Naja. das Problem ist jetzt aber wirklich nur Bonus :)

PTV

#26
Schick wäre natürlich auch wenn man ein Bild als Link zum ein und ausblenden der Fortsetzung benutzen könnte. Das klappt beim erstmaligen ausführen auch wunderbar, indem man einfach nur anstatt des links "weiterlesen..." ein Bild einbindet. Will man aber die Fortsetzung wieder ausblenden muss man ja an die stelle 'weiterlesen...' wieder den Code für ein Bild einfügen. Doch da steht man wieder vor dem Problem mit der Doppelung der Anführungszeichen.

... somit schließt sich der Kreis wieder zum Anfang des Treads :)

Moondancer

#27
Nabend  :)

Eins nach dem Anderen  ;)

sieh Dir mal folgendes MoziloCMS an, es ist komplett neu ohne irgendwelche Änderungen, nur mit den von Arvid bzw. mir geposteten Anpassungen
http://guardian.redio.de/MCMS/index.php

hier kannst Du es runterladen:
http://guardian.redio.de/MCMS.zip
Benutzername und Passwort sind noch default

teste es bitte auf den von Dir benutzten Server

mach aus dem DIV im Benutzerelement ein SPAN, dann ist der Link zum verstecken noch sichtbar  ;)
Suchmaschinenoptimierung, Webentwicklung und Onlineshops http://flupdiwup.de

stefanbe

#28
Edit: da war einer schneller :D

Also wenn ich das alles richtig verstanden habe dann probier mal volgendes

Benutzer definirte Syntaxelmente
weiter = <script type="text/javascript" src="layouts/moziloCMS-nbsp~2009/toggle.js"></script><a href="javascript:togglen('{DESCRIPTION}','{VALUE}');" id="on_off" style="display:none;">{VALUE}</a>

weiter_bild = <a href="javascript:togglen('{DESCRIPTION}','{VALUE}');" id="bild" style="display:none;"><img src="{VALUE}" id="bild_on_off"></a><script type="text/javascript">window.onload = document.getElementById("off").style.display = "none"; window.onload = document.getElementById("bild").style.display = "inline";</script>

text_first = <div id="on">{VALUE}</div>

text_second = <div id="off">{VALUE}</div><script type="text/javascript">window.onload = document.getElementById("off").style.display = "none"; window.onload = document.getElementById("on_off").style.display = "inline";</script>
toggle.js im aktuellen Layout
function togglen(showText, hideText) {
if (document.getElementById("on").style.display == "none") {
var Textknoten = document.createTextNode(hideText);
document.getElementById("bild_on_off").src = hideText;
document.getElementById("on_off").replaceChild(Textknoten, document.getElementById("on_off").firstChild);
document.getElementById("on").style.display = "block";
document.getElementById("off").style.display = "none";
} else {
var Textknoten = document.createTextNode(showText);
document.getElementById("bild_on_off").src = showText;
document.getElementById("on_off").replaceChild(Textknoten, document.getElementById("on_off").firstChild);
document.getElementById("on").style.display = "none";
document.getElementById("off").style.display = "block";
}
}
Beispiel seite
[weiter=ZURUECK|WEITER]
[text_first|First Text[bild|Kategorie:infobutton.png]]
[text_second|Second Text[bild|Willkommen:mozilo.jpg]]
[weiter_bild=kategorien/10_Willkommen/dateien/mozilo.jpg|kategorien/20_Kategorie/dateien/infobutton.png]

So in Inhalteseite entweder weiter oder weiter_bild beides geht nicht
wenn JavaScript aus = nur der text.

Getestet in Fire...

mfg. stefanbe

PTV

#29
Zitat von: "Moondancer"Nabend  :)
teste es bitte auf den von Dir benutzten Server

tja das klappt wie es soll. wer weiß wo da der Fehler war ...

Zitat von: "stefanbe"Also wenn ich das alles richtig verstanden habe dann probier mal volgendes

Diese Lösung finde ich leider im Gebrauch etwas zu umständlich. Vier einzufügende Zeilen Code für ein Funktion ist ein bischen viel.

Hier mal ein Link zu dem Projekt im beta Status für das ich die ganzen Funktionen brauche:
http://tinyurl.com/df884j