Laden...

Wunsch: (Quell)Text einklappen

Erstellt von TripleX vor 14 Jahren Letzter Beitrag vor 14 Jahren 11.821 Views
TripleX Themenstarter:in
328 Beiträge seit 2006
vor 14 Jahren
Wunsch: (Quell)Text einklappen

Hallo Gemeinde,

ich würde mir wünschen, dass man Text ein und ausklappen könnte, zum Beispiel durch einen BBCode "COLLAPSE".

Dadurch könnte man z.B. OffTopic Diskussionen ein und ausblenden.
Man könnte noch weiter gehen und sagen dass Quelltext automatisch ein und ausklappbar sein kann. Das wäre nützlich, wenn jemand viel Quelltext postet aber man keine Lust hat den Quelltext anzuschauen (oder man ihn bereits gesehen hat) sondern man nur die Diskussion mitverfolgen möchte. Dann kann man nämlich den Quelltext zuklappen und man muss dann nicht ewig herunterscrollen.

hab auch mal kurz nach einem Beispiel gesucht, wie so etwas aussehen könnte: klick

Was meint ihr dazu?

MfG TripleX

Träume nicht dein Leben sondern lebe deinen Traum.
Viele Grüße, David Teck

M
120 Beiträge seit 2009
vor 14 Jahren

Dann aber bitte mit anständiger Implementierung und nicht wie ein Großteil der Klapptexte, die JavaScript voraussetzen, damit man die ausklappen kann.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo TripleX,

gute Idee, steht deshalb schon lange auf meiner Liste. 😃 Zumindest das mit dem Quellcode. Da man das Klappen jedoch sinnvollerweise für alle Arten von Blöcken einheitlich implementieren würde, hätte durch das [****FRAME]-Tag dann auch das im Sack, was du [****COLLAPSE] genannt hast und könnte außerdem auch (lange) Zitate auf und zu klappen.

Jetzt kommt das große Aber. Mal abgesehen davon, dass immer jemand - meistens ich - die Zeit finden muss, sich daran zu setzen, gab es bei der Implementierung eine Schwierigkeit mit der verschachtelten Tabellenstruktur der Blöcke im Zusammengang mit JavaScript auf dem Firefox. Kurz gesagt veränderte sich die Größe der Tabellenzelle mit dem eigentlichen Inhalt beim jedem Einklapp-Ausklapp-Zyklus.

Hallo Marsti,

ich bin auch kein Fan von JavaScript. Vielleicht geht das Ausklappen auch mit reinem CSS. Aber selbst wenn es nur mit JavaScript geht, stelle ich es mir sowieso so vor, dass erstmal alles ausgeklappt ist und man es nur bei Bedarf einklappen kann. Die Tags als Spoiler-Schutz (also zunächst eingeklappt) einzusetzen sehe ich bei uns keinen Bedarf.

Hallo zusammen,

aber erstmal müsste es das Feature ja überhaupt geben. Und das wird es nur geben, wenn jemand bei der Implementierung mithilft. Wer sich mit JavaScript (und/oder CSS) so gut auskennt, dass er auch Hürden in Form von Browser-Bugs bzw. unterschiedlichem Browser-Verhalten umschiffen kann und ernsthaftes Interesse hat, an diesem Feature mitzuarbeiten, möge sich bitte per PM bei mir melden.

Ich kann gleich sagen, dass das Feature nur eine Chance hat, wenn sich jemand findet und eine Implementierung bereitstellt, die das o.g. Problem nicht aufweist und auf allen gängigen Browsern läuft. Was mir nichts nützt, ist Code, der prinzipiell zeigt, wie das Ein- und Ausklappen geht. Das weiß ich. Ich brauche eine Lösung, die a) mit allen im Forum vorkommenden Blöcken (code, csharp, xml php, quote, frame) und auf allen gängigen Browsern funktioniert und die sich b) für mehrere solcher Blöcke auf einer Seite eignet (die Forensoftware könnte jedem Block eine eigene ID verpassen).

herbivore

1.130 Beiträge seit 2007
vor 14 Jahren

Tabellenstruktur der Blöcke im Zusammengang mit JavaScript auf dem Firefox. Kurz gesagt veränderte sich die Größe der Tabellenzelle mit dem eigentlichen Inhalt beim jedem Einklapp-Ausklapp-Zyklus.

gehts genauer? Für mich hört sich das gut an, weil man so nicht ewig über leeren platz scrollen muss.
Hast du das display oder visibility-attribut genommen?
Hast du es auf tr oder td angewendet?

Das einzige problem ist doch, dass die größe beim code-tag durch einen Container begrenzt wird, der den Header umschließt. Das einfachste wäre, diesen in den "body" zu verschieben.

BTW: wer jetzt schon dieses feature will, kann greasemonkey (firefox addon um mit javascript seiten zu verändern) nutzen. Dateindung vom Anhang ist eigendlich ".js"

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Floste,

gehts genauer?

damit war gemeint, dass die Tabellenzelle nach einem vollständigen Einklapp-Ausklapp-Zyklus eine andere Größe hat, als davor (wenn ich mit recht entsinne war sie dann doppelt so groß). Bei jedem weiteren Einklapp-Ausklapp-Zyklus wurde sie immer größer.

Hast du das display oder visibility-attribut genommen?

Das display-Attribut.

Ich möchte hier allerdings nicht weiter ist Detail gehen. Im Grunde ist es ja auch ganz egal, was bei mir für ein Fehler aufgetreten ist. Ich bräuchte einfach 😃 funktionierenden HTML-/JavaScript/CSS-Code. Allerdings nicht irgendwelchen, denn bei einer einfachen Tabelle hat auch bei mir das Ein- und Ausklappen problemlos funktioniert, sondern schon solchen Code, der sich tatsächlich im Forum einsetzen lässt und da ist der Tabellenaufbau aus verschiedenen Gründen etwas komplizierter.

herbivore

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo zusammen,

heute gibt es schonmal ein Teilergebnis.

Auf meine Bitte um Mithilfe hatten sich MarsStein und Flose gemeldet. Beide haben mir im Abstand von wenigen Stunden jeweils funktionierenden HTML- und JavaScript-Code geschickt. Nun musste ich mich "nur" noch um die Generierung von nötigen IDs für jeden einzelnen Block kümmern. Das habe ich neulich für Code-Blöcke (CODE, CSHARP, XML, PHP) realisiert. So musste ich heute nur noch den HTML-Code in den Templates ändern und den Javascript-Code einbinden. Im Ergebnis sind Code-Blöcke jetzt klappbar:


Test1


Test2


Test3

[php]
Test4
[/php]

Die Lösung ist auf den gängigen Browsern erfolgreich getestet. Sollte es denn noch irgendwo Probleme geben, bitte ich um Rückmeldung.

Da QUOTEs und FRAMEs von der Forensoftware anders (und aus Sicht des gewünschten Features ungünstiger) behandelt werden, gibt es momentan keine Möglichkeit, die dafür nötigen Ids zu erzeugen. Jedoch hat floste mir mittlerweile eine Lösung geschickt, mit der die nötigen IDs per JavaScript vergeben werden können. Diese muss ich noch analysieren und einbauen. Dafür bitte ich noch um etwas Geduld.

herbivore

PS: Im Zuge der Arbeiten wurden zwei Kleinigkeiten behoben.

Bisher waren CSHARP- und XML-Blöcke um ein paar Pixel breiter als CODE und PHP-Blöcke, jetzt sind alle Code-Blöcke gleich breit.

Auf Hinweis von MarsStein wurde die Berechnung der Höhe von CODE- und PHP-Blöcken so korrigiert, dass die berechnete Höhe jetzt der tatsächlichen Höhe entspricht, so dass die vertikalen Scrollbalken in diesem Blöcken der Vergangenheit angehören sollten.

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo herbivore,

an dieser Stelle erstmal ein Lob an dich und natürlich auch an MarsStein und Floste!
Eine Frage habe ich noch: Gibt es die Möglichkeit, auszuwählen, ob der Block standardmäßig ein- oder ausgeklappt ist? Das könnte man ja per

 realisieren ...

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo m0rius,

mal abgesehen davon, dass die vorgeschlagene Syntax schon für die Angabe eines Titels vergeben ist, stimme ich da mit Marsti überein, der schon oben schrieb:

Dann aber bitte mit anständiger Implementierung und nicht wie ein Großteil der Klapptexte, die JavaScript voraussetzen, damit man die ausklappen kann.

herbivore

1.130 Beiträge seit 2007
vor 14 Jahren

Dann aber bitte mit anständiger Implementierung und nicht wie ein Großteil der Klapptexte, die JavaScript voraussetzen, damit man die ausklappen kann. Das schließt sich durchaus NICHT aus!
Man kann mit javascript eine cssregel zum header hinzufügen, die die boxen einklappt.
Wenn javascript deaktiviert ist, wird diese Regel nicht erstellt und die Boxen sind auf.

Soweit ist das auch schon in meinen beiden Vorschlägen enthalten, die ich herbivore Gesendet habe.

Man kann es auch problemlos (was das Clientscrip angeht problemlos, wie es mit der Serverseite aussieht weiß ich nicht) ergänzen, dass nur ausgewählte Boxen betroffen sind.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

6.862 Beiträge seit 2003
vor 14 Jahren

Also wenns so problemlos möglich ist wie Floste sagt, würde ich auch standardmäßig eingeklappt bevorzugen. Wenn man explizit zuklappen muss hat man doch kaum was von dem Feature.

Ich würds sogar noch mehr bevorzugen wenn standardmäßig nen paar Zeilen gezeigt werden als Vorschau und man den Rest bei Bedarf aufklappen kann 😃 So könnt man beurteilen ob man den Quelltext weiter anschaun möchte und spart trotzdem Platz bei langen Quelltexten. Aber da weiß ich nicht ob sich sowas leicht umsetzen lässt. JavaScript ist net so mein Ding 😉

Baka wa shinanakya naoranai.

Mein XING Profil.

1.130 Beiträge seit 2007
vor 14 Jahren

Also wenns so problemlos möglich ist wie Floste sagt, würde ich auch standardmäßig eingeklappt bevorzugen. Wenn man explizit zuklappen muss hat man doch kaum was von dem Feature.

Ich bin da für eine Benutzereinstellung, aber das ist herbivore wohl zu viel Arbeit, oder?

Ich würds sogar noch mehr bevorzugen wenn standardmäßig nen paar Zeilen gezeigt werden als Vorschau und man den Rest bei Bedarf aufklappen kann 😃 So könnt man beurteilen ob man den Quelltext weiter anschaun möchte und spart trotzdem Platz bei langen Quelltexten. Aber da weiß ich nicht ob sich sowas leicht umsetzen lässt. JavaScript ist net so mein Ding 😉

Zeilen abschneiden und wieder ransetzen ist schon etwas kompliziereter, aber noch möglich, allernings flackert es dann zwangsweise beim Laden.

Ich bin eher für eine zusätzliche Höhenbegrenzung mit scrollbalken, die ein 8und ausschaltbar ist. Das ist aber auchnicht trivial und wenn man kein php zur Hilfe nimmt, flackert es ebenfalls beim laden. (Auf dem Wege, wi ich jetzt denke, ich lasse mich gerne eines besseren belehren)

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Floste, hallo talla,

Ich bin da für eine Benutzereinstellung, aber das ist herbivore wohl zu viel Arbeit, oder?

das ist nicht nur eine Frage der Arbeit. Die Erfahrung hat gezeigt, dass nur ein verschwindender Bruchteil der User bei neuen Benutzereinstellungen tatsächlich etwas anderes als den Standard auswählt, das bedeutet letztlich, dass neue Benutzereinstellungen die Komplexität erhöhen, ohne dass sie ausreichend angenommen werden. Und gerade diese Benutzereinstellung geht schon sehr in den Bereich Feinheiten. Auch bei Feinheiten im BBCode kann man sagen, dass diese kaum genutzt werden.

Das Einklappen an sich finde ich schon ganz praktisch, zumal es sich für meine Begriffe intuitiv erschließt, aber was darüberhaus geht finde ich zu speziell.

herbivore

3.170 Beiträge seit 2006
vor 14 Jahren

Hallo,

Man kann mit javascript eine cssregel zum header hinzufügen, die die boxen einklappt.
Wenn javascript deaktiviert ist, wird diese Regel nicht erstellt und die Boxen sind auf. ... oder ein onload-Script generieren, das die Toggle-Funktion (für die gewünschten Elemente) aufruft - damit auch die Bildchen richtig gesetzt und die Höhen zwischengespeicher werden.

Dies würde jedoch ein generiertes Script vorraussetzen. Wenn es diese Möglichkeit gibt, lassen sich dann tatsächlich einzelne oder alle Blöcke problemlos ein- und ausblenden.
(Meine Lösung geht bisher lediglich von einem statischen Script aus, mit generierten Teilen im HTML-Teil)

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo herbivore,

ich stimme talla mit folgender Aussage zu:

Wenn man explizit zuklappen muss hat man doch kaum was von dem Feature.

Gerade die Möglichkeit, Codeausschnitte (beispielsweise XML-Dateien), die User beim Sichten bzw. Scannen des Topics aufhalten, prinzipiell nicht anzeigen zu lassen, macht das Feature doch interessant.
Außerdem finde ich ein "collapsed"-Flag nicht so komplex, dass es nicht auch eingesetzt werden könnte.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

1.130 Beiträge seit 2007
vor 14 Jahren

... oder ein onload-Script generieren, das die Toggle-Funktion (für die gewünschten Elemente) aufruft - damit auch die Bildchen richtig gesetzt und die Höhen zwischengespeicher werden.

Besser nicht, dann kann man beim anfänglichen Zuklappen der Elemente zuschauen, während css sofort greift

Dies würde jedoch ein generiertes Script vorraussetzen. Wenn es diese Möglichkeit gibt, lassen sich dann tatsächlich einzelne oder alle Blöcke problemlos ein- und ausblenden.
(Meine Lösung geht bisher lediglich von einem statischen Script aus, mit generierten Teilen im HTML-Teil)

wieso sollte das nicht reichen?

Emittiert man einfach 2 verschidene css-klassen mit javascript:"eingeklappt" und "ausgeklappt" und weist im htmlteil den trs diese jeweils zu.
Wenn javascript aus ist, sind die klassen nicht definiert und alles ist siochtbar.
man kann natürlich alternativ auch ein script ins html generieren, mit schon beschriebenen Nachteil.

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo m0rius,

Wenn man explizit zuklappen muss hat man doch kaum was von dem Feature.

das sehe ich vollkommen anders. Die meisten Codeblöcke sind kurz, es gibt sogar viele mit nur ein oder zwei Zeilen. Da wäre es mehr Arbeit, wenn man sie immer ausklappen müsste. Selbst etwas längere Codeblöcke würde man meistens ausklappen müssen, denn normalerweise wird der Code ja nicht zum Spaß gepostet. Wenn man die Frage beantworten will, wird man sich den Code meistens ansehen müssen.

Man abgesehen davon, dass es m.E. das falsche Signal ist, wenn Code standardmäßig zugeklappt ist. Es ist ja nur selten das Problem, dass zu viel Code gepostet wird. Es kommt wie öfter vor, dass für die Lösung des Problems nötiger Code nicht gepostet wird. In einer solchen Situation wich ich nicht durch das standardmäßig Zuklappen von Code signalisieren, dass dieser unwichtig (oder zumindest unwichtiger als der Rest) ist.

So wie es jetzt schon oft passiert, dass doppelte Antworten erfolgen, weil jemand, der antwortet, nicht gesehen hat, dass in einem der Links schon die Lösung steckt, einfach weil er sich den Link nicht angekuckt hat, würde dieser Effekt sich noch verstärken, wenn der Code standardmäßig zugeklappt ist und damit seltener angeguckt werden würde. Es würde einfach mehr übersehen.

Sinn macht das Zuklappen in meinen Augen da, wo viel unnötiger oder optional/prophylaktischer Code gepostet wurde (oder in einigen Spezialfällen im Komponentenforum, wo der Code u.U. erst interessiert, wenn man ihn verwenden will).

Bei den vielen Fragestellern muss man ja schon froh sein, wenn sie Code-Tags überhaupt verwenden. Dass diese dann wissen, dass es einen collapsed-Parameter und dann noch sinnvoll darüber entscheiden können, wann sie wann und wo sie diesen angeben sollen, halte ich für illusorisch.

Auch wenn das eine oder andere Argument nicht verfängt. In der Summe finde ich den Fall klar: Code sollte zunächst immer ausgeklappt sein.

Hallo MarsStein, hallo floste,

über die Details der technischen Möglichkeiten müssen wir nicht sprechen, solange wir nicht über die Realisierung beschlossen haben.

herbivore

2.891 Beiträge seit 2004
vor 14 Jahren

Hallo zusammen,

ich stimme herbivore in allen genannten Punkten vollkommen zu.

Wäre alles per default zusammengeklappt, werde ich ja mit aufklappen nicht mehr fertig... Da es hier zwei getrennte Lager zu geben scheint, dürfte eine Option in den persönlichen Einstellungen wohl eine gute Lösung sein.

Sinn macht das Zuklappen in meinen Augen da, wo viel unnötiger oder optional/prophylaktischer Code gepostet wurde ([...]Komponentenforum[...]).
[...]Dass [die Fragesteller] dann wissen, dass es einen collapsed-Parameter und dann noch sinnvoll darüber entscheiden können, wann sie wann und wo sie diesen angeben sollen, halte ich für illusorisch.

@herbivore: Schätzt du die Anzahl der "geübten" User, die dieses Feature sinnvoll einsetzen möchten/können, zu gering ein, dahingehend etwas zu implementieren? Denn man kann ja Beispielsweise für alle(?) möglichen Blöcke eine Beschreibung hinzufügen. Da denke ich nicht, dass das sehr oft benutzt wird - wohingegen es eben Im Komponenten- oder Artikelforum sehr hilfreich ist.

Kann man OT-Blöcke auch zuklappen? EDIT: Hm, scheinen keine echten Blöcke zu sein...

Gruß,
dN!3L

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo herbivore, hallo dN!3L,

ihr habt mich beide missverstanden - die Blöcke sollten standardmäßig natürlich aufgeklappt sein, nur sollte der User die Wahl haben, einzelne Blöcke zuzuklappen.
Von default-Zuklappen war nicht die Rede, zumindest nicht beabsichtigt.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

2.187 Beiträge seit 2005
vor 14 Jahren

Hallo @All, Hallo @herbivore,

Erst mal danke an herbivore und die fleisigen Helfe die das neue Feature ermöglicht haben. Ich find es gut.

Gruß
Juy Juka

1.665 Beiträge seit 2006
vor 14 Jahren

Super! Was ich mir schon lange gewünscht hab, ist nun umgesetzt.

Danke an herbivore und Helfer.

TripleX Themenstarter:in
328 Beiträge seit 2006
vor 14 Jahren

Wow, vielen Dank für dieses Feature. Dickes Lob an alle 👍

Träume nicht dein Leben sondern lebe deinen Traum.
Viele Grüße, David Teck

699 Beiträge seit 2007
vor 14 Jahren

Hallo @all,

also ich muss gestehen, das ich das feature nicht vermisst habe und auch eigentlich keinen sinnigen Grund finden kann, warum man Codeblöcke zuklappen sollte.

Der einzige sinnige Grund der mir im moment einfallen würde, wäre wenn man jeden Codeblock einzeln im UserScope steuern und speichern kann. ( zb. Faq / Artikel / Snippets )
Aber dies sprengt dann den Aufwand / Nutzen faktor total.

Wem das Scrollen mit der Maus bei langen Posts stört, kann sich auch der Tastatur und den PageDown und PageUp Tasten bedienen. Damit Scrollt / Springt man Seitenweise durch das Post und kommt sehr schnell voran.

Grüße Stephan

PS: Aber dennoch ein Lob an herbivore, für die saubere schnelle umsetzung.

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo ihr vielen,

vielen Dank für das Lob, auch im Namen der beiden Helfer. Freut mich, dass euch das Feature gefällt.

Hallo Stipo,

alle diejenigen, die nie Codeblöcke zuklappen wollen, besteht die einzige sichtbare Auswirkung des neuen Features darin, dass jetzt ein kleines Minus-Symbol im Titel der Blöcke angezeigt wird. Das sollte eigentlich nicht stören.

Hallo dN!3L,

es geht ja nicht nur um die Anzahl, sondern man auch darum, dass man so ein Feature von den vielen ungeübten auch falsch einsetzen kann. Und natürlich möchte ich meine Zeit gerne auf die Punkte konzentrieren, von denen ich denke, dass sie möglichst vielen Usern nutzen. Im konkreten Fall sehe ich das Aufwand-Nutzen Verhältnis nicht als gegeben.

Offtopic-Blöcke sind zwar keine Blöcke im Sinne einer Rahmens und einer Tabelle wie bei den Code-Blöcken, aber an sich könnte man sie schon ausblenden, auch wenn der Titelbereich fehlt, in dem man das Minus-Symbol elegant platzieren könnte, aber meistens wird im Forum gar nicht [****offtopic] zur Kennzeichnung benutzt, sondern [****color=gray]. Und nun das Color-Tag klappbar zu machen, halte ich für übertrieben. Siehe auch Offtopic-Flag.

Ich denke, bei der allgemeinen Zufriedenheit hier, kann man es erstmal so lassen, wie es ist.

herbivore