Project

General

Profile

1
QuickSkin Control Structures (Used within templates)
2

    
3
Control Structure - IF
4

    
5
  The if ... endif construct facilitates the conditional presentation of template fragments.
6

    
7
  The syntax can be one of the following:
8

    
9
  <!-- IF var --> var is not empty! <!-- ENDIF var -->
10
  <!-- IF name=='John Doe' --> Your name is John Doe! <!-- ENDIF name -->
11
  <!-- IF name!='John Doe' --> Your name is not John Doe! <!-- ENDIF name -->
12

    
13
  A variable can be used as right part of the IF clause using the folloging syntax:
14

    
15
  <!-- IF name=variablename --> Your name match with {variablename} <!-- ENDIF name -->
16
  <!-- IF name!=top.variablename --> Your name doesn't match with {top.variablename} <!-- ENDIF name -->
17

    
18
  * (var after ENDIF is optional)
19
  * the 'var' comes from your PHP code
20
  * IF/ELSE/ELSEIF control structures can be nested in other IF or LOOP control structures
21

    
22
Control Structure - ELSE
23

    
24
  The else construct extends an if construct to display a template fragment in case the
25
  expression in the if statement evaluates to FALSE.
26

    
27
  <!-- IF usergroup="ADMIN" -->
28
  <a href="admin.php"> ADMIN Login </a><br />
29
  <!-- ELSE -->
30
  You are in guest mode!<br />
31
  <!-- ENDIF usergroup -->
32

    
33
  * (var after ENDIF is optional)
34
  * the 'var' comes from your PHP code
35
  * IF/ELSE/ELSEIF control structures can be nested in other IF or LOOP control structures
36

    
37
Control Structure - ELSEIF
38

    
39
  The elseif construct is a combination of an else and if construct.
40

    
41
  <!-- IF usergroup="ADMIN" -->
42
  <a href="admin.php"> Admin Staff Login </a><br />
43
  <!-- ELSEIF usergroup="SUPPORT" -->
44
  <a href="support.php"> Support Staff Login </a><br />
45
  <!-- ELSEIF usergroup -->
46
  <a href="other.php"> Standard Login </a><br />
47
  <!-- ELSE -->
48
  You don't even have a usergroup!
49
  <!-- ENDIF -->
50

    
51
  * (var after ENDIF is optional)
52
  * the 'var' comes from your PHP code
53
  * IF/ELSE/ELSEIF control structures can be nested in other IF or LOOP control structures
54

    
55
Control Structure - LOOP ... ENDLOOP
56

    
57
  The loop ... endloop construct facilitates a way to iterate through numeric arrays.
58
  Each element of the numeric array is expected to be an associative array and is used
59
  to parse the template fragment that is embedded between the
60
  <!-- LOOP --> and <!-- ENDLOOP -->
61
  tags like it was a small template itself.
62
  
63
  Each associative array is expanded by the following two additional elements:
64
  
65
  ROWCNT : The actual position of this element within the parent array. (0,1,2,3,...n)
66
  ROWBIT : The least significant bit of ROWCNT. (0,1,0,1,0,1,...)
67
  
68
  loop ... endloop blocks can easily be nested and parsed recursivly.
69
  
70
  Example, assuming this code precedes in your PHP:
71
  
72
  $users = array(
73
             array( 'NAME' => 'John Doe',   'GROUP' => 'ADMIN' ),
74
             array( 'NAME' => 'Jack Doe',   'GROUP' => 'SUPPORT' ),
75
             array( 'NAME' => 'James Doe',  'GROUP' => 'GUEST' ),
76
             array( 'NAME' => 'Jane Doe',   'GROUP' => 'GUEST' ),
77
           );
78
  $page->assign( 'users',  $users );
79
  
80
  The template, then, would contain:
81

    
82
  <style type="text/css">
83
    .col0 { background-color: #D0D0D0; }
84
    .col1 { background-color: #F0F0F0; }
85
  </style>
86
  <table border="1" cellpadding="2" cellspacing="0">
87
    <tr>
88
      <th>No.</th>
89
      <th>Username</th>
90
      <th>Usergroup</th>
91
    </tr>
92
    <!-- LOOP users -->
93
    <tr class="col{ROWBIT}">
94
      <td>{ROWCNT}</td>
95
      <td>{NAME}</td>
96
      <td>{GROUP}</td>
97
    </tr>
98
    <!-- ENDLOOP users -->
99
  </table>
100

    
101
  * (var after ENDLOOP is optional)
102
  * the 'var' comes from your PHP code
103
  * IF/ELSE/ELSEIF control structures can be nested in other IF or LOOP control structures
104
  * LOOP/ENDLOOP control structures can be nested in other IF or LOOP control structures
105

    
106
Control Structure - INCLUDE
107

    
108
  While not a true Control Structure, the INCLUDE directive loads external data, in place, in your template.
109

    
110
  Templates can be included in other templates by using the INCLUDE statement.
111
  All functionality available to the main template is also available to the sub template
112
  (variable substitution, etc.). This permit the use of subtemplating.
113

    
114
  The syntax is:
115

    
116
  <!-- INCLUDE templatename.html --> 
117
  
118
  * file to include is in the template directory (default '_skins/')
119
  * similar to the method $page->addtpl() ... difference is that 'addtpl' stores the data 
120
    in a variable that then gets assigned ('$page->assign()') within the main template
121

    
122
  
(2-2/6)