I have an incremental content list with the following JEXL query:
<code>select rx:sys_contentid, rx:sys_folderid from rx:RsrC_Category, rx:RsrC_Subcategory, rx:RsrC_Article where jcr:path like ‘//Sites/ResourceCenter/%’</code>
I am using the List Template Expander for the following templates:
<code>RsrC_Article_XML, RsrC_Category_Properties, RsrC_Subcategory_Properties</code>
And I have this content list in an edition that has a crontab entry triggering it to run every 2 hours.
BUT, every single time the content list is generated, the <code>CONTENTLASTMODIFIEDDATE</code> field in the <code>CONTENTSTATUS</code> table gets updated for the Article and Category content items (but not the subcategory items, interestingly enough). This is causing all of the affected items to republish every time the edition runs, which is undesirable and has led to website instability.
Is there anything in the templating engine that would cause this?
The only commonality I can see is that the both <code>RsrC_Article_XML</code> and <code>RsrC_Category_Properties</code> have a slot called <code>RsrC_Article</code> (label: Related Articles) and the subcategory template does not.
The related articles slot is a Regular Active Assembly type slot using the sys_RelationshipContentFinder that allows related items to be of the type RsrC_Article.
Any ideas what could be causing the modified date to keep getting reset?
The most likely scenario is that you have an auto-index slot on one of the templates associated with the Article and Category content types. If this is true, then ALL items of that content type will be “touched” by the system prior to publishing.
Note that the autoindex doesn’t even have to be on one of the templates you are actually publishing: it just has to exist for this behavior to occur.
Note that it is not auto slots that CONTAINS the content type, but rather an auto-slot that is registered on one of the templates that is associated with the content type, regardless of whether that template actually publishes.
Ok, I’ve removed the auto-slots from the RsrC_Article_XML template and replaced them with code to manually create and assemble the desired related content using macros I’ve previously placed in the code-snippet repository forum.
Low and behold, the last-modified date has stopped updating after every publish. Fantastic.
So tell me this, then… The other Content type in the list (RsrC_Subcategory) has a an auto-slot registered to it (RsrC_Article_Auto). However, it’s not causing the subcategory items to republish every time.
Is this an inconsistency? Or may it have something to do with the queries?
I don’t think it has anything to do with the queries. However, it does depend on which “slot finder” is registered to the slot. It’s possible that finder is registered incorrectly on the slot. Without more details, I cannot speculate further.
RsrC_Article_Auto uses <code>sys_AutoSlotContentFinder</code>, is regular and allows “ActiveAssembly” relationships. The main template for this content type, however, does not use this slot. The query basically locates all articles which have that subcategory selected from a drop-down.
The template that does use the auto-slot is for preview only and is not visible to any site.
Does this mean, then, that if someone previews a subcategory then CM System will try to republish it the next time the edition runs?
EDIT: I tried previewing the template that has the auto-slot. it did not cause the last-modified dates of the content item to be changed.
At the time the Publisher runs, it looks at each content type. If that content type has a template which contains a slot whose finder is an “auto slot finder”, then ALL items of that content type are “modified” by a system process before the Publisher runs.
There is no interaction with Preview: it’s a Publisher function plain and simple.
Note also that it’s not important if the template publishes (or not) for a particular item: all of the processing is by content type.