bugfixes / bolivian modifications
[mir.git] / source / mirlocal / bolivia.indymedia.org / BoliviaProducerLocalizer.java
1 package mirlocal.bolivia.indymedia.org;
2
3 import java.util.*;
4 import mir.producer.*;
5 import mircoders.global.*;
6 import mircoders.localizer.*;
7 import mircoders.localizer.basic.*;
8 import mircoders.producer.*;
9 import mircoders.storage.*;
10 import mircoders.entity.adapter.*;
11
12 public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
13
14   protected void setupContentFactory(CompositeProducerNode aProducerNode) {
15     EntityEnumeratingProducerNode contentNode = null;
16     aProducerNode.clear();
17
18     try {
19       contentNode =
20           new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
21             new CompositeProducerNode( new ProducerNode[] {
22               new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
23                 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
24                     new CompositeProducerNode( new ProducerNode[] {
25                       new GeneratingProducerNode(
26                           "/producer/bolivia.indymedia.org/article.template",
27                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
28                       ),
29                       new ContentMarkingProducerNode( "content" )
30                     } )
31                 )
32               ),
33               new ContentMarkingProducerNode( "content")
34             } )
35           );
36     }
37     catch (Throwable t) {
38       logger.printError("BoliviaProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
39     }
40
41     contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
42     contentNode.addVerb( "all", "is_published='1'", "" );
43
44     aProducerNode.addSubNode( contentNode );
45   }
46
47   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
48     aProducerNode.clear();
49     try {
50       aProducerNode.addSubNode(
51             new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
52                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
53               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
54                             "", "code", 10, 0,
55                 new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
56                           "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
57                   new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
58                           "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
59                     new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
60                               "", "webdb_create desc", 5, 0,
61                       new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
62                         new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
63                           new GeneratingProducerNode(
64                               "/producer/bolivia.indymedia.org/startpage.template",
65                               "${config.storageRoot}/${language.code}/index.shtml"
66                           )
67                         )
68                       )
69                     )
70                   )
71                 )
72               )
73             )
74       );
75     }
76     catch (Throwable t) {
77       logger.printError("BoliviaProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
78     }
79   }
80
81   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
82     aProducerNode.clear();
83
84     try {
85       aProducerNode.addSubNode(
86           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
87                   "", "code", 10, 0,
88             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
89               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
90                 new GeneratingProducerNode(
91                     "/producer/bolivia.indymedia.org/navigation.template",
92                     "${config.storageRoot}/${language.code}/navigation.inc"
93                 )
94               )
95             )
96           )
97       );
98     }
99     catch (Throwable t) {
100       logger.printError("BoliviaProducerLocalizer.setupStaticFactory: Exception "+t.getMessage());
101     }
102   }
103
104   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
105     aProducerNode.clear();
106
107     EntityBatchingProducerNode newswireArchiveNode = null;
108
109     try {
110 // topic pages:
111       newswireArchiveNode =
112         new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
113               "is_published='1' and to_article_type = ${articletype.newswire} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date asc, webdb_create asc", 20, 10, 0,
114           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
115                   "", "code", 10, 0,
116             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
117               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
118                 new GeneratingProducerNode(
119                     "/producer/bolivia.indymedia.org/topic.template",
120                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
121                 )
122               )
123             )
124           ),
125           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
126                   "", "code", 10, 0,
127             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
128               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
129                 new GeneratingProducerNode(
130                     "/producer/bolivia.indymedia.org/topicnavigation.template",
131                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
132                 )
133               )
134             )
135           )
136         );
137       newswireArchiveNode.addVerb("new", 3);
138       newswireArchiveNode.addVerb("all", -1);
139
140       aProducerNode.addSubNode(
141           new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
142             new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
143                   "is_published='1' and to_article_type = ${articletype.topicspecial} and id in (select content_id from content_x_topic where topic_id = ${topic.id})", "date, webdb_create", 1, 0,
144               newswireArchiveNode
145             )
146           )
147       );
148     }
149     catch (Throwable t) {
150       logger.printError("BoliviaProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
151     }
152   }
153
154   protected void setupFactories(Map aFactoriesMap ) {
155     EntityBatchingProducerNode newswireArchiveNode = null;
156
157     try {
158       super.setupFactories(aFactoriesMap);
159
160 // newswire archive:
161       newswireArchiveNode =
162         new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
163               "is_published='1' and to_article_type = ${articletype.newswire}", "date asc, webdb_create asc", 20, 10, 0,
164           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
165                   "", "code", 10, 0,
166             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
167               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
168                 new GeneratingProducerNode(
169                     "/producer/bolivia.indymedia.org/newswire.template",
170                     "${config.storageRoot}/${language.code}/newswire/newswire${batch.current.identifier}.shtml"
171                 )
172               )
173             )
174           ),
175           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
176                   "", "code", 10, 0,
177             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
178               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
179                 new GeneratingProducerNode(
180                     "/producer/bolivia.indymedia.org/newswirenavigation.template",
181                     "${config.storageRoot}/${language.code}/newswire/newswirenavigation.inc"
182                 )
183               )
184             )
185           )
186         );
187       newswireArchiveNode.addVerb("new", 3);
188       newswireArchiveNode.addVerb("all", -1);
189
190       aFactoriesMap.put( "newswirearchive", new NodedProducerFactory( newswireArchiveNode ) );
191     }
192     catch (Throwable t) {
193       logger.printError("BoliviaProducerLocalizer.setupFactories: Exception "+t.getMessage());
194     }
195   }
196 }