whoops
[mir.git] / etc / producer / producers.xml
1 <!--
2   This XML file defines a set of producers intended for a typical indymedia 
3   site:
4     - a start page
5     - a navigational bar
6     - topic pages
7     - a newswire archive
8     - a feature archive
9     - articles
10     - media
11 -->  
12
13 <producers>
14   <nodedefinition name="Language">
15     <parameters>
16       <string name="languagecondition" defaultvalue=""/>
17       <string name="bundle" defaultvalue="bundles.producer" />
18       <node name="sub"/>    
19     </parameters>
20
21     <definition>
22       <List key="languages" table="language" selection="${languagecondition}" order="code"/>
23       <Enumerate key="language" table="language" selection="${languagecondition}" order="code">
24         <Resource bundle="${bundle}" key="lang" language="${language.code}"/>
25         <Define key="pathprefix" value="${language.code}" />
26         <sub/>
27       </Enumerate>
28     </definition>
29   </nodedefinition>
30  
31   <producer name="articles">
32     <verbs>
33       <verb name="changed" default="1">
34         <Define key="verbcondition" value="(not is_produced)"/>
35         <Set key="limit" value="10"/>
36       </verb>
37       <verb name="all">
38         <Define key="verbcondition" value=""/>
39         <Set key="limit" value="-1"/>
40       </verb>
41
42       <verb name="sample">
43         <Define key="verbcondition" value=""/>
44         <Set key="limit" value="10"/>
45       </verb>
46     </verbs>
47     <body>
48       <Enumerate key="article" table="content" selection="${verbcondition}"
49                   limit="limit" order="webdb_create desc">
50         <If condition="article.is_published == '1'">
51           <then>
52             <Language>
53               <Generate 
54                 generator="/article.template" 
55                 destination="${config.storageRoot}/${pathprefix}/${article.date.formatted.yyyy}/${article.date.formatted.MM}/${article.id}.shtml"/>
56
57     <!-- commented out features
58     
59               <PDFPreFormat 
60                 key="article" 
61                 numLinesBetweenImages="3" 
62                 charWidthCM="0.19" 
63                 pixelWidthCM="0.035"
64                 contentAreaWidthCM="16" 
65                 lineHeightCM="0.5" />
66               <Generate 
67                 generator="/printablecontent.template" 
68                 destination="${config.storageRoot}/${pathprefix}/${article.date.formatted.yyyy}/${article.date.formatted.MM}/${article.id}.fo"
69                 parameters="UTF-8" />
70               <PDFGenerate
71                 generator="${config.storageRoot}/${pathprefix}/${article.date.formatted.yyyy}/${article.date.formatted.MM}/${article.id}.fo"
72                 destination="${config.storageRoot}/${pathprefix}/${article.date.formatted.yyyy}/${article.date.formatted.MM}/${article.id}.pdf"
73                 stylesheet="${config['Producer.HTML2FOStyleSheet']}" /> 
74                 
75       -->
76                 
77              </Language>
78              <IndexContent key="article" pathToIndex="${config['IndexPath']}"/>
79           </then>
80           <else>
81             <UnIndexContent key="article" pathToIndex="${config['IndexPath']}"/>
82           </else>
83         </If>
84         <MarkContent key="article"/>            
85       </Enumerate>
86     </body>
87   </producer>  
88
89   <producer name="navigation">
90     <verbs>
91       <verb name="generate" default="1" description="generates the left column"/>
92     </verbs>
93     <body>
94       <Language>
95         <Generate 
96             generator="/navigation.template" 
97             destination="${config.storageRoot}/${pathprefix}/navigation.inc"/>
98       </Language>
99     </body>
100   </producer>
101   
102   <producer name="staticimages">
103     <verbs>
104       <verb name="generate" default="1" description="copies all the static image files into place"/>
105     </verbs>
106     <body>
107       <CopyDir destination="img" source="etc/producer/images"/>
108     </body>
109   </producer>
110   
111   <producer name="newswirearchive">
112     <verbs>
113       <verb name="new">
114         <Set key="pages" value="3"/>
115       </verb>
116       <verb name="all">
117         <Set key="pages" value="-1"/>
118       </verb>
119     </verbs>
120     <body>
121         <Define key="docSuffix" value=".shtml"/>
122         <Define key="storageSuffix" value=".shtml"/>
123
124         <Batch key="articles" infokey="batch" table="content"
125                process="pages" batchsize="20" minbatchsize="10"
126                selection="is_published='1' and to_article_type = ${articletype.newswire}"
127                order="webdb_create asc">
128           <batches>
129             <Language>
130               <Define key="pagePrefix" value="${pathprefix}/newswire/archive"/>
131               <Define key="storagePrefix" value="${config[&quot;Producer.StorageRoot&quot;]}/${pagePrefix}"/>
132               <Define key="docPrefix" value="${config[&quot;Producer.DocRoot&quot;]}/${pagePrefix}"/>
133
134               <Generate
135                   generator="newswirearchive.template"
136                   destination="${storagePrefix}${batch.current.identifier}${storageSuffix}"/>
137
138             </Language>
139           </batches>
140           <batchlist>
141             <Language>
142               <Define key="pagePrefix" value="${pathprefix}/newswire/archive"/>
143               <Define key="storagePrefix" value="${config[&quot;Producer.StorageRoot&quot;]}/${pagePrefix}"/>
144               <Define key="docPrefix" value="${config[&quot;Producer.DocRoot&quot;]}/${pagePrefix}"/>
145               <Generate
146                   generator="batchnav.template"
147                   destination="${storagePrefix}nav${storageSuffix}"/>
148             </Language>
149           </batchlist>
150         </Batch>
151     </body>
152   </producer>
153
154   <producer name="featurearchive">
155     <verbs>
156       <verb name="new">
157         <Set key="pages" value="3"/>
158       </verb>
159       <verb name="all">
160         <Set key="pages" value="-1"/>
161       </verb> 
162     </verbs>
163     <body>
164         <Define key="docSuffix" value=".shtml"/>
165         <Define key="storageSuffix" value=".shtml"/>
166         
167         <Batch key="articles" infokey="batch" table="content" 
168                process="pages" batchsize="20" minbatchsize="10"
169                selection="is_published='1' and to_article_type in (${articletype.feature}, ${articletype.startspecial})"
170                order="webdb_create asc">
171           <batches>
172             <Language>
173               <Define key="pagePrefix" value="${pathprefix}/feature/archive"/>
174               <Define key="storagePrefix" value="${config[&quot;Producer.StorageRoot&quot;]}/${pagePrefix}"/>
175               <Define key="docPrefix" value="${config[&quot;Producer.DocRoot&quot;]}/${pagePrefix}"/>
176
177               <Generate 
178                   generator="featurearchive.template" 
179                   destination="${storagePrefix}${batch.current.identifier}${storageSuffix}"/>
180
181             </Language>
182           </batches>
183           <batchlist>
184             <Language>
185               <Define key="pagePrefix" value="${pathprefix}/feature/archive"/>
186               <Define key="storagePrefix" value="${config[&quot;Producer.StorageRoot&quot;]}/${pagePrefix}"/>
187               <Define key="docPrefix" value="${config[&quot;Producer.DocRoot&quot;]}/${pagePrefix}"/>
188               <Generate 
189                   generator="batchnav.template" 
190                   destination="${storagePrefix}nav${storageSuffix}"/>
191             </Language>
192           </batchlist>
193         </Batch>
194     </body>
195   </producer>
196
197   <producer name="topicpages">
198     <verbs>
199       <verb name="new">
200         <Set key="_topics" value="-1"/>
201         <Set key="pages" value="3"/>
202       </verb>
203       <verb name="all">
204         <Set key="_topics" value="-1"/>
205         <Set key="pages" value="-1"/>
206       </verb> 
207       <verb name="sample">
208         <Set key="_topics" value="2"/>
209         <Set key="pages" value="4"/>
210       </verb> 
211     </verbs>
212     <body>
213       <Enumerate key="topic" table="topic" limit="_topics">
214         <Define key="docSuffix" value=".shtml"/>
215         <Define key="storageSuffix" value=".shtml"/>
216         
217         <List key="special" table="content c" 
218           selection="c.is_published='1' and c.to_article_type = ${articletype.topicspecial} and c.id=cxt.content_id and cxt.topic_id = ${topic.id}"
219           order = "webdb_create desc" limit="1"
220           extratables="content_x_topic cxt"/>
221       
222         <Batch key="articles" infokey="batch" table="content c" 
223                process="pages" batchsize="20" minbatchsize="10"
224                selection="c.is_published='1' and c.to_article_type in (${articletype.newswire}, ${articletype.feature}) and c.id=cxt.content_id and cxt.topic_id = ${topic.id}"
225                order="webdb_create asc" extratables="content_x_topic cxt">
226           <batches>
227             <Language>
228               <Define key="pagePrefix" value="${pathprefix}/${topic.filename}/archive"/>
229               <Define key="storagePrefix" value="${config[&quot;Producer.StorageRoot&quot;]}/${pagePrefix}"/>
230               <Define key="docPrefix" value="${config[&quot;Producer.DocRoot&quot;]}/${pagePrefix}"/>
231
232               <Generate 
233                   generator="topicpage.template" 
234                   destination="${storagePrefix}${batch.current.identifier}${storageSuffix}"/>
235
236             </Language>
237           </batches>
238           <batchlist>
239             <Language>
240               <Define key="pagePrefix" value="${pathprefix}/${topic.filename}/archive"/>
241               <Define key="storagePrefix" value="${config[&quot;Producer.StorageRoot&quot;]}/${pagePrefix}"/>
242               <Define key="docPrefix" value="${config[&quot;Producer.DocRoot&quot;]}/${pagePrefix}"/>
243               <Generate 
244                   generator="batchnav.template" 
245                   destination="${storagePrefix}nav${storageSuffix}"/>
246             </Language>
247           </batchlist>
248         </Batch>
249       </Enumerate>
250     </body>
251   </producer>
252   
253   <producer name="startpage">
254     <verbs>
255       <verb name="generate" default="1" description="Generates the startpage"/>
256     </verbs>
257
258     <body>
259       <List key="startspecial" table="content" limit="1"
260         selection="is_published=true and to_article_type=${articletype.startspecial}"
261         order="webdb_create desc"/>
262                                         
263       <List key="features" table="content" limit="10" 
264         selection="is_published=true and to_article_type=${articletype.feature}"
265         order="webdb_create desc"/>
266
267       <List key="newswire" table="content" limit="30"
268         selection="is_published=true and to_article_type=${articletype.newswire}"
269         order="webdb_create desc"/>
270         
271       <List key="breakingnews" table="breakingNews" limit="10"
272          order="webdb_create desc"/>
273         
274       <Language>
275         <Generate 
276             generator="/startpage.template" 
277             destination="${config.storageRoot}/${pathprefix}/index.shtml"/>
278       </Language>
279     </body>
280   </producer>  
281   
282   <producer name="synchronization">
283     <verbs>
284       <verb name="run" default="1" description="Synchronizes the publication site with the production site"/>
285     </verbs>
286
287     <body>
288       <If condition="config['Rsync'] in ('1', 'y', 'yes', 'Y')">
289         <then>
290           <Execute command="${config['Rsync.Script.Path']}"/>
291         </then>
292       </If>
293     </body>
294   </producer>  
295   
296   
297   <producer name="media">
298     <verbs>
299       <verb name="new" default="1">
300         <Define key="verbcondition" value="(not is_produced)"/>
301         <Set key="limit" value="10"/>
302       </verb>
303       <verb name="all">
304         <Define key="verbcondition" value=""/>
305         <Set key="limit" value="-1"/>
306       </verb>
307
308       <verb name="sample">
309         <Define key="verbcondition" value=""/>
310         <Set key="limit" value="10"/>
311       </verb>
312     </verbs>
313     <body>
314       <Enumerate 
315           key="media" table="image" 
316           selection="${verbcondition}"
317           limit="limit" 
318           order="webdb_create desc">
319           
320          <GenerateMedia key="media" />
321       </Enumerate>
322       <Enumerate 
323           key="media" table="video" 
324           selection="${verbcondition}"
325           limit="limit" 
326           order="webdb_create desc">
327           
328          <GenerateMedia key="media" />
329       </Enumerate>
330       <Enumerate 
331           key="media" table="audio" 
332           selection="${verbcondition}"
333           limit="limit" 
334           order="webdb_create desc">
335           
336          <GenerateMedia key="media" />
337       </Enumerate>
338       <Enumerate 
339           key="media" table="otherMedia" 
340           selection="${verbcondition}"
341           limit="limit" 
342           order="webdb_create desc">
343           
344          <GenerateMedia key="media" />
345       </Enumerate>
346     </body>
347   </producer>  
348   
349 </producers>
350
351