<html> <!--AD_DND--> <head> <title>Bookmarks System</title> </head> <body bgcolor=#ffffff text=#000000> <h2>Bookmarks System</h2> part of the <a href="index.html">ArsDigita Community System</a> by <a href="mailto:dh@caltech.edu">David Hill</a> and <a href="http://aure.com/">Aurelius Prochazka</a> <hr> <ul> <li> User-accessible directory: <a href="/bookmarks/">/bookmarks/</a> <li> Adminstration directory: <a href="/admin/bookmarks/">/admin/bookmarks/</a> (must use https://) <li> data model: <a href="/doc/sql/display-sql.tcl?url=/doc/sql/bookmarks.sql">/doc/sql/bookmarks.sql</a> <li> procedures: /tcl/bookmarks-defs.tcl </ul> <h3> The Big Idea </h3> People working together may find it useful to share bookmarks with each other. In addition, someone who moves around from computer to computer may find it useful to store bookmarks on a central server rather than on individual desktop machines. <h3> Parameters</h3> <blockquote> <pre> ; for the ACS Bookmarks System [ns/server/yourservername/acs/bm] ; optional, defaults to main site owner SystemOwner=philg@mit.edu ; main page title SystemName=Bookmarks System ; text decoration for dead links DeadDecoration=<i> ; text decoration for folders FolderDecoration=<b> ; text decoration for bookmarks invisible to the public HiddenDecoration=<font color=#bb0000> ; background color of folders FolderBGColor=#f3f3f3 ; background color of files BookmarkBGColor=#ffffff ; size of largest bookmarks file permissible to upload MaxNumberOfBytes=2000000 </pre> </blockquote> <h3> Function-by-function Spec </h3> Here is a list of functions for a complete bookmark system: <ol> <li>Upload from Netscape-style bookmarks file <li>Upload from IE individual file bookmark, files, or URLs<li> Download (export) Bookmarks (i.e., show in Netscape form) <li> Download (export) Bookmarks (i.e., show in Netscape form) <li>Check URL on input <li>Check URLs regularly or on demand <li>Search bookmark URLs, titles, meta tags <li>Organize bookmarks with folders (create folder, move bookmark, delete folder) <li>Spawn a small window in which to keep bookmarks <p> <li>List most popular URLs, hosts <li>Allowing public viewing of a users bookmarks by others </ol> Some of these functions like importing and checking bookmarks can take a long time, so in this module there is extensive use of <code>ReturnHeaders ... ns_write "..."</code> which streams out to the user to show that progress is being made. <p> The idea of storing bookmarks on the Internet rather than on your hard drive is not a new one. Several sites already serve this purpose: <UL><LI><A HREF="http://bookmarks.yahoo.com/">Yahoo! Bookmarks</A> <LI><A HREF="http://www.bookmarkbox.com">Bookmark Box</A> <LI><A HREF="http://www.bookmarksplus.com">BookmarksPlus</A> <LI><A HREF="http://www.markwebsite.com/">Mark Web Site</A> <LI><A HREF="http://murl.com/">murl.com</A> <LI><A HREF="http://www.mybookmarks.com">MyBookmarks</A> <LI><A HREF="http://www.clickmarks.com">Clickmarks</A> </ul> However, this is ALL the sites really provide, whereas with ACS a person's bookmarks become part of a user profile that includes contributions across all modules. <h3>Our data model</h3> This system is built on two tables, one that holds the URLs and URL-specific information, and another that indicates which users have bookmarked which URLs. Folders are treated the same as bookmarks, with a folder_p column set to 't' and no URL information. Each bookmark or folder has a parent_id that references a folder in the same table or is NULL indicating that it is a top level item. <h3> Limitations </h3> <ul> <li> The javascript folder system is pretty slow, but instead of trying to optimize it, we introduced the ability open/close folders on the regular html page. <li> You can't move bookmarks around within a folder, just to a position at the end of another folder, so organization is somewhat limited. </ul> <h3> Future enhancements</h3> <ul> <li>Ability to correlate your bookmarks with other users with similar interests <li>Ability to sort bookmarks by Title, URL, date added/modified <li>Ability to manually reorder bookmarks within a folder. Currently, they always appear in the order in which they were added. </ul> <hr> <a href="mailto:aure@arsdigita.com"><address>aure@arsdigita.com</address></a> </body> </html>