Kurzbeschreibung von MP-Steckbrief

MP-Steckbrief ist eine Kontakte-Komponente von Markus Platzer für alle die denen die Funktion der Joomla-eigenen Kontakt-Komponente nicht ausreicht. Sie ist eine sehr flexible Möglichkeit ganz schnell mal eine Steckbriefsammlung in seinem Joomla-Projekt zu integrieren und ist deshalb so sympatisch und für mein Projekt die erste Wahl gewesen, weil für die Steckbriefseiten der Feldsatz komplett selbst angelegt werden kann. Hierbei sind alle Feldtypen möglich und zusätzlich ein Fotoverzeichnis und ein Video einbindbar. Es ist trotzdem schlank und selbsterklärend bedienbar.

Leider gab es ein paar kleine Unzulänglichkeiten die sich beim Einsatz in meinem Projekt auftaten und abgestellt werden mussten. Da ich annehme, dass diese auch anderen auffallen werden möchte ich nachfolgend eine kleinen Workaround anbieten mit dem diese Probleme behoben werden können.

 

Problembeschreibung / Fehler

Folgende Fehler oder Mängel werden hier beseitigt:



  1. Offensichtlich stimmt im Durchlaufen der Felder bei der Ausgabe der Steckbriefdetailseiten etwas nicht. manche Felder wurden in meine Projekt einfach unter noch einmal angezeigt. Dabei hing die Menge der sich wiederholenden Felder davon ab, wie viele Fotos ich im Fotoverzeichnis für diesen Kontakt eingebunden hatte. Am Beispiel mal konkretisiert: Hatte ich keine Fotos wurden die drei ersten Felder noch einmal angezeigt inkl. Ihres Bereiches. Bei drei Fotos waren dann alle Felder einschließlich ihres Bereiches endlich verschwunden. Was da in welcher FOR-Schleife schief lief, schien mir zu anstrengend, zum ich sowieso einen Umbau in Betracht zog der aus beiden nachfolgenden Mängeln herrührte:
  2. Die Fieldset-Tags waren nicht sauber abgeschlossen. Weil zwar alles in Tabellenzellen gekapselt war, schien das nicht gravierend zu stören, aber mit dieser Unsauberkeit wollte ich nicht leben. Auch hier, weil der Strukturablauf wg. des verwendeten Tabellenlayouts kompliziert war, waren die Fieldsetz nur mit Aufwand zu schließen.
  3. Schon erwähnt wurde ein für mich weiterer Mangel, nämlich die Verwendung von Tabellen für das Layout. Das störte mich schon als ich, um die Spaltenbreiten zu erzwingen, in die Komponenten-Core-Scripte eingreifen musste, wo diese hart programmiert waren. Von den Vorteilen von XML und CCS verwöhnt konnte ich damit nicht leben.
  4. Entdeckt hatte ich dann noch ein paar fehlende abschließende A-Tags.
  5. Letztlich hatte mich auch gestört, dass das Tabellenlayout nur 4 Bereiche vorgesehen hatte um Bereiche zu platzieren. Eben auch ein Nachteil der Verwendung von Tabellen. Das alles geht mit DIV-Bereichen viel eleganter und uneingeschränkt flexibel.

Ja, nun aus diesen Gründen habe ich den Aufwand für mich betrieben und die betreffenden Script modifiziert. Dabei habe ich versuch so wenig wie möglich Core-Scripte zu verändert und die Kompotiblität zu wahren. Von Joomlas MVC-Architektur ausgehend hätte manche Scriptzeile evtl. in andere Scripte platziert werden müssen. MVC-Puristen mögen es mir verzeihen.



Fehlerkorrekturen / Scriptmodifikationen

Betroffen sind drei Scripte, welche ich hier im Detail nicht als Quellcode abbilden möchte. Einfach nachfolgende ZIP downloaden, entpacken und per FTP ins Projektverzeichnis kopieren und so die betroffenen Scripte im Projekt überschreiben (Auf eigenen Gefahr!!!).

{attachments}

 

Was habe ich gemacht:

  1. Das Script components\com_mpsteckbrief\views\mpsteckbrief\tmpl\default.php beinhaltet die Seitenstruktur für die Steckbriefdetailseite, also die Kategorieausgabe, die Systemsymbole und Bereiche. Sämtliche hier vorhanden Tabellenstrukturen wurden entsorgt und statt dessen durch DIV-Bereich gekapselt. Geopfert wurden hierfür auch die 4 Positionen über die MP-Steckbrief vorher die Bereich im Seitenlayout unterbringen konnte. Wem die Arbeit mit floatenden-DIV-Bereichen vertraut ist, weiss dass er das über CSS-Anweisungen ebensogut hinbekommt. Der sich ergebende Vorteil ist, dass erstens die Einschränkung auf die 4 Positionen gefallen sind und auch der Quelltext erheblich schlanker und weniger redundant wurde.
    Was auf dieser Seiten noch fehlt und von diesem Script geliefert werden sollte, ist die Ausgabe des Seitentitels und des Pathways und evtl. der hier sinnvollen PageNavigation (pagination). Folge vielleich mal später. Markus hatte sowas ja schon in Vorbereitung.
  2. Das Script components\com_mpsteckbrief\assets\includes\mpsteckbrief.php sorgt für die Ausgabe der Felder. Ürsprünglich wurde hier ebenfalls über Tabellennutzung dafür gesorgt, dass die Feld-Label links in Spalten und rechts davon die Feldinhalte angezeigt wurden. genau hier befanden sich die fix programmierten Spaltenbreiten. Auch hier habe ich sämtliche Tabellen entsorgt und konsequent durch DIV-Bereiche mit Class- und ID-Selektoren ersetzt. Nicht unerheblich Auswirkung hat das auf die Bildlisten-Darstellung die jetzt schlicht floaten. Die vorher aufwändige Handhabung der Anzahl von Spalten und Zeilen ist damit obsolet und der Quelltext wurde schlanker.
  3. Letzlich wurde von mir noch das CSS-Script components\com_mpsteckbrief\assets\css\steckbrief.css erweitert, um eine Mindestsatz an CSS-Anweisungen, um die Grundlayout in der Steckbrief-Detailseite zu formatieren. Schwerpunkt sind hier ein paar Floating- und Margin-Anweisungen. Designtechnisch wurde noch nichts unternommen, weil das entweder das Joomla-Template schon mitbringt oder durch den Designer eigenverantworlich vorgenommen werden darf - in eben dieser Datei.

Wie schon oben gesagt, wurden die Positionen für die Bereiche geopfert. Das ist kein Nachteil, sondern kann vollständig ebensogut und besser durch Positionierung von DIV-Bereichen entweder durch floating oder gar durch absolute Positionierung vorgenommen werden. Diese Einstellungen im Backoffice sind damit obsolet. Obsolet sind im Übrigen auch die Positionsangaben in Bildern. Auch das sollte über CSS-Anweisgunen erfolgen. Diesbezüglich werden Sie feststellen können, dass ich alle DIV-Bereiche großzügig mit Class-Selektoren und IDs versorgt habe, so dass Ihnen eine ausschließliche Formatierung über die CSS-Datei gelingen sollte.