etp::get_content_items (public)

 etp::get_content_items [ -orderby orderby ] [ -limit limit ] \
    [ -where where ] [ -package_id package_id ] \
    [ -result_name result_name ] [ args... ]

Defined in packages/edit-this-page/tcl/etp-procs.tcl

Switches:
-orderby
(optional)
-limit
(optional)
-where
(optional)
-package_id
(optional)
-result_name
(defaults to "content_items") (optional)
Author:
Luke Pond
Created:
2001-06-10

Partial Call Graph (max 5 caller/called nodes):
%3 packages/edit-this-page/www/etp.tcl packages/edit-this-page/ www/etp.tcl etp::get_content_items etp::get_content_items packages/edit-this-page/www/etp.tcl->etp::get_content_items ad_conn ad_conn (public) etp::get_content_items->ad_conn db_map db_map (public) etp::get_content_items->db_map db_multirow db_multirow (public) etp::get_content_items->db_multirow etp::get_application_param etp::get_application_param (public) etp::get_content_items->etp::get_application_param etp::get_attribute_desc etp::get_attribute_desc (public) etp::get_content_items->etp::get_attribute_desc

Testcases:
No testcase defined.
Source code:
    

    set content_type [etp::get_content_type]

    if {$orderby eq ""} {
    set orderby [db_map gci_orderby]
    }

    if {$limit ne ""} {
    set limit_clause "limit $limit"
    } else {
    set limit_clause ""
    }

    if {$where ne ""} {
    set extra_where_clauses $where
    } else {
    set extra_where_clauses [db_map gci_where_clause]
    }

    if {$package_id eq ""} {
    set package_id [ad_conn package_id]
    } else {
    set app [parameter::get -package_id $package_id -parameter application -default default]
    set content_type [etp::get_application_param content_content_type $app]
    }

    set columns [db_map gci_columns_clause]
    ns_log debug "get_content_items: columns: $columns"
    
    for {set i 0} {$i < [llength $args]} {incr i} {
    set arg [lindex $args i]

    if {$arg in { item_id revision_id content publish_date }} {
        append columns ",\n r.$arg"
    } else {
        ns_log debug "get_content_items: extended attribute named $arg"
        set attr_desc [etp::get_attribute_desc $arg $content_type]
        if { $attr_desc ne "" } {
        ns_log debug "get_content_items: adding it"
        set lookup_sql [etp::get_attribute_lookup_sql $attr_desc]
        append columns ",\n $lookup_sql"
        }
    }
    }
  
    upvar $result_name $result_name
    #set folder_id [ns_memoize -expires 3600 etp::get_folder_id $package_id]
    set folder_id [etp::get_folder_id $package_id]

    db_multirow $result_name get_content_items ""
Generic XQL file:
<fullquery name="etp::get_content_items.gci_where_clause">
    <querytext>
   1 = 1
</querytext>
</fullquery>
packages/edit-this-page/tcl/etp-procs.xql

PostgreSQL XQL file:
<fullquery name="etp::get_content_items.get_content_items">
    <querytext>
   select * from
     (select $columns
      from cr_items i left join cr_revisions r on (i.live_revision = r.revision_id)
      where i.parent_id = :folder_id and i.name != 'index'
     ) attributes
   where $extra_where_clauses
   order by $orderby
   $limit_clause
</querytext>
</fullquery>

<fullquery name="etp::get_content_items.gci_orderby">
    <querytext>
      sort_order
   </querytext>
</fullquery>

<fullquery name="etp::get_content_items.gci_columns_clause">
    <querytext>
      i.item_id, i.name, tree_sortkey as sort_order,
      to_char(r.publish_date, 'Mon DD, YYYY') as publish_date,
      (select object_type from acs_objects 
       where object_id = i.item_id) as object_type,
             etp__get_relative_url(i.item_id, i.name) as url,
             etp__get_title(i.item_id, r.title) as title,
             etp__get_description(i.item_id, r.description) as description      
   </querytext>
</fullquery>
packages/edit-this-page/tcl/etp-procs-postgresql.xql

Oracle XQL file:
<fullquery name="etp::get_content_items.get_content_items">
    <querytext>
   select * from
     (select * from (
	select $columns
          from cr_items i, cr_revisions r
         where i.parent_id = :folder_id
	   and i.name != 'index'
           and i.live_revision = r.revision_id(+)
     ) attributes
     where $extra_where_clauses
     order by $orderby)
   $limit_clause
</querytext>
</fullquery>

<fullquery name="etp::get_content_items.gci_orderby">
    <querytext>
	sort_order
  </querytext>
</fullquery>

<fullquery name="etp::get_content_items.gci_columns_clause">
    <querytext>
   i.item_id, i.name,
             to_char(r.publish_date, 'Mon DD, YYYY') as publish_date, rownum as sort_order,
             (select object_type from acs_objects 
               where object_id = i.item_id) as object_type,
             etp.get_relative_url(i.item_id, i.name) as url,
             etp.get_title(i.item_id, r.title) as title,
             etp.get_description(i.item_id, r.description) as description
  </querytext>
</fullquery>
packages/edit-this-page/tcl/etp-procs-oracle.xql

[ hide source ] | [ make this the default ]
Show another procedure: