Beiträge von Torty

    Der Fehler ist dein Condition. Du musst das nl_objects je nach Bedarf rechts vom python: einbauen. Also z.B. so:

    Code
    ...
    <dl metal:define-macro="portlet"
           i18n:domain="plonegazette" class="portlet" id="portlet-gazette"
           tal:define="nl_brains python: here.portal_catalog(portal_type='NewsletterTheme', allowedRolesAndUsers='Anonymous');
                       nl_objects python: [brain.getObject() for brain in nl_brains if brain.getObject()];
                       nl_unique python: len(nl_objects) == 1;
                       isStartpage python: here.meta_type == 'Plone Site' or here.getId() == 'front-page';"
           tal:condition="python: nl_objects and test(template.getId()!='news' and results and isStartpage, 1, 0)">
    ...

    Torty

    Der Weg der mir einfallen würde, wäre der, dass man in das Portlet (also im Code) ein Condition einbaut welches auf die Front-Page prüft.
    Hier der Code am Bsp. des News-Portlets (CMFPlone\skins\plone_portlets)

    Code
    ...
    <div metal:define-macro="portlet"
         tal:define="view context/@@news_view;
                     results python:view.published_news_items()[:5];
                     news_link view/all_news_link;
                     isStartpage python: here.meta_type == 'Plone Site' or here.getId() == 'front-page';"
         tal:condition="python: test(template.getId()!='news' and results and isStartpage, 1, 0)">
    ...

    Ich hoffe es wird klar, dass ich folgendes tue:
    * isStartpage == True, wenn der Plonesite Root oder die Frontpage angezeigt wird
    * der Condition nur erfüllt ist, wenn auch isStartpage == True ist

    Sollte es einen anderen (einfacheren) Weg geben, würde mich dies natürlich auch interessieren.

    Torty

    Naja, du hast den Condition weggelassen. Damit wird bei dir im Plonesite-Root - also "Plone Site" - das lvlUp zu None, denn oberhalb des Plonesite-Root gibts für Plone nichts. Und der Fehler liegt dann bei lvlUp/absolute_url, denn None object has no attribute absolute_url. So in der Art.

    Du musst den Condition schon rein von der Logik her wieder einbauen, denn wenn es über dem Plonesite-Root nichts gibt, worauf sollte der Link dann verweisen?

    Torty

    Du kannst dir das Template CMFPlone/skins/plone_portlets/portlet_navigation kopieren und den folgenden Code an gewünschter Stelle einbauen.

    Code
    ...
      <a tal:define="lvlUp here/aq_parent;"
         tal:condition="python: here.meta_type != 'Plone Site'"
         tal:attributes="href lvlUp/absolute_url;"
         i18n:translate="go_to_parent_url">Up one level</a>
    ...

    Das "go_to_parent_url" ist eine Translation von Plone und gibt einen passenden Text aus.

    Torty

    Uhi - also das ist nicht mit wenigen Worten zusammengefasst. Prinzipiell sind Joomla und Plone verschiedene Welten. Dies nicht nur weil Joomla PHP basiert und Plone auf Python, sondern auch weil der darunterliegende Server komplett verschieden ist. Zope verfolgt ganz andere Konzepte als z.B. Apache.

    Für dich können folgende Dinge von Bedeutung sein:
    1.)
    Joomla ist weniger komplex als Plone mit seinen verschiedenen Schichten auf die es aufbaut und lässt sich einfacher mod'n. Im Gegenzug sind Plone-Produkte (auch Skins (in Joomla: Templates) definitiver. D.h. man kann ganz genau bestimmen was wie passieren soll - die nötigen Kenntnisse vorausgesetzt.
    Ein ganz wesentlicher Punkt in diesem Zusammenhang ist, dass man mit Plone-Produkten (z.B. beim Install) eigentlich alles an der Plonesite ändern kann. In Joomla hat man ja nur die index.php und damit sind die Einstellmöglichkeiten schon erschöpft.

    2.)
    Plone erfordert viel Einarbeitung, wenn man beabsichtigt tiefer in die Untiefen des Codes einzusteigen. Hier sind sicher vielen Leuten schon graue Haare gewachsen. Als positiv kann hier erachtet werden, dass (ich glaube) alle Sourcen sowohl von Zope als auch der Plone-Komponenten einsehbar sind. Zudem ist die Pragrammiersprache Python, die es einem recht leicht macht den Code zu lesen. Das Verstehen kann u.U. eine andere Sache sein.

    3.)
    CMS gibt es viele und für jedes wird sich eine "breite Masse" finden lassen, die es als das wirklich Beste erachtet. Im Grunde muss hier jeder durch kurze Streifzüge durch die zu vergleichenden CMS selbst herausfinden welches ihm am ehesten anspricht.
    Für Plone sprechen die vielen Hilfmittelchen die man an die Hand bekommt, wie z.B. die portal_* Tools oder Archetypes für eigene autarke Inhaltstypen usw.

    Ich kann mir vorstellen, dass dir meine Ausführungen zwar teilweise nachvollziehbar aber nicht unbedingt verständlich vorkommen. Das ist ganz normal, denn ich habe das Problem der Informationfülle, welche für den Nachfragen verständlich runterzubrechen ist. *aarrgghh*

    Ich denke du solltest 1.Gehversuche unternehmen und dich auch mit "dem weißen Buch" *g* beschäftigen (http://www.derstappen-it.de/dokumentatione…lone/plone-buch).
    Dabei erkennst du sicher am ehesten ob dir Plone so zusagt und kannst hier natürlich auch deine speziellen Fragen posten.
    Als 1.Leitspruch für den Joomla-Umstieg kann ich dir mitgeben:
    In Plone organisiert man Inhalte prinzipiell wie auf dem eigenen Rechner auch: in Verzeichnissen und Inhalten (Bilder, Dokumente, Files). Das ist bei Joomla ja anders organisiert.

    Ok - dann erstmal viel Erfolg beim Einstieg und dieses Board hier kann dir sicher Unterstützung bei deinen Gehversuchen leisten. :)

    Torty

    Nun - "persistente Objekte" klingt nach speziellen Inhalten, aber das sind sie nicht. Denn alle Objekte die normal in Plone erstellt werden sind persistens (dauerhaft).
    Nachschlagen:
    http://www.fh-wedel.de/~si/seminare/w….zope/zope3.htm
    Suchbegriff: "persistente Objekte"

    Vereinfacht lautet deine Frage also:
    "Wie kann ich abhängig von der Lebensdauer eines Objektes (Folder, Document, Image, ...) diese gezielt per Script löschen?"

    Dazu soviel:
    Zope selbst sollte die Möglichkeit bieten Scripte zyklisch auszuführen. Ich habe das selbst noch nie genutzt.
    Der Code der damit aufgerufen wird sollte (muss?) in einer Klasse definiert sein. z.B. myCronJobs, denn die normalen Script (Python) sind per default "restricted" damit wirst du nix löschen können. Es sei denn du rufst aus dem Script (Python) wieder die Methode deiner Klasse auf.

    Ich weiß das hilft dir nicht so wirklich weiter, aber ich bin mir sicher dass dir jemand antwortet, der das schon gemacht hat. :)

    Torty

    Hallo und Thx, but it doesnt work. :?

    Ich wollte value="submit" belassen da es ggf. für die Barrierefreiheit von Bedeutung ist, da der Sendebutton bei mir nun eine Grafik ist. Deshalb sollte im Code "Submit" stehen bleiben und nur per CSS ausgeblendet werden. Jedoch scheint nur der FF es korrekt zu verstehen.

    Mit line-height: 0px; ergibt sich leider keine Änderung. Ich hatte es auch noch mit padding-left probiert, aber das vergrößert den Button ohne dass man ihn per overflow: hidden einkürzen kann. *aarrgghh*

    Thx.
    th

    Hallo,
    erstaunlicherweise habe ich soeben eine Schwäche (zumindest) im IE 7 und Opera 9 gefunden.
    Wenn man einen Formular-Button der einen Text (z.B. Submit) enthält, und der per CSS die Textgröße 0px erhält, so ist dieser Text weiterhin sichtbar.
    Im FF wirds korrekt gemacht -> der Text ist unsichtbar.

    Hier der Code:

    Ich halte das definitiv für einen Bug, denn einen Text mit Schrifthöhe 0px ist nicht sichtbar. Aber gut - nun ist die Frage wie ich es dem IE und dem Opera trotzdem beibringen kann, dass der Text im Button unsichtbar ist.
    Anderenfalls ist der Minitext über dem Hintergrundbild des Button noch sichtbar. Dies ist nicht erwünscht.

    Thx.
    Torty

    Hallo,
    mich fragte ein Bekannter, was man von den Laptop-Angeboten als gut erachten kann. Es gibt da keine favorisierten Marken oder Ketten, aber ihm wäre es wichtig, dass das Preis-Leistungs-Verhältniss stimmt.

    Ich stecke nun nicht wirklich in diesem Themengebiet drin und frage nun euch:

    Was darf man in einem 1000€-Laptop als Features erwarten?

    thx4help

    Hallo werte Interessenten des Zope+Plone-Boards auf forum-hilfe.de,

    Wie ihr vielleicht gemerkt habt, wurden bis vor kurzem viele Beiträge von mir selbst beantwortet. In den vergangenen Wochen sind dann noch ein paar aktivere Poster hinzugekommen, die den Support in diesem Board unterstützen. An dieser Stelle: vielen lieben Dank für eure Beiträge. :)

    Ab jetzt muss ich mich auf Grund beruflicher und persönlicher Gründe vermutlich deutlicher zurückziehen. Ich bin nicht weg, aber sicher längere Zeit offline. Der Hauptgrund dafür ist die Geburt unserer Tochter und einige dringliche Projekte, die trotzdem fertig gestellt werden müssen.

    Somit werde ich nicht mehr zum Antworten kommen und ihr müsst ggf. etwas länger warten bis ihr eine Antwort erhaltet. Meine Bitte an euch: lauft nicht weg, sondern übt euch in Geduld, denn wir wollen doch weiter wachsen und irgendwann eine bedeutsame Anlaufstelle für alle Zope+Plone-Developer werden.
    Als erstklassige Ausweichadresse kann ich noch die Mailingliste der DZUG nennen.
    Kleiner Tip: formuliert eure Beiträge dort noch genauer als ihr es hier tun würdet.

    Soweit mir dies möglich ist, versuche ich natürlich trotzdem ab und zu vorbei zu schauen, nur weiß ich nicht wie viel Zeit für eigene Versuche bzw. Hilfestellungen ich dann habe. Aber gut - das wird die Zeit dann zeigen.

    Ich wollte euch hiermit nur vorab informieren, damit ihr nicht denkt, das Board sein ausgestorben. ;)

    Ok - dann wünsche ich allen einen schönen Sommer und dass euer Zope/Plone immer das macht was ihr von ihm verlangt. ;)

    Viele Grüße und bis zum Herbst sagt
    Torty

    Ich denke, dass du für die Portlets gar kein position: benötigst.
    Falls du hier Seiteneffekte vermutest, dann gehe so vor:
    * deaktiviere alle deine eigenen CSS Files
    * nimm dir dann das 1. File vor und aktiviere es wieder
    * entferne alle Styles aus der Datei (z.B. in eine Sicherungskopie *g*)
    * füge dann Schritt für Schritt die Styles ein
    * lade sie hoch und lass die Seite neue aufbauen

    Beachte dafür, dass deine CSS in portal_css nicht gecached oder gemerged werden.
    Somit kam ich bisher allen meinen falschen Styles auf die Schliche.

    Torty

    Nun da machst dohl irgend etwas falsch.
    Normal ist natürlich nichts absolut positioniert. Der Standard-Skin als auch Plone Tabless setzen die Portlets untereinander. Ich schätze hier rächen sich einige deiner eigenen Styles.

    Um das zu prüfen, setze mal eine neue Plonesite auf und schau's dir dort an.

    Torty

    Der Standard ist, dass das Logo auf den Plonesite-Root verweißt.
    Wenn du dies ändern willst, musst du das Template CMFPlone/skins/plone_templates/global_logo.pt editieren.

    ! Bitte customiziere das Template - nicht das Original verändern !

    ... und zwar genau diese Zeile

    Code
    tal:attributes="href navigation_root_url"

    Torty

    Ich denke du musst nach dem Anlegen des Users noch folgendes tun:
    * geh in acl_users/portal_role_manager
    * klick z.B. auf Member
    * klick dann auf Assign
    * gib dann die User-ID in das Suchfeldein und such danach
    * dann selektiere die entspr. gefundene ID und
    * klicke auf den Pfeil nach rechts

    Dann hat der neue User auch eine Rolle.

    Torty