56 lines
1.6 KiB
Plaintext
56 lines
1.6 KiB
Plaintext
<page xmlns="http://projectmallard.org/1.0/"
|
||
type="topic" id="dev-scripts" xml:lang="fr">
|
||
|
||
<info>
|
||
<link type="guide" xref="index#dev" />
|
||
<revision docversion="0.1" date="2016-08-12" status="draft"/>
|
||
<credit type="author">
|
||
<name>Frédéric Péters</name>
|
||
<email>fpeters@entrouvert.com</email>
|
||
</credit>
|
||
<desc>Utilisation de scripts externes dans les calculs</desc>
|
||
|
||
</info>
|
||
|
||
<title>Scripts externes</title>
|
||
|
||
<p>
|
||
Il est possible d'étendre les capacités des champs calculés et des expressions
|
||
utilisées dans les gabarits au moyen de scripts externes. Pour cela il suffit
|
||
de déposer dans le répertoire système du site, dans un sous-répertoire
|
||
<code>scripts</code>, un fichier Python, dont le résultat doit être posé dans
|
||
une variable nommée <code>result</code>.
|
||
</p>
|
||
|
||
<p>
|
||
Par exemple <file>/var/lib/wcs/www.example.net/scripts/hello.py</file> pourrait
|
||
être créé avec le contenu suivant :
|
||
</p>
|
||
|
||
<code mime="text/python">
|
||
"""
|
||
Salue l'usager (quand un nom est en argument), ou le monde.
|
||
"""
|
||
if args:
|
||
result = "Hello %s" % args[0]
|
||
else:
|
||
result = "Hello world"
|
||
</code>
|
||
|
||
<p>
|
||
Dans un champ calculé, cela serait appelé comme <code>script.hello()</code> ou
|
||
<code>script.hello('earth')</code>; dans un gabarit, il n'y a pas de prise en
|
||
charge des arguments, la seule utilisation possible est
|
||
<code>{{script.hello}}</code>.
|
||
</p>
|
||
|
||
<note>
|
||
<p>
|
||
Il est également possible de placer ces scripts dans un sous-répertoire
|
||
<code>scripts</code> du répertoire général des instances, pour rendre ceux-ci
|
||
disponibles depuis l'ensemble des instances.
|
||
</p>
|
||
</note>
|
||
|
||
</page>
|