Beiträge von Pumukel

    Hallo,

    bitte gern geschehen.

    Warum das buildout des UnifiedInstaller so ist wie es ist, kann ich dir leider nicht sagen, weil ich ihn nicht entworfen habe. Aber vom Prinziep her ist der sehr sehr gut für eine Grundinstallation.
    Das nicht alles in einer Datei, der buildout.cfg formuliert ist, macht sinn, da buildout eine Basis für die Entwicklung und des Deployment ist. In einer lokalen Installation zum Testen und Entwickeln würde man das Buildout in der form:

    Code
    ./bin/buildout -c develop.cfg


    ausführen, um die Entwicklungs und Debug-Tools in der installation zu haben. Bei einem buildout für eine produktive Umgebung würde man statt dessen das einfachere:

    Code
    ./bin/buildout

    verwenden.

    Da bei einer sauberen Installation somit genau 4 cfg-Dateien vorhanden sind ist es recht übersichtlich:

    • buildout.cfg <-- Produktive Umgebung
    • develop.cfg <-- Entwicklungsumgebung
    • base.cfg <-- Basis Einstellungen
    • versions.cfg <-- Version-Pinning für offline-Installationen


    Die versions.cfg benötig man nicht, wenn man im extend der Pfad zur latest-Version definiert hat.

    Eine richtige Fertige buildout-Datei ist somit gar nicht erstrebenswert, es ist eher ein Satz von Dateien. Die des unifiedinstallers sind aber ein abgeschlossener und funktionierender Satz, ansonsten kann man mit

    Code
    paster create -t plone3_buildout buildout_verzeichniss

    sich einen Satz erzeugen lassen, was aber nicht mehr empfohlen wird.

    Mein Satz an buildout-Dateien umfasst derzeit etwa 20 Dateien, da ich lieber kleine funktionsbezogene Dateien bevorzuge. Ich bezweifel das mein Satz jemanden helfen würde, da ich zuviele zusätzliche Abschnitte für meine Umgebungen integriert habe.

    Gruss Pumukel

    Hallo,

    da du keine Vollständigen satz an buildout-Dateien angegeben hast und von nur einfach kopiert sprichst, gehe ich davon aus, dass du eine saubere Plone-Unifiedinstaller Installation hast, auch wenn es mit dem Plone-4.0-latest im extend nicht danach aussieht.

    Demnach sollte der instance Bereich definiert sein, aber wird wohl aufgrund der Fehlerhaften Einträge in eggs und zcml nicht funktionieren.
    bei eggs und zcml darf man keine *.tar.gz angeben, damit kann buildout nichts anfangen, wenn du dort etwas einträgst, dann muss es der Package-Name sein, in scr kann man dann die entpackten tar.gz hinpacken wenn man auf diesen arbeiten möchte. Desweiteren gehören in den Einträgen eggs und zcml keine Pfadangaben wie src/

    Warum willst du dir bei einem Plone 4.x das Sunburt-Theme extra holen?

    Also berichtige dein Buildout und deine Installation und es sollte funktionieren.

    Gruss Pumukel

    Hallo Mike,

    ich habe es mir mal angesehen, zwar jeweils in einem Plone 4.0.6.1, 4.1b2 und 4.1rc2 aber das sollte ja egal sein.

    Also bei mir wurde es jedesmal ohne Probleme installiert und auch in den Installern sauber angezeigt.

    Kann es sein das es bei dir einen Fehler bei download gab? Prüfe die Struktur des Packages in deinem src und egg Verzeichniss bitte, ggf. löschen und buildout nochmal laufen lassen-

    Andere mögliche Ursache könnte sein das du Plone 4.0.x mit Python 2.7.x laufen lässt was erst ab 4.2 supported werden soll, aber das sollte eigentlich nichts an Add'ons machen.

    Man müsste genauer in deine Umgebung schauen um zu sehen wo das Problem ist, vielleicht nochmal sauber mit dem Unified Installer (http://plone.org/products/plone/releases/4.0.6.1) aufsetzten und dann ausprobieren.

    Gruss Pumukel

    Hallo,

    also die Thematik Literatur verstehe ich, das es nicht verständlich ist was aktuell ist, aufgrund der Versionsnummern. Aber es gibt eine Reihe von Büchern zu Plone 3.x die immer noch aktuell sind, da Plone 4 nur ein Plone 3.3 auf Python 2.6 statt 2.4 war.

    zu dem Archetypes Example: Es ist für Plone 3.0 laut Versionsbeschreibung, eigentlich sollte dort der Quckinstaller soweit sein, das er es sehen sollte. Aber in der ZMI und dem Quickinstaller sollte man bei Plone 4 gar nichts arbeiten.

    hast du nach dem neuen Buildout auch dein Zope neu gestartet? damit es es anzeigen kann? was sagt ein im fg modus gestarteter Zope?

    Gruss Pumukel

    Securtity Settings kann man mit einem zcml-overwrite machen.

    Bei der Form, ist das ein einfaches Pythonscript, das sich den String holt und schreibt, der Trick liegt dadrin via einem FileSystem Produkt das Restricted Python innerhalb des Zope zu umgehen.

    Beispiel Code-Schnipsel:

    Gruss Pumukel

    Hallo,

    also prinzipiell zwei Lösungsmöglichkeiten:

    1. Die Security settings für den MySQLConnector überschreiben und so das es eine Rolle des Nutzer machen darf.
    2. Ein Property Form schreiben was den Connection String aufnimmt unf für den Nutzer sichtbar und änderbar ist, und dann via File System Python Script bei Speichern der Form den Connection String im Connector überschreiben. Muss ein FilesystemString sein, da sonst RestrictedPython in Zope zuschlagen könnte und es nciht erlaubt auszuführen.

    Gruss Pumukel

    Also nochmal, da ich denke das wir aneinander vorbei reden:

    Wie sieht deine Zope Anwendung aus?
    1. Ist es natives Zope oder ist da ein System wie Plone on top in dem der Kunde arbeitet?
    2. hat jeder Kunde ein eigenes Zope oder sind mehrere Portale / Kopien des Programms in deinem Zope?
    3. wenn es eine ordentliche Anwendung in Zope ist, hast du den zope Root acl_users und in jeder Zope-Applikation / Portal einen eigenen acl_users der nur für den Bereich gilt.
    4. Der Zugriff auf das Propertie ist natürlich möglich, bedraf aber bestimmter Rechte in Zope, welche Rechte haben deine User, gibt es einen Bereichsadmin?.

    Ich habe mehrere Anwendungen wo ich via einer Form auf den Connection String einen psycopg2 Connector, das äpuivalent zu Z MySQL Connector für PostgreSQL, zugreifen und änderen kann. Ich kann auch jedem Nutzer für eine Abfrage einen eigenen connection-String für verschiedene Datenbanken nutzen lassen. Beides ist programmatisch simple, aber man muss den UseCase verstehen und erklären können, um eine sinnvolle Lösung implementieren zu können.

    Deine Aussage das man keinen neuen DB-Layer einziehen kann weil das Programm fertig ist, ist eine kommische Aussage, denn entweder kannst du mit deinem Zope Programm schon so auf die Datenbank zugreifen wie du möchtest, oder das Programm ist nicht fertig, oder bezieht es sich auf die Datenbank, das diese fertig sei. Wenn es zweites ist, hast du mich nicht verstanden, weil ich dir mit SQLAlchemy einen Datenbank-Wrapper für Python den man in Zope sehr gut nutzen kann um auf Datenbanken Zugriffsversuche zu vermitteln.

    Gruss Pumukel

    Hallo,

    es ist doch nicht ganz verständlich was du möchtest, hier nochmal die möglichen Varianten die man verstehen kann:

    1. nach der Installation eines Portals soll der MySQL-Connection String initial für das Portal gesetzt werden.
    2. nach dem hinzufügen eines Kunden soll für diesen Kunden im Portal der durch Ihn festgelegt Connection-String für alle Abfragen an die Datenbank genutzt werden.

    Hierzu auch noch die Klarstellung, das MySQL nicht zu Zope gehört ist allgemein bekannt, das sie in der Regel auch nicht zu einer Cluster Installation gehört auch, das man eine beliebige Relationale Datenbank über Connectoren und andere Wege anbinden kann ist typisch für Zope.

    Zu 1: Relativ trivial, da es hier nur um ein Configlet zu einem bestehenden Backend in der ZMI handelt, dieses würde auch von der Permission für ein manage_portal deckungsgleich sein, was das Backendmodul benötigt.

    Zu 2: Mit dem Z MySQL Database Connector nicht machbar, aber trotzdem ohne Probleme in Zope/Plone umsetztbar. Der Trick ist die Nutzer spezifische persistente Speicherung des Connection Strings, am einfachsten durch erweiterung der portal_memberdata und der Form für die Persönlichen Einstellungen. Der MySQL Connector wird durch einen weiteren Python Abstraction Layer - SQLAlchemy - gekappselt. SQLAlchemy erlaubt genau das gleiche was der MySQL Connector macht, bloss das du pro Aufruf einen Connection String übergeben kannst.

    Also bitte genau den Use Case beschreiben was du möchtest, wenn du genauere Erklärungen oder Beispiel Code brauchst.

    Gruss Pumukel

    Hallo,

    Also in einer alten Zope/Plone (Version 2.x) findest du die Packages unter der Zope Installation im Folder Products.
    Es gibt sehr gute Export Schnittstellen in Plone, z.B. transmogifier, so das man den kompletten Inhalt herausbekommt.

    Da die TAL und METAL-SPrache auch in anderen CMS unterstützt wird, kann man wahrscheinlich sehr leicht verstehen was gemacht wird. Ich habe mal gehört das Typo 3 auch TAL versteht, aber mit seinem TypoScript sehr viel bescheidener löst.

    Also Content-Übernahme in ein anderes System oder daraus hinaus ist für einen Plone Profi ziemlich simple. Die gesamte Kunst der Page-Generierung in einem anderen CMS nachzubauen wird aber gewaltig, weil viele nicht so modular und standard-basiert aufgebaut sind.

    Jemanden in Zope/Plone einzuarbeiten ist wahrscheinlich ein großer Aufwand, aber der lohnt sich und ist mithilfe der RZUG Gruppen machbar. Ein Plone Profi kann aber in der Regel ein Update auch über grosse Versionslücken binnen kürzester Zeit machen, da Plone sehr abwärtskompatibel ist und ein Grossteil eurer Anpassungen schnell übernommen werden kann.

    Eine Zeitabschätzung was es daueren würde eine generische alte Plone Site upzugraden, würde ich bei ca. 1 Woche bis 1 Monat tippen, Wenn sich jemand ohne Vorkentnisse an Plone heranwagt als Entwickler ca. 6 Monate bis er verstanden hat wie alles funktioniert. Eine angepasste Plone Seite in ein anderes CMS überführen ohne Funktionalität und Flexibilität zu verlieren, annähernd unmöglich, siehe http://www.scribd.com/doc/54801851/Idealware-Os-Cms-2010-1 reine Contenüberführung ohne etwas in dem neuen CMS dafür auszulegen denke ich ist für einen Power User des CMS via Copy and Past das einfachste und schnellst.

    Gruss Pumukel

    Hallo Sheep,

    Du versuchst dich in der Zope-DB zurechtzufinden? Die ZODB zu verstehen und ansprechen zu können wenn man sich nur mit relationalen Datenbanken und PHP auskennt ist äußerst schwierig.
    Selbst wenn du die Datenbank lesen kannst, wirst du da kaum bis keinen HTML-Code finden. Da diese Elemente in den Plone-Theme-Packages liegen, nur ttw anpassungen wandern in die DB.

    Naja, aber warum willst du von dem guten Plone auf Typo3, dass nicht annähernd die Möglichkeiten von Plone bietet. Ich verstehe, dass man von dem jetzt etwa 7 Jahre alten Plone 2 auf was aktuelles möchte.

    Gruss Pumukel

    Hallo,

    via Python, kannst du in einer Browser View jederzeit den connection string einer Datenbank-Anbindung ändern. Die Properties könntest du mit einem ZCML-Overwrite für jeden zugänglich machen, aber das alles löst dein Problem nicht.

    Was du eigentlich haben möchtest ist eine Form die abhängig vom Nutzer Daten aus der MySQL ausliest oder schreibt. Da ist die beste Lösung eine Form oder Browser-View in der du SQLAlchemy nutzt um diese sachen zu machen.

    Gruss Pumukel

    Hallo,

    es gibt in Plone in der Konfiguration der "Benutzer- und Gruppeneinstellungen" einen Tab Einstellungen, dort kann man Sagen ob es viele Gruppen und / oder Benutzer gibt, was zu folge hat das diese in der Auflistung nicht mehr angezeigt werden.

    Das Löschen von Benutzer die in Plone angelegt wurden in der ZMI entfernt diese User nicht vollständig, aber macht es erstmal unmöglich diese in Plone selber wieder zu nutzen, dazu gab es hier schonmal einen Thread.

    Die Anzahl an Nutzern in deinem System, die sich aus dem portal_membertool ergibt muss nicht gleich der Anzahl an Useren in der Plone Instanz sein, noch muss jeder direkt via Plone User Folder erschaffen sein. Plone hat mit den Plugable Authenication System ein Werkzeug mit dem Nutzer über verschiedenste Wege ins Plone gelangen können ohne jemals in der "Benutzer- und Gruppeneinstellungen" auzutauchen.

    Also bitte schau erstmal nach wie die Situation wirklich bei dir ist, 2900 User sind nur für sehr kleine Seiten extrem viel. In manchen Systemen sind mehrere 10.000 User.

    Gruß Pumukel

    Hallo,

    ich nehme mal an das du diese Frage Cross-Gepostet hast, da threadi, scheinbar Ahnung von CSS und HTML aber nicht von Plone hat.

    Ich würde dir empfehlen die Frage mit einem Blick in Firebug zu klären. Da Plone eine Menge an Stylesheets mitbringt kann man sich nicht sicher sein welche Regel greift wenn man nicht die Reinfolge sieht. Da in der base.css von Plone eine Frage für das navTreeCurrentItem definiert ist, müsste man es mit !important überschreiben.

    Schauen und wenn es dann nicht klar ist nochmal mit den Informationen aus Firebug melden.

    Gruss Pumukel

    Hallo,

    wenn bei euch ordentlich / sauber gearbeitet wird in Bezug auf Software, dann sind sowohl die buildout Konfigurations Dateien als auch der Code des Portlets in einem Versionsverwaltungssystem wie Subversion abgelegt. dann kann man in der Revesionshistory oder wenn es noch nicht eingecheckt ist mit svn status prüfen was verändert wurde.

    Im buildout muss man suchen ob es ein develop = src/produkt.name gibt.

    Gruss Pumukel

    Hallo,

    ich nehme an, dass das Portlet-Produkt im buildout als develop gezogen ist. Ansonsten müssten Template-Änderungen (.pt-Files direkt und Code und JS-Dateien nach neustart) eigentlich aktive sein. Der Quickinstaller merkt nur das es eine neue Nummer gibt, solange du aber am Profil des Produkts nichts geändert hast sollte es alles da sein. Wenn am Profil was geändert wurde muss ein Upgrade des Profiles im Plone vollzogen werden.

    Gruss Pumukel

    Hallo,

    innerhalb des Navigations Portlets hat man die Startebene die man auf 0 setzten muss, damit diese immer angezeigt wird, dazu sollte auch die wirkliche Root der Seite nur angegeben sein und nichts anderes.

    Gruss Pumukel

    Hallo,

    nach dem auszug ist es ein Zope 2.7.x die Seite sieht aber nicht nach Purem Zope sondern nach einer alten Plone Version (2.0.x oder 2.1.x oder sogar noch 1.0.x) aus. Dies würde es einfacher machen. Schau mal bitte PM.

    Ansonsten bitte Product Management Unterordner des Controlpanel ansehen und schauen ob dort Plone / CMFPlone oder andere CMF Elemente gelisted sind.

    Gruss Pumukel