Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: News aus verschiedenen Ordnern

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

    Standard News aus verschiedenen Ordnern

    Hallo ich bins mal wieder....

    habe folgendes Problem:
    in einem Ordner 1 mit dem unterordner "News" soll das Portlet für die news angezeigt werden mit nur den News aus diesem Unterordner des Ordners 1 angezeigt werden.
    in einem Ordner 2 soll dann das selbe sein nur wiederum hat dieser auch einen Unterordner "News" woraus diesmal news genommen werden sollen.

    also sprich ich bin in ordner 1, aus folgendem Pfad die news im portlet: Ordner1/News
    und dann bin ich in Ordner 2 , da aus diesem Pfad die news im portlet: Ordner2/News




    Bin da schon relativ weit, wollte das mit jeweils intelligenten Ordnern lösen da man diesen sagen kann woher sie welchen Artikeltyp nehmen sollen, allerdings stellt sich mir jetzt die Frage wie sage ich dem News Portlet dass die News aus den jeweiligen unterordnern nehmen soll.
    Hatte mir gedacht ok ich kann auch für jeden Ordner wo das so sein soll nen extra Portlet machen und dieses dann nur anzeigen wenn ich in dem Ordner bin, das geht ja wie ich in einem anderen Beitrag gelesen hab ^^.
    Allerdings weis ich nicht welche Angabe im portlet für den Pfad steht.

    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"
         tal&#58;condition="python&#58;test&#40;template.getId&#40;&#41;!='news' and results, 1, 0&#41;">
    ich denke mal bei "news_link" müsste der pfad stehen oder?
    Hat jemand vlt. eine andere Lösung? Denn mehrere news portlets zu haben stell ich mir etwas unhandlich vor...

    Danke schonmal

    Greetz
    Seawolf
    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 !!!!!

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

    Standard

    Also die News für das Portlet werden durch die Klasse NewsPortlet gesucht. Siehe dazu Plone2.5.2/CMFPlone/browser/portlet/news.py
    Dort findest du die Methode
    Code:
    ...
        def published_news_items&#40;self&#41;&#58;
            context = utils.context&#40;self&#41;
            portal_catalog = getToolByName&#40;context, 'portal_catalog'&#41;
    
            return self.request.get&#40;'news', 
                                    portal_catalog.searchResults&#40;portal_type='News Item',
                                                                 sort_on='Date',
                                                                 sort_order='reverse',
                                                                 review_state='published'&#41;&#41;
    ...
    Wie man hier sehen kann werden alle veröffentlichten News die in der aktuellen Plonesite gefunden werden ausgegeben.

    Somit kommst du nicht umhin den Code für das News-Portlet selbst zu schreiben. Eine mögliche Variante wäre die, dass dein neues Portlet im aktuellen Ordner nach einem Folder mit der ID 'news' sucht und diesen ausgibt.

    Ich sehe also nur ein eigenes Portlet als gangbare Variante.

    Torty
    "Carpe Diem" powered by positiv Feelings

  3. #3
    Interessierte/r
    Themenstarter

    Registriert seit
    25.01.2007
    Beiträge
    115
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    ok soweit ist das klar.

    kann man irgendwo sehen welche Parameter die funktion self.request.get(...)
    erwartet?

    gibt es eine funktion die mir dennOrdner liefet in dem ich grade bin?

    mein Ansatz wäre folgender:

    Code:
    return self.request.get&#40;'here/news', 
                                    portal_catalog.searchResults&#40;portal_type='News Item',
                                                                 sort_on='Date',
                                                                 sort_order='reverse',
                                                                 review_state='published'&#41;&#41;
    bezweifle aber das es so einfach ist.

    Danke dir mal wieder ^^, du hilfst mir hier aus vielen Sackgassen, very thx

    Greetz
    Seawolf

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

    Standard

    Nein das klappt nicht, aber du bringst mich da auf eine Idee, die ich auch übersehen hatte.
    Die Methode get() erwartet 2 Parameter:
    1.) Name des Key/Attribut des Objektes auf das es angewendet wird
    2.) einen Defailt-Wert, falls der Key nicht gefunden wird

    In deinem Fall sieht also die kürzeste Möglichkeit so aus:
    1.) eigenes Script ermittelt die News aus dem news-Folder im aktuellen Context
    2.) diese Liste an Brains wird in REQUEST als Key 'news' gespeichert

    Dadurch findet die get-Methode im Portlet deine News-Liste und verwendet nicht die Catalog-Anfrage wie oben gesehen.

    Ich weiß das klingt etwas kompliziert, aber damit kann das Standard-News-Portlet verwendet werden und ich denke das ist auch so vorgesehen.

    Ich hab zur Sekunde wenig Zeit, aber ich probiere das heute noch aus, denn das interessiert mich auch sehr.

    stay tuned

    Torty
    "Carpe Diem" powered by positiv Feelings

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

    Standard

    Sorry - schaffs heut nicht mehr ...

    Torty
    "Carpe Diem" powered by positiv Feelings

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

    Standard

    Ok - es ist geschafft.

    Ich habe also ein Mini-Script geschrieben, welches ab dem aktuellen Ordner nach News schaut.
    Um das Script zu nutzen macht folgendes:
    * unter portal_skins/custom ein neues PageTemplate mit der ID my_news_portlet erstellen
    * Inhalt löschen und durch untenstehenden Code ersetzen
    * speichern
    * in den Properties eurer Plonesite (also im Plonesite Root) im Feld right_slots den Macroaufruf
    here/portlet_news/macros/portlet
    ersetzen durch
    here/my_portlet_news/macros/portlet
    * speichern

    Das Verhalten des neuen Portlet ist dabei wie folgt:
    Struktur:
    Code:
    Plonesite
    --|
      |-- ATFolder "News1"
      |   --|
      |     |-- NewsItem "Item 1"
      |-- ATFolder "Ordner 1"
      |   --|
      |     |-- ATFolder "News2"
      |     |   --|
      |           |-- NewsItem "Item 2"
      |           |-- NewsItem "Item 3"
      |-- ATFolder "Ordner 2"
      |   --|
      |     |-- ATFolder "News3"
      |         --| 
      |           |-- NewsItem "Item 4"
      |           |-- NewsItem "Item 5"
      |-- ATFolder "Ordner 3"
      |   --|
    ...
    Das Script sucht nach allen veröffentlichten News ab dem aktuellen Pfad abwärts. Daraus ergibt sich nun folgende Portlet-Ausgabe in Abhängigkeit zum aktuellen Pfad:
    Code:
    Pfad      -->  Anzeige
    --------------------------------
    /             "Item 1" bis "Item 5"
    /news1        "Item 1"
    /ordner-1     "Item 2" + "Item 3"
    /ordner-2     "Item 4" + "Item 5"
    /ordner-3     ---
    Das sollte doch das sein was du gern möchtest - oder?

    Der Code des Mini-Script my_portlet_news lautet:
    Code:
    <html xmlns&#58;tal="http&#58;//xml.zope.org/namespaces/tal"
          xmlns&#58;metal="http&#58;//xml.zope.org/namespaces/metal"
          i18n&#58;domain="plone">
    <body>
      <div metal&#58;define-macro="portlet"
           tal&#58;define="results  python&#58;here.portal_catalog&#40;portal_type = &#91;'News Item'&#93;,
                                                  review_state = 'published',
                                                  sort_on='getObjPositionInParent', 
                                                  sort_order='forward',                                                                                    
                                                  path=&#123; 'query'&#58; here.absolute_url_path&#40;&#41;,'level' &#58; -1 &#125;&#41;;
                       dummy    python&#58; here.REQUEST.set&#40;'news', results&#41;;">
      
          <metal&#58;news use-macro="here/portlet_news/macros/portlet">
            call the default news-portlet
          </metal&#58;news>
      
      </div>
    </body>
    </html>
    Torty
    "Carpe Diem" powered by positiv Feelings

  7. #7
    Interessierte/r
    Themenstarter

    Registriert seit
    25.01.2007
    Beiträge
    115
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hiho Torty cool, hatte gestern versucht die news.py umzuschreiben das es funzt ... naja allerdings erfolglos ^^

    deine Lösung is super damke dir, muss jetzt nur mal schauen wie es geht das ich dann nur den ertsen Ordner abwärts schaue.

    also folgender maßen

    Ordner Auto
    --> Tuning (da befinde ich mich mal)
    ----> Polo
    ----> Golf
    --> News (daraus dann die news)

    aber denke das geht ^^

    danke dir supi ^^

    Greetz
    Seawolf

  8. #8
    Interessierte/r
    Registriert seit
    24.09.2006
    Ort
    Nordhessen
    Beiträge
    127
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Torty - das ist ganz groß! (ehrlich)

    Sowas hätte ich schon per default von Plone erwartet, aber mich nicht getraut zu fragen, weil ich dachte ich sei der einzige, der unterschiedliche News veröffentlichen will...

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

    Standard

    Zitat Zitat von Seawolf-371
    muss jetzt nur mal schauen wie es geht das ich dann nur den ertsen Ordner abwärts schaue.
    Du meinst also dass er nur 1 Level tiefer geht und nicht alle News aus den Unterorndern mit ausgibt?

    Schau dir dazu mal die Optionen an die du mit der Catalog-Anfrage mitgeben kannst. Speziell die zum ExtentedPathIndex.

    Torty
    "Carpe Diem" powered by positiv Feelings

  10. #10
    Interessierte/r
    Themenstarter

    Registriert seit
    25.01.2007
    Beiträge
    115
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    hi torty naja so ungefähr ich meinte eigentlich so:


    wenn ich mich in einem Unterordner von Auto befinde soll er mir alle news, und nur diese, aus dem ordner Auto und abwährts ausgeben (also prinzipell das was du hast aber auch für die unterordner)

    sollte ich mich hingegen in einem unterordner von Flugzeug oder direkt in diesem Ordner befinden dann alle News aus dem ordner Flugzueg und abwärts...

    hoffe das war verständlicher, ich schreib meistens alles komplizierter als es is ^^

    hab mir den ExtendedPathindex mal angeschaut ... mit depth kann man ja festlegen ab wo er die news nehmen soll ... also ich bin Ordner 1 dann geht er zum bsp. max 2 level tiefer und gibt alles bis dahin gefundenes aus ...


    mein derzeitigesd Problem hab ciuh aber damit ncih s richtig lösen könn
    also das er immer alle news aus dem ersten Ordner nimmt.

    ploneInstanz/Auto -> wenn ich mich heir befinde, alle News ab auto abwärts
    ploneInstanz/Auto/Golf/ -> wenn ich mich heir befinde, alle News ab auto abwärts
    ploneInstanz/Auto/Golf/GTI -> wenn ich mich heir befinde, alle News ab auto abwärts
    ploneInstanz/Auto/Golf/GTI/Getriebe -> wenn ich mich heir befinde, alle News ab auto abwärts

    ploneInstanz/Flugzeug -> wenn ich mich heir befinde, alle News ab Flugzeug abwärts
    ploneInstanz/Flugzeug/Armee/ -> wenn ich mich heir befinde, alle News ab Flugzeug abwärts
    ploneInstanz/Flugzeug/Armee/Tornado -> wenn ich mich heir befinde, alle News ab Flugzeug abwärts
    ploneInstanz/Flugzeug/Armee/Tornado/Bewaffnung -> wenn ich mich heir befinde, alle News ab Flugzeug abwärts

    ich weis z.Zt. nciht wie ich der sich ständig ändernden Tiefe begegnen soll....

    und in jedem der Ordner nen Anderes Portlet wo die Tiefe hard gecoded ist würde zwar gehn, aber kann ja nich die Lösung sein oder?

    Greetz
    Seawolf

Ähnliche Themen

  1. News (ältere News)
    Von mymaddin im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 13.07.2007, 23:13
  2. visible news items im News Portlet
    Von dulldeidi im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 4
    Letzter Beitrag: 19.12.2006, 22:35
  3. Statusvererbung von Ordnern
    Von arthurdent65 im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 4
    Letzter Beitrag: 15.09.2006, 15:35
  4. Sichtbarkeit von Ordnern
    Von 00eraser00 im Forum Zope & Plone - das deutsche Hilfeforum
    Antworten: 2
    Letzter Beitrag: 16.08.2006, 10:32
  5. Öffnen von Ordnern
    Von Fabi im Forum Computer - Internet Forum
    Antworten: 10
    Letzter Beitrag: 11.07.2006, 11:36

Stichworte

Berechtigungen

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