[opencms-dev] Re: usage of com.opencms.util.LinkSubstitution
Thomas Joseph Olaes
thomas.olaes at gmail.com
Wed Aug 4 23:34:01 CEST 2004
I figured it out...
the line:
Pattern p = Pattern.compile("<edittemplate>(.*)</edittemplate>",
Pattern.DOTALL); // greedy
needed to be
Pattern p = Pattern.compile("<edittemplate><![CDATA[(.*)]]></edittemplate>",
Pattern.DOTALL); // greedy
I guess I was giving the link replacer function one tag instead of
actual body content.
-TJ
On Wed, 4 Aug 2004 12:50:08 -0700, Thomas Joseph Olaes
<thomas.olaes at gmail.com> wrote:
> Good afternoon list,
>
> I am trying to implement an instance of the LinkSubstitution class in
> OpenCMS 5.0.1. I've been looking through the code trying to figure out
> how to use this to turn <edittemplate /> stuff in the "/system/bodies"
> component of a "Page" resource into the piece that goes into <TEMPLATE
> /> of the same file.
>
> I have a file in the VFS called /TestProject/test.html, which has some
> HTML pasted inside the <![CDATA[ ... ]]> tag in source edit mode. This
> HTML has some absolute links in the form "/path/to/file.html" in <a
> href="" /> tags
>
> Here's my test JSP page:
>
> <%@ page session="false"
> import="com.opencms.core.*,
> com.opencms.file.*,
> com.opencms.flex.cache.CmsFlexController,
> com.opencms.util.LinkSubstitution,
> java.util.*,
> java.sql.*,
> java.util.regex.Pattern,
> java.util.regex.Matcher"
> %>
> <%
> CmsObject cmsobject = CmsFlexController.getCmsObject(request);
> String sFileContents = new
> String(cmsobject.readFile("/system/bodies/TestProject/test.html").getContents());
>
> Pattern p = Pattern.compile("<edittemplate>(.*)</edittemplate>",
> Pattern.DOTALL); // greedy
> Matcher m = p.matcher(sFileContents);
>
> String sEditTemplateContents = "";
> if(m.find()){
> sEditTemplateContents = m.group(1);
> }
>
> out.println(sEditTemplateContents);
> out.println("----------------------------------");
>
> LinkSubstitution ls = new LinkSubstitution();
> String sScrubbedContents = ls.substituteEditorContent(cmsobject,
> sEditTemplateContents);
>
> out.println(sScrubbedContents);
> out.println((sScrubbedContents == null)?"yes":"no");
> out.println(request.getContextPath() + request.getServletPath());
> out.println(request.getHeader("content-type"));
> %>
>
> Important part is the line "LinkSubstitution ls = new
> LinkSubstitution();" and the line immediately following it. As it runs
> now, I sScrubbedContents seems to be an empty string when I try to run
> this JSP from within OpenCMS.
>
> Any help is appreciated, thanks in advance for any time and assistance
> provided to me.
>
> -TJ
>
More information about the opencms-dev
mailing list