« October 2018 »
October
MoTuWeThFrSaSu
1234567
891011121314
15161718192021
22232425262728
293031

Skip to content. | Skip to navigation

Dipl. Inform. Roman Jansen-Winkeln

Personal tools

You are here: Home / Übungen / Übungen Teil 3: Skripte und Formulare

Navigation

Übungen Teil 3: Skripte und Formulare

In diesem Übungsplatt geht es darum, Leben in unser CMS zu bringen.

Aufgabe 8

Arbeitsplatz ist wieder unser Ordner http://localhost:8080/Plone/ebooks und das ZMI (Zope Management Interface).

Nutzen Sie die Funktion "Add" und legen Sie ein neues "Script (Python)" an. Nennen Sie das Script "filterBooks". Das Script hat 1 Parameter namens "genre". Implementieren Sie in filterBooks folgenden Algorithmus:

  1. Finden Sie alle Elemente in diesem Verzeichnis. Prüfen Sie, ob im Element ein Keyword (.Subject()) dem Genre entspricht oder ob das Genre im Titel (.Title) enthalten ist.
  2. Sammeln Sie von allen Elementen, die eine der beiden Bedingungen erfüllen, folgende Bestandteile getId, Title, Description, absolute_url (getURL) in einem Dictionary. Sammeln Sie alle Dictionaries in einer Liste.
  3. [Option: sortieren Sie die Liste mit Pythons "sort"-Funktion alphabetisch nach dem Titel. Zusätzlicher Skript-Parameter ob auf- oder absteigend; Default absteigend.]
  4. Der Rückgabewert des Scriptes ist die [sortierte] Liste mit Dictionaries.

Nehmen Sie das Grundgerüst des "showBookList"-Page-Templates aus Aufgabe 7 (Übung 2) und bauen Sie dort an Stelle von "objectValues" Ihr Script "filterBooks" ein. Nutzen Sie den Trick aus, dass sie mit TALES direkt auf Dictionary-Keys zugreifen können. Beispiel: wenn book = {'id':5} ist, dann liefert book/id in TALES das Ergebnis 5.

Lesen Sie hilfreiche Tipps inder (stellenweise recht komplexen) Doku http://docs.plone.org/develop/plone/content/listing.html

Aufgabe 9

Legen Sie mit Formgen ein Formular an und kombinieren Sie es mit dem Script/Template aus Aufgabe 8.

  1. Im Formular fragen Sie Werte für "pattern" und die Sortierordnung ab.
  2. Rufen Sie Ihr Script aus Aufgabe 8 als Script-Adapter auf.
  3. Merken Sie sich das Ergebnis in request.SESSION[...] dauerhaft.
  4. Verwenden Sie das List-Page-Template als "Thank-You"-Page.
    Greifen Sie darin auf das gespeicherte Ergebnis in der SESSION zu und stellen sie es dar.

Oder versuchen Sie es anders zu kombinieren. Wichtig: Vorne Formular, Parameter rein; hinten Page-Template, gefilterte Liste raus.

Tipps zu PloneFormGen finden Sie hier:

This is Schools Diazo Plone Theme