Hi Michael,

i have exactly the same problem. I'd like to use a date in the google
sitemap.

Unfortunately it is not possible to access info elements via render
tags. There is a note in the German Navigation Manager documentation
on page 51 --> PageElementList Elements.

I would not suggest to look for liveserver solution, as it could
reduce the performance of your system, if you have many pages.

A possible solution could be to code a script that runs once a night
and get all relevant master pages from the system, looks at the
modification date of all its child pages and writes the newest date to
a standard field of the master page.

This is what i like to do, but i have not yet started :)

Regards,
Stefan Popp

On Jul 1, 6:57 pm, "[email protected]" <[email protected]>
wrote:
> Hi Everyone,
>
> SUMMARY
> To make a long story short, I am attempting to output the values of an
> info placeholder of a particular set of (master) pages from within a
> render spot in a separate content class.
>
> If this is enough information for you, then you can skip all the gory
> details. If you need more info, here it is:
>
> DETAILED DESCRIPTION OF PROBLEM
> 1. Every night, we run an automatic publishing job which uses the
> Navigation Manager to traverse the entire navigation structure of our
> site and build (and then publish) a single XML file based on the
> Google Sitemaps protocol (http://en.wikipedia.org/wiki/
> Google_Sitemaps).
> 2. Everything functions fine except for the <lastmod> elements of the
> Google Sitemaps protocol, which is supposed to contain the date on
> which each page in the site was last modified.
> 3. The obvious way to do this would be to add a line within the render
> spot such as:
>
> <lastmod><%!!
> Context:CurrentIndex.Page.Elements.GetElement(inf_modification_date).GetHtml()
>  !!
> %></lastmod>
>
> where inf_modification_date represents an Info placeholder of type
> “Page: Modification Date”.
> 4. The problem is, as I’m sure many of you already know, the above
> line of code will not work because GetElement().GetHtml() does not
> work with Info placeholders, it only works with Standard Field and a
> limited range of other types of placeholders. (When called on an Info
> tag, it renders the empty string.)
>
> ATTEMPTED SOLUTION
> 1. I though I would outsmart the CMS by adding to the master page, RQL
> which dumps the contents of inf_modification_date into a Standard
> Field placeholder named “stf_modification_date”, which could then be
> accessed from the render spot. I added the following piece of code to
> the master page’s template:
>
> <reddot:cms>
>    <if>
>        <query valuea="Context:CurrentRenderMode" operator="=="
> valueb="Int:1">
>            <htmltext>
>
> <%
> ‘ only function SetElementValue is shown here; functions that it calls
> are omitted here for the sake of brevity
>
> function SetElementValue( pageguid, elementname, value )
>   XMLData = "<IODATA loginguid='<%inf_loginguid%>' sessionkey='<
> %inf_sessionkey%>'>" &_
>      "<PAGE guid='" & pageguid & "'>" &_
>         "<ELEMENTS action='load'/>" &_
>      "</PAGE>" &_
>      "</IODATA>"
> resultXML = sendXML(XMLData)
> resElementGUID = getElementGUID( resultXML, "ELEMENT", "eltname",
> elementname )
>   XMLData = "<IODATA loginguid='<%inf_loginguid%>' sessionkey='<
> %inf_sessionkey%>'>" &_
>      "<ELEMENTS action='save'>" &_
>         "<ELT guid='" & resElementGUID & "' value='" & value & "'>" &_
>         "</ELT>" &_
>      "</ELEMENTS>" &_
>      "</IODATA>"
>   resultXML = sendXML(XMLData)
> end function
>
> setpublished = SetElementValue( ”<%inf_page_guid%>”,
> ”stf_modification_date”, ”<%inf_modification_date%>”)
> %>
>
>            </htmltext>
>        </query>
>    </if>
> </reddot:cms>
>
> 2. The problem here is that, while this does indeed dump the contents
> of inf_modification_date into stf_modification_date, it only does so
> when the page is accessed in SmartEdit, due to the render spot
> (separate from the above-mentioned render spot) that the code is
> wrapped in. Therefore, it will not dump the contents if, for instance,
> the page is modified from within SmartTree, though admins may need to
> do this. (Without this render spot, the ASP code will be passed on to
> the published page, which is unacceptable. I also tried to wrap the
> code in pre-execute blocks instead of the render spot, but then the
> code seemed not to be executed at all.)
>
> 3. There is another problem as well: Even when the code does execute
> (at the time the page is accessed in SmartEdit), stf_modification_date
> receives the value of inf_modification_date *before*
> inf_modification_date receives its new value. Thus, the value of
> stf_modification_date will always lag behind by one iteration. For
> example, if I modify a given page 2 times, once at 4:12 PM and at
> again at 4:22 PM, then, when I am done with these two modifications,
> stf_modification_date will hold the value “4:12 PM”, and not the value
> “4:22 PM”, as would be expected (or at least hoped for). If I then
> access the page a third time in SmartEdit (say, at 4:35PM), as soon as
> I navigate to the page in SmartEdit to edit it, stf_modification_date
> will receive the old value of inf_modification_date (“4:22 PM”), and
> then, only afterwards, will inf_modification_date will receive its new
> value (“4:35 PM”).
>
> Therefore, this does not seem like a viable option.
>
> CONCLUSION
> It seems that, somehow, I must get the value of inf_modification_date
> directly from within the (first) render spot. Any ideas? Can I embed
> RQL calls into the render spot? Is there only a LiveServer solution to
> this problem (perhaps importing inf_modification_date and then using a
> query or a target dynament to build the Google Sitemmaps XML)? Are
> there other solutions that you can think of?
>
> Any insights and suggestions are much appreciated.
>
> Thanks in advance,
> Michael Klosner

-- 
You received this message because you are subscribed to the Google Groups 
"RedDot CMS Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/reddot-cms-users?hl=en.

Reply via email to