1 package mirlocal.euskalherria.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 EHProducerLocalizer 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( "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"
29 new FileDateSettingProducerNode(
30 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
36 new ContentMarkingProducerNode( "content")
43 contentNode.addVerb( "all", "is_published='1'", "" );
44 contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
46 aProducerNode.addSubNode( contentNode );
50 protected void setupStartPageFactory(CompositeProducerNode aProducerNode) {
51 aProducerNode.clear();
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(),
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"
80 throw new RuntimeException(t.getMessage());
84 protected void setupStaticFactory(CompositeProducerNode aProducerNode) {
85 aProducerNode.clear();
88 aProducerNode.addSubNode(
89 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
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"
102 catch (Throwable t) {
106 protected void setupTopicsFactory(CompositeProducerNode aProducerNode) {
107 aProducerNode.clear();
109 EntityBatchingProducerNode topicPageNode = null;
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(),
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"
126 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
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"
138 topicPageNode.addVerb("all", -1);
139 topicPageNode.addVerb("new", 3);
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,
153 catch (Throwable t) {
158 protected void setupFactories(Map aFactoriesMap ) {
159 super.setupFactories(aFactoriesMap);