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