+ private String publishMetaData(Node node) throws RepositoryException {
+ // 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 = UiContext.getHttpRequest();
+ if (request == null)
+ return null;
+ // String url = CmsUtils.getCanonicalUrl(node, request);
+ // String desc = node.hasProperty(JCR_DESCRIPTION) ? node.getProperty(
+ // JCR_DESCRIPTION).getString() : null;
+ // 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 + "');");
+ // js.append(" else if(metas[i].getAttribute('property')=='og:type')");
+ // js.append(" metas[i].setAttribute('content','website');");
+ // if (desc != null) {
+ // js.append(" else if(metas[i].getAttribute('property')=='og:decription')");
+ // js.append(" metas[i].setAttribute('content','" + clean(desc)
+ // + "');");
+ // }
+ // 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());
+ return title;
+ }
+
+ // Simply remove some illegal character
+ // private String clean(String stringToClean) {
+ // return stringToClean.replaceAll("'", "").replaceAll("\\n", "")
+ // .replaceAll("\\t", "");
+ // }
+
+ protected synchronized Node getNode() {