Ergebnis 1 bis 8 von 8

Thema: Portlet nur auf bestimmten Seiten anzeigen lassen

  1. #1
    Azubi(ne)
    Registriert seit
    01.04.2007
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Portlet nur auf bestimmten Seiten anzeigen lassen

    Hi Leute,

    ich möchte ein Portlet (in meinem Fall das PloneGazette Newsletter Portlet) nur auf der Startseite anzeigen lassen und sonst auf keiner. Wie realisieren ich das? Gibt es da Einstellungen oder komme ich nicht um paar Zeilen Code rum.

    Im Forum habe ich nichts gefunden und Google hilft bei Ploneproblemen ja eh nur selten.

    Viele Grüße,
    gen
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Webmaster in München gesucht?

    http://www.sudaric.de
    - Konzeption - Erstellung - Betreuung - Optimierung

  2. #2
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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&#58;define-macro="portlet"
         tal&#58;define="view context/@@news_view;
                     results python&#58;view.published_news_items&#40;&#41;&#91;&#58;5&#93;;
                     news_link view/all_news_link;
                     isStartpage python&#58; here.meta_type == 'Plone Site' or here.getId&#40;&#41; == 'front-page';"
         tal&#58;condition="python&#58; test&#40;template.getId&#40;&#41;!='news' and results and isStartpage, 1, 0&#41;">
    ...
    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
    "Carpe Diem" powered by positiv Feelings

  3. #3
    Azubi(ne)
    Themenstarter

    Registriert seit
    01.04.2007
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hi Torty,

    Vielen Dank schonmal! Das hört sich sehr vielversprechend an. Leider habe ich noch einige Probleme, das auf mein Newsletter portlet zu übertragen, da ich noch so gut wie gar keine Erfahrung mit den Template Ausdrücken und dem TALES Zeug habe.

    Ich habe folgenden Code versucht:
    Code:
    ...
    <dl metal&#58;define-macro="portlet"
           i18n&#58;domain="plonegazette" class="portlet" id="portlet-gazette"
           tal&#58;define="nl_brains python&#58; here.portal_catalog&#40;portal_type='NewsletterTheme', allowedRolesAndUsers='Anonymous'&#41;;
                       nl_objects python&#58; &#91;brain.getObject&#40;&#41; for brain in nl_brains if brain.getObject&#40;&#41;&#93;;
                       nl_unique python&#58; len&#40;nl_objects&#41; == 1;
                       isStartpage python&#58; here.meta_type == 'Plone Site' or here.getId&#40;&#41; == 'front-page';"
           tal&#58;condition="nl_objects;
                          python&#58; test&#40;template.getId&#40;&#41;!='news' and results and isStartpage, 1, 0&#41;">
    ...
    Der liefert mir folgenden Kompilierungsfehler:
    Compilation failed
    TAL.TALDefs.TALError: Invalid variable name "nl_objects;
    python: test(template.getId()!='news' and results and isStartpage, 1, 0)" in expression "nl_objects;\n python: test(template.getId()!='news' and results and isStartpage, 1, 0)", at line 11, column 3
    Ich hoffe du kannst mir nochmal weiterhelfen.

    Viele Grüße,
    gen
    Webmaster in München gesucht?

    http://www.sudaric.de
    - Konzeption - Erstellung - Betreuung - Optimierung

  4. #4
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Der Fehler ist dein Condition. Du musst das nl_objects je nach Bedarf rechts vom python: einbauen. Also z.B. so:
    Code:
    ...
    <dl metal&#58;define-macro="portlet"
           i18n&#58;domain="plonegazette" class="portlet" id="portlet-gazette"
           tal&#58;define="nl_brains python&#58; here.portal_catalog&#40;portal_type='NewsletterTheme', allowedRolesAndUsers='Anonymous'&#41;;
                       nl_objects python&#58; &#91;brain.getObject&#40;&#41; for brain in nl_brains if brain.getObject&#40;&#41;&#93;;
                       nl_unique python&#58; len&#40;nl_objects&#41; == 1;
                       isStartpage python&#58; here.meta_type == 'Plone Site' or here.getId&#40;&#41; == 'front-page';"
           tal&#58;condition="python&#58; nl_objects and test&#40;template.getId&#40;&#41;!='news' and results and isStartpage, 1, 0&#41;">
    ...
    Torty
    "Carpe Diem" powered by positiv Feelings

  5. #5
    Azubi(ne)
    Themenstarter

    Registriert seit
    01.04.2007
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hi Torty,

    Vielen Dank für deine Mühe. Ein Kompilierungsfehler liegt nicht mehr vor, allerdings erhalte ich einen Site Error wenn ich auf das Portal zugreifen will.

    Hier die relevante Stelle:

    * Module Products.PageTemplates.TALES, line 221, in evaluate
    URL: /go/portal_skins/custom/portlet_gazette
    Line 40, Column 12
    Expression: <PythonExpr nl_objects and test(template.getId()!='news' and results and isStartpage, 1, 0)>
    Names:

    {'container': <PloneSite at /go>,
    'context': <PloneSite at /go>,
    'default': <Products.PageTemplates.TALES.Default instance at 0x2b3e18f31518>,
    'here': <PloneSite at /go>,
    'loop': <Products.PageTemplates.TALES.SafeMapping object at 0x2aaaaaebae18>,
    'modules': <Products.PageTemplates.ZRPythonExpr._SecureModule Importer instance at 0x2b3e18f31950>,
    'nothing': None,
    'options': {'args': ()},
    'repeat': <Products.PageTemplates.TALES.SafeMapping object at 0x2aaaaaebae18>,
    'request': <HTTPRequest, URL=http://*host*/go/mainpage_template>,
    'root': <Application at >,
    'template': <ZopePageTemplate at /go/mainpage_template>,
    'traverse_subpath': [],
    'user': <PropertiedUser 'admin'>}

    * Module Products.PageTemplates.ZRPythonExpr, line 47, in __call__
    __traceback_info__: nl_objects and test(template.getId()!='news' and results and isStartpage, 1, 0)
    * Module Python expression "nl_objects and test(template.getId()!='news' and results and isStartpage, 1, 0)", line 1, in <expression>

    NameError: name 'results' is not defined (Also, the following error occurred while attempting to render the standard error message, please see the event log for full details: name 'results' is not defined)
    Ich werde aus der Fehlermeldung nicht schlau, hast du eine Idee woran es liegt?
    Kann es sein das "results" bei dem Portlet garnicht vorhanden ist und nur beim Event-Portlet benötigt wird?

    Edit: Ok ich habs! Es war wie ich vermutet habe, habe die Abfrage "and results" aus der condition raus genommen und jetzt gehts.

    Vielen Dank nochmal Torty für die geniale hilfe!


    Viele Grüße,
    gen
    Webmaster in München gesucht?

    http://www.sudaric.de
    - Konzeption - Erstellung - Betreuung - Optimierung

  6. #6
    Kaiserliche Hoheit
    Registriert seit
    22.02.2005
    Beiträge
    1.558
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    k - Man(n) tut was man kann

    Torty
    "Carpe Diem" powered by positiv Feelings

  7. #7
    Interessierte/r
    Registriert seit
    25.01.2007
    Beiträge
    115
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    es gäbe da noch die möglichkeit für die ersten Ordner, also die portaltabs noch jeweils eine property left_slots bzw. right_slots mit dem Type lines zu erstellen und dann werden nur die Portlets genommen di darin stehen umso tiefer man geht.


    Startseite (Left_slots=here/portlet_gazette/macros/portlet)
    |
    |
    |----Seite 1 (unveränderte Propertys) - Startportlet wird angezeigt
    |
    |
    |----Seite2 (Left_slots=here/portlet_calendar/macros/portlet) - es werden nur der kalender angzeigt

  8. #8
    Azubi(ne)
    Themenstarter

    Registriert seit
    01.04.2007
    Beiträge
    54
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hallo Leute,

    vlt. weis jemand wieso die von Shorty vorgestellte Methode bei folgendem Portlet (portlet_document_view) nicht funktioniert. Es soll nur auf der Startseite angezeigt werden, allerdings wird es jetzt nie angezeigt.

    Code:
    <style><!--
    dd a &#123;
     color&#58; white;
     text-decoration&#58; underline;
    &#125;
    --></style>    
    <div metal&#58;define-macro="portlet" 
        tal&#58;omit-tag=""
        tal&#58;define="isStartpage python&#58; here.meta_type == 'Plone Site' or here.getId&#40;&#41; == 'front-page'"
        tal&#58;condition="python&#58; test&#40;template.getId&#40;&#41;!='news' and isStartpage, 1, 0&#41;">
        <dl class="portlet">
            <h1 tal&#58;content="here/title_or_id">Title</h1>
            
            <dd class="portletItem odd" tal&#58;content="structure here/getText">Content</dd>
            <dd class="portletFooter">
                
                 </a>
            </dd>
        </dl>
    </div>
    Vielen Dank schonmal,
    gen
    Webmaster in München gesucht?

    http://www.sudaric.de
    - Konzeption - Erstellung - Betreuung - Optimierung

Ähnliche Themen

  1. nur zwei Termine im Portlet Events anzeigen
    Von whansch im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 1
    Letzter Beitrag: 16.08.2007, 16:14
  2. keine Verbindung zu bestimmten Seiten
    Von Al Bieno im Forum Computer - Internet Forum
    Antworten: 0
    Letzter Beitrag: 17.11.2006, 21:30
  3. seiten in DIV Containern öffnen lassen ?
    Von barstl im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 28.07.2006, 14:52
  4. seiten in DIV Containern öffnen lassen ?
    Von barstl im Forum HTML & CSS Forum
    Antworten: 2
    Letzter Beitrag: 28.07.2006, 10:45
  5. wie springt man zu einer bestimmten seiten position?
    Von FR0SCH im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 1
    Letzter Beitrag: 08.08.2005, 22:18

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •