introduced AdapterEntityModel
[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
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", model, "content",
21             new CompositeProducerNode( new ProducerNode[] {
22               new EntityEnumeratingProducerNode( "language", model, "language", "", "",
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       logger.printError("EHProducerLocalizer.setupContentFactory: Exception "+t.getMessage());
42     }
43
44     contentNode.addVerb( "all", "is_published='1'", "" );
45     contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
46
47     aProducerNode.addSubNode( contentNode );
48
49   }
50
51   protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
52     aProducerNode.clear();
53     try {
54       aProducerNode.addSubNode(
55             new EntityListProducerNode("newswire", model, "content",
56                     "is_published='1' and to_article_type = ${articletype.newswire}", "date desc, webdb_create desc", 40, 0,
57               new EntityListProducerNode("languages", model, "language",
58                             "", "code", 10, 0,
59                 new EntityEnumeratingProducerNode( "language", model, "language", "", "",
60                   new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
61                     new EntityListProducerNode("startspecial", model, "content",
62                               "is_published='1' and to_article_type = ${articletype.startspecial}", "date desc, webdb_create desc", 1, 0,
63                       new EntityListProducerNode("features", model, "content",
64                               "is_published='1' and to_article_type = ${articletype.feature}", "date desc, webdb_create desc", 10, 0,
65                         new EntityListProducerNode("breaking", model, "breakingNews",
66                                   "", "webdb_create desc", 5, 0,
67                           new GeneratingProducerNode(
68                               "/producer/euskalherria.indymedia.org/startpage.template",
69                               "${config.storageRoot}/${language.code}/index.shtml"
70                           )
71                         )
72                       )
73                     )
74                   )
75                 )
76               )
77             )
78       );
79     }
80     catch (Throwable t) {
81       logger.printError("EHProducerLocalizer.setupStartPageFactory: Exception "+t.getMessage());
82     }
83   }
84
85   protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
86     aProducerNode.clear();
87
88     try {
89       aProducerNode.addSubNode(
90           new EntityListProducerNode("languages", model, "language",
91                   "", "code", 10, 0,
92             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
93               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
94                 new GeneratingProducerNode(
95                     "/producer/euskalherria.indymedia.org/navigation.template",
96                     "${config.storageRoot}/${language.code}/navigation.inc"
97                 )
98               )
99             )
100           )
101       );
102     }
103     catch (Throwable t) {
104       logger.printError("EHProducerLocalizer.setupStaticFactory: Exception "+t.getMessage());
105     }
106   }
107
108   protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
109     aProducerNode.clear();
110
111     EntityBatchingProducerNode topicPageNode = null;
112
113     try {
114       topicPageNode =
115         new EntityBatchingProducerNode( "articles", "batch", model, "content",
116               "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, 5, 0,
117           new EntityListProducerNode("languages", model, "language",
118                   "", "code", 10, 0,
119             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
120               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
121                 new GeneratingProducerNode(
122                     "/producer/euskalherria.indymedia.org/topic.template",
123                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
124                 )
125               )
126             )
127           ),
128           new EntityListProducerNode("languages", model, "language",
129                   "", "code", 10, 0,
130             new EntityEnumeratingProducerNode( "language", model, "language", "", "",
131               new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
132                 new GeneratingProducerNode(
133                     "/producer/euskalherria.indymedia.org/topicnavigation.template",
134                     "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
135                 )
136               )
137             )
138           )
139         );
140       topicPageNode.addVerb("all", -1);
141       topicPageNode.addVerb("new", 3);
142
143       aProducerNode.addSubNode(
144           new EntityEnumeratingProducerNode( "topic", model, "topic","", "",
145             new EntityListProducerNode("topicspecial", model, "content",
146                   "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,
147               new EntityListProducerNode("topicfeatures", model, "content",
148                     "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,
149                 topicPageNode
150               )
151             )
152           )
153       );
154     }
155     catch (Throwable t) {
156       logger.printError("EHProducerLocalizer.setupTopicsFactory: Exception "+t.getMessage());
157     }
158
159   }
160
161   protected void setupFactories(Map aFactoriesMap ) {
162     super.setupFactories(aFactoriesMap);
163   }
164 }