return null;
if (anObject instanceof TemplateModel)
return (TemplateModel) anObject;
-// if (anObject instanceof Date)
-// return new DateAdapter((Date) anObject);
else if (anObject instanceof MessageResources)
return new MessageMethodModel((MessageResources) anObject);
else if (anObject instanceof String)
}
public TemplateModel get(String aKey) throws TemplateModelException {
- if (!valuesCache.containsKey(aKey)) {
- Object value = map.get(aKey);
-
- if (value == null && !map.containsKey(aKey))
- throw new TemplateModelException("MapAdapter: no key "+aKey+" available");
-
- valuesCache.put(aKey, makeAdapter(value));
- }
-
- return (TemplateModel) valuesCache.get(aKey);
+ try {
+ if (!valuesCache.containsKey(aKey)) {
+ Object value = map.get(aKey);
+
+ if (value == null && !map.containsKey(aKey))
+ throw new TemplateModelException("MapAdapter: no key "+aKey+" available");
+
+ valuesCache.put(aKey, makeAdapter(value));
+ }
+
+ return (TemplateModel) valuesCache.get(aKey);
+ }
+ catch (TemplateModelException e) {
+ throw e;
+ }
+ catch (Throwable t) {
+ throw new TemplateModelException(t.getMessage());
+ }
}
}
public Object get(Object aKey) {
if (aKey instanceof String) {
- return new SimpleDateFormat((String) aKey).format(date);
+ try {
+ return new SimpleDateFormat((String) aKey).format(date);
+ }
+ catch (Throwable t) {
+ throw new RuntimeException( "Can't format date with format " + (String) aKey + ": " + t.getMessage());
+ }
}
else return null;
}
public Object getValue(EntityAdapter anEntityAdapter) {\r
try {\r
return anEntityAdapter.getRelation(\r
- "to_media="+anEntityAdapter.get("id"),\r
+ "to_media="+anEntityAdapter.get("id")+" and is_published='1'",\r
"webdb_create",\r
"comment" );\r
}\r
--- /dev/null
+package mirlocal.indymedia.nl;
+
+import mir.entity.adapter.*;
+import mircoders.localizer.*;
+import mircoders.localizer.basic.*;
+import mircoders.storage.*;
+
+public class IndyNLDataModelLocalizer extends MirBasicDataModelLocalizer {
+ protected void constructContentAdapterDefinition(EntityAdapterDefinition anEntityAdapterDefinition) throws MirLocalizerFailure {
+ try {
+ anEntityAdapterDefinition.addCalculatedField("to_hiddencomments", new ContentToHiddenCommentsField());
+ anEntityAdapterDefinition.addCalculatedField("commentcount", new ContentCommentCountField());
+ }
+ catch (Throwable t) {
+ throw new MirLocalizerFailure(t.getMessage(), t);
+ }
+ }
+
+
+ protected class ContentToHiddenCommentsField implements EntityAdapterDefinition.CalculatedField {
+ public Object getValue(EntityAdapter anEntityAdapter) {
+ try {
+ return anEntityAdapter.getRelation(
+ "to_media="+anEntityAdapter.get("id")+" and is_published='1'",
+ "webdb_create",
+ "comment" );
+ }
+ catch (Throwable t) {
+ throw new RuntimeException(t.getMessage());
+ }
+ }
+ }
+
+ protected class ContentCommentCountField implements EntityAdapterDefinition.CalculatedField {
+ public Object getValue(EntityAdapter anEntityAdapter) {
+ try {
+ return Integer.toString(
+ DatabaseComment.getInstance().getSize(
+ "to_media="+anEntityAdapter.get("id")+" and is_published='1'"));
+ }
+ catch (Throwable t) {
+ throw new RuntimeException(t.getMessage());
+ }
+ }
+ }
+}
return new IndyNLProducerAssistantLocalizer();
}
+ public MirDataModelLocalizer dataModel() {
+ return new IndyNLDataModelLocalizer();
+ };
+
}
\ No newline at end of file
catch (Throwable t) {
logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());
}
+
+
+ try {
+ batchingNode =
+ new EntityBatchingProducerNode( "articles", "batch", model, "content",
+ "to_article_type=${articletype.trashed} or exists(select * from comment where comment.to_media=content.id and comment.is_published='f')", "date desc, webdb_create desc", 25, 15, 0,
+ new EntityListProducerNode("languages", model, "language",
+ "", "code", 10, 0,
+ new EntityEnumeratingProducerNode( "language", model, "language", "code='nl'", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new GeneratingProducerNode(
+ "/producer/indymedia.nl/commentsindex.template",
+ "${config.storageRoot}/${language.code}/comments/comments${batch.current.identifier}.shtml"
+ )
+ )
+ )
+ ),
+ new EntityListProducerNode("languages", model, "language",
+ "", "code", 10, 0,
+ new EntityEnumeratingProducerNode( "language", model, "language", "code='nl'", "",
+ new ResourceBundleProducerNode("lang", "bundles.producer_${language.code}",
+ new GeneratingProducerNode(
+ "/producer/indymedia.nl/commentsindexnavigation.template",
+ "${config.storageRoot}/${language.code}/comments/commentsnavigation.inc"
+ )
+ )
+ )
+ )
+ );
+ batchingNode.addVerb("new", 3);
+ batchingNode.addVerb("all", -1);
+
+ aFactoriesMap.put("trashbin", new NodedProducerFactory( batchingNode ));
+ }
+ catch (Throwable t) {
+ logger.printError("IndyNLProducerLocalizer.setupFactories: Exception "+t.getMessage());
+ }
+
+//${articletype.trashed}
}
}