i usually run a query like (untested, sql server syntax, adjust as 
necessary for your db)

select left(c.label,35) as objectid, refObjects.typename, r.objectid as 
ruleObjectId from container c join container_aRules cr on c.objectid = 
cr.parentid join ruleForm r on cr.data = r.objectid left join refObjects 
on left(c.label,35) = refObjects.objectid;

That will give you a list of objectid's and the typename for objects that 
have (or had) a container with that rule, and the objectid of the rule.

If there is no typename value, then the object has probably been deleted 
since there was no record in refobjects.  You could then call the delete() 
method for the rule for each ruleObjectId you want to delete.

Something like (untested):

<cfset oRule = application.fapi.getcontenttype("ruleForm") />
<cfloop query="q">
  <cfif q.typename[q.currentrow] eq "">
    <cfset oRule.delete(q.ruleObjectid[q.currentrow] />
  </cfif>
</cfloop>


I would check that the page has been deleted first and be sure you actually 
want to remove those rules before deleting, but I hope you get the idea. 
 Also this wont work for "global" containers.  This will only match 
containers that have the ObjectID of the page in the label field.  

ex: <con:container label="#stobj.objectid#_myContainerName" />

Good luck

-- 
You received this message cos you are subscribed to "farcry-dev" Google group.
To post, email: [email protected]
To unsubscribe, email: [email protected]
For more options: http://groups.google.com/group/farcry-dev
--------------------------------
Follow us on Twitter: http://twitter.com/farcry

Reply via email to