Index: openacs-4/packages/photo-album/www/random-photo-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/photo-album/www/random-photo-postgresql.xql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/photo-album/www/random-photo-postgresql.xql 27 Aug 2003 18:27:35 -0000 1.1
@@ -0,0 +1,66 @@
+
+
+
+ postgresql7.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,
+ random() as seed
+ 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
+ $folder_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
+
+
+
+
+
+and ci.tree_sortkey between root.tree_sortkey and tree_right(root.tree_sortkey)
+and root.item_id = :root_folder_id
+
+
+
+
+
+ ccr2.relation_tag = 'normal'
+
+
+
+
+
+ ccr2.relation_tag = 'thumb'
+
+
+
+
Index: openacs-4/packages/photo-album/www/random-photo.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/photo-album/www/random-photo.adp,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/photo-album/www/random-photo.adp 27 Aug 2003 18:27:35 -0000 1.1
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
Index: openacs-4/packages/photo-album/www/random-photo.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/photo-album/www/random-photo.tcl,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/photo-album/www/random-photo.tcl 27 Aug 2003 18:27:35 -0000 1.1
@@ -0,0 +1,79 @@
+# Includable template pair that can be used to show a random photo
+# from a photo-album instance or from all instances on the server.
+#
+# written by Jarkko Laine (jarkko.m.laine@tut.fi)
+#
+# Usage:
+#
+# or
+# where 1473
+# is the package_id of your photo-album instance.
+#
+# If neither package_id nor url is defined, the random photo is taken from all photos
+# in the system.
+#
+# Expects:
+# package_id:optional
+# url:optional
+# size:optional (thumb, normal) (thumb is default)
+#
+
+
+
+
+# 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)
+}
+
+set found_p 1
+
+# If they supplied neither url nor package_id, the random photo
+# is shuffled across all the photos in the system
+if { ![info exists package_id] } {
+ set folder_clause ""
+} else {
+ set root_folder_id [pa_get_root_folder $package_id]
+ set folder_clause [db_map folder_clause]
+}
+
+if { ![info exists size] } {
+ set size "thumb"
+}
+
+switch -exact $size {
+ normal {
+ # 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]
+ }
+}
+
+# Get the photo information
+if {[catch {db_1row get_random_photo {}}] } {
+ # No photos found
+ set found_p 0
+}
+
+
+# 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