0

私はHippo CMSの初心者です。私はバージョン 10 に取り組んでおり、angularJS サービスを使用して、HippoCms で作成した「バナー」の残りの URL を使用しています。

これは、Hippo の Rest Api Manager を介して作成されたバナーの Rest URL です。

http://localhost:8080/site/stbetrest/Banner?_type=json

リンクを消費したときに得られる応答は次のとおりです。

    {
        "pageSize": 10,
        "total": 3,
        "items": [
            {
                "content": "<![CDATA[\r\n\r\n          <p>Banner description</p>\r\n\r\n          \r\n]]>",
                "title": "Sample banner"
            },
            {
                "content": "<![CDATA[<p>10 Simple Steps to Green Your Office:</p>\n\n<p>&nbsp;</p>\n\n<p>
<img src=\"/site/pagenotfound\" /></p>]]>",
                "title": "10 Simple Steps to Green Your Office"
            },
            {
                "content": "<![CDATA[<p>How to Green Your Dorm Room</p>]]>",
                "title": "How to Green Your Dorm Room"
            }
        ],
        "currentPage": 1,
        "totalPages": 1
    }

ここでの問題は、Hippo のバナー ドキュメント内で使用した画像が表示されないことです。これらの画像/リンクを取得して、AngularJs で作成されたカルーセルにロードしたいと考えています。上記のバナー応答にも画像を生成する方法を教えてください。

アップデート:

「localhost:8080/cms」を介してアップロードされた画像が表示されますが、応答を介して画像にアクセスすることはできません。

@XmlRootElement(name = "banner")
@XmlAccessorType(XmlAccessType.NONE)
@HippoEssentialsGenerated(internalName = "gogreen:bannerdocument")
@Node(jcrType = "gogreen:bannerdocument")
public class Banner extends BaseDocument {
    @XmlElement
    @HippoEssentialsGenerated(internalName = "gogreen:title")
    public String getTitle() {
        return getProperty("gogreen:title");
    }

    @XmlJavaTypeAdapter(HippoHtmlAdapter.class)
    @XmlElement
    @HippoEssentialsGenerated(internalName = "gogreen:content")
    public HippoHtml getContent() {
        return getHippoHtml("gogreen:content");
    }

    @HippoEssentialsGenerated(internalName = "gogreen:link")
    public HippoBean getLink() {
        return getLinkedBean("gogreen:link", HippoBean.class);
    }

    @XmlJavaTypeAdapter(KerkRestAdapter.class)
    @XmlElement
    @HippoEssentialsGenerated(internalName = "gogreen:image")
    public Kerk getImage() {
        return getLinkedBean("gogreen:image", Kerk.class);
    }
}

私のコンテンツリライターは次のとおりです。

    public class RestContentRewriter extends SimpleContentRewriter {
   @Override
    protected String rewriteBinaryLink(String binaryLinkSrc, Node node, HstRequestContext requestContext, Mount targetMount) {
        return super.rewriteBinaryLink(binaryLinkSrc, node, requestContext, requestContext.getMount("site"));

    }

そして私のアダプターは:

public class KerkRestAdapter extends XmlAdapter<String, HippoHtml> {

@Override
public HippoHtml unmarshal(String representation) throws Exception {
    throw new UnsupportedOperationException("Unmarshalling not implemented.");
}


@Override
public String marshal(HippoHtml html) throws Exception {
    if (html == null) {
        return null;
    }

    final HstRequestContext context = RequestContextProvider.get();
    //final RestContentRewriter contentRewriter = new RestContentRewriter();
    final ContentReWriter<String> contentRewriter = new RestContentRewriter();

    final String rewrite = contentRewriter.rewrite(html.getContent(), html.getNode(), context, context.getMount("api")); 
    return "<![CDATA[" + rewrite + "]]>";
}

}

追加の質問: リライタで使用するマウント ポイントは何ですか? ( 残りのマウント名または gogreen ??)

助けてください !

4

1 に答える 1