bugfixes in producer localizers
[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} and id in (select max(content_id) from content_x_topic, topic t where topic_id=t.id and t.archiv_url='c' group by t.id)", "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 topicPageNode = null;
108
109     try {
110 // topic pages:
111       topicPageNode =
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", 6, 5, 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       topicPageNode.addVerb("new", 3);
138       topicPageNode.addVerb("all", -1);
139
140       aProducerNode.addSubNode(
141           new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "((main_url is null) or main_url<>'c')", "",
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               topicPageNode
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     super.setupFactories(aFactoriesMap);
156   }
157 }