Seite 1 von 1

contenido "chains"=software design pattern? wenn j

Verfasst: Fr 11. Nov 2005, 14:27
von knb
Bei dem "chains" Konzept - das in Contenido seit 4.5+ Einzug gehalten hat ...
siehe z.B. in der neuen Frontenduserverwaltung und im configfile config.chains.php

dazu hätte ich mal ne Frage ... :?:

Handelt es sich da um ein Software Design Pattern das da in Contenido implementiert wurde?

da habe ich nun auf der google Ergebnisseite mehrere gefunden: :shock: Um welches handelt es sich?
"chain of commands"
"Factory chain"
"Chain of Responsibility"

Es gibt sicher noch mehr , oder die sind z.T. synonym.

Wenn das denn so gemeint ist dann kann man als unbedarfter Nutzer sich ja mal auf nem höheren Level schlau machen (Lehrbücher lesen) . Die andere Methode , sprich sich von php-file zu php-file durchzuhangeln, Code nachvollziehen und Kommentarzeilen enträtseln ist nämlich irgendwie unbefriedigend.

Verfasst: Fr 11. Nov 2005, 14:29
von timo
hast du dir mal das PDF dazu angesehen?

Verfasst: Fr 11. Nov 2005, 15:07
von knb
das habe ich gerade eben auch entdeckt ... :D muss ich mir gleich mal durchlesen. Aber danke für den Hinweis.

Ich hatte inzwischen schon folgendes Posting fast fertig:

Ich arbeite seit 4.5.3 mit dem Zipfile mit dem Plugin zur Frontendbenutzerverwaltung das auf
http://www.contenido.org/opensourcecms/ ... a-104.html
zum Download bereitsteht. Bis zum release von 4.6 gab's noch kein PDF File.

(Nebenbei auf der englischen Seite http://www.contenido.org/opensourcecms/ ... a-104.html fehlt der Link zu http://www.contenido.org/opensourcecms/ ... do_4.6.zip
Dabei ist die Dokumentation auf Englisch geschrieben.)




Die einzige Dokumentation war das File frontend.protectedcategories.html welches in dem Zipfile versteckt ist. (Dieses HTML File sollte auch irgendwo im WWW abgelegt sein.) Da drin steht noch folgender letzter Satz
You can also define chains for more custom checks, please refer to the chains documentation for more information.
Hier sollte auch ein URL zum PDF File oder zu einer Webseite stehen weil man keine Ahnung hat was mit "chains documentation" überhaupt gemeint sein könnte. In der Frontenduserverwaltung begegnete mir dieses Konzept schliesslich zum ersten Mal.



Die Konfigfiles im o.g. Zipfile sind auch ein bisschen anders als im Contenido 4.6+ das ausgeliefert wird .


config.plugin.php 4.5.3 / o.g. Zipfile

Code: Alles auswählen

global $_cecRegistry;
// fehlt $cfg['plugins']['frontendlogic'][] = "category";


config.plugin.php mit 4.6 ausgeliefert

Code: Alles auswählen

global $_cecRegistry, $cfg;
$cfg['plugins']['frontendlogic'][] = "category";


config.local.php wird anscheinend nicht mehr gebraucht?

Verfasst: Fr 11. Nov 2005, 15:57
von timo
knb hat geschrieben:Ich arbeite seit 4.5.3 mit dem Zipfile mit dem Plugin zur Frontendbenutzerverwaltung das auf
http://www.contenido.org/opensourcecms/ ... a-104.html
zum Download bereitsteht. Bis zum release von 4.6 gab's noch kein PDF File.
Ähm das PDF für den Extension Chainer ist schon Ewigkeiten dabei (genauer gesagt seit dem 22.10.2004) - schau mal unter docs/techref/plugins.
(Nebenbei auf der englischen Seite http://www.contenido.org/opensourcecms/ ... a-104.html fehlt der Link zu http://www.contenido.org/opensourcecms/ ... do_4.6.zip
Dabei ist die Dokumentation auf Englisch geschrieben.)
Naja seitdem das Plugin erstmal standardmässig dabei ist braucht man es eigentlich auf der deutschen Seite nicht mehr...


Die einzige Dokumentation war das File frontend.protectedcategories.html welches in dem Zipfile versteckt ist. (Dieses HTML File sollte auch irgendwo im WWW abgelegt sein.)
Ist in den 4.6er Versionen im Plugins-Verzeichnis auch dabei...
Da drin steht noch folgender letzter Satz
You can also define chains for more custom checks, please refer to the chains documentation for more information.
Hier sollte auch ein URL zum PDF File oder zu einer Webseite stehen weil man keine Ahnung hat was mit "chains documentation" überhaupt gemeint sein könnte. In der Frontenduserverwaltung begegnete mir dieses Konzept schliesslich zum ersten Mal.
Naja die erste Anlaufstelle sollte immer das docs-Verzeichnis im Contenido-Package sein...

Die Konfigfiles im o.g. Zipfile sind auch ein bisschen anders als im Contenido 4.6+ das ausgeliefert wird .
Ja, die mitgelieferten Plugins für 4.6.0 sind (logischerweise) aktueller als das Plugin, was von der Website heruntergenommen werden sollte.

Verfasst: Fr 11. Nov 2005, 18:43
von knb
ups, ich dachte das mit dem PDF wäre der Oktober 2005 gewesen, 'tschuldigung.

Ich hatte es nur so penibel dargelegt weil die frontenduserverwaltung einen dazu zwingt sich wenigstens ansatzweise mit diesem chain mechanismus auseinanderzusetzen. Man muss ihn ja nicht verstehen, nur es scheint die Erklärung zu sein warum die Frontenduserverwaltung so merkwürdig arbeitet.

Leider finde ich das PDF dokument auch nicht so verständlich... ist ein bisschen abstrakt. Besser wäre es wenn man im Dokument den Extension Chainer am Beispiel der Frontenduserverwaltung erklären könnte .. würde zwei Fliegen mit einer klappe erschlagen ;-) Vielleicht hat ja mal irgendwann jemand zeit dafür das Dokument zu überarbeiten.

Verfasst: Fr 11. Nov 2005, 19:21
von HerrB
Vielleicht wird es einfacher, wenn Du erzählst, was Du machen willst...

Gruß
HerrB

Verfasst: Fr 11. Nov 2005, 19:30
von timo
du brauchst den Chainer, wenn du programmatisch funktionen hinzufügen möchtest...

Verfasst: Mo 14. Nov 2005, 19:19
von knb
Die urspüngliche frage war:
Liegt dem Contenido Extension Chainer (CEC) ein Software Design Pattern zugrunde, das in der einschlägigen Literatur beschrieben wird?
Wenn ja, welchen Namen hat dies?

Antwort ist anscheinend: Nein. Der CEC Mechanismus ist eine "Eigenentwicklung". Ähnlichkeiten mit Design Pattern wie "Chain of responsibility" sind rein zufällig.


Also noch einmal zum Hintergrund:
Ich will die Frontenduserverwaltung verstehen, da sie bei uns nicht richtig funktioniert.
Sie beruht auf dem CEC Mechanismus.
Ich dachte dieser wäre nicht dokumentiert.
Aber halt- es gibt ja doch eine Dokumentation, das PDF File in docs/techref/plugins.
Leider kann ich damit nicht viel anfangen. Es ist mir zu abstrakt.
Das Dokument würde verständlicher werden wenn es den CEC Mechanismus am beispiel der Frontenduserverwaltung erklärte.
Dies ist nur eine Anregung.



Inzwischen habe ich es aufgegeben den Code der Frontenduserverwaltung nachzuvollziehen. Wir habe einfach zuviele andere Baustellen.

Verfasst: Mo 14. Nov 2005, 19:41
von timo
Ähm wenn du mal ein konkretes Beispiel bringst, was du machen willst, kann man dir eventuell helfen

die Chains sind dafür da, um vorhandene Funktionen bei den Frontendberechtigungen zu erweitern. Da ich keine Ahnung habe was du erweitern willst, kann ich dir auch nicht weiterhelfen...

Verfasst: Mo 14. Nov 2005, 20:26
von HerrB
Tja, wie gesagt:
Vielleicht wird es einfacher, wenn Du erzählst, was Du machen willst...
Gruß
HerrB

Verfasst: Di 15. Nov 2005, 11:05
von knb
Dass man die CEC zum Erweitern von Contenido Basisfunktionen dient ist mir schon klar.

Ich will nichts "machen" oder selber entwickeln, ich hatte nur nach einer Information gefragt. Nicht mehr.

Das konkrete Problem wird in folgendem Thread beschrieben (auch vom 1x. November 2005):
http://contenido.org/forum/viewtopic.ph ... highlight=
Also werde ich hier nicht weiter drauf eingehen.

Stattdessen werde ich ein bisschen ins Philosophische gehen. 8)

Wenn man ein neues Feature verstehen will kann man folgendermassen vorgehen:

1. einfach ausprobieren
2. vom speziellen zum allgemeinen vorgehen (induktiv)
3. vom Allgemeinen zum Speziellen vorgehen (deduktiv)

Also es gefällt mir an Contenido ja ganz gut - dass die Bedienung und Administration Contenido selbsterklärend ist und dass somit Methode 1 meist ausreicht. Aber manchmal wie bei der defekten Frontend-Nutzerverwaltung ist das definitiv nicht der Fall.

Wenn ich jetzt Methode 2 ausprobiere, wäre das in contenido z.B. ein grep auf der Kommandozeile machen, php-Code von file x lesen, in weiteren Configfiles und php Files nachsehen, etc.
Damit kommt man bei der Frontend-Nutzerverwaltung leider auch nicht weiter.


Methode 3 wäre Dokumentation, Whitepapers, Lehrbuch lesen,
und dann nachvollziehen wie die tatsächliche Implementierung das Konzept umsetzt unf ggf. davon abweicht.

Die Ursprüngliche Frage ging somit eher in Richtung 3, was ist die der Frontend-Benutzerverwaltung zugrundeliegende Softwarearchitektur? Gibt es dazu noch mehr Dokumente als das etwas besagte PDF-File das mir mit seiner kompakt-technischen Darstellung des CEC-Mechanismus auch nicht weiterhilft.

Mehr wollte ich hier gar nicht wissen....

Verfasst: Di 15. Nov 2005, 11:33
von timo
Ich versteh dich nicht...wenn du also keine Lust hast du schreiben, was du eigentlich umsetzen willst, habe ich keine Lust es dir zu erklären...so einfach ist es...

Du hättest auch nach einem Beispiel fragen können, dann hätte ich dir die Chains an einem Beispiel erklären können, aber nein, das hast du ja nicht...schade...

Weiterhin verstehe ich nicht, was du mit "Funktionalität ausprobieren" meinst. Chains sind NICHT für den Endbenutzer gedacht! Chains sind da, um Entwicklern zu erlauben, die Basisfunktionalität zu erweitern.

Ich verstehs also nicht...

Verfasst: Di 15. Nov 2005, 12:22
von knb
Du hättest auch nach einem Beispiel fragen können, dann hätte ich dir die Chains an einem Beispiel erklären können, aber nein, das hast du ja nicht...schade...
Doch, habe ich (Mo Nov 14, 2005 6:19 pm ):
Das Dokument würde verständlicher werden wenn es den CEC Mechanismus am beispiel der Frontenduserverwaltung erklärte.
Dies ist nur eine Anregung.
Also am besten nicht hier im Forum sondern in einer neuen Fassung des PDF Dokuments. Oder in dem HTML File das mit dem Plugin mitgeliefert wird. Dieses File ( frontend.protectedcategories.html) ist sowieso veraltet.

Ich versteh dich nicht...wenn du also keine Lust hast du schreiben, was du eigentlich umsetzen willst, habe ich keine Lust es dir zu erklären...so einfach ist es...

Noch einmal:
Ich will nichts neues umsetzen.
Ich will höchstens die Frontend-Userverwaltung nachvollziehen (bzw. ihre Umsetzung in Code)
Ich hatte hier, wenn man so will, eigenltlich nur nach weiteren Literaturhinweisen gefragt.
Du brauchst mir nicht bei einem Entwicklungsprojekt zu helfen.



Weiterhin verstehe ich nicht, was du mit "Funktionalität ausprobieren" meinst.

das war eigentlich positiv gemeint. Man kann die neuen meisten neuen Features der 4.6.2 er (wie z.B. die FENutzerwaltung ) eigentlich sofort benutzen OHNE auf die ebene des PHP Codes oder der Softwarearchitektur runterzugehen.

Chains sind NICHT für den Endbenutzer gedacht! Chains sind da, um Entwicklern zu erlauben, die Basisfunktionalität zu erweitern.
Ist schon klar...

Verfasst: Di 15. Nov 2005, 12:42
von HerrB
Dass dieser Thread in Zusammenhang mit dem anderen Thread steht, war bis zum Zeitpunkt der Angabe des Links nicht ersichtlich.

"Das Verstehen der Frontendnutzerverwaltung" führt i.A. nicht zu einer philosophischen Abhandlung, wie in einem Open Source-Projekt eine Dokumentation zu erfolgen hat oder ob ein Begriff/Funktion korrekt im Sinne einer "offiziellen" bzw. an einer Universität gelehrten Definition verwendet wird (und so ist es rüber gekommen).

Die Chains haben mit der Frontendnutzerverwaltung überhaupt gar nix zu tun: Ich kann im entsprechenden Dialogfenster im Backend über sie z.B. auch ein Eingabefeld für die AIM-Nummer eines Frontendusers integrieren, ohne den Code in den Dateien im includes-Verzeichnis ändern zu müssen.

Für das Login (welches bei euch nicht richtig funktioniert) sind sie irrelevant. Bezogen auf das Problem siehe im anderen Thread, bezogen auf diesen Thread nehmen wir das als Info, dass der Wunsch nach mehr Dokumentation und Beispiel besteht.

IMHO alles gesagt, geschlossen.

Gruß
HerrB