Publishing & landing pages vs. "non-landing" pages question

I have requirement to rename all landing pages,during the publishing, to “Default” and non landing pages should keep their names. I thought that I can do that in publishing context as an expression. Is it possible to determine which page is an landing page and which not during the publishing at all? My context expression looks like this right now (basically FastFoward version):

$sys.pub_path + $sys.template.prefix + 'item' + $sys.item.getProperty('rx:sys_contentid').String  +
$rx.location.getFirstDefined($sys.item,'rx:activeimg_ext,rx:sys_suffix', '.cfm)

Daniel,

In the most recent versions of the PSOToolkit (build 59 and higher), I’ve added a new function $user.psoRelationships.isLandingPage($sys.item.id).

This function returns true if the item is a landing page and false otherwise. You can use this with an if statement to generate the desired location scheme.

However, one thing you need to be aware of: adding or removing an item from the Navons does not “touch” the item’s timestamp. This means that incremental publishing will not select the item you have added or removed from the landing page slot. You need to “Touch” these items manually, or else do a full publish.

Dave

Thanks Dave, that was what I am looking for.

Hi,

I’ve tried $user.psoRelationships.isLandingPage($sys.item.guid) in some of our templates (global and local) and it always returns false. Am I wrong in thinking a “landing page” in this context is any content item that has been added to the rffNavLandingPage slot on a navon? I’m I using it wrong?

Thanks,

Andrew.

Found the answer: the navon that the content item is a landing page of must be in a public state.

Andrew,

The exact rule is that all of the “ancestors” (that is the Navon and it’s parent Navons all the way back to the NavTree root) must be in a “Publishable” state, which includes both Public and Quick Edit (and any other Quick Edit like states).

This function was put in to enable filtering of Navons which which are “orphaned” (because one of their ancestor Navons is not publishable). Attempts to publish (or unpublish) these orphaned Navons will fail if they are not filtered out.

The “isLandingPage()” method is just a convenient by-product.

Dave