Hallo Albert, hallo Tata,
Tata wrote:Es geht auch ganz einfach mit CSS.
Ich glaube das will Albert auch so haben. Der besagte
Tipp im Wiki macht das auch so.
Wenn ich's recht verstehe, geht es darum, dass man im Content einer Seite einen Link anlegt, und dort dann angeben kann, dass im Ansichtsmodus beim Überfahren des Links ein CSS-Popup mit dem Inhalt einer bestimmten "News"-Seite angezeigt wird. Eigentlich eine sehr gute Idee, die sicher auch anderen gefällt.
Nun gibt's da aber ein erstes Problem: das Ergebnis wird meist nicht validieren (wie auch der Beispielcode im Wiki), weil innerhalb eines <a> Elements nur inline-Elemente vorkommen dürfen (siehe
http://de.selfhtml.org/html/referenz/elemente.htm#a). Eine "News"-Seite enthält aber üblicherweise auch <p>s und andere Block-Elemente. Die meisten Browsern haben wohl mit der Darstellung kein Problem, aber schön und im Sinne XHs wäre das also nicht.
Solche CSS-Popups benötigen den :hover Selector von CSS 2.1. Dieser ist dort aber für alle HTML Elemente erlaubt. Nur IE <= 6 kennt es eben nur bei <a>. Aber ich denke, valides (X)HTML ist im Zweifel wichtiger, als den IE6 zu supporten (und zur Not könnte man für diesen Browser mit JS nachhelfen).
Aber egal ob nun <a> oder ein anderes Element: wie soll CMSimple wissen, dass dieses Element mit einem News-Seiten-Popup versehen werden soll? Bei <a> wäre es denkbar hier ein rel="help" zu setzen. Dann müsste jede Seite vor der Ausgabe geparst werden, und in solchen Links dann das News-Seiten-Popup ergänzt werden. Aber welche News-Seite soll angezeigt werden? Da müsste noch ein weiteres Attribut missbraucht werden. Grundsätzlich aber machbar, und in der Ausgabe kann das <a> ja durch ein <div> ersetzt werden, so dass der resultierende Code dann valide ist.
Allerdings bin ich mit der Variante nicht so ganz glücklich, weil dann jede Seite beim Aufruf geparst werden müsste (kostet schon etwas Zeit), und das parsen mit den üblichen Regexs auch etwas friemelig ist. Warum also nicht mit dem Plugin-Call:
Code: Select all
{{{PLUGIN:infopopup('Anzuzeigender Text', 'Name der Newsbox', Breite/Position);}}}
Das ließe sich eigentlich leicht realisieren. Nur wie man die Position handhaben könnte, ist mir unklar. Man weiß ja nicht, wo nun der anzuzeigende Text auf der Seite ausgegeben wird (links, rechts, in der Mitte); schnell ist dann das CSS-Popup nicht mehr ganz zu sehen. Da müsste man vermutlich mit JS nachhelfen.
Christoph