[opencms-dev] Adding a new type of Gallery to the Editor

Alexander Kandzior alex at opencms.org
Mon Feb 14 19:28:22 CET 2005


Daniel,

Some more details that may hopefully help you:

The WYSIWYG is basically an external component. Within IE it always is the
MS DHTML Editing control, in Mozilla it's some sort of Mozilla/Firefox
function similar to this. These controls only handle "standard" HTML
(whatever they think it is). So there is no way of adding new HTML tags that
are supported by this controls. Some kind of workaround for "special markup"
must be used therefore, like HTML comments hiding the "dynamic" information
like which XML content object contains the information. 

The editing control HTML is send to the server when you press "save". At
that point it's just some plain HTML. On the server this HTML is analyzed
for links by a open source component called "HTML parser" (see the project
on sourceforge).

The HTML parser extracty all links in a HREF or IMG SRC tags by parsing the
HTML, and replaces them with these macros strings. This link processing is
required for adjusting the links for static export and also for link
checking. 

In the end of the process, there's a data structure called the "link table"
which holds all links in the HTML that was edited, referenced by the macro
names. Then the XML structure you can see in the control code is just a
serialization of this HTML plus link table. 

To have that reference structure as you described it, it would be required
to extend the HTML parsing process to recognize that "special" markup that
was inserted in the editor. Then the parser would have to replace that
"special markup" as it does with the links. 

To give you an example, the "special markup" could be something like this:

Suppose you add a reference to the "Title" element of the
"/sites/default/content/xy.html" file. That is what the HTML source coude
could look like:

<h1><!-- XML-Content-Ref file="/sites/default/content/xy.html"
element="Title" -->Here's the value of the title<!-- /XML-Content-Red
--></h1>

The "only" thing required (besided generating a gallery that adds this HTML,
which should be easy) is to extend the HTML parsing process to recognize
this "special markup" and replace it with a simple macro. 

So the approach outlined here comes down pretty much to that HTML parser
element. Unfortunatly this HTML parser I don't know that much so I can't
give any hints on how to parse this. AFAIK the project has an active mailing
list on sourceforge.

Best Regards,
Alex.

Alexander Kandzior
Alkacon Software - The OpenCms Experts
http://www.alkacon.com

 

> -----Original Message-----
> From: opencms-dev-bounces at opencms.org 
> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of Daniel Rhoden
> Sent: Monday, February 14, 2005 7:03 PM
> To: The OpenCms mailing list
> Subject: Re: [opencms-dev] Adding a new type of Gallery to the Editor
> 
> Wonderful feedback.  Thank you!
> You are correct. "Gallery like references to XML contents" is 
> a much better way of describing it. 
> 
> I have the feeling that there are factors regarding the 
> WYSIWYG editor that I am not aware (which is fine, we all 
> have to learn).  I am under the impression that the WYSIWYG 
> editor was specifically for XML content items.  Are you 
> suggesting that under certain circumstances that there would 
> be problems if the WYSIWYG editor's interface was enhanced to 
> provide access to such a feature?
> 
> Let me describe how I envision using such a feature:  The 
> templates, elements, and default_bodies would already be 
> defined.  After creating a new XML page I would view the page 
> Offline, click on the direct edit square (in version 6) for 
> the section specified for the article's headline and define 
> the content (there are reasons why I'm not using custom 
> properties instead).  On another page, I would do the same 
> process, but in the content area.  I would then describe a 
> reference to the fist page, but want to display its exact 
> headline in my link's anchor text.  Rather than typing it and 
> risking a synchronization issue (say, the headline gets 
> updated by a different writer), I would click on the button 
> that would allow me to reference other pages' elements, and 
> drop a reference to it.  The page would appear to have 
> content in it at runtime.  The control code for the page 
> would have a new <references/> node just under the <links/> 
> node, and a ${ref0} statement would be inserted into the content node.
> 
> Sorry that was so long, but I know it is hard to paint the 
> same picture in other people's mind
> 
> Thanks,
> 
> Daniel Rhoden.
> 
> Alexander Kandzior wrote:
> 
> >Daniel,
> >
> >Such a kind of gallery will IMHO be possible only for XML content 
> >items, not inside the WYSIWYG editor. This is because of the 
> structure 
> >of the HTML editable element used for the WYSIWYG.
> >
> >In this case the task is better described as "building a XML content 
> >widget for content references".
> >
> >The code base of the galleries should be usable for this. 
> The galleries 
> >already share most of the code as well as the JSP pages. 
> Have a look at 
> >the package "org.opencms.workplace.galleries", there is an 
> abtract base 
> >class called "A_CmsGallery" from which all Galleries are 
> extended. It 
> >basically comes down to writing some 100-200 LOC, mainly to 
> generate the list view.
> >
> >I can give some more details about the other tasks required. 
> Before I 
> >do please let me know if this is actually what you want 
> (Gallery like 
> >references for XML contents, not for the WYSIWYG editor).
> >
> >Best Regards,
> >Alex.
> >
> >Alexander Kandzior
> >Alkacon Software - The OpenCms Experts
> >http://www.alkacon.com
> >
> > 
> >
> >  
> >
> >>-----Original Message-----
> >>From: opencms-dev-bounces at opencms.org 
> >>[mailto:opencms-dev-bounces at opencms.org] On Behalf Of Daniel Rhoden
> >>Sent: Monday, February 14, 2005 5:47 PM
> >>To: The OpenCms mailing list
> >>Subject: [opencms-dev] Adding a new type of Gallery to the Editor
> >>
> >>I would like to add a new type of Gallery accessible from 
> the editor 
> >>to make references to other XML page' content elements.  It 
> should not 
> >>act like the HTML Gallery in which a COPY is made, but more 
> like the 
> >><cms:include page=""
> >>element=""> tag, in which a REFERENCE is made. I think 
> there are many 
> >>uses for such a feature (though the term 'gallery'
> >>may not be appropriate). 
> >>
> >>1. Can we post an outline for building custom "galleries"?
> >>2. Can we post ways to achieve a "Reference Gallery" 
> mentioned above?
> >>
> >>Thanks,
> >>
> >>--Daniel Rhoden
> >>
> >>
> >>_______________________________________________
> >>This mail is send to you from the opencms-dev mailing list 
> To change 
> >>your list options, or to unsubscribe from the list, please visit 
> >>http://mail.opencms.org/mailman/listinfo/opencms-dev
> >>
> >>
> >>    
> >>
> >
> >
> >
> >_______________________________________________
> >This mail is send to you from the opencms-dev mailing list To change 
> >your list options, or to unsubscribe from the list, please visit 
> >http://mail.opencms.org/mailman/listinfo/opencms-dev
> >
> >  
> >
> 
> 
> _______________________________________________
> This mail is send to you from the opencms-dev mailing list To 
> change your list options, or to unsubscribe from the list, 
> please visit http://mail.opencms.org/mailman/listinfo/opencms-dev
> 
> 




More information about the opencms-dev mailing list