Subversion Repositories wimsdev

Rev

Rev 5921 | Rev 17228 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5921 Rev 15246
Line 1... Line 1...
1
<p>
1
<p>
2
Each wims module has a private home directory in which go all the files
2
  Each wims module has a private home directory in which go all the files
3
of this module. </p>
3
  of this module.
-
 
4
</p>
4
 
5
 
5
A module must have at least the following files:
6
A module must have at least the following files:
6
<ul>
7
<ul>
-
 
8
  <li>
7
$tit A variable definition file $emph var.def$emphend. $titend
9
    $tit A variable definition file $emph var.def$emphend. $titend
8
 This file defines $emph external$emphend variables of the module. A parameter given by the
10
    This file defines $emph external$emphend variables of the module. A parameter given by the
9
 user must have a name declared in this file, except parameter names reserved by
11
    user must have a name declared in this file, except parameter names reserved by
10
 wims (cmd, session, module, ...). And exactly variables declared in this
12
    wims (cmd, session, module, ...). And exactly variables declared in this
11
 file will be saved in the session directory (to be recalled at the next
13
    file will be saved in the session directory (to be recalled at the next
12
 request from the same session).
14
    request from the same session).
13
</li>
15
  </li><li>
14
$tit A variable processing file $emph var.proc$emphend.$titend
16
    $tit A variable processing file $emph var.proc$emphend.$titend
15
 This file is processed at EACH request of the module (except special
17
     This file is processed at EACH request of the module (except special
16
 requests: when cmd=intro or getins).
18
     requests: when cmd=intro or getins).
17
</li>
19
  </li><li>
18
$tit A main phtml file $emph main.phtml$emphend.$titend
20
    $tit A main phtml file $emph main.phtml$emphend.$titend
19
 This file will be processed at avery request to the module, except under
21
    This file will be processed at avery request to the module, except under
20
 special commands (when cmd=intro or getins).
22
    special commands (when cmd=intro or getins).
21
</li>
23
  </li><li>
22
$tit An indexing file $emph INDEX$emphend, which defines the application's nature.$titend
24
    $tit An indexing file $emph INDEX$emphend, which defines the application's nature.$titend
23
 This file will be used by wims database for searching available modules.
25
    This file will be used by wims database for searching available modules.
24
</li>
26
  </li>
25
</ul>
-
 
26
 
-
 
27
<p>
-
 
28
And it may often contain the following (optional) files too:
-
 
29
</p>
-
 
30
<ul>
-
 
31
$tit A variable initialisation file $emph var.init$emphend.$titend
-
 
32
 This file has the same syntax as the file $emph var.proc$emphend, and is processed
-
 
33
 exactly at requests with cmd=new or cmd=renew.
-
 
34
</li>
-
 
35
$tit A introductory page $emph intro.phtml$emphend.$titend
-
 
36
 This is a phtml file, which is processed when the module is
-
 
37
 accessed with cmd=intro. It is usually used to introduce the content of the
-
 
38
 module, and to let the user choose starting options.
-
 
39
</li>
-
 
40
</ul>
27
</ul>
41
 
28
 
-
 
29
<p>And it may often contain the following (optional) files too:</p>
-
 
30
<ul>
-
 
31
  <li>
-
 
32
    $tit A variable initialisation file $emph var.init$emphend.$titend
-
 
33
    This file has the same syntax as the file $emph var.proc$emphend, and is processed
-
 
34
    exactly at requests with cmd=new or cmd=renew.
-
 
35
  </li><li>
-
 
36
    $tit A introductory page $emph intro.phtml$emphend.$titend
-
 
37
    This is a phtml file, which is processed when the module is
-
 
38
    accessed with cmd=intro. It is usually used to introduce the content of the
-
 
39
    module, and to let the user choose starting options.
-
 
40
  </li>
-
 
41
</ul>
-
 
42
 
-
 
43
<p>
42
<p>There may be any number of other files, like a $emph README$emphend file, one or more
44
  There may be any number of other files, like a $emph README.md$emphend file, one or more
43
help pages, an $emph about$emphend page, one or more graphics files, files called by one
45
  help pages, an $emph about$emphend page, one or more graphics files, files called by one
44
of the above mandatory or optional files, etc.
46
  of the above mandatory or optional files, etc.
45
</p>
47
</p>
-
 
48
 
46
<hr/><h4>Variable processing files</h4>
49
<hr/><h4>Variable processing files</h4>
47
<p>
50
<p>
48
The files $emph var.init$emphend and $emph var.proc$emphend,
51
  The files $emph var.init$emphend and $emph var.proc$emphend,
49
as well as any files called by these two
52
  as well as any files called by these two
50
files, are variable processing files. </p><p>
53
  files, are variable processing files.
51
 
54
</p><p>
52
A variable processing file is divided into lines, separated by
55
  A variable processing file is divided into lines, separated by
53
non-escaped new-line characters. A new-line character can be escaped by the
56
  non-escaped new-line characters. A new-line character can be escaped by the
54
character $emph \$emphend, in which case it does not separate the two lines
57
  character $emph \$emphend, in which case it does not separate the two lines
55
before and after it.
58
  before and after it.
56
</p>
59
</p>
57
Every line of a variable processing file must be one of the following:
60
Every line of a variable processing file must be one of the following:
58
<ol>
61
<ol>
59
 <li>A comment line, whose first non-space character is either the character
62
  <li>A comment line, whose first non-space character is either the character
60
  $emph #$emphend, or $emph!$emphend followed by another $emph!$emphend.
63
    $emph #$emphend, or $emph!$emphend followed by another $emph!$emphend.
61
</li>
64
  </li>
62
 <li>A variable definition line, in the form of
65
  <li>A variable definition line, in the form of
63
  $emph name$emphend=$(emph)value$emphend. The content of
66
    $emph name$emphend=$(emph)value$emphend. The content of
64
  $(emph)value$emphend may be a string (if this string contains a new-line
67
    $(emph)value$emphend may be a string (if this string contains a new-line
65
  character, it must be escaped by the character $emph \$emphend), or a wims
68
    character, it must be escaped by the character $emph \$emphend), or a wims
66
  variable command (which must then start with the character $emph!$emphend).
69
    variable command (which must then start with the character $emph!$emphend).
67
</li>
70
  </li>
68
<li>A command line, whose first non-space character is the character
71
  <li>A command line, whose first non-space character is the character
69
  $emph!$emphend, followed by the command name and optional parameters.
72
    $emph!$emphend, followed by the command name and optional parameters.
70
  <br/>If the command produces an output string, this output will be ignored.
73
    <br/>If the command produces an output string, this output will be ignored.
71
</li>
74
  </li>
72
<li>A label line, whose first non-space character is the character
75
  <li>A label line, whose first non-space character is the character
73
  $emph:$emphend, followed by the name of the label. Anything following the
76
    $emph:$emphend, followed by the name of the label. Anything following the
74
  label name will be considered as comment and ignored by the interpreter.
77
    label name will be considered as comment and ignored by the interpreter.
75
  <br/>Label is used in conjunction with the jumping command
78
    <br/>Label is used in conjunction with the jumping command
76
  $emph!goto$emphend.
79
    $emph!goto$emphend.
77
  <br/>A label starting with the character '*' is catch-all, matching any  
80
    <br/>A label starting with the character '*' is catch-all, matching any
78
  $emph!goto$emphend label.
81
    $emph!goto$emphend label.
79
</li>
82
  </li>
-
 
83
  <li>
80
<li>Any line not fitting into one of the above 4 will generate a wims error
84
    Any line not fitting into one of the above 4 will generate a wims error
81
  message.
85
    message.
-
 
86
  </li>
82
</li></ol>
87
</ol>
83
 
88
 
84
<hr/><h4>Phtml files</h4>
89
<hr/><h4>Phtml files</h4>
85
<p>
90
<p>
86
The files main.phtml and intro.phtml, as well as any files called by these
91
  The files main.phtml and intro.phtml, as well as any files called by these
87
two files, are phtml files (programmable html).
92
  two files, are phtml files (programmable html).
88
</p><p>
93
</p><p>
89
A phtml file is an ordinary html file, except for lines whose
94
  A phtml file is an ordinary html file, except for lines whose
90
first non-space character is a $emph!$emphend or a $emph:$emphend.
95
  first non-space character is a $emph!$emphend or a $emph:$emphend.
91
</p><p>
96
</p><p>
92
Lines can be escaped by $emph\$emphend, just as in the case of a variable
97
  Lines can be escaped by $emph\$emphend, just as in the case of a variable
93
processing file.
98
  processing file.
94
</p><p>
99
</p><p>
95
A line starting with $emph:$emphend is a label line, as in the case of a
100
  A line starting with $emph:$emphend is a label line, as in the case of a
96
variable processing file.
101
  variable processing file.
97
</p><p>
102
</p><p>
98
A line starting with $emph!$emphend is a command line, as in the case of a
103
  A line starting with $emph!$emphend is a command line, as in the case of a
99
variable processing file. To the difference that if the command produces an
104
  variable processing file. To the difference that if the command produces an
100
output string, this output will be inserted into the html page, at the place
105
  output string, this output will be inserted into the html page, at the place
101
of the line.
106
  of the line.
102
</p><p>
107
</p><p>
103
Lines not of the above two types will be sent to the http client, after
108
  Lines not of the above two types will be sent to the http client, after
104
substitution of variables.
109
  substitution of variables.
105
</p>
110
</p>
106
 
-
 
107
 
-
 
108
 
-