Wie kann man ein Glossar im Portal einrichten?
Als Vorbereitung soll ein Python Skript angelegt werden.
Wechseln Sie zur Zope-Management
navigieren Sie sich zu "portal_skins/c
Wählen Sie "Script (Python)" aus dem drop-down Menü aus und "Add" klicken.
Als "Id" muss hier
glossaryListFirstCharacter
angegeben werden, dann "Add and Edit" klicken.
In der nächsten Seite sollen die folgenden Felder gefüllt werden:
Title:
first characters in glossary
Parameter List:
list
Inhalt vom Skript:
firstchars = [] for item in list : firstc = item['Title'][0].upper() if firstc not in firstchars: firstchars.appe nd(firstc) return firstchars
Und klicken Sie auf "Save Changes"
Dann kehren Sie zur Plone Ansicht zurück.
Bitte legen Sie zuerst einen Ordner mit dem Namen z.B. "Glossar" an. In diesem Ordner müssen sowohl alle Glossar Einträge als auch die Indexseite
gelagert werden.
Direkt unter diesem Ordner legen Sie ein "Dynamic Document" an. Dieses Objekt dient als Index vom Glossar. Kurzname und Titel sind beliebig auswählbar.
<tal:indexall define="resultspython:context. getFolderConten ts(contentFilte r={'portal_type ':'Document','S ubject':['Gloss ar']}); results python:list(res ults); sort python:results. sort(lambda a,b: cmp(a.Title.upp er(), b.Title.upper() )); number python:len(resu lts); DateTime python:modules[ 'DateTime'].Dat eTime; desc_length site_properties /search_results _description_le ngth; desc_ellipsis site_properties /ellipsis;" > <fieldset> <legend i18n:translate= "legend_glossar y_a-z">A - Z</legend> <tal:indexprepa re define="firstch ars python:here.glo ssaryListFirstC haracter(result s)"> <tal:indexbuild repeat="firstch ar firstchars"> <b><a href="#" tal:attributes= "href string:#$firstc har" tal:content="st ructure firstchar" /></b> <span tal:condition=" not: repeat/firstcha r/end"> | </span> </tal:indexbuil d> </tal:indexprep are> </fieldset> <dl> <tal:results repeat="result results" define="firstch ar python:''; firstchar python:list(fir stchar)"> <tal:entry define="url result/getURL; firstc python:result[' Title'][0].uppe r()"> <div tal:condition=" python:firstc not in firstchar"> <tal:appendchar define="firstch ar python:firstcha r.append(firstc )" /> <div class="toplink" tal:condition=" not: repeat/result/s tart"><a href="#top">top </a></div> <h2><a name="#" tal:attributes= "name firstc" tal:content="fi rstc" /> </h2><br /> </div> <dt> <a href="#" tal:attributes= "href url"> <img src="#" height="16" width="16" alt="" tal:on-error="s tructure python:path('he re/linkOpaque.g if')" tal:replace="st ructure python:path('he re/%s' % result.getIcon) " /> </a> <a href="#" tal:attributes= "href url" tal:content="py thon:result.Tit le or result.getId" /> <span class="discreet " i18n:translate= "results_by_aut hor" tal:condition=" python: checkPermission ('Review portal content', here)"> by <span tal:replace="re sult/Creator" i18n:name="auth or">Author</spa n>, <span tal:replace="python:here.toLocalizedTime(result.ModificationDate)" i18n:name="date ">Modification Date</span> </span> </dt> <dd tal:content="py thon:here.cropT ext(result.Desc ription, desc_length, desc_ellipsis)" > Description </dd> </tal:entry> </tal:results> </dl> </tal:indexall>
Dieses Dynamic Document Objekt kann als Standardansicht
Alle Glossar Einträge können nur als normale "Seite" angelegt werden. Dabei muss "Glossar" als Stichwort von dieser Seite ausgewählt sein. Dass kann man unter "Eigenschaften"
In der Indexseite werden nur die Seite mit diesem Stichwort "Glossar" aufgelistet.