1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. Zope & Plone - das deutsche Hilfeforum

Plone Klickzähler

  • Plone_N00b
  • 11. Januar 2007 um 08:57
  • 1
  • 2
  • 3
  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 11. Januar 2007 um 08:57
    • #1

    Hi,

    bin ralativ unerfahren in Plone und wollte wissen ob es so etwas wie ein klickzähler für Artikel bzw. Links oder Ordner oder all dem gibt?

    Wäre nett wenn ich eine Antwort kriegen könnte.

    Danke im Voraus


    Grüße

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 11. Januar 2007 um 09:11
    • #2

    Vielleicht meinst du sowas: http://zope.org/Members/rvillaca/PloneEnhancedCounter

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 11. Januar 2007 um 11:19
    • #3

    danke für die rasche Antwort, nur kannst du mir vielleicht beschreiben was das teil direkt macht und wie ich es einbinden kann?

    Danke Dir

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 11. Januar 2007 um 12:05
    • #4

    Nein. Müsste mir die Seite und ggf. die README.txt auch durchlesen.
    Du kannst natürlich auch die Entwickler anschreiben, denn die Kontaktdaten stehen ja da. :)

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 22. Januar 2007 um 08:51
    • #5

    Hi,

    ich bins nochmal...

    ich wollte mich nur bedanken, der Klickzähler funktioniert wunderbar.

    Nur jetzt möchte ich ganz gerne eine Art "hitliste" erstellen, die anzeigt, welche Seiten am häufigsten angeklickt wurden. Ist das möglich?

    Vielen Dank im Voraus


    Grüße, Max

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 22. Januar 2007 um 14:53
    • #6

    Es müsste für sowas schon Produkte geben. Vielleicht ist das ja was für dich: http://www.mxm.dk/products/public/mxmCounter/
    Anderenfalls: google -> "Plone Product page hit" <- oder so ähnlich

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 24. Januar 2007 um 09:08
    • #7

    Ja Danke, den Zähler hab ich schon auf jeder Seite eingebunden..

    Jetzt will ich ein Portlet anzeigen lassen, die die ersten fünf, sozusagen die Top 5, der Sites anzeigt soll ungefähr so aussehen...

    ___________
    Hitliste
    ___________
    Frühstück /12
    Mittag /13
    Abend /15
    ...
    ...
    ___________

    weisst du was ich meine? Ich müsste quasi die Links in ein Portlet kriegen mit der zugehörigen Klickzahl...

    Edit: Brauche ich eventuell den "EnhancedCounter" wenn ja, was macht das Ding mein Englisch ist nicht das beste! Danke

    Ich hoffe Ihr versteht mich hehe

    Grüße Max

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 24. Januar 2007 um 11:20
    • #8

    Hallo, ich habe hier aus dem mxmCounter eine Python Datei. In dieser Datei ist die Methode getSortedByHits() geschrieben.

    Code
    def getSortedByHits(self): 
          "Returns the [(url_path, hit)] sorted by hits" 
             c = get_all() 
             decorated = [(val, key) for (key, val) in c.items()] 
             decorated.sort() 
             decorated.reverse() 
             return [(val, key) for (key, val) in decorated]

    ich möchte jetzt eigentlich nichts anderes, als das Ergebnis der Funktion in einem Portlet anzeigen zu lassen. Ich weiß aber aufgrund meiner "noch" Unerfahrenheit nicht wie ich das passieren lassen kann...

    Kann mir da einer weiterhelfen?

    Danke Max

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 24. Januar 2007 um 14:58
    • #9

    Ich gehe davon aus, dass du nicht im Filesystem arbeitest sondern mit /portal_skins/custom.

    Ok - ganz kurz und knapp:
    [list]
    [*] Gehe zu /portal_skins/plone_portlets und klicke dort auf portlet_review -> customize
    [*] ersetze den nun angezeigten Code durch den hier im Anhang
    [*] speichere und klick oben im Pfad auf custom
    [*] markiere den Eintrag portlet_review und klick auf rename
    [*] nenn es z.B. portlet_stats
    [*] gehe in den Plonesite-Root und klicke oben auf Properties
    [*] suche den Eintrag left_slots und trage dort ein

    Code
    here/portlet_stats/macros/portlet

    und speichern

    Dann schau dir die Plonesite wieder an und du solltest ein zusätzliches Portlet sehen mit dem Inhalt der Stats. Diese musst du nun im portlet_stats noch vernünftig aufbereiten, damit die Ausgabe schön aussieht.

    Torty

    Code für das portlet_stats
    !Achtung! Das Portlet ist nicht getestet! Insbesondere der Teil innerhalb des Link innerhalb des <dd>-Tag muss noch überprüft werden.
    Grund: Ich habe das Produkt nicht installiert und weiß nicht genau was die Methode zurückliefert.

    HTML
    <html xmlns:tal="http://xml.zope.org/namespaces/tal"
          xmlns:metal="http://xml.zope.org/namespaces/metal"
          i18n:domain="plone">
    <body>
      <div metal:define-macro="portlet"
           tal:define="hitList here/getSortedByHits;">
    
        <dl class="portlet" id="portlet-workflow-review">
            <dt class="portletHeader">
                <span class="portletTopLeft"></span>
                <span i18n:translate="">Site Statistic</span>
                <span class="portletTopRight"></span>
            </dt>
    
            <tal:hasHits condition="hitList">
              <tal:vars define="top5 python: hitList[:5];"
                        repeat="hit top5">
                <dd class="portletItem"
                    tal:define="oddrow repeat/o/odd"
                    tal:attributes="class python:test(oddrow, 'portletItem even','portletItem odd')">
    
                  <div tal:attributes="class python:'visualIcon contenttype-' + normalizeString(o.portal_type)">
                    <span tal:content="string: $repeat/hit/number}.</span>
                    <a href="#"
                       condition="nothing"
                       class="visualIconPadding tile"
                       tal:attributes="href string:${hit/absolute_url};
                                       title hit/Description"
                       tal:content="hit/Title">
                      title of the page
                    </a>
                  </div>
    
                </dd>
              </tal:vars>
            </tal:hasHits>
    
            <tal:noHits condition="not: hitList">
              <span tal:translate="">no hits found</span>
            </tal:noHits>
    
            <dd class="portletFooter">
    
                <span class="portletBottomLeft"></span>
                <span class="portletBottomRight"></span>
            </dd>
        </dl>
    
      </div>
    </body>
    </html>
    Alles anzeigen

    "Carpe Diem" powered by positiv Feelings

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 25. Januar 2007 um 07:14
    • #10

    Also da tritt ein Fehler auf wenn ich mir das Portlet in der Testansicht ansehen möchte aber auch direkt auf der Seite

    Fehlertyp
    AttributeError

    Fehlerwert
    getSortedByHits

    Anfrage erfolgte um
    2007/01/25 07:13:22.075 GMT+1

    es muss mit diesem Abschnitt hier zusammenhängen, denn wenn ich etwas auskommentiere, dann ist der Fehler weg aber es entstehen natürlich neue...


    Code
    <div metal:define-macro="portlet" 
           tal:define="hitList here/getSortedByHits;">

    Trotzdem erstmal Danke für die Bemühungen Max

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 25. Januar 2007 um 08:51
    • #11

    Kann es vielleicht sein, dass er die Methode nicht erkennt?

    Gruß Max

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 25. Januar 2007 um 14:02
    • #12

    Jupp, soweit ich es verstanden hatte, hast du mxm_counter installiert. Hast du denn die Methoden von diesem Produkt anderweitig schon genutzt?

    In der readme stand was davon, dass nach erfolgter Installation ein Objekt mit der ID mxm_counter existieren soll.

    Kannst du das bei dir mal prüfen?

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 25. Januar 2007 um 14:12
    • #13

    ja das stimmt. Es ist ein Objekt da mit der ID mxm_counter. direkt in der ersten Instanz. Also quasi bei Floder at/...

    ich hab hier auch nochmal einen Screenshot im Anhang der wird vielleicht weiterhelfen.

    Vielen Dank Max

    Bilder

    • scr_mxm.jpg
      • 50,69 kB
      • 594 × 551
  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 25. Januar 2007 um 14:50
    • #14

    Ok gut, dann versuche ich also das Tool direkt anzusprechen.
    Try this:

    HTML
    <html xmlns:tal="http://xml.zope.org/namespaces/tal"
          xmlns:metal="http://xml.zope.org/namespaces/metal"
          i18n:domain="plone">
    <body>
      <div metal:define-macro="portlet"
           tal:define="mxmCounter portal/mxm_counter;
                       hitList    mxmCounter/getSortedByHits;">
     
        <dl class="portlet" id="portlet-workflow-review">
            <dt class="portletHeader">
                <span class="portletTopLeft"></span>
                <span i18n:translate="">Site Statistic</span>
                <span class="portletTopRight"></span>
            </dt>
    
            <tal:hasHits condition="hitList">
              <tal:vars define="top5 python: hitList[:5];"
                        repeat="hit top5">
                <dd class="portletItem"
                    tal:define="oddrow repeat/o/odd"
                    tal:attributes="class python:test(oddrow, 'portletItem even','portletItem odd')">
    
                  <div tal:attributes="class python:'visualIcon contenttype-' + normalizeString(o.portal_type)">
                    <span tal:content="string: $repeat/hit/number}.</span>
                    <a href="#"
                       condition="nothing"
                       class="visualIconPadding tile"
                       tal:attributes="href string:${hit/absolute_url};
                                       title hit/Description"
                       tal:content="hit/Title">
                      title of the page
                    </a>
                  </div>
    
                </dd>
              </tal:vars>
            </tal:hasHits>
    
            <tal:noHits condition="not: hitList">
              <span tal:translate="">no hits found</span>
            </tal:noHits>
    
            <dd class="portletFooter">
    
                <span class="portletBottomLeft"></span>
                <span class="portletBottomRight"></span>
            </dd>
        </dl>
    
      </div>
    </body>
    </html>
    Alles anzeigen

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 25. Januar 2007 um 15:01
    • #15

    ja danke aber jetz kommt dieser Fehler...

    Fehlertyp
    KeyError
    Fehlerwert
    'portal'

    Anfrage erfolgte um
    2007/01/25 14:37:25.624 GMT+1

    Sorry aber danke dass du mir so hilfst

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 25. Januar 2007 um 16:04
    • #16

    Nun, das Problem ist, dass mir das mxm_counter hier fehlt. Nuja - machen wir also weiter *g*

    HTML
    <html xmlns:tal="http://xml.zope.org/namespaces/tal"
          xmlns:metal="http://xml.zope.org/namespaces/metal"
          i18n:domain="plone">
    <body>
      <div metal:define-macro="portlet"
           tal:define="mxmCounter here/getPortalObject/mxm_counter;
                       hitList    mxmCounter/getSortedByHits;">
     
        <dl class="portlet" id="portlet-workflow-review">
            <dt class="portletHeader">
                <span class="portletTopLeft"></span>
                <span i18n:translate="">Site Statistic</span>
                <span class="portletTopRight"></span>
            </dt>
    
            <tal:hasHits condition="hitList">
              <tal:vars define="top5 python: hitList[:5];"
                        repeat="hit top5">
                <dd class="portletItem"
                    tal:define="oddrow repeat/o/odd"
                    tal:attributes="class python:test(oddrow, 'portletItem even','portletItem odd')">
    
                  <div tal:attributes="class python:'visualIcon contenttype-' + normalizeString(o.portal_type)">
                    <span tal:content="string: $repeat/hit/number}.</span>
                    <a href="#"
                       condition="nothing"
                       class="visualIconPadding tile"
                       tal:attributes="href string:${hit/absolute_url};
                                       title hit/Description"
                       tal:content="hit/Title">
                      title of the page
                    </a>
                  </div>
    
                </dd>
              </tal:vars>
            </tal:hasHits>
    
            <tal:noHits condition="not: hitList">
              <span tal:translate="">no hits found</span>
            </tal:noHits>
    
            <dd class="portletFooter">
    
                <span class="portletBottomLeft"></span>
                <span class="portletBottomRight"></span>
            </dd>
        </dl>
    
      </div>
    </body>
    </html>
    Alles anzeigen

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 26. Januar 2007 um 07:13
    • #17

    Mist jetzt kommt wieder nen Fehler

    Fehlertyp
    AttributeError

    Fehlerwert
    getPortalObject

    Anfrage erfolgte um
    2007/01/26 06:47:59.992 GMT+1

    Ohje das kann was werden^^ Trotzdem Danke

  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 26. Januar 2007 um 08:57
    • #18

    Ok ok - ich seh schon -> Ich muss mir das mxm-Dingenskirchen mal installieren.
    Wie hast du das bei dir gemacht?

    Dann dokter ich hier rum und poste das Portlet erneut.

    Torty

    "Carpe Diem" powered by positiv Feelings

  • Plone_N00b
    Azubi(ne)
    Beiträge
    42
    • 26. Januar 2007 um 09:08
    • #19

    ich habs direkt wie in der readme Datei gemacht so ich habs selbst mal probiert und ich kann jetz auf das Teil zugreifen aber ich kann mir nur die komplette ausgabe aufs portlet zaubern und nicht wie ich will die Seitennamen und die Klicks. ich poste mal nochn Screenshot zum Quellcode...

    Hier der Code

    HTML
    <html xmlns:tal="http://xml.zope.org/namespaces/tal" 
          xmlns:metal="http://xml.zope.org/namespaces/metal" 
          i18n:domain="plone"> 
    <body> 
      <div metal:define-macro="portlet" 
           tal:define="hitList python: path('here/mxm_counter/getSortedByHits')"> 
    
        <dl class="portlet" id="portlet-workflow-review"> 
            <dt class="portletHeader"> 
                <span class="portletTopLeft"></span> 
                <span i18n:translate="">Hitliste</span> 
                <span class="portletTopRight"></span> 
            </dt>        
            <tal:vars define="top5 python: [hitList[:5]];"
    		          repeat="hit top5">
    
    			<dd class="portletItem">
    	            <a href="#" 
    	                  tal:content="hit"> 
    	                  title of the page 
    	            </a>
    			</dd> 
    		</tal:vars>	
    	</dl>      
      </div> 
    </body> 
    </html>
    Alles anzeigen

    Wenn ich für die Ausgabe deinen Quellcode nehme, dann krieg ich TypeErrors mit "indeces can be only integer" oder so

    hier dann noch der Screenshot

    Bilder

    • hitliste.jpg
      • 12,03 kB
      • 290 × 173
  • Torty
    Kaiserliche Hoheit
    Beiträge
    1.558
    • 26. Januar 2007 um 12:27
    • #20

    So - nu hab ich's lokal richtig gestrickt und präsentiere die aktuelle Version:
    Try it and buy it ... äähhmmm ... try it and enjoy it - oder so ... *eyesroll*

    HTML
    <html xmlns:tal="http://xml.zope.org/namespaces/tal"
          xmlns:metal="http://xml.zope.org/namespaces/metal"
          i18n:domain="plone">
    <body>
      <div metal:define-macro="portlet"
           tal:define="utool      nocall: here/portal_url;
                       portal     utool/getPortalObject;
                       mxmCounter portal/mxm_counter;
                       hitList    mxmCounter/getSortedByHits;">
     
        <dl class="portlet" id="portlet-workflow-review">
            <dt class="portletHeader">
                <span class="portletTopLeft"></span>
                <span i18n:translate="">Site Statistic</span>
                <span class="portletTopRight"></span>
            </dt>
    
            <tal:hasHits condition="hitList">
              <tal:vars define="top5 python: hitList[:5];"
                        repeat="hit top5">
                <dd class="portletItem"
                    tal:define="oddrow repeat/hit/odd"
                    tal:attributes="class python:test(oddrow, 'portletItem even','portletItem odd')">
    
                  <div tal:define="hitObj python: here.restrictedTraverse(hit[0]);"
                       tal:attributes="class python:'visualIcon contenttype-' + normalizeString(hitObj.portal_type)">
                    <a href="#" class="visualIconPadding tile"
                       tal:condition="not: nothing"
                       tal:attributes="href string:${hitObj/absolute_url};
                                       title hitObj/Description;"
                       tal:content="string:${repeat/hit/number}. ${hitObj/Title}">
                      title of the page
                    </a>
                  </div>
    
                </dd>
              </tal:vars>
            </tal:hasHits>
    
            <tal:noHits condition="not: hitList">
              <span i18n:translate="">no hits found</span>
            </tal:noHits>
    
            <dd class="portletFooter">
    
                <span class="portletBottomLeft"></span>
                <span class="portletBottomRight"></span>
            </dd>
        </dl>
    
      </div>
    </body>
    </html>
    Alles anzeigen

    Torty

    "Carpe Diem" powered by positiv Feelings

    • 1
    • 2
    • 3

Tags

  • domain
  • www
  • html
  • link
  • http
  • code
  • org
  • page
  • daten
  • bot
  • div
  • google
  • entwickler
  • xml
  • header
  • root
  • produkte
  • public
  • python
  • zope
  • plone

Benutzer online in diesem Thema

  • 1 Besucher
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern