Uni-Logo
Sektionen
Sie sind hier: Startseite FAQ Glossar
Artikelaktionen

Wie kann man ein Glossar im Portal einrichten?

Als Vorbereitung soll ein Python Skript angelegt werden.
Wechseln Sie zur Zope-Management-Oberfläche (ZMI) unter "Konfiguration" und
navigieren Sie sich zu "portal_skins/custom".
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.append(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="results python:context.getFolderContents(contentFilter={'portal_type':'Document','Subject':['Glossar']});
                      results python:list(results);
                      sort python:results.sort(lambda a,b: cmp(a.Title.upper(), b.Title.upper()));
                      number python:len(results);
                      DateTime python:modules['DateTime'].DateTime;
                      desc_length site_properties/search_results_description_length;
                      desc_ellipsis site_properties/ellipsis;" 
                      >
    <fieldset>
        <legend i18n:translate="legend_glossary_a-z">A - Z</legend>

        <tal:indexprepare define="firstchars python:here.glossaryListFirstCharacter(results)">
            <tal:indexbuild repeat="firstchar firstchars">
                <b><a href="#" tal:attributes="href string:#$firstchar"
                               tal:content="structure firstchar" /></b>
                <span tal:condition="not: repeat/firstchar/end"> | </span>
            </tal:indexbuild>
        </tal:indexprepare>

    </fieldset>
    <dl>
        <tal:results repeat="result results"
                     define="firstchar python:'';
                             firstchar python:list(firstchar)">
            <tal:entry define="url result/getURL;
                               firstc python:result['Title'][0].upper()">
                <div tal:condition="python:firstc not in firstchar">
                    <tal:appendchar define="firstchar python:firstchar.append(firstc)" />
                    <div class="toplink" tal:condition="not: repeat/result/start"><a href="#top">top</a></div>
                    <h2><a name="#" tal:attributes="name firstc" 
                                    tal:content="firstc" />
                    </h2><br />
                </div>                
                <dt>
                    <a href="#"
                       tal:attributes="href url">
                        <img src="#"
                             height="16"
                             width="16"
                             alt=""
                             tal:on-error="structure python:path('here/linkOpaque.gif')"
                             tal:replace="structure python:path('here/%s' % result.getIcon)" />
                    </a>&nbsp;
                    <a href="#" tal:attributes="href url"
                       tal:content="python:result.Title or result.getId" />
                   
                    <span class="discreet" i18n:translate="results_by_author"
                       tal:condition="python: checkPermission('Review portal content', here)">
                        by <span tal:replace="result/Creator" i18n:name="author">Author</span>,
                        <span tal:replace="python:here.toLocalizedTime(result.ModificationDate)" i18n:name="date">Modification Date</span>
                    </span>

                </dt>
            
                <dd tal:content="python:here.cropText(result.Description, desc_length, desc_ellipsis)">
                Description </dd>

            </tal:entry>
        </tal:results>
    </dl>
</tal:indexall>

 Dieses Dynamic Document Objekt kann als Standardansicht vom "Glossar" Ordner ausgewählt werden.

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" einstellen.

In der Indexseite werden nur die Seite mit diesem Stichwort "Glossar" aufgelistet.

26.10.2010 14:37
Benutzerspezifische Werkzeuge