multifunktionale Artikelliste für Tabs, Eventlisten o.ä.

Gesperrt
conradius
Beiträge: 168
Registriert: Di 19. Jul 2005, 11:52
Wohnort: Wabern (Bern/CH)
Kontaktdaten:

multifunktionale Artikelliste für Tabs, Eventlisten o.ä.

Beitrag von conradius »

Hier ein neuer Thread zu diesem Modul/Thema. Der Ursprungsthread war hier: http://www.contenido.org/forum/viewtopic.php?t=18453

multifunktionale Artikelliste für Tabs, Eventlisten o.ä.

Dieses Modul generiert eine Artikelliste - mit den mitgelieferten HTML-templates als ul. Ich setze diese Liste z.B. für Tabs ein (in verschiedenen Templates über dem Text-HTML-Inhalt) oder für eine Eventliste mit Flyern etc.

Das Modul poste ich hier nicht direkt, sondern biete es wie/wo folgt zum Download an (ich weiss, ist doof, wenn dann mal die Url nicht mehr stimmt oder was auch immer, aber das Modul verwendet noch 2 separate Klassen und Templates. Das wär zu viel für hier.).
Download: (Hier findest Du immer die aktuellste Version!)
http://www.mereo.ch/_support/m_articlel ... tev1.1.zip

Die Artikelkonfiguration sieht so aus:
Bild

Zu den Klassen im Modul: Die sind historisch bedingt noch zum Modul zugehörend. Könnten aber in Zukunft mal durch Contenido-interne Klassen ersetzt werden. Ich weiss nicht wie performant meine Versionen sind...

Zum Einsatzzweck: Dieser ist eigentlich sehr vielfältig. Ich brauche diese Artikelliste wie gesagt für Tabs, für eine Eventliste etc.
Was es v.a. braucht sind die passenden HTML-templates mit dem entsprechenden CSS dazu.
Ich habe da immer ein Starttemplate für die Liste (also ein schlichtes <ul>), dann für die Items (also etwas à la <li><a href=""></a></li>) und dann noch für den Listenschluss (</ul>). Den ul's weise ich Klassen oder IDs zu, packe Bilder mit rein oder nicht etc.

Das Modul liest die Zusammenfassung in den Artikeleigenschaften aus (summary) und zeigt diesen Text gegebenenfalls in der Liste an (je nach Platzhalter im Template). Ansonsten nur den Seitentitel.
Für eine Artikelliste mit Bildern kann in einem anzugebenden Container ein Bild definiert werden. Dazu verwende ich jeweils das im ZIP mitgelieferte Modul "mod.catartimage.input.php" und zwar im/in den aufzulistenden Artikel.

Das Modul braucht bis jetzt folgendes:
  • includes/class.m_direcory_list.php (nur für im Modulinput verwendet)
    includes/class.m_image_resize.php (falls Bilder verwendet werden)
und z.B. als Tab-Liste folgende HTML-templates:
  • templates/tabs_start.html
    templates/tabs_default_on.html
    templates/tabs_default_off.html
    templates/tabs_with_image_off.html
    templates/tabs_with_image_on.html
Ich hoffe Ihr kommt damit zurecht. Ansonsten melden. Und bei Kritik/Verbesserungsvorschlägen auch gerne.

Gruss,
Conradius
Zuletzt geändert von conradius am Mi 24. Okt 2007, 23:19, insgesamt 1-mal geändert.
wosch

Beitrag von wosch »

Das Modul bzw. besser der/die Artikel sind höllisch zu konfigurieren.

Zuerst:
Ich bekomme im Backend bei Artikel -> Konfiguration zwei Fehlermeldungen:
1. Fehlermeldung:

Code: Alles auswählen

Warning: sort() expects parameter 1 to be array, null given in x:\xampp\vhost\mustermandant\contenido\includes\include.tplcfg_edit_form.php(423) : eval()'d code on line 144
Nun gut, mal schauen.

Du hast im Input folgendes stehen:

Code: Alles auswählen

include_once('../includes/class.m_direcory_list.php');
Egal ob ich vom Frontend oder Backend ausgehe, der includes-Ordner ist direkt das Child, also dürfte ich nicht mit ../ erst einen Ordner runter.

Im Output steht folgendes:

Code: Alles auswählen

include_once( 'includes/class.m_image_resize.php' );
Nun interesessiert es aber keinem ob ich alle Pfade korrekt auf cms/includes oder contenido/includes stelle (in beiden habe ich die 2 Dateien kopiert).

2. Fehlermeldung:

Code: Alles auswählen

Das Verzeichnis existiert nicht oder ist leer (../templates/)
Ich habe die Pfadangaben zum Template im Input mehrfach geändert das hat das Modul aber ebenfalls nicht interessiert.


Zum Ergebnis im Frontend:

(Ich habe das Modul und das Template (Layout-Template) Tablist genannt.
Wenn ich nun einen neuen Artikel erstellt habe, Template Tablist ausgewählt, Konfiguriert und Template(s) der aufzulistenden Artikel wählen z. B. Standard gewählt habe: hat nichts funktioniert.
Es wurde erst was angezeigt als auch die darzustellenden Artikel das gleiche Template wie die Tabliste zugewiesen bekamen.
Dann war das Ergebnis so wie es von mir erwartet wurde.
(Mal abgesehen das ich die Listen nicht (sauber) formatiert hatte)

Also irgendwas stimmt generell nicht, sowohl im Modul als auch in deiner Beschreibung.
(Ist keine Kritik sondern Verbesserungsvorschlag :wink: )

Aber trotzdem, gefallen tut mir die Art der Darstellung, und es wäre prima wenn du mal drüber guckst was da falsch gelaufen ist.
wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer »

Okay ein Tip von mir:

Include bitte immer über cInclude, dann ist es sauber und Contenido-Konform und verursacht weniger Fehler.
So sieht ein cInclude aus:

Code: Alles auswählen

cInclude("frontend", "includes/dein_include.php");
;

Die Dateien werden hier aus dem Mandantenverzeichnis included was auch so sein sollte. Dateien in Systemverzeichnisse ablegen würde ich vermeiden.

Mfg,

Way
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)
conradius
Beiträge: 168
Registriert: Di 19. Jul 2005, 11:52
Wohnort: Wabern (Bern/CH)
Kontaktdaten:

Beitrag von conradius »

ja, tja, das sind so alte Angewohnheiten von mir, über die ich bei einer "Veröffentlichung" meiner Module immer wieder drüberstolpere...

Ich hatte mir eben mal angewöhnt, das cms/ ins root zu verschieben. Daher kommen die "falschen" Pfadangaben im Backend. Mache das aber ab sofort mit einem pointing auf cms/. Dann fahre ich ein bisschen kompatibler zu den meisten hier.

@wayfearer: Danke, kannte ich schon, nur hab ich's nie angepasst. Jetzt isses im ZIP drin.

@wosch: probiers nochmal aus. Müsstest die Pfadangaben z.B. von '../templates/' zu '../cms/templates/' ändern. Ich ändere dies dann schon noch, warte aber noch Antworten auf meine Frage weiter unten ab.

Mag sein, dass es höllisch zu konfigurieren ist. Aber eigentlich nicht... :) Es ist nur sehr vielseitig nutzbar.

Situation Tabs:
  • Du erstellst also z.B. den Startartikel mit einem Template, das Tabs drin hat (meine Artikelliste) und einem Text/HTML-Modul drunter.
    Alle anderen Tabs (Artikel in der selben Kat.) müssen natürlich auch ein Tab-Template erhalten. Wenn Du bei den aufzulistenden Templates in der Konfig "-- kein --" auswählst, werden einfach alle Templates in der Kategorie aufgelistet. Willst Du dies einschränken, wählst Du das/diejenigen aus, der/die Du in der Tab-Liste haben willst. Da könnte man sich vorstellen einen Artikel mit einer weiteren Artikelliste unterhalb seines Text-HTML-Moduls oder einer Bildergalerie oder was auch immer.
Das Häkchen "zeige Startartikel" macht v.a. bei Tabs Sinn.
Die Bildbreite gibt an, wie klein die Listenbilder der aufgelisteten Artikel gerechnet werden sollen.

Meine Frage nun zum weiter Verbessern: Wie mache ich es mit den Pfadangaben im Backend, wenn ich z.B. das Verzeichnis cms/templates/ im Input aufliste, eine Datei auswähle und diese dann in den Output übergebe? Im cfg-Array finde ich nur absolute Serverfilesystem-Pfade oder aber den Frontendpfad zu contenido/.
Ich hatte das bis jetzt eben so drin '../cms/templates/' (bei mir natürlich ohne 'cms/') und musste dann im Output '../' entfernen, um den übergebenen Pfad im Frontend nutzen zu können. Tipp?
wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer »

Ich würde wahrscheinlich folgendes versuchen, ist aber nicht gestestet nur ne vermutung:

Code: Alles auswählen

$cfgClient[$client]["path"]["frontend"]
mfg,

way


--- Edit: ---

Ist auch ein sbsoluter pfad, ich such weiter, sorry.
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)
wosch

Beitrag von wosch »

So ich habe es nochmal getestet.
Allerdings mit der ersten Version des Downloads.
Die include-Teile habe ich durch die Angaben von @wayfearer ersetzt.

Da der Modol-Input im Backend abläuft habe ich die Pfade zum Template so eingegeben:

Code: Alles auswählen

$dir = '../cms/templates/';
Das Backend läuft nun fehlerfrei.

Allerdings tut nun das Frontend gar nicht mehr.
(3 Artikel, identisch konfiguriert, einer davon Startartikel)

Bild

Der Quelltext dazu:

Code: Alles auswählen

<h1 class="content">Eine TabListe</h1>
<p>bla bla bla ...</p>
cms/templates/tabs_start.html<li><a href="front_content.php?idart=92" title="" target="_self"></a></li>
<li><a href="front_content.php?idart=93" title="" target="_self"></a></li>
<li><strong><a href="front_content.php?idart=95" title="" target="_self"></a></strong></li></ul>
Das Starttemplate tabs_start.html wird nicht ausgeführt, es wird lediglich der String $start_template dargestellt.

Gestern konnte ich ja kein Template auswählen, da wurde das Instand-Template aus dem Modul genommen (1levelnav_start.html) und es wurde eine Liste angezeigt.
Ab dem Moment wo die Template-Auswahl im Backend ging, wurde nichts mehr mit Link angezeigt, egal was ausgewählt wurde (auch --kein-- ging nicht)
martin2002
Beiträge: 41
Registriert: Fr 31. Okt 2003, 02:16
Wohnort: Potsdam
Kontaktdaten:

Beitrag von martin2002 »

hi.

was soll denn an einem absoluten pfad schlecht sein?
die pfade in $cfgClient sind doch für jeden client angepasst.

ich benutze z.b. oft das um auf die templates zuzugreifen:
$cfgClient[$client]["path"]["frontend"]."templates/"
wenn du ein var_dump von deinem $cfgClient[$client] machst bekommst du glaube ich sogar noch mehr elemente angezeigt. welche für die unterverzeichnisse im frontend. die könnte man dann direkt verwenden.

Nen tipp: Ich finde es nicht so schön, dass man die angezeigten Artikel anhand ihrer templates auswählt. Versuch doch mal die Artikelspezifikationen zu benutzen.

Wenn das Modul fertig ist, würde ich es mir mal ansehen...

greets.
Martin.
Planung ist die Ersetzung des Zufalls durch den Irrtum ;-)
wosch

Beitrag von wosch »

conradius,

du solltest die Templates in der zip dringend überarbeiten (Name/Text).
Das kann, ja nach Artikel- bzw. Modulkonfiguration, nicht funtionieren.
Man sucht sich tot bei dem Fehler.
Und die Start-Templates haben einen Syntaxfehler der zu einem nicht validen Code führt, das UL kann niemals ausgeführt werden.

Wenn ich in dem Modul den ganzen Klimbim mit den Templates für die Tab-Anzeige rausschmeiße, etwas abändere (für die start_templates), funktionirt das Modul.
Allerdings habe ich den Eindruck das die perfomence schlecht ist,
konnte ich aber nur auf einer XAMPP testen, könnte auch nur subjetiv sein.

Es macht nach meiner Ansicht eh keinen Sinn verschiedene Templates in dem Modul zu verwenden, lieber nur ein festprogrammiertes, und dafür leichter für den User zu handhaben.

Ähnliches gilt für die Artikel-Templates.
Zumindest bei neuen Contenido-Seiten.
Dort könnte man ein Artikel-Template Standard_Tab definieren wo dein Modul enthalten ist,
und nur Artikel mit diesem Template werden als Tab angezeigt.
Macht es für den User auch wieder einfacher zu handhaben.
wayfearer
Beiträge: 84
Registriert: Fr 13. Apr 2007, 17:37
Wohnort: Siegen
Kontaktdaten:

Beitrag von wayfearer »

Hey Jungs,

hier mal der Link zu meinem Tabmodul, läuft jetzt ziemlich sauber.

@wosch: Kannst ja auch mal drüberschauen, bin für jede Kritik zu haben
@conradius: vielleicht ne Anregung ;-)

http://contenido.org/forum/viewtopic.php?t=18483

Mfg,

Marcel
Zitat des Tages:
Web 2.0 ist ... wenn selbst die Antiterror-Datei XML kompatibel ist !

_________________

Was kam zuerst: Das Huhn oder das Ei ?

Das Antwortet der OOP-Entwickler:
Das Ei ist das Objekt, welches aus der Klasse Huhn abgeleitet wird. Die Klasse Huhn erweitert die Klasse Hühnerstall.

Das Antwortet der Christ:
Und Gott schuf Himmel und Erde, die Pflanzen, die Tiere, die Menschen ... und keine Eier!-)
Gesperrt