mod_parser Erfahrungsberichte & -austausch

Fragen und Diskussionen zu laufenden ConPresso 4.x Projekten werden in diesem Forum diskutiert.
Antworten
SebastianG
ConPresso-User
Beiträge: 72
Registriert: 04.04.2009 20:01
Hat sich bedankt: 29 Mal
Danksagung erhalten: 3 Mal

mod_parser Erfahrungsberichte & -austausch

Beitrag von SebastianG »

MarkusR war so freundlich und hat mir seinen aktualisierten mod_parser zugemailt, merci :)

Jedoch mit gewissen Hintergedanken ;)
siehe hier:
http://community.conpresso.de/viewtopic ... 4885#24885

Einige kennen den Parser noch von dem älteren Thread - und waren schon begeistert:
http://community.conpresso.de/viewtopic.php?t=3723

.
Bevor ich mein Feedback gleich gebe, hier nun eine Vorlage (zum rauskopieren per "zitat") für die Feedback-Wünsche:

Url:

Beschreibung des Einsatzes:

Template: Ideen, zB für Kombi mit anderen mods:

Viele Grüße
Zuletzt geändert von SebastianG am 13.07.2009 09:20, insgesamt 1-mal geändert.
SebastianG
ConPresso-User
Beiträge: 72
Registriert: 04.04.2009 20:01
Hat sich bedankt: 29 Mal
Danksagung erhalten: 3 Mal

Re: mod_parser Erfahrungsberichte & -austausch

Beitrag von SebastianG »

Bei mir funzt es offensichtlich sehr gut, auch mit anderen mods.
Ich konnte auch ein Endtag-Fehler sofort finden -> super, sehr hilfreich!

Url:
Kiga

Beschreibung des Einsatzes:
Standard-Template, mit Abfragen:
- wenn Teaser vorhanden, dann Teaser sowie weiter-Link.
-- Dabei noch Unterabfrage, wenn kein Weiter-Link gesetzt, dann setze ihn per Template.
- wenn kein Teaser, dann Artikel-Text ausgeben mit Top- und Zurück-Link usw.

Template: Rubrik-Seite

Code: Alles auswählen

<!-- ifSet: Teaser; -->
<p><!-- HTML: Teaser; --></p>
<!-- ifSet: Artikel-Text; -->
<div class="more"><!-- URL: Weiter-Link; starttag; --><!-- url: Weiter-Link; text; -->
<!-- ifNotSet: Weiter-Link; -->weiter<!-- /ifNotSet --></a></div>
<!-- /ifSet -->
<!-- /ifSet -->

<!-- ifNotSet: Teaser; -->
<p><!-- HTML: Artikel-Text; --></p>
<!-- ifSet: Link; --><div class="more"><!-- URL: Link; --></div><!-- /ifSet -->
<!-- ifSet: Top-Link; --><div class="top"><!-- url: Top-Link; --></div><!-- /ifSet -->
<!-- ifSet: Zurück-Link; --><div class="pager"><!-- URL: Zurück-Link; --></div>
<!-- /ifSet -->
<!-- /ifNotSet -->
Ideen, zB für Kombi mit anderen mods:
noch keine.
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Ich setze den Parser in allen ConPresso-Projekten ein seit es ihn gibt! Auch in der aktuellen CPO-Version 4.0.8 natürlich!

Schade nur, dass Markus dessen Entwicklung und Support seit April 2008 eingestellt hat. Dieser Parser sollte standardmäßig in ConPresso enthalten sein! Natürlich würde ich für ihn auch bezahlen, denn ohne ihn ist es fast unmöglich, validen Code zu erzeugen und gleichzeitig das kombinierte Ausfüllen aller Felder zu berücksichtigen.

EDIT (23.12.2009):

Aufgrund meines hartnäckigen Zuredens und einem kleinen Sponsoring hat Markus den Parser weiterentwickelt. Einen Release Candidaten haben wir heute zum Testen veröffentlicht:
http://community.conpresso.de/viewtopic ... 5410#25410
Zuletzt geändert von Mr. Magpie am 23.12.2009 21:22, insgesamt 2-mal geändert.
Günther Ludwig
SebastianG
ConPresso-User
Beiträge: 72
Registriert: 04.04.2009 20:01
Hat sich bedankt: 29 Mal
Danksagung erhalten: 3 Mal

Beitrag von SebastianG »

Das er bei dir überall funktioniert, hört sich sehr gut an :)

Magst du dann zu einem oder besser einigen Projekten Dein Feedback nach obigen Wunsch-Muster hier posten?
siehe auch http://community.conpresso.de/viewtopic ... 4885#24885

Dann stehen die Zeichen vermutlich besser, den Parser weiterzuentwickeln vllt. sogar zu implementieren.

Das gilt wohl für alle die den Parser bereits einsetzen bzw. eingesetzt haben (und vllt auch mal einsetzen möchten). Je mehr und vielfältiger das Feedback von allen kommt, umso motivierender...

Zur Weiterentwicklung ist es wohl interessant, welche Verbesserungs- und Erweiterungswünsche es gibt - stichpunktartig (ohne ggfls. Verweis auf den älteren Thread).
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Ich kann doch hier nicht sprichwörtlich alle meine Templates posten, das bringt nix. Ein "Standard-Template" habe ich kürzlich im Forum veröffentlicht.
Wenn ich einmal Luft habe, und es gewünscht ist, können wir anhand eines oder wenigen Templates diskutieren, wie nützlich die Möglichkeit verschachtelter ifSets/ifNotSets ist.

Als es ein- oder zweimal Probleme gab, hab' ich diese mit Markus diskutiert und er hat den Parser dbzgl. verbessert, weiterentwickelt. Derzeit ist er für meine Begriffe perfekt.
Aber irgendwann sagte Markus, frei zitiert, "Parser, das ist nicht mein Ding" und distanzierte sich von diesem wirklich genialen Teil.
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

"Parser, das ist nicht mein Ding"
stimmt nach wie vor.

Da es kein anderer gemacht hat mußte ich mich mit diesen ganzen regulären Ausdrücken herumschlagen und meine Freizeit damit verbringen seitenlange Ausgaben der Arrays zu interpretieren, um erst mal zu verstehen, wie der bisherige Parser funktioniert und das Problem der Verschachtelung (also warum sie denn nun nicht funktioniert) zu lokalisieren und dann eine aufgebohrte Version zu schreiben, die, wenn keine Verschachtelung benötigt wird, genauso wie der alte Parser funktioniert und auch den Server nicht mehr belastet und bei Verschachtelungen diese brav umgekehrt hierarchisch abarbeitet. Die Fehleranalyse und ifvalue sind da eher zufällig entstanden...

Ich sehe - für mich - dieses Forum weniger als Supportforum sondern als Community der ConPresso-User, die hier gemeinsam an Ideen feilen, diskutieren oder manchmal eben auch nur einem Newbee versuchen Denkanstöße zu geben.

Wenn hier mehrere Dutzend User sowas wie den Parser downloaden, dann aber nichts mehr von sich hören lassen - lobenswerte Ausnahmen sind davon natürlich ausgenommen - dann scheint es für mich kein nenneswertes Interesse zu geben.

Es ist also jedem selbst überlassen hier eine breite Basis für Weiterentwicklung zu schaffen.

Wer nur nachfragt, wo dieses ist, ob es jenes schon gibt und ob was anderes möglich ist, sich dann aber nicht mal für eine Antwort bedankt (wobei ich selbst für Schreibunwillige den Bedankomaten erstellt habe) sollte doch besser den ConPresso-Support per Mail anschreiben statt sich hier als Leecher zu outen.

Also:
Macht den neuen (nun bereits 2 Jahre alten) Parser interessant, dann wird er auf- und weiterleben. Oder lasst ihn erneut sterben. :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hallo Markus, nur um ein "umgekehrtes Feedback" zu haben und mein Verhalten ggf. zu verbessern: Habe ich zuwenig Rückmeldung gegeben?
Günther Ludwig
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Mr. Magpie hat geschrieben:Hallo Markus, nur um ein "umgekehrtes Feedback" zu haben und mein Verhalten ggf. zu verbessern: Habe ich zuwenig Rückmeldung gegeben?
Für Dich und z.B. Marky, Matthias und hscha war der Satz
lobenswerte Ausnahmen sind davon natürlich ausgenommen
gedacht.

Durch vernünftige Threads mit klärenden Dialogen werden viele Frage von Newbees beantwortet, wenn sie denn die Suche benutzen... :wink:
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
SebastianG
ConPresso-User
Beiträge: 72
Registriert: 04.04.2009 20:01
Hat sich bedankt: 29 Mal
Danksagung erhalten: 3 Mal

Beitrag von SebastianG »

Ich kann doch hier nicht sprichwörtlich alle meine Templates posten...
bitte nicht ;) ich fragte nach einem oder einigen :)

gerade mit dem Feedback-Wunsch von markus (insbesondere bzgl Beschreibung des Einsatzes + das Template) wollte er nach meinem Verständnis "Anleitungen und praktische Beispiele für viele" erzeugen und "hier eine breite Basis für Weiterentwicklung zu schaffen."

Das kann übersichtlich und nachvollziehbar hier erfolgen (zB gemäß seinem Feedback-Muster).
Benutzeravatar
Mr. Magpie
ConPresso-Profi
Beiträge: 1004
Registriert: 01.01.1970 01:00
Wohnort: Wuppertal
Hat sich bedankt: 274 Mal
Danksagung erhalten: 59 Mal

Beitrag von Mr. Magpie »

Hier erst einmal ein Template-Code für die Darstellung von Personenprofilen, hier der Vereinsvorstände usw..
Erläuterungen weiter unten, die grünen Kommentare dienen als Markierungen dafür.

<!-- (1) -->
<!-- ifSet: Zwischenüberschrift; -->
<div class="subcolumns">
<div class="c25l"><div class="subcl"></div></div>
<div class="c75r"><div class="subcr"><h2 class="subtemplate"><!-- Text: Zwischenüberschrift; strip_tags; nl2br; --></h2></div></div>
</div>
<br />
<!-- /ifSet -->

<!-- (2) -->
<!-- ifSet: Name; -->
<div class="subcolumns">
<div class="c25l"><div class="subcl">
<!-- (3) --><!-- ifSet: Portraitbild; --><img class="subcol25" src="../_data/<!-- Image: Portraitbild; file; -->" alt="Bild &raquo;<!-- Text: Name; strip_tags; -->&laquo;"><!-- /ifSet -->
</div></div><!-- (/2) -->

<!-- (4) -->
<div class="c75r"><div class="subcr">
<h3 class="subtemplate"><!-- Text: Name; strip_tags; --></h3>
<!-- ifSet: Funktion; --><h4><!-- Text: Funktion; strip_tags; --></h4><!-- /ifSet -->

<!-- (5) --><div class="<!-- ifNotSet: eMail-Adresse; --><!-- ifNotSet: URL; -->Destroy<!-- /ifNotSet --><!-- /ifNotSet -->Block">
<!-- ifSet: eMail-Adresse; --><div><b>E-Mail:</b>&nbsp;<a href="mailto:<!-- Text: eMail-Adresse; strip_tags; -->"><!-- Text: eMail-Adresse; strip_tags; --></a></div><!-- /ifSet -->
<!-- ifSet: URL; -->
<div><b>Webseite:</b>&nbsp;<a href="<!-- Text: URL; strip_tags; -->" target="_blank"><!-- Text: URL-Bezeichnung; strip_tags; --><!-- ifNotSet: URL-Bezeichnung; --><!-- Text: URL; strip_tags; --><!-- /ifNotSet --></a></div><!-- /ifSet -->
</div><!-- (/5) -->

<!-- (6) -->
<div class="<!-- ifNotSet: Telefon; --><!-- ifNotSet: Telefon, mobil; --><!-- ifNotSet: Fax; -->Destroy<!-- /ifNotSet --><!-- /ifNotSet --><!-- /ifNotSet -->Block">
<!-- ifSet: Telefon; --><div><b>Tel.:</b>&nbsp;<!-- Text: Telefon; strip_tags; --></div><!-- /ifSet -->
<!-- ifSet: Telefon, mobil; -->
<div><b>Mobiltel.:</b>&nbsp;<!-- Text: Telefon, mobil; strip_tags; --></div><!-- /ifSet -->
<!-- ifSet: Fax; -->
<div><b>Fax:</b>&nbsp;<!-- Text: Fax; strip_tags; --></div><!-- /ifSet -->
</div>

<!-- (7) -->
<!-- ifSet: Fachbereich; --><div class="Block"><b>Fachbereich:</b>&nbsp;<!-- Text: Fachbereich; strip_tags; --></div><!-- /ifSet -->

<!-- (8) -->
<!-- ifSet: Freitext; --><br /><div><!-- HTML: Freitext; --></div><!-- /ifSet -->
<br />
</div> </div><!-- (/4) -->

</div>
<br />
<!-- /ifSet -->


(1): Die Redakteure sollen nicht nur die Personendaten eingeben können, sondern - falls gewünscht - auch im selben Template eine Zwischenüberschrift, um bspw. die Vorstände von den Kuratoriumsmitgliedern abzusetzen. Im angehängten Bild ist dies "Mitglieder des Vorstandes".
Zu den Rahmenbedingungen muss vielleicht noch gesagt werden, dass das Layout der Website auf YAML beruht (vgl. http://www.yaml.de), mit c25l wird eine linke Spalte von 25% der verfügbaren Breite, mit c75r wird eine rechte Spalte von 75% der im Contentbereich verfügbaren Breite erstellt.
Die Zwischenüberschrift soll in der rechten, breiteren Spalte stehen.

(2): Alles, was ab hier folgt, wird nur ausgegeben, wenn auch das Feld "Name" ausgefüllt wurde. So kann ein Artikel auch nur aus einer Zwischenüberschrift bestehen.
Geschlossen wird dieses ifSet erst ganz am Ende des Templates!

(3): ifSet:Portraitbild ist das erste verschachtelte ifSet, denn es befindet sich innerhalb des ifSet:Name. Mit dem Standard-Parser von ConPresso wäre dies so nicht möglich.
Hier wird das Portraitbild in der linken 25%-Spalte ausgegeben, mit einer entsprechenden Klasse versehen, im alt-Text wird der Name eingetragen. Erfahrungsgemäß sind die Redakteure im Alltag ja zu faul, um alt-Texte beim Hochladen einzugeben. Außerdem bekommt auf diese Weise auch das Dummybild (s. angehängter Screenshotausschnitt) einen sinnvollen alt-Text. Weiterer Vorteil bei mehrsprachigen Websites: der Text "Bild" kann durch eine entsprechende Übersetzung in einem sprachspezifischen Template ersetzt werden.

(/2): Ende der 25%-Spalte.

(4): Es folgt jetzt in der rechten 75%-Spalte die eigentliche Personenbeschreibung.

(5): Nach einer Zeile mit dem Namen und einer fakultativen Zeile mit der Funktionsbeschreibung der Person, kommt jetzt ein Block mit E-Mail-Adresse und URL. Sowohl die Zeile mit der E-Mail-Adresse als auch die Zeile mit der URL sind fakultativ.
Die beiden ifNotSets bewirken, dass <div class="DestroyBlock"> stehen bleibt, falls (und nur dann) beide Angaben fehlen. Ist auch nur eine der beiden Angaben ausgefüllt worden, bleibt <div class="Block"> stehen. Die Klasse "Block" bewirkt, dass der Block per CSS vertikal von vorhergehenden Daten abgesetzt wird (über margin-top/margin-bottom). Für die Klasse DestroyBlock ist dagegen nichts per CSS definiert, der DIV-Container hat keinen Inhalt, er wird nicht vertikal abgesetzt, sodass kein zusätzlicher Leerraum entsteht.

(/5): Ende dieses Blockes.

(6): Hier beginnt ein (5) entsprechender Block mit den drei Inhalten Telefon-, Molbiltelefon und Faxnummer.

(7) und (8): Muss ich, glaub' ich, eigentlich nicht weiter erläutern. Hier erfolgt einfach die Beschreibung des Fachbereichs der Person und noch ein Freitext für weitere, frei formulierte Beschreibungen.

(/4): Ende der 75%-Spalte.
Dateianhänge
Vorstand.gif
Günther Ludwig
Antworten