CMS Schreiben

Du hast eine Idee für ein Projekt?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ihr habt ja recht, die Codebasis von PyLucid ist nicht die beste, das hab ich auch nie behauptet.
Und es stimmt, es sind teilweise noch code aus den Anfangstagen drin. Klar dürfte auch sein, das ich in den Anfangstagen es auch nicht besser weiß. Aber nicht nur das, ich bin weiß heute bei weitem auch nicht alles. Ganz im Gegenteil, ich bin kein Informatiker und werde das wohl auch nie werden ;)

Vielleicht sollte ich wirklich mal darüber nachdenken, den Unterbau komplett zu tauschen. Vielleicht wirklich ein django Projekt draus machen. Hätte den Vorteil, das ich weniger um den Unterbau kümmern muß und mehr schönere Dinge erledigen kann, wie nette Plugins zu schreiben ;) Denn irgendwie machen Sachen nur dann richtig Spaß, wenn man ein Endergebnis sieht.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

jens hat geschrieben:Vielleicht sollte ich wirklich mal darüber nachdenken, den Unterbau komplett zu tauschen. Vielleicht wirklich ein django Projekt draus machen. Hätte den Vorteil, das ich weniger um den Unterbau kümmern muß und mehr schönere Dinge erledigen kann, wie nette Plugins zu schreiben ;) Denn irgendwie machen Sachen nur dann richtig Spaß, wenn man ein Endergebnis sieht.
Daran arbeite ich gerade :) Ist aber bei ein paar Dingen noch etwas kompliziert, da ich gerne so weit wie möglich das vorhandene Admininterface verwenden möchte, das wäre durch ordentliche ACL auch um einiges besser (aber was noch nicht ist wird schon noch^^)
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Leonidas hat geschrieben:wenn Ellington nicht wäre, würde Django sicher nicht solches Momentum haben.
Ich nominiere Leonidas hiermit zum Anglizisten des Monats. :D
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

apollo13 hat geschrieben:Daran arbeite ich gerade :) Ist aber bei ein paar Dingen noch etwas kompliziert, da ich gerne so weit wie möglich das vorhandene Admininterface verwenden möchte, das wäre durch ordentliche ACL auch um einiges besser (aber was noch nicht ist wird schon noch^^)
Ein richtige Userverwaltung gibt es in PyLucid eh noch nicht, siehe: http://pylucid.org/phpBB2/viewtopic.php?t=113

Weitere Überlegungen für ein PyLucid@django: http://pylucid.org/phpBB2/viewtopic.php?p=573

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
monocult
User
Beiträge: 37
Registriert: Donnerstag 31. März 2005, 09:55
Wohnort: hennef
Kontaktdaten:

erstmal danke für die rege Beteiligung. Ich hatte mir pylucid schon angeschaut.

Das ein CMS viel Arbeit ist ist mir klar da ich schon eins geschrieben habe. Doch stehe ich dort an einem ähnlichen Problem wie du (schwer durchschaubarer Code etc.) bzw. stoße an die grenzen des DB Designs .Hier könnt ihr euch mal einen optischen Eindruck des Backends machen.

http://www.flickr.com/photos/39722708@N ... 540645022/

Features bisher sind.
-Frontend und Content Templates
-beliebige Content Zonen
-Navi Templates
-User Verwaltung(keine ACL)
-Frontend Login
-Einfache Zugriffs Statistik
-wysiwyg Editor
-Datei und Media Manager (Grafik, flash, Videos,etc.)
-plugins (Termin Kalender, Formulare, etc)
-Massen Mailer

das ganze ist mit mod_python und mysql umgesetzt.

Momentan versuche ich einfach Konzeptionell den Rewrite vorzubereiten. (Der dann auch unter der GPL stehen soll) Wo ich mich schwer tue ist immer die Verwendung von anderen frameworks auf deren Entwicklung ich keinen Einfluss habe. Es ist schade das man bei python anders als bei Php ja schon fast darauf angewiesen ist eins zu verwenden.

Der Punkt der mich auch interessiert ist wie man das Klassische CMS System Vielleicht verbessern kann. Innovative Content Erstellung und Verwaltung. Einfach mal was neues ausprobieren.

Vielleicht habt ihr ja Gedanken oder Ideen. Vielleicht eine Mischform aus Wiki und CMS mit blog Funktionen wie pingback etc.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

blackbird hat geschrieben:
BlackJack hat geschrieben:AJAX ist sehr wohl ein Buzzword. Das hat nichts damit zu tun ob man JavaScript verteufelt oder nicht, sondern das AJAX überall erwähnt und eingesetzt wird, weil es "hip" ist und nicht nur nach rationalen Gesichtspunkten. Buzzword eben.
Ich gebe zu AJAX wird mometan fast überall verwendet aber es werden auch schon Dinge AJAX genannt die mit AJAX nichts zu tun haben. Seiteneffekte sind kein AJAX ;-) Ich persönlich finde AJAX bzw AJAJSON eine tolle Sache. Es macht Webanwendungen unglaublich flexibel und angenehmer für den Anwender.
ehm... ich muss ehrlich gestehen, dass ich zwar den Begriff AJAX kenne... auch weiß womit das ungefaehr zu tun hat... aber absolut keinen blassen schimmer hab, was eigentlich dahinter steckt ^^

Ist das verwerflich? :roll:
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

monocult hat geschrieben:Der Punkt der mich auch interessiert ist wie man das Klassische CMS System Vielleicht verbessern kann. Innovative Content Erstellung und Verwaltung. Einfach mal was neues ausprobieren.

Vielleicht habt ihr ja Gedanken oder Ideen. Vielleicht eine Mischform aus Wiki und CMS mit blog Funktionen wie pingback etc.
Wer sich in diese Richtung schon einiges überlegt hat ist Yves Goergen (Autor der Forensoftware UNB). Er überlegt zur Zeit nämlich wie eine Version 2 seiner Software aussehen könnte, und hat hier ein paar interessante Überlegungen aufgestellt:
http://beta.unclassified.de/projekte/unb2/

MfG apollo13
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

nkoehring hat geschrieben:Ist das verwerflich? :roll:
Naja, die Kurzbeschreibung in der Wikipedia erklärt schon mal vieles.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
monocult
User
Beiträge: 37
Registriert: Donnerstag 31. März 2005, 09:55
Wohnort: hennef
Kontaktdaten:

apollo13 hat geschrieben:Wer sich in diese Richtung schon einiges überlegt hat ist Yves Goergen (Autor der Forensoftware UNB). Er überlegt zur Zeit nämlich wie eine Version 2 seiner Software aussehen könnte, und hat hier ein paar interessante Überlegungen aufgestellt:
http://beta.unclassified.de/projekte/unb2/

MfG apollo13
genau sowas suche ich :D
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

Dann fang mal an zu schreiben :)
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Wow, da hat sich einer aber ein paar Gedanken gemacht. Lesenswert.

Durchaus interessante Ideen. Wir benutzten ja auch diese Forum + unser Wiki. Ich hatte ja schon immer mal die Idee geäußert, Wiki und Forum zusammen zu bringen: http://www.python-forum.de/topic-4879.html
Das kann man IMHO sogar leicht erledigen. Der User muss nur leicht zwischen beiden Systemen hin und her transferiert werden.

EDIT: Ich hab mal angefangen zu experimentieren, mal sehen was daraus wird:
http://pylucid.net/trac/browser/branche ... 8django%29

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
dst
User
Beiträge: 27
Registriert: Mittwoch 28. Februar 2007, 23:42

Hi,
ich habe mich gerade aufgrund dieses Threads in diesem Forum registriert und dränge euch einfach mal ein paar Gedanken von mir auf.

Ich plane schon seit mehreren Jahren(!) an einem CMS, dass mich wirklich zufrieden stellen würde. Alle Ideen und Gedanken jetzt im einzelnen auszubreiten würde den Rahmen (und vor allem meine Tippfaulheit) sprengen.
Nur soviel sei gesagt: Code existiert bei mir praktisch noch keiner, nur Konzepte etc. sicherlich könnte ich auch weiter sein, allerdings mache ich das ganze in meiner nicht unbedingt umfangreichen Freizeit, allerdings sollte demnächst ein praktischer Anfang gemacht werden.
Python stand für mich bislang noch nicht als zu nutzende Plattform zur Diskussion, seit ich mich seit kurzem nebenbei mit Python beschäftige, hat sich das aber geändert. Ich kann mir durchaus vorstellen, dass Python sich sehr gut dazu eignet.

Warum möchte ich ein neues CMS?
Nun, es gibt natürlich schon einen ganzen Haufen an Systemen, die teilweise auch wirklich nette Ideen beinhalten, aber (wie auch ihr) bin ich der Ansicht, dass sie entweder zu eingeschränkt, zu umfangreich/komplex oder zu inkonsistent bzw. die Grundkonzepte zu schwammig sind.
Es ist zwar im Laufe der Zeit schon besser geworden, aber wirklich zufrieden bin ich noch immer nicht (derzeit nutze ich hauptsächlich Typo3, was viele Vorteile, aber eben auch ein paar Nachteile [selbst wenn man die steile Lernkurve außer acht lässt] hat).

Was erwarte ich von einem CMS?
Es sollte so schlank und klar strukturiert wie möglich sein.
Ähnliche Aufgaben sollten gezwungenermaßen stets auf ähnliche Weise gemacht werden.
Es sollte nahezu alles über eine intuitive GUI einzustellen sein.
Erweiterbarkeit!

Wie möchte ich das erreichen?
Wenn man sich 99% der dynamischen Websites anguckt -- egal ob CMS, Wiki, Forum -- kann man nahezu alles auf relativ wenige Grundfunktionen herunterbrechen. Leider gibt es praktisch keinen Standard, diese Grundfunktionen zusammenarbeiten zu lassen.
Wer jemals ein CMS, ein Forum und ein Wiki unter einen Hut bringen wollte (und zwar richtig unter einen Hut; gemeinsame Benutzerdatenbank, allgemeiner Datenaustausch etc.), weiß wovon ich rede - es ist ein Krampf!

Ich stelle mal die folgende Theorie in den Raum: Mit einem durchdachten, erweiterbaren und klar Strukturierten Grundsystem lassen sich die meisten individuellen Anwendungen relativ simpel auf eine Weise Erstellen, dass tatsächliche interaktion von vornherein möglich ist.

Was sollte solch ein Grundsystem enthalten?
Für den Datenzugriff eine ausgeklügelte ORDB-Mapping-Ebene. D.h. auf Daten wird nur über die damit korrespondierenden Objekte zugegriffen. Inline SQL, auch über Abstraktionslayer vereinfacht, ist eine zu 99% unnötige Angewohnheit.
Wir wollen Daten und dessen Beziehung zu anderen Daten. Eine Unabhängkeit vom dahinterliegenden DB-Server ist praktisch inklusive.
Außerdem ist die Datenverwaltung auf diese Weise kein Problem. Datensätze und Relationen können Problemlos in Formularen abgebildet werden, die Formularfelder ergeben sich automatisch.
Wer mal den Extension-Kickstarter für Typo3 benutzt hat, weiß was ich meine. Nur das es halt noch besser geht ;)

Der Datenzugriff ist eigentlich das wichtigste. Die Erweiterbarkeit ist natürlich ebenso wichtig und vermutlich eignet sich Python als Sprache geradezu wundervoll für diesen Zweck.
Oh, eine andere Sache ist die Generierung der Ausgabe. Zunächst mal sollte das natürlich vereinheitlicht sein. Während ich lange Zeit dachte, dass ein mächtiger Output-Prozessor wie JSP oder Smarty (aus der PHP-Welt) unbedingt nötig ist, bin ich mir da nicht mehr so sicher.
Wenn es um HTML-Output angeht, kann das allermeiste per CSS abgehandelt werden und eine größere Beeinflussung des HTML ist oft kontraproduktiv. Naja, wie gesagt, da bin ich derzeit nicht ganz sicher.


So, das reicht mir erstmal. Hab keine Lust jetzt noch mehr zu tippen, der Tag war lang genug ;)
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Und um mal meine "große" Idee noch mit einzureichen:

Für das CMS sollte/könnte auch eine Lokale Verwaltungssoftware bereitstehen.
Geht mir zumindest so, das ich öfters ma nur 5-10 Minuten online bin. Da fallen Newsschreibereien an, Forenaufräumarbeiten... umplanarbeiten etc.

Einige Sachen, wie das Newsschreiben sollten auch lokal abarbeitbar sein und dann hochgeladen werden können.


Die zweite Sache, die eventuell nicht so wichtig ist:
SQL-Abstraktionslayer, SQL, DBORM etc...
Eventuell könnte auch einfach die Verwaltung von TXT-Dateien mit zu gehören, sollte keine DB existieren.


MfG EnTeQuAk
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

EnTeQuAk hat geschrieben:Für das CMS sollte/könnte auch eine Lokale Verwaltungssoftware bereitstehen.
Sowas kann man ja i.d.R. über XMLRPC regeln. Ich persönlich brauche sowas aber nicht. Jeder der eine Flat hat IMHO auch nicht.
EnTeQuAk hat geschrieben:Eventuell könnte auch einfach die Verwaltung von TXT-Dateien mit zu gehören, sollte keine DB existieren.
Wozu? Dann nimmt man einfach SQLite. Bei Django's DB-Abstraktionsschicht müsste man normalerweise nichts anpassen ;)

Ich denke mit dem django Unterbau bin ich auf dem richtigen weg. So kann ich mich theoretisch auf das wichtigeste Konzentrieren.

@dst: Vieles von dem was du geschrieben hast ist auch mein grundlegender Ansatz. Ich möchte ein möglichst kleinens Grundsystem haben, welches man mit Plugins erweitern kann. Aber mehr noch, das Grundsystem läuft ohne wichtige Plugins erst gar nicht richtig. z.B. ist das Hauptmenü ein Plugin. Ohne die Navigation hat man kein CMS ;)
Wenn du Interesse hast, dann schau mal hier vorbei: http://pylucid.org/phpBB2/viewtopic.php?t=122

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo dst, willkommen im Forum,
dst hat geschrieben:Während ich lange Zeit dachte, dass ein mächtiger Output-Prozessor wie JSP oder Smarty (aus der PHP-Welt) unbedingt nötig ist, bin ich mir da nicht mehr so sicher.
Wenn es um HTML-Output angeht, kann das allermeiste per CSS abgehandelt werden und eine größere Beeinflussung des HTML ist oft kontraproduktiv. Naja, wie gesagt, da bin ich derzeit nicht ganz sicher.
Was hat Smarty mit CSS zu tun? Ich würde sagen nur wenig. Das man HTML über Template-Engines generiert möchte ich nicht missen und dass das Aussehen dieses soweit wie möglich über CSS kontrolliert wird ebenso.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
dst
User
Beiträge: 27
Registriert: Mittwoch 28. Februar 2007, 23:42

@jens
Ich werds mir mal angucken. Wie gesagt, ich beschäftige mich erst seit kurzem mit Python, habe aber das Gefühl, dass die Sprache durch Ihre Flexibilität wirklich gut für ein absolut veränderbares System eignet. Mal gucken, wie gut ich mich zurechtfinde ;)

Ich kenne Django noch überhaupt nicht, was für eine Art von DB-Abstraktion bietet das? Wie gesagt, von klassischen Abstraktionsschichten, die auf (vereinfachtes) Inline-SQL setzen, würde ich gerne verzichten und alle Daten Objekt-Relational mappen.

Wie auch immer, im minimalen Grundsystem und dem Grundsatz "alles ist ein Plugin" stimmen wir wohl überein :)

@Leonidas
Wie gesagt, ich bin da im Moment am zweifeln. Wie gesagt, ich arbeite im Moment hauptsächlich mit Typo3. Dort ist das wenigste per klassischem Template zu bearbeiten.
Allerdings gibt es per TypoScript die möglichkeit fast alles anzupassen. TS allerdings ist eine Sache, die ich nicht als Vorbild nehmen möchte. Alles was konfigurierbar ist, sollte das meines Erachtens auch mitteilen, so dass automatisch eine entsprechende Oberfläche zur Verfügung gestellt wird.
Meine Gedanken gehen ein wenig in die Richtung, dass man statt mit Templates auf eine Art semantische Controls setzen kann.
Aber vermutlich ist ein relativ mächtiger Output-Prozessor (dann wirklich in der Art von Smarty, aber wohl etwas abgespeckt) doch sinnvoll.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

dst hat geschrieben:@jens
Ich kenne Django noch überhaupt nicht, was für eine Art von DB-Abstraktion bietet das? Wie gesagt, von klassischen Abstraktionsschichten, die auf (vereinfachtes) Inline-SQL setzen, würde ich gerne verzichten und alle Daten Objekt-Relational mappen.
Django kommt mit einem OR Mapper. Das kuhle daran ist das er nicht aus der DB zur Laufzeit "Models Generiert" wie Rails, sondern aus den Models die Datenbank generiert ;) Hat zwar beides Vor und Nachteile, mir gefällt Djangos Ansatz jedoch bisher klar besser.
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Jens hat geschrieben: Wozu? Dann nimmt man einfach SQLite. Bei Django's DB-Abstraktionsschicht müsste man normalerweise nichts anpassen Wink
Gut... mag sein ;) --> Aber ich mag halt immer Lösungen, die möglichst portabel sind und sagen wir ma... keine Installationen voraussetzen. Klar ist das optional... währe aber noch etwas, was man mit einbauen könnte. (aber nicht muss)

MfG EnTeQuAk
dst
User
Beiträge: 27
Registriert: Mittwoch 28. Februar 2007, 23:42

@veers
Das klingt doch ganz nett.
Ich denke, dass der andere Weg (Models anhand einer Datenbankstruktur generieren) in unserem Fall überhaupt nicht passen würde.
Inwiefern lassen sich die Models denn "im laufenden Betrieb" ändern? Sprich, wenn ich z.B. eine Extension installiere, die ein zusätzliches Feld in Usertabelle braucht, lässt sich das mit vertretbarem Aufwand realisieren?


@entequak
SQLite erfordert keine Installation sondern arbeitet von Haus aus mit simplen Dateien. Natürlich müssen die entsprechenden "Treiber" für Python vorliegen, aber das müssen sie ja ohnehin.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

dst hat geschrieben:Inwiefern lassen sich die Models denn "im laufenden Betrieb" ändern? Sprich, wenn ich z.B. eine Extension installiere, die ein zusätzliches Feld in Usertabelle braucht, lässt sich das mit vertretbarem Aufwand realisieren?
Weitere Tabellen anlegen ist kein Problem. Dafür gibt es syncdb: http://www.djangoproject.com/documentat ... in/#syncdb

Existierende Tabellen ändern geht allerdings nicht out-of-the-box. Es gibt keine Routine dafür. Man muß also selber zusehen, das man die Tabellen aktualisiert.
IMHO ist das aber auch nicht so das Problem. Ich lege PyLucid immer eine Update Routine dabei: http://pylucid.net/trac/browser/trunk/P ... _Update.py (Das ist für die v0.7, die nicht django Version)
Wenn man allerdings verschiedene DBs unterstützten möchte, muß man die Update-Routine für jede einzelne DB anpassen, weil IMHO die ALTER TABLE Syntax nicht 100% gleich ist.
Eine andere Möglichkeit ist es die Tabellen zu löschen und neu erstellen zu lassen, aber das ist ja nicht wirklich ein Update ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten