publish::render_subitem (public)
publish::render_subitem main_item_id relation_type relation_tag index \ is_embed extra_args [ is_merge ]
Defined in packages/acs-content-repository/tcl/publish-procs.tcl
- Parameters:
- main_item_id (required)
- The id of the parent item
- relation_type (required)
- Either child or relation. Determines which tables are searched for subitems.
- relation_tag (required)
- The relation tag to look for
- index (required)
- The relative index of the subitem. The subitem with lowest order_n has index 1, the second lowest order_n has index 2, and so on.
- is_embed (required)
- If "t", the child item may be embedded directly in the HTML. Otherwise, it may be dynamically included. The proc does not process this parameter directly, but passes it to handle_item
- extra_args (required)
- Any additional HTML arguments to be used when rendering the item, in form {name value name value ...}
- is_merge (optional, defaults to
"t"
)- {default t} If "t", merge_with_template may be used to render the subitem. Otherwise, merge_with_template should not be used, in order to prevent infinite recursion.
- Returns:
- The rendered HTML for the child item
- See Also:
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: # Get the child item if {$relation_type eq "child"} { set subitems [db_list rs_get_subitems ""] } else { set subitems [db_list cs_get_subitems_related ""] } set sub_item_id [lindex $subitems $index-1] if { [template::util::is_nil sub_item_id] } { ns_log notice "publish::render_subitem: No such subitem" return "" } # Call the appropriate handler function set code [list handle_item $sub_item_id -html $extra_args] if {$is_embed == "t"} { lappend code -embed } return [get_html_body [{*}$code]]Generic XQL file: <fullquery name="publish::render_subitem.rs_get_subitems"> <querytext> select child_id from cr_child_rels r, cr_items i where r.parent_id = :main_item_id and r.relation_tag = :relation_tag and i.item_id = r.child_id order by order_n </querytext> </fullquery> <fullquery name="publish::render_subitem.cs_get_subitems_related"> <querytext> select related_object_id from cr_item_rels r, cr_items i where r.item_id = :main_item_id and r.relation_tag = :relation_tag and i.item_id = r.related_object_id order by r.order_n </querytext> </fullquery>packages/acs-content-repository/tcl/publish-procs.xql
PostgreSQL XQL file: packages/acs-content-repository/tcl/publish-procs-postgresql.xql
Oracle XQL file: packages/acs-content-repository/tcl/publish-procs-oracle.xql