1 package mirlocal.bolivia.indymedia.org;
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.*;
12 public class BoliviaProducerLocalizer extends MirBasicProducerLocalizer {
14 protected void setupContentFactory(CompositeProducerNode aProducerNode) {
15 EntityEnumeratingProducerNode contentNode = null;
16 aProducerNode.clear();
20 new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
21 new CompositeProducerNode( new ProducerNode[] {
22 new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c' and exists(select * from content_x_topic where content_id=${content.id} and topic_id=id", "",
23 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
24 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
25 new CompositeProducerNode( new ProducerNode[] {
26 new GeneratingProducerNode(
27 "/producer/bolivia.indymedia.org/article.template",
28 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
30 new FileDateSettingProducerNode(
31 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
32 "content.webdb_create.raw"
38 new ContentMarkingProducerNode( "content")
45 contentNode.addVerb( "all", "is_published='1'", "" );
46 contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
48 aProducerNode.addSubNode( contentNode );
51 protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
52 aProducerNode.clear();
54 aProducerNode.addSubNode(
55 new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
56 "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
57 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
59 new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
60 "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
61 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
62 "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
63 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
64 "", "webdb_create desc", 5, 0,
65 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
66 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
67 new GeneratingProducerNode(
68 "/producer/bolivia.indymedia.org/startpage.template",
69 "${config.storageRoot}/${language.code}/index.shtml"
80 aProducerNode.addSubNode(
81 new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c'", "",
82 new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
83 "is_published='1' and to_article_type = ${articletype.newswire} and exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 40, 0,
84 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
86 new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
87 "is_published='1' and to_article_type = ${articletype.startspecial} and "+
88 "exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 1, 0,
89 new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
90 "is_published='1' and to_article_type = ${articletype.feature} and exists(select * from content_x_topic where content_id=id and topic_id=${city.id})", "date desc, webdb_create desc", 10, 0,
91 new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
92 "", "webdb_create desc", 5, 0,
93 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
94 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
95 new GeneratingProducerNode(
96 "/producer/bolivia.indymedia.org/startpage.template",
97 "${config.storageRoot}/${city.filename}/${language.code}/index.shtml"
109 catch (Throwable t) {
113 protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
114 aProducerNode.clear();
117 aProducerNode.addSubNode(
118 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
120 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
121 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
122 new GeneratingProducerNode(
123 "/producer/bolivia.indymedia.org/navigation.template",
124 "${config.storageRoot}/${language.code}/navigation.inc"
131 catch (Throwable t) {
135 protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
136 aProducerNode.clear();
138 EntityBatchingProducerNode topicPageNode = null;
143 new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
144 "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,
145 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
147 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
148 new ResourceBundleProducerNode("lang", "producer_${language.code}",
149 new GeneratingProducerNode(
150 "/producer/bolivia.indymedia.org/topic.template",
151 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
156 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
158 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
159 new ResourceBundleProducerNode("lang", "producer_${language.code}",
160 new GeneratingProducerNode(
161 "/producer/bolivia.indymedia.org/topicnavigation.template",
162 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
168 topicPageNode.addVerb("all", -1);
169 topicPageNode.addVerb("new", 3);
171 aProducerNode.addSubNode(
172 new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
173 new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
174 "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,
180 // topic pages per city:
182 new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
183 "is_published='1' and to_article_type = ${articletype.newswire} and " +
184 "id in (select content_id from content_x_topic where topic_id = ${topic.id}) and " +
185 "id in (select content_id from content_x_topic where topic_id = ${city.id})", "date asc, webdb_create asc", 6, 5, 0,
186 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
188 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
189 new ResourceBundleProducerNode("lang", "producer_${language.code}",
190 new GeneratingProducerNode(
191 "/producer/bolivia.indymedia.org/topic.template",
192 "${config.storageRoot}/${language.code}/${city.filename}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
197 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
199 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
200 new ResourceBundleProducerNode("lang", "producer_${language.code}",
201 new GeneratingProducerNode(
202 "/producer/bolivia.indymedia.org/topicnavigation.template",
203 "${config.storageRoot}/${language.code}/${city.filename}/${topic.filename}/${topic.filename}navigation.inc"
209 topicPageNode.addVerb("all", -1);
210 topicPageNode.addVerb("new", 3);
212 aProducerNode.addSubNode(
213 new EntityEnumeratingProducerNode( "city", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "main_url='c'", "",
214 new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "((main_url is null) or main_url<>'c')", "",
215 new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
216 "is_published='1' and to_article_type = ${articletype.topicspecial} and "+
217 "id in (select content_id from content_x_topic where topic_id = ${topic.id}) and"+
218 "id in (select content_id from content_x_topic where topic_id = ${city.id})", "date, webdb_create", 1, 0,
225 catch (Throwable t) {