Author: hhubner Date: 2006-07-23 12:07:35 -0400 (Sun, 23 Jul 2006) New Revision: 1975
Modified: branches/xml-class-rework/projects/quickhoney/src/image.lisp branches/xml-class-rework/projects/quickhoney/website/static/javascript.js Log: Add deep link support for RSS
Modified: branches/xml-class-rework/projects/quickhoney/src/image.lisp =================================================================== --- branches/xml-class-rework/projects/quickhoney/src/image.lisp 2006-07-23 16:07:05 UTC (rev 1974) +++ branches/xml-class-rework/projects/quickhoney/src/image.lisp 2006-07-23 16:07:35 UTC (rev 1975) @@ -20,12 +20,6 @@ (store-object-remove-keywords image 'bknr.web::keywords '(:import))) (get-keywords-intersection-store-images '(:import))))
-(define-persistent-class quickhoney-animation-image (quickhoney-image) - ((animation :update))) - -(defmethod destroy-object :before ((image quickhoney-animation-image)) - (delete-object (quickhoney-animation-image-animation image))) - (defmethod rss-item-channel ((item quickhoney-image)) "quickhoney")
@@ -36,4 +30,24 @@ (format nil "~A~@[ (Client: ~A)~]" (store-image-name image) (quickhoney-image-client image)))
(defmethod rss-item-link ((image quickhoney-image)) - (format nil "http://quickhoney.com/image/~A" (store-image-name image))) \ No newline at end of file + (make-image-link image)) + +(defmethod rss-item-guid ((image quickhoney-image)) + (make-image-link image)) + +(defmethod quickhoney-image-category ((image quickhoney-image)) + (first (intersection (store-image-keywords image) '(:pixel :vector :photo :contact)))) + +(defmethod quickhoney-image-subcategory ((image quickhoney-image)) + (first (set-difference (store-image-keywords image) '(:pixel :vector :photo :button :contact :published :upload)))) + +(defmethod make-image-link ((image quickhoney-image)) + (format nil "http://quickhoney.com/index?jumpto=~(~A/~A~)/~A" + (quickhoney-image-category image) (quickhoney-image-subcategory image) (store-image-name image))) + +(define-persistent-class quickhoney-animation-image (quickhoney-image) + ((animation :update))) + +(defmethod destroy-object :before ((image quickhoney-animation-image)) + (delete-object (quickhoney-animation-image-animation image))) +
Modified: branches/xml-class-rework/projects/quickhoney/website/static/javascript.js =================================================================== --- branches/xml-class-rework/projects/quickhoney/website/static/javascript.js 2006-07-23 16:07:05 UTC (rev 1974) +++ branches/xml-class-rework/projects/quickhoney/website/static/javascript.js 2006-07-23 16:07:35 UTC (rev 1975) @@ -231,7 +231,20 @@ document.getElementById("browse").style.visibility = 'hidden'; document.getElementById("results").style.visibility = 'visible';
- display_thumbnail_page(); + if (document.show_picture) { + debug('directly jump to ' + document.show_picture); + for (var i = 0; i < query_result.length; i++) { + debug('got: ' + query_result[i].name + ' want ' + document.show_picture); + if (query_result[i].name == document.show_picture) { + debug('name: ' + query_result[i].name); + display_image(i); + break; + } + } + document.show_picture = null; + } else { + display_thumbnail_page(); + }
display_path(); } @@ -589,6 +602,14 @@
document.getElementById("contactimage").src = button_images['contact/contact']; } + + if (document.jump_to) { + var components = document.jump_to.split("/"); + document.jump_to = null; + show_page(components[0]); + subdirectory(components[1]); + document.show_picture = components[2]; + } }
function load_button_images() { @@ -1017,6 +1038,12 @@ show_cms_window("login_form"); }
+ if (document.location.href.indexOf("jumpto=") != -1) { + var jump_to = document.location.href.replace(/.*jumpto=/, ""); + jump_to = jump_to.replace(/[&#].*/, ""); + document.jump_to = jump_to; + } + buttons = document.getElementById("directory").getElementsByTagName('img'); button_links = document.getElementById("directory").getElementsByTagName('a');