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

Alexander Kandzior alex at opencms.org
Tue Feb 15 19:04:04 CET 2005


It depends on how the controls handle the object tag. This is something best
tried out in the real system.

It's important is to keep in mind what the user is actually seeing when he
edits the page. The code with the <object> tag would produce no visible
output in the HTML control. So even if you can insert that code in the HTML
control, the person editing the page would see nothing in the editor, only
after saving (or previewing) would the content of the reference be visible.
I find this of limited use.

My approach with the comments would solve the problem as illustrated below:

Editor code:

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

So the value of the reference in this example is "Here's the value of the
title". Of course, this is visible to the user. After saving and processing
of the content, OpenCms would remove the whole comment stuff and store only
some macro like this:

<h1>
${ref1}
</h1>

${ref1} would be stored in some XML kind of structure comparable to the
links as originally suggested. When delivering the page, the content would
be read from the reference and deliverd to the editor replaced with the
comments like above.

Of course, the user could edit/change the content surrounded by the comments
in the editor, but after saving and processing the content from the
reference would be placed inside the comments not matter what the change
was.

HTH,

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: Tuesday, February 15, 2005 6:50 PM
> To: The OpenCms mailing list
> Subject: Re: [opencms-dev] Adding a new type of Gallery to the Editor
> 
> This was very helpful.  Could you give me your thoughts about this:
> 
> Rather than using special comments to embed the custom 
> actions, why not use the standard HTML <object/> tag?  The 
> same title example might look like this:
> 
> <h1><object name="aUniqueNameForInclude">
>     <param name="file" value="/sites/default/content/xy.html" />
>     <param name="element" value="title" /> </object></h1>
> 
> I might be missing required attributes, but I think the 
> concept is solid (given a few more hacks).  CSS could be 
> applied to make a place holder appear for the object.  Then 
> runtime the object would be replaced with the appropriate data.
> 
> --Daniel Rhoden
> 
> Alexander Kandzior wrote:
> 
> >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
> >>
> >>
> >>    
> >>
> >
> >
> >
> >_______________________________________________
> >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