« Project home page
my little forum
Log in
Register
Search:
Back to the entry by Taurec
Post reply
Reply to the message by
Taurec
Name:
E-mail:
(optional, won't be displayed directly)
Leave this field empty:
Homepage:
(optional)
Leave this field empty:
Location:
(optional)
Remember me (cookie)
Category:
General
Project organisation
Technics
Design/Themes
Features
Development
Todo
Bugs
German / Deutsch
Spanish / Español
French / Français
Accessibility/UX
Subject:
Formatting help
skip to input
format text bold
[b]bold text[/b]
format text italic
[i]italic text[/i]
insert hyperlink
[link=http://example.com/]link text[/link] / [link]http://example.com/[/link]
set text color
[color=#rgb]colored text[/color]
font size
[size=small]small text[/size]
[size=large]large text[/size]
insert list
[list][*]list item[/list]
insert image
[img]http://example.com/image.jpg[/img]
left: [img=left]http://example.com/image.jpg[/img]
right: [img=right]http://example.com/image.jpg[/img]
thumbnail: [img=thumbnail]http://example.com/image.jpg[/img]
thumbnail left: [img=thumbnail-left]http://example.com/image.jpg[/img]
thumbnail right: [img=thumbnail-right]http://example.com/image.jpg[/img]
upload image
upload image ...
insert TeX code
[tex]TeX code[/tex]
insert code
[inlinecode]code[/inlinecode]
[code]code[/code]
[code=css]code[/code]
[code=html]code[/code]
[code=javascript]code[/code]
[code=perl]code[/code]
[code=php]code[/code]
[code=sql]code[/code]
[code=xml]code[/code]
:-)
;-)
:-P
:-D
:-|
:-(
:yes:
:no:
:ok:
:lol:
:lol2:
:lol3:
:cool:
:surprised:
:angry:
:crying:
:waving:
:confused:
:lookaround:
:clap:
:love:
:tick:
Message:
> Hallo! > > Folgendes eher als anekdotische Ergänzung, da es nicht direkt die Frage beantwortet, aber thematisch paßt: > > Ich habe tatsächlich vor ein paar Tagen die Möglichkeit implementiert, per BBCode die Textausrichtung zu bestimmen. > > Hintergrund ist, daß ich ein paar alte Parsimony-Forenarchive (in Form hunderttausender HTML4-Dateien) herumliegen habe, die ich versuche, in eine moderne My-Little-Forum-Installation zu übertragen (was auch ganz gut zu klappen scheint. Nach einigem Herumexperimentieren mit der DOMDocument-Klasse und heftiger Aufbereitung der HTML-Dateien mit RegEx-Ersetzungen bin ich bald so weit, ein Nutzerverzeichnis und die Beiträge inklusive korrekten Threadbeziehungen der jeweiligen id, pid und tid automatisch in eine Forumsdatenbank schreiben zu lassen). > Weil in den Parsimonyforen HTML-Formatierung erlaubt war, gibt es auch einige Beiträge, die eigene Textformatierungen haben (z. B. [inlinecode]align="justify"[/inlinecode]). Daher mußte ich die entsprechenden Formatierungsoptionen für My Little Forum schaffen, wodurch die BBCodes für zentrierten, rechtsbündigen und Blocksatztext quasi nebenbei abfielen. > > In die Funktion [inlinecode]html_format[/inlinecode] in der function.inc.php habe ich in den Block ab Zeile 1011 (z. B. unterhalb Zeile 1019) folgende Zeilen eingefügt: > > [code=php]$bbcode->addCode ('justify', 'simple_replace', null, array ('start_tag' => '<span style="text-align:justify;display: block">', 'end_tag' => '</span>'), 'inline', array ('listitem', 'block', 'inline', 'link', 'quote', 'pre', 'monospace'), array ()); > $bbcode->addCode ('center', 'simple_replace', null, array ('start_tag' => '<span style="margin-left:50%;margin-right:50%">', 'end_tag' => '</span>'), 'inline', array ('listitem', 'block', 'inline', 'link', 'quote', 'pre', 'monospace'), array ()); > $bbcode->addCode ('right', 'simple_replace', null, array ('start_tag' => '<span style="float:right">', 'end_tag' => '</span>'), 'inline', array ('listitem', 'block', 'inline', 'link', 'quote', 'pre', 'monospace'), array ());[/code] > > Der zu formatierende Text wird in span-Blöcke mit den entsprechenden Styleanweisungen gepackt. > > In die Datei posting.inc.tpl im Theme-Verzeichnis werden folgende Zeilen (z. B. unterhalb Zeile 183) eingefügt: > > [code=html]<dt id="justify" title="{#bbcode_justify_label#}">{#bbcode_justify_title#}</dt> > <dd>{#bbcode_justify_instruction#}</dd> > <dt id="center" title="{#bbcode_center_label#}">{#bbcode_center_title#}</dt> > <dd>{#bbcode_center_instruction#}</dd> > <dt id="right" title="{#bbcode_right_label#}">{#bbcode_right_title#}</dt> > <dd>{#bbcode_right_instruction#}</dd>[/code] > > Die Sprachdatei (für Deutsch german.lang) wird durch folgende Zeilen ergänzt: > > [code]bbcode_justify_label = 'Blocksatz' > bbcode_justify_title = 'Blocksatz' > bbcode_justify_instruction = '[justify]Blocksatz[/justify]' > bbcode_center_label = 'zentrieren' > bbcode_center_title = 'Text zentrieren' > bbcode_center_instruction = '[center]zentrierter Text[/center]' > bbcode_right_label = 'rechtsbündig' > bbcode_right_title = 'Text rechts ausrichten' > bbcode_right_instruction = '[right]rechtsbündiger Text[/right]'[/code] > > Mit den Tags [inlinecode][justify]...[/justify][/inlinecode], [inlinecode][center]...[/center][/inlinecode], [inlinecode][right]...[/right][/inlinecode] läßt sich dann vom Benutzer die Textausrichtung einzelner Absätze bestimmen. Das ist interessant, falls mal jemand ein Gedicht, einen Brief oder ein Literaturzitat gesondert formatieren will. > > Probleme dieses Vorgehens: > Die Rechtbündigkeit funktioniert nur, wenn der Inhalt nicht die ganze Seitenbreite einnimmt. Andernfalls wird [inlinecode]float: right[/inlinecode] nicht angewendet. Desgleichen gilt für die Marginanweisungen zum Zentrieren des Textes, die bei voller Seitenbreite des Textes nicht befriedigend umgesetzt werden. > Bislang habe ich aber noch keine andere Möglichkeit gefunden, das Verhalten für das span-Element als innerstes Hierarchieelement des HTML-Baumes überhaupt herzustellen. Leider gibt es derzeit in CSS noch keinen Parent-Selector, mit dem sich das übergeordnete P-Element anwählen ließe (vgl. [link=https://stackoverflow.com/a/1014958]diese[/link] Antwort). Auf dieser Ebene wäre die Textausrichtung kein Problem. > > Eine standardmäßige Formatierung des ganzen Forums in Blocksatz findet dadurch natürlich nicht statt. > > Ich habe noch einige andere BBCodes "erfunden", z. B. verschiedene Schriftarten (die im CSS mittels [inlinecode]@font-face { ... }[/inlinecode] aus einem Ordner auf dem Forumsserver geladen werden) und die Formatierung von Tabellen, wobei die BBCode-Tags die 1:1-Umsetzung der korrspondierenden HTML-Tags ([inlinecode]<table>[/inlinecode], [inlinecode]<thead>[/inlinecode], [inlinecode]<tr>[/inlinecode], [inlinecode]<th>[/inlinecode], [inlinecode]<tbody>[/inlinecode], [inlinecode]<td>[/inlinecode]) sind. Für letzteres ist außerdem eine Ergänzung der posting.js nötig, um die Tabellenstruktur per Knopfdruck automatisch ins Textfeld einfügen zu lassen. Das funktioniert (wobei ich noch nicht alle Szenarien durchgetestet habe) problemlos und läßt sich unter der Zuhilfename von CSS-Anweisungen so formatieren, daß selbst Tabellen mit vielen Feldern das Layout nicht sprengen und bei engen Displays (wie in der Responsivetheme) automatisch umgebrochen werden. > > Gruß > Taurec
E-mail notification on reply of this posting
OK - Submit
Preview