+ // Title
+ String title;
+ if (node.isNodeType(NodeType.MIX_TITLE)
+ && node.hasProperty(Property.JCR_TITLE))
+ title = node.getProperty(Property.JCR_TITLE).getString()
+ + " - " + getBaseTitle();
+ else
+ title = getBaseTitle();
+
+ HttpServletRequest request = RWT.getRequest();
+ String url = CmsUtils.getCanonicalUrl(node, request);
+ String imgUrl = null;
+ for (NodeIterator it = node.getNodes(); it.hasNext();) {
+ Node child = it.nextNode();
+ if (child.isNodeType(CmsTypes.CMS_IMAGE))
+ imgUrl = CmsUtils.getDataUrl(child, request);
+ }
+
+ StringBuilder js = new StringBuilder();
+ js.append("document.title = '" + title + "';");
+ js.append("var metas = document.getElementsByTagName('meta');");
+ js.append("for (var i=0; i<metas.length; i++) {");
+ js.append(" if (metas[i].getAttribute('property'))");
+ js.append(" if(metas[i].getAttribute('property')=='og:title')");
+ js.append(" metas[i].setAttribute('content','" + title + "');");
+ js.append(" else if(metas[i].getAttribute('property')=='og:url')");
+ js.append(" metas[i].setAttribute('content','" + url + "');");
+ if (imgUrl != null) {
+ js.append(" else if(metas[i].getAttribute('property')=='og:image')");
+ js.append(" metas[i].setAttribute('content','" + imgUrl
+ + "');");
+ } else {
+ // TODO reset default image
+ }
+ js.append(" };");
+ jsExecutor.execute(js.toString());
+