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