[opencms-dev] How to add a relation

Paul-Inge Flakstad flakstad at npolar.no
Tue Sep 1 15:04:09 CEST 2009


Hi Michael

...and once again, thanks for replying. :)

I would have filed it into bugzilla, but I wanted to put it out here first.

I have experimented so much back and forth with the CRE, I'm not absolutely sure I have gotten rid of 100% of the experimental code (summer vacation wiped my memory, hehe). So it _might_ be just my system that's bugging (for other reasons), although I don't think so.


Paul

> -----Original Message-----
> From: opencms-dev-bounces at opencms.org
> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of Michael Moossen
> Sent: 1. september 2009 14:52
> To: The OpenCms mailing list
> Subject: Re: [opencms-dev] How to add a relation
>
> Hi Paul!
>
> sorry to hear that.
>
> i have not tried it, but if what you say is correct, then it is most
> likely a bug, ie. time for you file the bug into bugzilla ;)
>
> -------------------
> Michael Moossen
>
> Alkacon Software GmbH  - The OpenCms Experts
> http://www.alkacon.com - http://www.opencms.org
>
> Paul-Inge Flakstad schrieb:
> > Allright, here's my final question in this thread:
> >
> > ------
> > The situation:
> >
> > A PAGE has a strong link relation (XML_STRONG) to
> > an IMAGE, which has a strong link relation (USER-DEFINED) to
> > a THUMBNAIL IMAGE.
> >
> > None of these three resources are published.
> >
> > When I try to publish PAGE, the publish dialog tells me
> that all three are going to be published. So far, so good.
> But after publishing's finished, THUMBNAIL IMAGE remains
> unpublished...
> > ------
> >
> > I manually set up an almost identical relation chain - the
> diffence being that both relations were of the same
> user-defined type. Everything worked well, all three
> resources got published. But doing it this way, with two
> relation types, something goes wrong, and OpenCms fails to
> publish the "last link in the relations chain".
> >
> > I've tried the same scenario on 7.0.4 as well as 7.5 - same
> outcome. The log shows nothing that can be related to this.
> >
> > Ideas on why this happens are most welcome. To me, it looks
> like a bug(?).
> >
> > Best regards,
> > Paul
> >
> >> -----Original Message-----
> >> From: opencms-dev-bounces at opencms.org
> >> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of
> >> Paul-Inge Flakstad
> >> Sent: 31. august 2009 11:07
> >> To: The OpenCms mailing list
> >> Subject: Re: [opencms-dev] How to add a relation
> >>
> >> Michael - you just saved me a bunch of work..! =D
> >>
> >> Many many MANY thanks for helping me - it works like a charm! ;-)
> >>
> >> Cheers (loud ones!),
> >> Paul :)
> >>
> >>> -----Original Message-----
> >>> From: opencms-dev-bounces at opencms.org
> >>> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of
> >> Michael Moossen
> >>> Sent: 31. august 2009 10:53
> >>> To: The OpenCms mailing list
> >>> Subject: Re: [opencms-dev] How to add a relation
> >>>
> >>> Hi Paul!
> >>>
> >>> Hi, Paul!
> >>>
> >>> ufff... i just tried it by myself, and it was not easy to
> >>> figure out how
> >>> to do it right :(
> >>>
> >>> and i got to the conclusion that the element matching
> >> mechanism needs
> >>> some improvements ;)
> >>>
> >>> well, what you have to do for getting it working is to define
> >>> the rules
> >>> in each nested schema and not in the outer schema.
> >>>
> >>> in your case, you need to define the rule in the schema
> >> defining your
> >>> Image value, and there you should, of course, use the simple
> >>> element name:
> >>>
> >>> <relation element="URI" type="strong" invalidate="false" />
> >>>
> >>> HTH
> >>>
> >>> -------------------
> >>> Michael Moossen
> >>>
> >>> Alkacon Software GmbH  - The OpenCms Experts
> >>> http://www.alkacon.com - http://www.opencms.org
> >>>
> >>> Paul-Inge Flakstad schrieb:
> >>>> Thanks for replying, Michael! :)
> >>>>
> >>>> I tried putting this:
> >>>>
> >>>>  <relation element="Paragraph/Image/URI" type="strong"
> >>> invalidate="false" />
> >>>> in my XSD for "MyPage".
> >>>>
> >>>> There were no errors this time, but when trying to publish
> >>> a the page with related resources, the image pointed to by
> >>> the above mentioned URI is not in the publish list. Examining
> >>> the control code, I found the following:
> >>>> <MyPages xmlns...>
> >>>> <MyPage language="en">
> >>>> ...
> >>>> <Paragraph>
> >>>> ...
> >>>> <Image>
> >>>>     <URI>
> >>>>       <link type="WEAK">
> >>>>
> >> <target><![CDATA[/sites/mysite/images/image.jpg]]></target>
> >>>>         <uuid>379b0271-9602-11de-8605-00237dea8b58</uuid>
> >>>>       </link>
> >>>>     </URI>
> >>>>     <Title/>
> >>>>     <Text name="Text0">
> >>>>       <links/>
> >>>>       <content/>
> >>>>     </Text>
> >>>>     <Source/>
> >>>> </Image>
> >>>> ...
> >>>> </Paragraph>
> >>>> ...
> >>>> </MyPage>
> >>>> </MyPages>
> >>>>
> >>>> So nothing's changed, it seems? The link is still weak, and
> >>> no there's no other <link> element for the image either...
> >>> Why is that? Any ideas on how to fix it?
> >>>> Again, what I need is for images referred to inside
> >>> xmlcontents to be published along with the page. Currently,
> >>> I'm writing my own event listener code to administrate a
> >>> custom relation type (strong one) from the page to the image.
> >>> In my opinion, that's kinda overkill, and shouldn't be
> >>> necessary, since the relations annotation should be
> >>> sufficient. But as long as I cannot get it to work...well,
> >>> I'm just out of options. =|
> >>>> -Paul
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: opencms-dev-bounces at opencms.org
> >>>>> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of
> >>> Michael Moossen
> >>>>> Sent: 31. august 2009 08:39
> >>>>> To: The OpenCms mailing list
> >>>>> Subject: Re: [opencms-dev] How to add a relation
> >>>>>
> >>>>> Hi Paul!
> >>>>>
> >>>>> I thought i did already answer this...
> >>>>> But well, better late than never ;)
> >>>>>
> >>>>>  > "XML content value "Paragraph/Image/URI" used for this
> >>>>> check rule is
> >>>>>  > not optional."
> >>>>> Here the problem is the invalidation mechanism:
> >>>>> By 'very' default when you do not have any relation rules,
> >>>>> relations are
> >>>>> weak and do not invalidate.
> >>>>> But when adding a relation rule specifying only the type, the
> >>>>> invalidate
> >>>>> default value is true(or node), and for this the node has to
> >>>>> be optional.
> >>>>> so to prevent that just set the invalidate attribute to false.
> >>>>>
> >>>>> HTH
> >>>>>
> >>>>> -------------------
> >>>>> Michael Moossen
> >>>>>
> >>>>> Alkacon Software GmbH  - The OpenCms Experts
> >>>>> http://www.alkacon.com - http://www.opencms.org
> >>>>>
> >>>>> Paul-Inge Flakstad schrieb:
> >>>>>> Hi Michael,
> >>>>>>
> >>>>>> Thanks for your reply, it helped me understand the
> >>>>> behaviour. I had already read your presentation
> >>>>>> (that's actually why I put a shout-out to you, mentioning
> >>>>> your name in my previous mail), but I
> >>>>>> couldn't seem to extract this difference in weak and strong
> >>>>> links from it.
> >>>>>> Like I explained, I've tried to put an annotation in my
> >>>>> XSD, defining the image link as strong, but
> >>>>>> since the image container (where the VfsFile element is)
> >>>>> and it's parent container are both optional,
> >>>>>> I get an error stating:
> >>>>>>
> >>>>>>        "XML content value "Paragraph/Image/URI" used for this
> >>>>> check rule is not optional."
> >>>>>> when I try to create a new resource of the type in question.
> >>>>>>
> >>>>>> So, is there any way to get around this? Is it possible to
> >>>>> set xmlcontent relations to be
> >>>>>> strong by default, for example..?
> >>>>>>
> >>>>>> Also, if you or anybody else knows about any tutorial or
> >>>>> how-to on defining custom relations, please
> >>>>>> let me know. :)
> >>>>>>
> >>>>>> Cheers,
> >>>>>> - Paul
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: opencms-dev-bounces at opencms.org
> >>>>>>> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of
> >>>>> Michael Moossen
> >>>>>>> Sent: 20. august 2009 16:27
> >>>>>>> To: The OpenCms mailing list
> >>>>>>> Subject: Re: [opencms-dev] How to add a relation
> >>>>>>>
> >>>>>>> Hi Paul-Inge!
> >>>>>>>
> >>>>>>> Yes, this is the intented behaviour.
> >>>>>>>
> >>>>>>> The keyword here is relation type, which can be weak
> or strong.
> >>>>>>>
> >>>>>>> "related resources" are strong relations and xmlcontent
> >>>>>>> relations are by
> >>>>>>> default weak.
> >>>>>>>
> >>>>>>> for more details see:
> >>>>>>> http://opencms.org/export/sites/opencms/en/events/opencms_days
> >>>>>>> _2008/slides/T2_MichaelMoossen.pdf
> >>>>>>>
> >>>>>>> -------------------
> >>>>>>> Michael Moossen
> >>>>>>>
> >>>>>>> Alkacon Software GmbH  - The OpenCms Experts
> >>>>>>> http://www.alkacon.com - http://www.opencms.org
> >>>>>>>
> >>>>>>> Paul-Inge Flakstad schrieb:
> >>>>>>>> I've gotten no answers on this question, so I'm just
> >>>>>>> posting an update.
> >>>>>>>>
> >>>>>>>> I don't get how the CRE is supposed to work. Seems
> to me that
> >>>>>>>> it actually doesn't work like it's supposed to(?). I've got
> >>>>>>> a structured
> >>>>>>>> content type, which is a just a type of general page.
> >> It nests
> >>>>>>>> paragraphs which in turn nests image containers (where you
> >>>>>>>> can VfsFile-link to the image). Pretty straightforward,
> >>>>>>> nothing special.
> >>>>>>>>
> >>>>>>>> If I add a picture to the page, save, and then look at the
> >>>>>>> relations
> >>>>>>>> using the context menu's "Link relations to/from", I
> >>> can see the
> >>>>>>>> relation between the page and the image just fine. So a
> >>> relation
> >>>>>>>> has definitively been established.
> >>>>>>>>
> >>>>>>>> But when I try to publish the page "with related
> >>>>>>> resources", the system
> >>>>>>>> apparently fails to recognize the relation, as no image
> >>>>>>> file appears in
> >>>>>>>> the publish list, only the page itself... WHY? The relation
> >>>>>>> clearly exists!
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> I've tried other approaches to try to force the
> >>> behaviour I want:
> >>>>>>>>
> >>>>>>>> Tried to manually add a relation using a simple .jsp
> >> that calls
> >>>>>>>> addRelationToResource. However, I was only able to add
> >>> the types
> >>>>>>>> CATEGORY and OU_RESOURCE. All the other types caused
> >>>>>>>> IllegalArgumentExceptions. And still, "publish with related
> >>>>>>> resources"
> >>>>>>>> did not include the image when trying to publish the
> >>> general page.
> >>>>>>>>
> >>>>>>>> Tried to Add the relation in the XSD, but that didn't work
> >>>>>>> either (some
> >>>>>>>> elements are optional, which caused this approach to
> >>>>> produce mostly
> >>>>>>>> errors when trying to create new general pages).
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Can anybody shed some light on why the "publish with
> >>>>>>> related resources"
> >>>>>>>> behaves like this? Is it a configuration issue?
> >>>>>>>> Also, I would still like to see an example on how to
> >>>>>>> programatically add
> >>>>>>>> a new relation between two resources (and how to define a
> >>>>>>> new type of
> >>>>>>>> relation).
> >>>>>>>>
> >>>>>>>> Anyone? (Michael Moossen..? :) )
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> All the best,
> >>>>>>>> Paul
> >>>>>>>>
> >>>>>>>>
> >>>>>>> --------------------------------------------------------------
> >>>>>>> ----------
> >>>>>>>>     *From:* opencms-dev-bounces at opencms.org
> >>>>>>>>     [mailto:opencms-dev-bounces at opencms.org] *On Behalf Of
> >>>>>>> *Paul-Inge
> >>>>>>>>     Flakstad
> >>>>>>>>     *Sent:* 13. august 2009 20:40
> >>>>>>>>     *To:* opencms-dev at opencms.org
> >>>>>>>>     *Subject:* [opencms-dev] How to add a relation
> >>>>>>>>
> >>>>>>>>     Hi everyone
> >>>>>>>>
> >>>>>>>>     I'm trying to programatically add a relation between
> >>>>>>> two resources,
> >>>>>>>>     and things are not going so well.
> >>>>>>>>
> >>>>>>>>     What I want to do is establish a relation between an
> >>>>> xmlcontents
> >>>>>>>>     type resource (structured content) and an image
> >> resource, so
> >>>>>>>>     that the image gets published when the xmlcontents file
> >>>>>>> is published
> >>>>>>>>     with related resources. This is actually quite
> >>>>>>> important, because
> >>>>>>>>     many editors forget to publish images, resulting in an
> >>>>>>> error message
> >>>>>>>>     for any user who's not logged in...
> >>>>>>>>
> >>>>>>>>     I'm putting my code inside a Java class method that
> >>>>> creates the
> >>>>>>>>     image (thumbnail) resource. When using the call like
> >>>>> this (tried
> >>>>>>>>     other CmsRelationTypes as well, same result):
> >>>>>>>>     cmso.addRelationToResource("/en/index.html",
> >>>>>>>>     "/images/thumbs/image.jpg",
> >>>>> CmsRelationType.JSP_WEAK.getName());
> >>>>>>>>
> >>>>>>>>     I get the following error:
> >>>>>>>>     Error while adding a relation from resource
> >>>>> "/en/index.html" to
> >>>>>>>>     resource "/images/thumbs/image.jpg" with type "JSP_WEAK".
> >>>>>>>>
> >>>>>>>>     Can anyone tell me what I'm doing wrong - and/or show
> >>>>>>> me how it's done?
> >>>>>>>>
> >>>>>>>>     Cheers,
> >>>>>>>>     Paul
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>> --------------------------------------------------------------
> >>>>>>> ----------
> >>>>>>>> _______________________________________________
> >>>>>>>> This mail is sent to you from the opencms-dev mailing list
> >>>>>>>> To change your list options, or to unsubscribe from the
> >>>>>>> list, please visit
> >>>>>>>> http://lists.opencms.org/mailman/listinfo/opencms-dev
> >>>>>>> _______________________________________________
> >>>>>>> This mail is sent to you from the opencms-dev mailing list
> >>>>>>> To change your list options, or to unsubscribe from the list,
> >>>>>>> please visit
> >>>>>>> http://lists.opencms.org/mailman/listinfo/opencms-dev
> >>>>>>>
> >>>>>> _______________________________________________
> >>>>>> This mail is sent to you from the opencms-dev mailing list
> >>>>>> To change your list options, or to unsubscribe from the
> >>>>> list, please visit
> >>>>>> http://lists.opencms.org/mailman/listinfo/opencms-dev
> >>>>> _______________________________________________
> >>>>> This mail is sent to you from the opencms-dev mailing list
> >>>>> To change your list options, or to unsubscribe from the list,
> >>>>> please visit
> >>>>> http://lists.opencms.org/mailman/listinfo/opencms-dev
> >>>>>
> >>>> _______________________________________________
> >>>> This mail is sent to you from the opencms-dev mailing list
> >>>> To change your list options, or to unsubscribe from the
> >>> list, please visit
> >>>> http://lists.opencms.org/mailman/listinfo/opencms-dev
> >>> _______________________________________________
> >>> This mail is sent to you from the opencms-dev mailing list
> >>> To change your list options, or to unsubscribe from the list,
> >>> please visit
> >>> http://lists.opencms.org/mailman/listinfo/opencms-dev
> >>>
> >> _______________________________________________
> >> This mail is sent to you from the opencms-dev mailing list
> >> To change your list options, or to unsubscribe from the list,
> >> please visit
> >> http://lists.opencms.org/mailman/listinfo/opencms-dev
> >>
> >
> > _______________________________________________
> > This mail is sent to you from the opencms-dev mailing list
> > To change your list options, or to unsubscribe from the
> list, please visit
> > http://lists.opencms.org/mailman/listinfo/opencms-dev
>
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list,
> please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev
>



More information about the opencms-dev mailing list