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(CompositeProducerFactory aContentFactory) {
15 EntityEnumeratingProducerNode contentNode = null;
19 new EntityEnumeratingProducerNode( "content", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
20 new CompositeProducerNode( new ProducerNode[] {
21 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
22 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
23 new CompositeProducerNode( new ProducerNode[] {
24 new GeneratingProducerNode(
25 "/producer/euskalherria.indymedia.org/article.template",
26 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml"
28 new FileDateSettingProducerNode(
29 "${config.storageRoot}/${language.code}/${content.date.formatted.yyyy}/${content.date.formatted.MM}/${content.id}.shtml",
35 new ContentMarkingProducerNode( "content")
42 contentNode.addVerb( "all", "is_published='1'", "" );
43 contentNode.addVerb( "new", "is_published='1' and is_produced='f'", "" );
45 aContentFactory.addFactory( new NodedProducerFactory( contentNode ) );
49 protected void setupStartPageFactory(CompositeProducerFactory aStartPageFactory) {
50 ProducerNode startPageNode = null;
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"
81 aStartPageFactory.addFactory( new NodedProducerFactory( startPageNode ) );
84 protected void setupSynchronizationFactory(CompositeProducerFactory aSynchronizationFactory) {
85 /* if(MirGlobal.getConfigBooleanProperty("Rsync")){
86 aSynchronizationFactory.addFactory(
87 new ScriptCallProducerFactory(MirGlobal.getConfigProperty("Rsync.Script.Path")));
90 */ NullProducerFactory nullFactory = new NullProducerFactory();
91 nullFactory.addVerb("run");
92 aSynchronizationFactory.addFactory(nullFactory);
96 protected void setupStaticFactory(CompositeProducerFactory aStaticFactory) {
97 ProducerNode staticNode = null;
101 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
103 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
104 new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
105 new GeneratingProducerNode(
106 "/producer/euskalherria.indymedia.org/navigation.template",
107 "${config.storageRoot}/${language.code}/navigation.inc"
113 catch (Throwable t) {
116 aStaticFactory.addFactory( new NodedProducerFactory( staticNode ) );
119 protected void setupFactories(Map aFactoriesMap ) {
120 EntityBatchingProducerNode topicPageNode = null;
122 super.setupFactories(aFactoriesMap);
126 new EntityBatchingProducerNode( "articles", "batch", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
127 "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,
128 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
130 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
131 new ResourceBundleProducerNode("lang", "producer_${language.code}",
132 new GeneratingProducerNode(
133 "/producer/euskalherria.indymedia.org/topic.template",
134 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}${batch.current.identifier}.shtml"
139 new EntityListProducerNode("languages", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(),
141 new EntityEnumeratingProducerNode( "language", DatabaseLanguage.getInstance(), LanguageAdapterDefinition.getInstance(), "", "",
142 new ResourceBundleProducerNode("lang", "producer_${language.code}",
143 new GeneratingProducerNode(
144 "/producer/euskalherria.indymedia.org/topicnavigation.template",
145 "${config.storageRoot}/${language.code}/${topic.filename}/${topic.filename}navigation.inc"
151 topicPageNode.addVerb("all", -1);
152 topicPageNode.addVerb("new", 3);
154 aFactoriesMap.put("topics",
155 new NodedProducerFactory(
156 new EntityEnumeratingProducerNode( "topic", DatabaseTopics.getInstance(), TopicsAdapterDefinition.getInstance(), "", "",
157 new EntityListProducerNode("topicspecial", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
158 "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,
159 new EntityListProducerNode("topicfeatures", DatabaseContent.getInstance(), ContentAdapterDefinition.getInstance(),
160 "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,
168 catch (Throwable t) {