Willkommen auf dem TF-Infoportal Wiki.

Hier finden Sie alle Informationen über das TF-Infoportal, das Support-System OTRS und das Electures-Portal an der Technischen Fakultät.
Eine globale Navigation finden Sie im Menu links, zur Startseite geht es hier.

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tf-infoportal:dokumentation:plone:plone-erweiterte-projektliste-nach-stichwort [2012/09/20 16:21] – 2 ch59tf-infoportal:dokumentation:plone:plone-erweiterte-projektliste-nach-stichwort [2013/11/04 15:47] (aktuell) ch59
Zeile 1: Zeile 1:
-====== Projektliste nach parametrisierbarem Stichwort filtern (XSLTrans, Dynamic Documents) ======+====== Projektliste nach parametrisierbarem Stichwort filtern (XSLTrans, Dynamic Documents) (ALT) ======
 Vorausgesetzte Kenntnisse: HTML, TAL, Python Vorausgesetzte Kenntnisse: HTML, TAL, Python
  
-Im folgenden wird ein Workaround vorgestellt, mit dem es möglich ist, mit Hilfe eines XSLTrans Dokuments, sowie eines Dynamic Documents Projektlisten auszugeben, die mittels eines Parameters (keywords) nach dem Stichwort in der Forschungsdatenbank gefiltert werden können.+Im folgenden wird ein Workaround vorgestellt, mit dem es möglich ist, mit Hilfe eines XSLTrans Dokuments, sowie eines Dynamic Documents Projektlisten auszugeben, die mittels eines Parameters (''keyword'') nach dem Stichwort in der Forschungsdatenbank gefiltert werden können.
  
 Zuerst muss man wie üblich ein XSLTrans Dokument anlegen mit den üblichen Parametern, um eine Projektliste auszugeben. Zuerst muss man wie üblich ein XSLTrans Dokument anlegen mit den üblichen Parametern, um eine Projektliste auszugeben.
Zeile 19: Zeile 19:
       <div tal:define='additionalparams python:(str("LfdNr=") + projectid,str("xql=Stichwort~~\"") + keyword + str("*\""))[len(projectid) == 0]'>       <div tal:define='additionalparams python:(str("LfdNr=") + projectid,str("xql=Stichwort~~\"") + keyword + str("*\""))[len(projectid) == 0]'>
  <!-- Comment in to show debug output <div tal:content="python:str(additionalparams)">XQL goes here</div>-->  <!-- Comment in to show debug output <div tal:content="python:str(additionalparams)">XQL goes here</div>-->
- <div tal:define='Parameters python:("image_float=right","Ausgabeart=xml", "Sprache=D", "dokumentart=Projekt", "Kostenstelle=" + kostenstelle, "Lfdnr=" + projectid, "language=D", "image_float=right", additionalparams); foo python:context.xsltrans_master_forschungsthemen.setParam(Parameters)'> + <div tal:define='Parameters python:("Jahr=alle", "Ausgabeart=xml", "Sprache=D", "dokumentart=Projekt", "Kostenstelle=" + kostenstelle, "Lfdnr=" + projectid, "language=D", "image_float=right", additionalparams); foo python:context.xsltrans_master_forschungsthemen.setParam(Parameters)'> 
    <div tal:content="structure python:context.xsltrans_master_forschungsthemen.get_result()" />     <div tal:content="structure python:context.xsltrans_master_forschungsthemen.get_result()" /> 
  </div>   </div> 
  <!-- reset der Parameter von xsltrans -->   <!-- reset der Parameter von xsltrans --> 
- <div tal:define='Parameters python:("image_float=right","Ausgabeart=xml", "Sprache=D", "dokumentart=Projekt", "Kostenstelle=" + kostenstelle, "language=D", "image_float=right"); foo python:context.xsltrans_master_forschungsthemen.setParam(Parameters)' />+ <div tal:define='Parameters python:("Jahr=alle", "Ausgabeart=xml", "Sprache=D", "dokumentart=Projekt", "Kostenstelle=" + kostenstelle, "language=D", "image_float=right"); foo python:context.xsltrans_master_forschungsthemen.setParam(Parameters)' />
       </div>        </div> 
     </div>     </div>
Zeile 57: Zeile 57:
 oder eben ein spezifisches Projekt ausgeben: oder eben ein spezifisches Projekt ausgeben:
 <code python>str("LfdNr=") + projectid</code> <code python>str("LfdNr=") + projectid</code>
 +
 +Weiterer Trick: Wir ergänzen hier an dieser Stelle bei der Stichwortabfrage noch einen ''*'' nach dem ''keyword'', falls kein Stichwort übergeben wurde, wird dann die Liste aller Projekte ausgegeben, anstatt keines. Damit das funktioniert, verwenden wir an dieser Stelle im HTML single Quotes, anstatt der Double Quotes, damit das Escapen einfacher wird, da wir für die Forschungsdatenbank ''xql=Stichwort~~"<Stichwort>"'' und nicht ''xql=Stichwort~~<Stichwort>'' übergeben müssen.
  
 Das kombinieren wir jetzt mit unserer Bedingung und unserem Array-Trick: Das kombinieren wir jetzt mit unserer Bedingung und unserem Array-Trick:
Zeile 69: Zeile 71:
  
 Damit kann dann in den Parametern der zusätzliche Parameter ''additionalparams'' eingebaut werden, der entweder das Stichwort abfragt, oder eben ein bestimmtes Projekt. Damit kann dann in den Parametern der zusätzliche Parameter ''additionalparams'' eingebaut werden, der entweder das Stichwort abfragt, oder eben ein bestimmtes Projekt.
 +
 +Jetzt kann dann das Dynamic Document (nennen wir es ''forschungsthema-details-nach-stichwort'') mit folgenden Parameterkombinationen aufrufen: ''forschungsthema-details-nach-stichwort?keyword=Brennstoffzellen'' oder auch ''forschungsthema-details-nach-stichwort?projectId=8076''. Somit kann man auf einer HTML-Seite dann die erstgenannten Links einbindungen und Ergebnislisten, gefiltert nach Stichwort ausgeben.
  
  --- //[[hermann@informatik.uni-freiburg.de|Christoph Hermann]] 2012/09/20 16:20//  --- //[[hermann@informatik.uni-freiburg.de|Christoph Hermann]] 2012/09/20 16:20//
  
 {{tag>techniker plone tf-infoportal xsltrans parameter}} {{tag>techniker plone tf-infoportal xsltrans parameter}}
QR-Code
QR-Code tf-infoportal:dokumentation:plone:plone-erweiterte-projektliste-nach-stichwort (erstellt für aktuelle Seite)