Beiträge von Pumukel

    Hallo,

    drei Fehler sehe ich:

    1. Portlet ist in der configure.zcml registriert der Portletmanager nicht. Das Portlet aber unter dem Namen den du für den Manager vorgesehen hast.

    2. in der Portlets.xml hast du einen nicht registrieren Portletmanager versucht, zu referenzieren.

    3. in der Portlets.xml fehlt das assignment statement für das Portlet zum Manager.

    Gruss Pumukel

    Hallo,

    Also ein Viewlet hängt man einen Viewletmanager
    ein Portlet in einen Portletmanager.

    Einen Viewletmanager und Portletmanager muss man im Template entsprechend eintragen.

    Code
    <tal:portletmanager tal:content="structure provider:[portlet manager name]" />


    Praktisch also für dich Viewletmanager -> Viewlet -> Portletmanager -> Portlet

    in der portlets.xml kannst du standard Portletzuordnungen zu Portletmanagern eintragen, also wäre das der sauberste Weg.

    Das mit dem "schlanken Code" war bloss ein netter Hinweis das es auch noch schlanker geht.

    Gruss Pumukel

    Hallo,

    Dein Usecase ist relative einfach zu lösen, Da jedes Viewlet einen eigenen PortletManager besitzen kann einfach dem Viewlet einen PortletManager zuweisen und diesem ein Navigationsportlet.

    Diese Doku (http://plone.org/documentation/…anual-all-pages) sollte dir dabei helfen.

    Aber dein schlanker Code ist übringens immer noch viel zu viel, bzw. unnötig, da du die Klasse ja in einer zcml registrieren musst und nur ein render hast ist das eigentlich zuviel Code, einfacher in der zcml:

    Code
    <browser:viewlet
            name=""
            manager="plone.app.layout.viewlets.interfaces.IPortalFooter"
            template="templates/footer.pt"
            layer=".interfaces.IThemeSpecific"
            permission="zope2.View"
        />

    Gruss Pumukel

    Hallo,

    Dann noch die letzten offenen Punkte:
    Das reinschauen in die ZODB ist natürlich möglich, aber nicht wie bei MySQL. Da die ZODB eine Objektorientierte Datenbank ist und keine Relationale ist es für einige Leute nicht verständlich was die Datenbank-Inhalte sind. Wenn du in der ZMI dich umsiehst bist du bereits in der Datenbank, jedes Objekt ist ein Datenbankobjekt aus der ZODB. Bestimmte Teile sind zwar nur virtuell in der Datenbank, z.B. die css Dateien in skins/* ausnahme ist skins/custom, da diese im Filesystem liegen und sonst die ZODB aufblähen würden. Aber sie sind sichtbar.

    Natürlich könntest du einfach die PloneSite die du vom Design her spiegeln möchtest kopieren, aber dann nimmst du sehr viel unnötige Elemente mit.

    Die Erklärung mit dem ZODB Inhalt sollte auch grob den Inhalt des Ordners skins/plone_styles ... verständlich machen. Es sind die templates / css / js ... von Plone oder anderen Add'on Produkten.

    In skins/custom werden Kopien und Einbindungen von Skinelementen gespeichert.
    die portal_css ist eine Registrierung von CSS Dateien damit diese von den Templates verwendet werden, ohne diese explizit im Template eintragen zu müssen (Komponenten Architektur).

    Viel Spass beim Rumspielen

    Gruss Pumukel

    )Ok, prinzipiel simpler Usecase. Bestehende Seite in Plone übernehmen, bzw. neue Seite mit Plone anlegen.

    Fangen wir aber nicht beim Usecase sondern bei den technischen Fragen an:
    Prinzipiel: Zope/Plone ist nicht PHP und nicht wirklich Joomla oder ähnlichem vergleichbar von der herangehensweise.
    1. Datenbank: Plone baut auf Zope auf. Zope hat eine Datenbank --> ZODB. Diese ZODB wird implizit mit Zope installiert und als Default verwendet. Plone ist für Zope bloss ein Conent Objekt, was halt in dieser Default-DB (Data.fs) gehalten ist. Man kann es sicht natürlich kompliziert machen und verschiedene Teile von Plone in seperate Datenbanken auslagern, usw. aber das ist etwas anderes, was zum Einstieg nicht notwendig ist.
    Wichtig hierbei ist, das der Storage Layer Transparent für Plone ist, egal wie die Daten gespeichert werden, es sieht für Plone immer gleich aus.
    2. Arbeiten in den Zope/Plone Sourcen: NIEMALS, NIEMALS im Quellcode rumpfuschen, wenn man nicht weiss was man macht, auch keine Bilder austauschen. Quellcode ist tabu.
    3. Customizing von Zope/Plone: es gibt drei Grundlegende Möglichkeiten Plone anzupassen: 1. Through the Web (TTW) 2. Filesystem-Packages 3. Externe Frameworks (z.B. via WSGI, Deliverance oder XDV für Layouts)

    Zur Konsole: Die braucht man wenn man Plone, bzw. Plone Add'Ons entwickeln möchte schon, da viele Tools nur via Konsole zugänglich sind. Aber für einen Einsteiger reicht der Browser eigentlich. Die Konsole wird auf jedenfall benötigt wenn man Zope im starten möchte.

    Gehen wir zuerst zu deinem Usecase zurück bevor wir an die konkrete Erläuterung deiner Umsetzung gehen.

    Du sagst es gibt in deiner Plone Instanz bereits 3 Plone Sites mit einem Layout. Wenn dieses Layout jeweils Identisch ist, ist die Chance das es ein Installierbares Add'on ist gross, somit müsste mann nur via Quickinstaller das Theme installieren. Ist es kein Add'on, dann liegen die Theme Modifikationen in skins/custom in der ZMI oder portal_view_customizations

    Alle Dateien die für ein Layout benötig werden sind durch die Abstraktion des StorageLayer transparent in der ZMI zu sehen und anpassungen werden als virtuelle Objekte in der Datenbank abgelegt. Also nicht im Filesystem.
    Hier ist aber das Besondere, auch virtuelle Objekte können kopiert werden, also kann alles aus den bestehenden Plone Sites übernommen werden.

    Gruss Pumukel

    PS, hoffe zumindest jeden Teil der Frage angesprochen ud beantwortet zu haben

    Hallo,

    erstmal viel spass beim ausprobieren von Plone.

    Zweitens, egal wo die Files von Zope/Plone bei dir im Filesystem liegen, du benötigst sie faktisch nicht. Plone ist kein System wo man im Filesystem die Templates anfassen und ändern muss.

    Du kannst via ZMI (Zope Management Interface) den Grossteil aller Anpassungen machen, bloss wenn man Add'ons oder tiefgreifendere Servereinstellung wie Clustering machen möchte muss man ins buildout eingreifen.

    Ich schlage vor du beschreibst mal was du machen möchtest, dann kann man dir den besten weg sagen, ansonsten lese dir die Doku auf plone.org durch.

    Gruss Pumukel

    Hallo,

    Das du Zope nimmst ist eine gute Entscheidung, die ich garnicht angezweifelt habe. Warum du DTML nimmst war meine Frage, aber das willst du jetzt ja ändern.

    Doku:
    http://zope.org
    http://wiki.zope.org/WikiZopeOrg
    http://www.zope.org/Documentation/Books/ZopeBook/
    http://docs.zope.org/zope2/zope2book/
    http://docs.zope.org/
    http://wiki.zope.org/ZPT/METAL

    und alles von Plone und CMF geht natürlich auch an Doku:
    http://plone.org

    Plone und Zope sind jeweils Add Ons für Zope also muss man diese auch installiert haben.
    viele Python Addons findet man unter http://pypi.python.org/pypi

    CMF http://www.zope.org/Products/CMF/

    Gruss Pumukel

    Hurra, Tot gesagte leben länger,

    DTML ist zwar immer noch in Zope, aber wird schon seit ziehmlich langer Zeit nur noch genutzt wo man anderst nicht weiterkommt (CSS zum Beispiel). In Zope wird heutzutage eher TAL (Template Atributte Language) oder METAL (Macro Extension for TAL) genutzt.

    Dann die Frage, warum willst du dir mit Zope alleine eine Homepage zu bauen? Es muss ja nicht Plone sein, aber es gibt das CMF (Content Management Framework), dass dir diese ganzen Sachen wie Login und Sessionverwaltung machen kann.

    Und wenn du alles von Hand machen möchtest wirst du irgendwann nicht an Python verbeikommen, denn Variablen egal ob in DTML oder TAL und METAL kann man durch Python schleusen.

    Gruss Pumukel

    hmm, du hast die Information falsch verstanden denke ich.

    Du hast eine von Plone generierte Welcome Seite, als jetztige Startseite.
    Es gibt ja über die Option Ansicht defaultpage die möglichkeit einen Artikel auszuwählen, aber leider nicht ein Foldish Objekt.

    Wenn du die Unnötige Welcome Seitelöscht, gibt es ja keine Defaultpage mehr.
    Wenn du jetzt den Kurznamen deiner Collection so änderst das er index_html lautet wird dieser als defaultview deiner Seite genutzt.

    Ich hoffe diese Ausführung ist etwas verständlicher.
    Melde dich wenn es nicht funktioniert.

    Gruss Pumukel.

    hmm,

    also die Regeln sehen sinnvoll aus, aber da ich dein Theme nicht kenne und du sagst er zeigt dir die Zope Quickstart Oberfläche ist es bloed. Wobei die Regel sowieso nur eine PloneSite Beeinflussen würde, da eine Zope Seite keine #portal-column-two hätte.

    Bloss komisch ist, das kein Mapping da ist was angezeigt werden soll.

    versuch mal an die URL deines Aufrufes /.deliverance/login anzuhängen udn dann die Site mit ?deliv_log anzuzeigen.
    Sollte was bringen. Ansonsten mal Theme.html zeigen. Wobei bei den Proxy sachen kann man noch viele schöne Sachen eintragen: <proxy editable="1">

    Gruss Pumukel

    Hallo,

    also michi, du schaust auf den localhos:8000 und siehst normales Plone, dann läuft Deliverance zwar richtig, aber hat falsche Regeln.

    Kannst du mal bitte deine rules.xml posten, dann sieht man den Fehler vielleicht, bzw. schau dir mal im debugmode gem. Doku an warum er dir keine Transversions macht.

    Gruss Pumukel

    Die Problematik hierbei ist eigentlich, dass es für Objekte nur eine Default View gibt, und Plone nicht unterscheidet zwischen angemeldet und nicht angemeldet.

    Jetzt kann man das natürlich versuchen zu lösen indem man in Plone etwas ändert per python scripte, oder einfach in einem davorhängenden apachen für angemeldete Nutzer ein rewrite macht indem alle Seiten ein /folder_contents angehangen bekommen es sei denn dort steht /view wobei dir Plone hier bei Documents einen strich durch die Rechnung macht weil die Folder Contents keine view an die URL anhängt.

    Aber andere Frage, viele Leute empfinden eine unterschiedliche Ansicht zwischen Angemeldet und Anonym nicht gerade vorteilhaft, warum möchtest du das also?

    Gruss Pumukel

    hmm, kann eigentlich nicht sein, das es dort schon steht, wenn der Fehler geworfen wird. Zieh dir das Product mal in dein buildout/products also den Entwicklungsbereich und schau dir alle quellen nach diesem CMFCorePermissions an.

    Gruss Pumukel

    Die Idee bei Buildout ist, das man nur noch ein Paar Konfigurationsfiles hat die man anpassen muss und ein buildout Prozess startet der dann alles für einen anhand dieser Konfigurationsdateien baut.

    Ich muss dazu sagen ich nutze den Windows Installer nicht, kann deswegen nur aus der unixoiden Analogie sprechen.

    Irgendwoe in einem der Plone Grundverzeichnisse die der Installer die Gebaut hat, findest du mehrere Datein die bootsrap.py, buildout.cfg wahrscheinlich auch base.cfg heissen. sowie ein Verzeichniss bin in dem ein Programm buildout.exe liegt.

    schau dir mit den Toutorials über buildout die Konfigurationsfiles an, modifiziere sie entsprechend und dann musst du, glaube ich über die kommandozeile in das Verzeichniss gehen wo die konfigurationsdateien liegen und bin\buildout.exe aufrufen, bzw. wenn du ein anderes als das buildout.cfg als ausgangspunkt hast bin\buildout.exe -c name.cfg; buildout.exe --help gibt alle parameter aus was man machen kann.

    Ich hoffe es hilft weiter. Ansonsten sollte Driver mal versuchen dir zu helfen da er auch buildout unter Windows nutzt.

    Gruss Pumukel