ad_page_contract {
lists the items under a folder. we need to use different queries on templates and actions
} {
{orderby:optional}
{page:optional}
}
set current_url [ad_return_url -urlencode]
set return_url [ad_return_url]
array set folder [bcms::folder::get_folder -folder_id $current_item(item_id)]
set package_url [ad_conn package_url]
set current_item_id $current_item(item_id)
set context_action [list]
set manage_type [ad_get_client_property -default content [ad_conn package_id] manage_type]
# check to see if we are managing content or template, they differ in action and queries
if {[string equal $manage_type "content"]} {
template::list::create \
-name item_list \
-multirow item_list \
-pass_properties { package_url } \
-key item_id \
-bulk_actions [list \
"Delete" "${package_url}manage/delete-item" "Delete checked items" \
"Move" "${package_url}manage/move-item" "Move checked items" \
]\
-bulk_action_export_vars {
return_url
} \
-actions [list \
Edit "${package_url}manage/folder-edit?folder_id=$current_item_id&return_url=$current_url" "Edit this Folder" \
"Use Categories" "${package_url}manage/folder-set-category?folder_id=$current_item_id&return_url=$current_url" "Categorize Contents on the Folder" \
]\
-elements {
name {
label "Name"
link_url_col name
}
title {
label "Title"
}
content_type {
label "Type"
display_template {
}
html { style "width:70px" }
}
last_modified {
label "Last Modified"
html { style "width:180px" }
}
} \
-orderby {
default_value name,asc
name {
orderby name
}
title {
orderby title
}
content_type {
orderby content_type
}
last_modified {
orderby last_modified
}
} \
-page_size 10 \
-page_groupsize 10 \
-page_query {
select i.item_id,
i.name,
i.live_revision,
i.latest_revision,
i.publish_status,
i.content_type,
i.storage_type,
i.tree_sortkey,
last_modified,
r.title,
r.description
from cr_items i, cr_revisionsx r
where
i.parent_id = $current_item(item_id)
and i.latest_revision = r.revision_id
union
select i.item_id,
i.name,
i.live_revision,
i.latest_revision,
i.publish_status,
i.content_type,
i.storage_type,
i.tree_sortkey,
null as last_modified,
f.label as title,
f.description
from cr_items i, cr_folders f
where
i.parent_id = $current_item(item_id)
and i.item_id = f.folder_id
[template::list::orderby_clause -orderby -name item_list]
} \
-page_flush_p 1
bcms::item::list_items -parent_id $current_item(item_id) -multirow_name item_list -additional_columns [list creation_user] -orderby [template::list::orderby_clause -name item_list] -show_only [template::list::page_get_ids -name item_list]
set context_action "
Edit this Folder
Template this Folder
Use Categories
Add a Folder
Add a Page
Add a File
Add an Image"
set context_help "This is a content folder. You can see the contents of the folder on your right. You may click the actions that can be performed on this folder on your left."
set title "View Folder Contents"
} else {
template::list::create \
-name item_list \
-multirow item_list \
-pass_properties { package_url } \
-key template_id \
-bulk_actions {
"Delete" "${package_url}manage/template-delete" "Delete checked items"
} \
-bulk_action_export_vars {
return_url
} \
-elements {
title {
label "Template Title"
link_url_col name
}
}
bcms::template::list_templates -parent_id $current_item(item_id) -multirow_name item_list
set context_action "Add a Template"
set context_help "This is a template folder. You can see available templates on your right, you can add templates here"
set title "View Templates"
}
set context [bcms::widget::item_context -item_id $current_item(item_id) -root_id $root_id]
set context [lrange $context 0 [expr [llength $context] - 2]]
lappend context "$folder(label)"