PyLucid v0.9 - auf ein neues...

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Mit PyLucid v0.9 wollen wir von Null anfangen, mal wieder ;)

PyLucid soll i18n auch bei den CMS Inhalten bekommen. Das bisherige Datenbankmodell passt dafür natürlich nicht.
Der Plan für v0.9 soll auch sein, noch näher an django herran zu rücken. u.a. Aufsplittung in mehrere kleinere Apps. Das Plugin System wird wohl auch anders ablaufen...

Es wäre jetzt also ein guter Zeitpunkt mit zu machen. Wir möchten gern unser Team vergrößern und brauch immer Hilfe...

Wer Lust hat, bitte melden:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich werde einfach hier fragen, auch wenn das keine der viele Möglichkeiten war.

Was macht für dich ein CMS aus? Was unterscheidet PyLucid von dem django-cms.org-Projekt oder einer Anwendung, die ich einfach so mit Django baue? Was unterscheidet es von z.B. Plone?

Denkst du eher an ein "personal CMS" a la Wordpress, ein "community CMS" a la Drupal oder ein klassisches webbasiertes System wie z.B. Typo3 (oder eines der 100 anderen Projekte)? Gibt es ein zentrales Repository? Workflows? Soll es ein Portal sein? Was ist mit Widgets? Sind es fertiges Komponenten oder ist es ein Rahmenwerk? Was soll überhaupt verwaltet werden? Welche Aufgaben vereinfacht werden?

Du schreibst, es gibt hierarchisch angeordnete Seiten. Warum? Ich halte diesen Ansatz inzwischen für wenig flexibel und skalierbar, auch wenn ich ihm immer mal wieder begegne.

Stattdessen würde ich Content-Objekte (z.B. Nachrichten oder Fotos) beschreiben, erfassen, verschiedene Templates zur Darstellung definieren und dann Seiten aus diesen Templates kombinieren, sodass man etwa ausdrücken kann, dass die Startseite eine Nachricht sowie drei Teaser darstellen soll und die Archivseite wiederum alphabetisch sortierte Titel. Navigation und Verknüpfung der Seiten würde ich komplett trennen. Templates, Seiten und Navigation würde ich wieder als Content-Objekte auffassen.

Dies macht es einfacher, einheitlich Zugriffsrechte zu definieren, wenn man sie haben will. Ich würde allerdings vorschlagen, lieber auf das Wikiprinzip zu setzen und jedem Änderungen zu erlauben, die dann aufgezeichnet und die Content-Objekte so versioniert werden. Ich erwarte von einem CMS außerdem, dass ich einen guten Zustand als Snapshot "live" schalten kann. Währenddessen kann man natürlich die Seiten schon wieder ändern.

In welcher Form man Texte eingeben kann (ein weiteres Feature deiner Liste), halte ich für ein Rendering-Detail. Interessant ist vielleicht, eine ähnliche Flexibilität auch für Templates zu haben. Bei Apache Sling (der Basis von Days (einer der großen CMS-Anbieter) CMS) kann man relativ flexibel wählen, welche Programmiersprache für Scripts in Templates benutzt werden soll. Vielleicht haben sie es - Javabedingt - aber auch etwas mit der Generizität übertrieben.

Solltest du fragen, was ich mir von einem CMS wünsche, wäre dieses die Antwort: Ich hätte gerne ein Repository mit versionierten Content-Objekte und der Möglichkeit, den Stand zu einem Zeitpunkt zu fixieren. Dafür hätte dann gerne einen universellen, aber anpassbaren webbasierten Editor. Um Content-Objekte in HTML darzustellen, brauche ich eine erweiterbare Template-Sprache, mit der ich sowohl die einzelnen Fragmente einer Seite als auch die aus diesen Fragmenten zusammengesetzte Seite beschreibe.

Django bietet das meiste, jedoch nicht die versionierbaren Objekte.

Ich hatte schon einmal darüber nachgedacht, git als Basis für mein Repository zu nehmen. Eine relationale DB macht es IMHO zu schwer. Ein Content-Objekt sieht dann so aus:

Code: Alles auswählen

--
type: newsarticle
title: Was neues
keywords: neu new novo
format: markdown
--
Dies ist total neu.
Dies lege ich als "newsarticles/4211.yml" im Dateisystem ab. Der obere Teil kann beliebige Metadaten als Schlüssel-Wert-Paare umfassen. Der untere Teil ist ein Clob oder Blob. Da sich letzteres schwer mit einem normalen Texteditor bearbeiten lässt, will man das ganze vielleicht in zwei Dateien aufteilen. Für ein Bild gibt es dann eine "4211.yml" und eine "4211.jpg" Datei. Um zusammen mit einem Artikel auch weitere Ressourcen zu speichern, könnte es auch ein Verzeichnis "newsarticles/4211" geben, welches die "4211.yml" sowie weitere Verzeichnisse pro Ressource enthält.

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

django-cms ist nett, wird aber nicht weiter entwickelt. Ich hab Kontakt zu Thomas, dem Hauptentwickler. Er hat Interesse aber keine Zeit mit zu helfen.

Naja, wir wollen es nicht zu kompliziert machen. Dafür fehlt auch die manpower. Es soll also kein fettes workflow basierendes System werden, mit Redaktionssystem und all dem Kram. Es soll ehr klein und einfach bleiben. So das es auch für die kleine private Homepage interessant ist.

Ich habe vor mein externes Projekt http://code.google.com/p/django-modelvcs/ weiter aus zu bauen und es mit PyLucid zu nutzten, damit man eine Versionsverwaltung der Inhalte hat. Bisher gibt es zwar ein einfaches Seiten Archiv, aber keine wirkliche Schnittstelle dazu um alte Versionen einzusehen oder zu restaurieren.
Es gibt auch andere VCS Projekte für django Modelle die auf bestehende Systeme wie SVN basieren. Das halte ich aber für PyLucid für weniger hilfreich. PyLucid soll auch auf einfachem WebSpace funktionieren, wo man keine Möglichkeiten hat ein subversion Repository auf zu setzten.

Hierarchisch angeordnete Seiten halte ich einfach für die beste Aufbewahrungsmöglichkeit. Dennoch kann man es auch theoretisch jetzt schon wie ein chaotisches Wiki führen. Man kann man auch Seiten Taggen und kein tree-menü nutzten, sondern nur Tagbasierent Navigieren. Erst letztens hab ich das Plugin Tag-Navi erstellt: http://www.pylucid.org/_goto/178/tag-navi/ Dabei werden die keywords der Seite genutzt um eine Liste aller Seiten zu generieren, die dieses Keyword auch haben.
Allerdings werden z.Z. nicht automatisch sowas wie Wiki-Links im Text erzeugt. Links zwischen Seiten muß man selber setzten.

Den Tree einfach weg lassen halte ich für keine gute Idee... Wenn man eine Seite neu erstellt muß man sie irgendwo einordnen.

In der neuen v0.9 Version wollen wir sowas wie Content-Objekte einführen. Man sagt zumindest das die Seite xy eine normal CMS Seite mit Text inhalt ist, oder ein Plugin dahinter steckt.
In erster Linie wollten wir damit allerdings sowas erreichen, das man ein Plugin, wie den Weblog besser im tree Platzieren kann. z.Z. macht man es so: Man erstellt eine normal CMS Seite und fügt den Tag: {% lucidTag blog %} als Text ein, fertig. Das hab aber ein paar Nachteile. In der neuen Version sollte es so sein, das man quasi eine Seite vom Typ Blog-Plugin erstellt und fertig.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Es gibt eine öffentliche Testseite, der aktuellen alpha version von PyLucid v0.9:

http://www.pylucid.de/

Ihr könnt es selber ausprobieren. Einfach einloggen als superuser:

* Username: test
* Password: 12345678

Einfach einloggen und ein wenig spielen. Wir resetten die Seite hin und wieder.

Hinweis: Die Seite läuft erstmal nur mit CGI und komplett ohne Caching. Die Perfomance ist somit schlecht.

Feedback willkommen, siehe: http://www.pylucid.org/_goto/38/contact/

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Testseite ist nun frisch aktualisiert, auf dem aktuellen SVN Stand.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
frabron
User
Beiträge: 306
Registriert: Dienstag 31. März 2009, 14:36

Wie plant ihr denn die Mehrsprachigkeit umzusetzen? Das ist imho eines der größten Mankos der verfügbaren CMS auf dem Markt, egal in welcher Sprache geschrieben. Das Konzept für Mehrsprachigkeit wirkt bei allen immer nur wie aufgesetzt und eine flüssige Verwaltung von mehrsprachigen Inhalten ist nirgends anständig gelöst.

Wohlgemerkt, ich meine nicht die Mehrsprachigkeit der Oberfläche, sondern des Inhaltes. Da ich bisher nix gutes dahingehend gefunden habe habe ich mir Gedanken um ein eigenes System gemacht, das es mir erlaubt, Mehrsprachige Artikel zu posten. Da ich das System nur nebenher entwickeln kann, ist es auch noch nicht wirklcih weit fortgeschritten, nur als Konzeptstudien.

Hintergrund: Ich arbeite in Luxembourg und da sollten Internetauftritte möglichst in D und F realisiert sein, weitere Sprachen sind nat. Bonus. Meines Erachtens nach muss man den Artikel von seinem Inhalt trennen, so dass nur die Artikelcharakteristika erhalten bleiben (id, datum, veröffentlicht, etc.). Dann fügt man lokalisierte Texte dem Artikel"kopf" hinzu. Je nach Sprachwahl des Benutzers kann man dann die entsprechenden Daten aus der DB holen oder eine Alternative anbieten. Desweiteren sind sprachabhängige Metadaten, Keywords und Beschreibungen der Seite auch wichtig, obwohl sie nicht der Artikel sind und an ganz anderer Stelle (unsichtbar für den Nutzer) auftreten.

Ein weiteres Problem, dass mich an existierenden CMS stört, ist die mangelnde Flexibilität an CSS oder Javascript Einbindungsmöglichkeiten. Ich benutze relativ viel zusätzlichen Javascript oder CSS in meinen Artikeln, der stark variiert. Trotzdem finde ich es wichtig, dass CSS und JS nicht irgendwo im Beitrag rumschwirrt, sondern ordentlich im Quelltext, möglichst einheitlich mit dem Standardkrams, eingetragen wird. Da suche ich noch nach guten Ideen zur Realisierung, zur Zeit plane ich extra Felder für JS und CSS, wo man mittels HTML Blocks dann definiert, was man im Artikel haben möchte.

Die Verwaltung von Metadaten eines Artikels hingegen finde ich schwierig zu realisieren, da man schnell eine Unmenge von Metadaten zusammen hat. Angefangen von Bildern, Videos, Bloggedöns über Gallerien hin zur Linkverwaltung - da öffnet man schnell die Büchse der Pandora. Denn wenn schon Verwaltung, dann richtig. Deshalb hab ich es bisher sein gelassen. Für mich ist HTML im Text kein Problem, aber für ein öffentliches CMS braucht man ja evt. sowas.

Naja, jetzt hab ich hier mehr geschrieben, als gewollt. Also, zurück zu meiner eigentlichen Frage: Wie plant ihr denn i18n, wie oben erwähnt?

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

i18n ist in PyLucid v0.9 schon implementiert. Du kannst auf der öffentlichen Testseite sehen, wie es z.Z. aussieht: http://www.pylucid.de

Ich hab mal ein paar Stichpunkte zu i18n aufgeschrieben: http://pylucid.org/_goto/190/i18n/

Wenn du noch Fragen hast, immer raus damit!

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

frabron hat geschrieben:Wie plant ihr denn die Mehrsprachigkeit umzusetzen? Das ist imho eines der größten Mankos der verfügbaren CMS auf dem Markt, egal in welcher Sprache geschrieben. Das Konzept für Mehrsprachigkeit wirkt bei allen immer nur wie aufgesetzt und eine flüssige Verwaltung von mehrsprachigen Inhalten ist nirgends anständig gelöst.
Hast du dir die Plone-Lösung dazu angeschaut? Das Problem hatte ich nämlich auch schon und mir eine hässliche ad-hoc-Lösung gebastelt, aber bei einer kurzen Demonstration wie Plone das gelöst hat war ich relativ begeistert. Habe mir aber dann die technische Realisierung dann nicht genauer angesehen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hab gerade das Übersetzten einer Seite fertiggestellt. Kann hier mal getestet werden: http://pylucid.de/pylucid_admin/plugins ... anslate/2/

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Gestern hab ich v0.9 beta freigegeben. Auf http://www.pylucid.org und http://www.jensdiemer.de läuft sie schon als "multi site installation"

Download:
http://pypi.python.org/pypi/PyLucid/0.9.0beta
oder per SVN...

Wie man es testen kann, steht u.a. hier:
http://www.pylucid.org/permalink/135/ho ... v09-branch

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