*** empty log message ***
[mir.git] / source / mirlocal / euskalherria.indymedia.org / EHProducerLocalizer.java
1 package mirlocal.euskalherria.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 EHProducerLocalizer 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/euskalherria.indymedia.org/article.template",
27                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
28                       ),
29                       new FileDateSettingProducerNode(
30                           "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
31                           "content.date.date"
32                       )
33                     } )
34                 )
35               ),
36               new ContentMarkingProducerNode( "content")
37             } )
38           );
39     }
40     catch (Throwable t) {
41     }
42
43     contentNode.addVerb( "all", "is_published='1'", "" );
44     contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
45
46     aProducerNode.addSubNode( contentNode );
47
48   }
49
50   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
51     aProducerNode.clear();
52     try {
53       aProducerNode.addSubNode(
54             new EntityListProducerNode("newswire", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
55                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
56               new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
57                             "", "code", 10, 0,
58                 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
59                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
60                     new EntityListProducerNode("startspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
61                               "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
62                       new EntityListProducerNode("features", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
63                               "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
64                         new EntityListProducerNode("breaking", DatabaseBreaking.getInstance(), BreakingAdapterDefinition.getInstance(),
65                                   "", "webdb_create desc", 5, 0,
66                           new GeneratingProducerNode(
67                               "/producer/euskalherria.indymedia.org/startpage.template",
68                               "${config.storageRoot}/${language.code}/index.shtml"
69                           )
70                         )
71                       )
72                     )
73                   )
74                 )
75               )
76             )
77       );
78     }
79     catch (Throwable t) {
80       throw new RuntimeException(t.getMessage());
81     }
82   }
83
84   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
85     aProducerNode.clear();
86
87     try {
88       aProducerNode.addSubNode(
89           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
90                   "", "code", 10, 0,
91             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
92               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
93                 new GeneratingProducerNode(
94                     "/producer/euskalherria.indymedia.org/navigation.template",
95                     "${config.storageRoot}/${language.code}/navigation.inc"
96                 )
97               )
98             )
99           )
100       );
101     }
102     catch (Throwable t) {
103     }
104   }
105
106   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
107     aProducerNode.clear();
108
109     EntityBatchingProducerNode topicPageNode = null;
110
111     try {
112       topicPageNode =
113         new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
114               "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,
115           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
116                   "", "code", 10, 0,
117             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
118               new ResourceBundleProducerNode("lang", "producer_${language.code}",
119                 new GeneratingProducerNode(
120                     "/producer/euskalherria.indymedia.org/topic.template",
121                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
122                 )
123               )
124             )
125           ),
126           new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
127                   "", "code", 10, 0,
128             new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
129               new ResourceBundleProducerNode("lang", "producer_${language.code}",
130                 new GeneratingProducerNode(
131                     "/producer/euskalherria.indymedia.org/topicnavigation.template",
132                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
133                 )
134               )
135             )
136           )
137         );
138       topicPageNode.addVerb("all", -1);
139       topicPageNode.addVerb("new", 3);
140
141       aProducerNode.addSubNode(
142           new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
143             new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
144                   "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,
145               new EntityListProducerNode("topicfeatures", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
146                     "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,
147                 topicPageNode
148               )
149             )
150           )
151       );
152     }
153     catch (Throwable t) {
154     }
155
156   }
157
158   protected void setupFactories(Map aFactoriesMap ) {
159     super.setupFactories(aFactoriesMap);
160   }
161 }