Index: openacs-4/packages/photo-album/www/latest-photo-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/photo-album/www/latest-photo-postgresql.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/photo-album/www/latest-photo-postgresql.xql 19 Jan 2006 03:52:55 -0000 1.1.2.1
@@ -0,0 +1,81 @@
+
+
+
+ postgresql
+ 7.2
+
+
+
+
+ select ci.item_id as photo_id,
+ (select pp.caption
+ from pa_photos pp
+ where pp.pa_photo_id = ci.live_revision) as caption,
+ i.image_id as thumb_path,
+ i.height as thumb_height,
+ i.width as thumb_width,
+ latest() as seed
+ from cr_items ci, cr_items ci2, cr_child_rels ccr2, images i
+ where $size_clause
+ and ci.item_id = ccr2.parent_id
+ and ccr2.child_id = ci2.item_id
+ and ci2.live_revision = i.image_id
+ and ci.live_revision is not null
+ $photo_clause
+ order by seed limit 1
+
+
+
+
+
+ select site_node__url(sn.node_id)
+ from site_nodes sn
+ inner join pa_package_root_folder_map pm on (sn.object_id = pm.package_id)
+ inner join cr_items parent on (pm.folder_id = parent.item_id)
+ inner join cr_items child on (parent.tree_sortkey <= child.tree_sortkey)
+ where child.tree_sortkey between parent.tree_sortkey and tree_right(parent.tree_sortkey)
+ and tree_level(parent.tree_sortkey) = 2
+ and child.item_id = :photo_id
+
+
+
+
+
+ select ci.item_id as photo_id,
+ (select pp.caption
+ from pa_photos pp
+ where pp.pa_photo_id = ci.live_revision) as caption,
+ i.image_id as thumb_path,
+ i.height as thumb_height,
+ i.width as thumb_width
+ from cr_items ci, cr_items ci2, cr_items root, cr_child_rels ccr2, images i
+ where $size_clause
+ and ci.item_id = ccr2.parent_id
+ and ccr2.child_id = ci2.item_id
+ and ci2.live_revision = i.image_id
+ and ci.live_revision is not null
+ and ci.tree_sortkey between root.tree_sortkey and tree_right(root.tree_sortkey)
+ and root.item_id = :root_folder_id
+ order by ci.item_id desc limit 1
+
+
+
+
+
+ and ci.item_id = :photo_id
+
+
+
+
+
+ ccr2.relation_tag = 'viewer'
+
+
+
+
+
+ ccr2.relation_tag = 'thumb'
+
+
+
+
Index: openacs-4/packages/photo-album/www/latest-photo.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/photo-album/www/latest-photo.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/photo-album/www/latest-photo.adp 19 Jan 2006 03:52:55 -0000 1.1.2.1
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
Index: openacs-4/packages/photo-album/www/latest-photo.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/photo-album/www/latest-photo.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/photo-album/www/latest-photo.tcl 19 Jan 2006 03:52:55 -0000 1.1.2.1
@@ -0,0 +1,115 @@
+# Includable template pair that can be used to show the latest photo
+# from a photo-album instance or from all instances on the server.
+
+# written by Jarkko Laine (jarkko.m.laine@tut.fi)
+# @author: Bart Teeuwisse (bart.teeuwisse@thecodemill.biz)
+# @author: Jade Rubick (jade@rubick.com)
+
+# Usage:
+#
+# or
+# where 1473
+# is the package_id of your photo-album instance.
+# or
+# where 9912
+# is the photo_id of a photo in one of your albums.
+# or
+# where 2983
+# is the album_id of an album in one of your packages.
+# It is not possible to give package_id and album_id at the same time (as it would not make sense anyway).
+
+# If neither package_id, album_id nor url is defined, the latest photo is taken from all photos
+# in the system.
+
+# Expects:
+# photo_id:optional
+# package_id:optional
+# url:optional
+# size:optional (thumb, viewer) (thumb is default)
+
+# Use the position specified by the caller, default is left.
+
+if {![info exists latest:position]} {
+ set latest:position left
+}
+
+# If the caller specified a URL, then we gather the package_id from that URL
+
+if {[info exists url]} {
+
+ # Let's add the leading/tailing slashes so the url's will always work
+
+ set url [string trim $url]
+ if {![string equal [string index $url 0] "/"]} {
+ set url "/$url"
+ }
+ if {![string equal [string index $url end] "/"]} {
+ set url "$url/"
+ }
+
+ array set pa_site_node [site_node::get \
+ -url $url]
+ set package_id $pa_site_node(object_id)
+}
+
+# Determain the display size of the photo.
+
+if {![info exists size]} {
+ set size "thumb"
+}
+switch -exact $size {
+ viewer {
+
+ # Get the normal size photo
+
+ set size_clause [db_map size_clause_normal]
+ }
+ default {
+
+ # Grab the thumbnail
+
+ set size_clause [db_map size_clause_thumb]
+ }
+}
+
+# If they supplied neither url nor package_id, the latest photo
+# is shuffled across all the photos in the system.
+
+if {[info exists album_id]} {
+ set photo_clause "and ci.parent_id = :album_id"
+} else {
+ set photo_clause ""
+}
+
+if {![info exists package_id]} {
+ if {[info exists photo_id]} {
+ # A photo ID was provided. Limit the query to that photo.
+
+ set photo_clause [db_map photo_clause]
+ }
+
+ if {[catch {db_1row get_latest_photo_all {}} err_msg]} {
+ ns_log error "No latest photo found: $err_msg"
+ set found_p 0
+ } else {
+ set found_p 1
+ }
+} else {
+ set root_folder_id [pa_get_root_folder $package_id]
+ if {[catch {db_1row get_latest_photo_folder {}} err_msg]} {
+ ns_log error "No latest photo found in folder $root_folder_id: $err_msg"
+ set found_p 0
+ } else {
+ set found_p 1
+ }
+}
+
+# if no url or package_id were given, we have to find out
+# which package the photo belongs to
+
+if {![info exists package_id]
+ && ![info exists url] && $found_p == 1} {
+ set url [db_string get_url ""]
+}
+
+ad_return_template