aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/config.php.dist283
-rw-r--r--data/templates/bookmarks.tpl.php878
2 files changed, 577 insertions, 584 deletions
diff --git a/data/config.php.dist b/data/config.php.dist
index 0f849e2..a8d84a6 100644
--- a/data/config.php.dist
+++ b/data/config.php.dist
@@ -1,145 +1,138 @@
-<?php
-/**
- * Configuration for SemanticScuttle.
- *
- * Copy this file to config.inc.php and adjust it.
- *
- * See config.default.inc.php for more options.
- */
-
-/**
- * Array for defaults.
- *
- * @var array
- */
-$defaults = array();
-
-/**
- * The name of this site.
- *
- * @var string
- */
-$sitename = 'SemanticScuttle';
-
-/**
- * The welcome message on the homepage.
- *
- * @var string
- */
-$welcomeMessage = 'Welcome to SemanticScuttle! Social bookmarking for small communities.';
-
-/**
- * Translation from locales/ folder.
- *
- * Examples: de_DE, en_GB, fr_FR
- *
- * @var string
- */
-$locale = 'en_GB';
-
-/**
- * Use clean urls without .php filenames.
- * Requires mod_rewrite (for Apache) to be active.
- *
- * @var boolean
- */
-$cleanurls = false;
-
-/**
- * Show debug messages.
- * This setting is recommended when setting up SemanticScuttle,
- * and when hacking on it.
- *
- * @var boolean
- */
-$debugMode = true;
-
-
-/***************************************************
- * Database configuration
- */
-
-/**
- * Database driver
- *
- * available:
- * mysql4, mysqli, mysql, oracle, postgres, sqlite, db2, firebird,
- * mssql, mssq-odbc
- *
- * @var string
- */
-$dbtype = 'mysql4';
-/**
- * Database username
- *
- * @var string
- */
-$dbuser = 'username';
-
-/**
- * Database password
- *
- * @var string
- */
-$dbpass = 'password';
-
-/**
- * Name of database
- *
- * @var string
- */
-$dbname = 'scuttle';
-
-/**
- * Database hostname/IP
- *
- * @var string
- */
-$dbhost = '127.0.0.1';
-
-
-/***************************************************
- * Users
- */
-
-/**
- * Contact address for the site administrator.
- * Used as the FROM address in password retrieval e-mails.
- *
- * @var string
- */
-$adminemail = 'admin@example.org';
-
-/**
- * Array of user names who have admin rights
- *
- * Example:
- * <code>
- * $admin_users = array('adminnickname', 'user1nick', 'user2nick');
- * </code>
- *
- * @var array
- */
-$admin_users = array();
-
-
-/***************************************************
- * Bookmarks
- */
-
-/**
- * Default privacy setting for bookmarks.
- * 0 - Public
- * 1 - Shared with Watchlist
- * 2 - Private
- *
- * @var integer
- */
-$defaults['privacy'] = 0;
-
-
-/**
-* You have completed the basic configuration!
-* More options can be found in config.default.php.
-*/
-?>
+<?php
+/**
+ * Configuration for SemanticScuttle.
+ *
+ * Copy this file to config.inc.php and adjust it.
+ *
+ * See config.default.inc.php for more options.
+ */
+
+/**
+ * The name of this site.
+ *
+ * @var string
+ */
+$sitename = 'SemanticScuttle';
+
+/**
+ * The welcome message on the homepage.
+ *
+ * @var string
+ */
+$welcomeMessage = 'Welcome to SemanticScuttle! Social bookmarking for small communities.';
+
+/**
+ * Translation from locales/ folder.
+ *
+ * Examples: de_DE, en_GB, fr_FR
+ *
+ * @var string
+ */
+$locale = 'en_GB';
+
+/**
+ * Use clean urls without .php filenames.
+ * Requires mod_rewrite (for Apache) to be active.
+ *
+ * @var boolean
+ */
+$cleanurls = false;
+
+/**
+ * Show debug messages.
+ * This setting is recommended when setting up SemanticScuttle,
+ * and when hacking on it.
+ *
+ * @var boolean
+ */
+$debugMode = true;
+
+
+/***************************************************
+ * Database configuration
+ */
+
+/**
+ * Database driver
+ *
+ * available:
+ * mysql4, mysqli, mysql, oracle, postgres, sqlite, db2, firebird,
+ * mssql, mssq-odbc
+ *
+ * @var string
+ */
+$dbtype = 'mysql4';
+/**
+ * Database username
+ *
+ * @var string
+ */
+$dbuser = 'username';
+
+/**
+ * Database password
+ *
+ * @var string
+ */
+$dbpass = 'password';
+
+/**
+ * Name of database
+ *
+ * @var string
+ */
+$dbname = 'scuttle';
+
+/**
+ * Database hostname/IP
+ *
+ * @var string
+ */
+$dbhost = '127.0.0.1';
+
+
+/***************************************************
+ * Users
+ */
+
+/**
+ * Contact address for the site administrator.
+ * Used as the FROM address in password retrieval e-mails.
+ *
+ * @var string
+ */
+$adminemail = 'admin@example.org';
+
+/**
+ * Array of user names who have admin rights
+ *
+ * Example:
+ * <code>
+ * $admin_users = array('adminnickname', 'user1nick', 'user2nick');
+ * </code>
+ *
+ * @var array
+ */
+$admin_users = array();
+
+
+/***************************************************
+ * Bookmarks
+ */
+
+/**
+ * Default privacy setting for bookmarks.
+ * 0 - Public
+ * 1 - Shared with Watchlist
+ * 2 - Private
+ *
+ * @var integer
+ */
+$defaults['privacy'] = 0;
+
+
+/**
+* You have completed the basic configuration!
+* More options can be found in config.default.php.
+*/
+?>
diff --git a/data/templates/bookmarks.tpl.php b/data/templates/bookmarks.tpl.php
index 44dfe90..b241a71 100644
--- a/data/templates/bookmarks.tpl.php
+++ b/data/templates/bookmarks.tpl.php
@@ -1,439 +1,439 @@
-<?php
-/**
- * Show a list of bookmarks.
- *
- * SemanticScuttle - your social bookmark manager.
- *
- * PHP version 5.
- *
- * @category Bookmarking
- * @package SemanticScuttle
- * @subcategory Templates
- * @author Benjamin Huynh-Kim-Bang <mensonge@users.sourceforge.net>
- * @author Christian Weiske <cweiske@cweiske.de>
- * @author Eric Dane <ericdane@users.sourceforge.net>
- * @license GPL http://www.gnu.org/licenses/gpl.html
- * @link http://sourceforge.net/projects/semanticscuttle
- */
-
-/* Service creation: only useful services are created */
-$bookmarkservice = SemanticScuttle_Service_Factory::get('Bookmark');
-$tagservice = SemanticScuttle_Service_Factory::get('Tag');
-$cdservice = SemanticScuttle_Service_Factory::get('CommonDescription');
-
-
-$pageName = isset($pageName) ? $pageName : '';
-$user = isset($user) ? $user : '';
-$currenttag = isset($currenttag) ? $currenttag : '';
-
-
-$this->includeTemplate($GLOBALS['top_include']);
-
-include('search.menu.php');
-?>
-
-<?php if($pageName == PAGE_INDEX && $GLOBALS['welcomeMessage']):?>
-<p id="welcome"><?php echo $GLOBALS['welcomeMessage'];?></p>
-<?php endif?>
-
-
-<?php if($GLOBALS['enableAdminColors']!=false && isset($userid) && $userservice->isAdmin($userid) && $pageName != PAGE_WATCHLIST) : ?>
-<div style="width:70%;text-align:center;">
-<img src="<?php echo ROOT ?>images/logo_24.gif" width="12px"/> <?php echo T_('Bookmarks on this page are managed by an admin user.'); ?><img src="<?php echo ROOT ?>images/logo_24.gif" width="12px"/>
-</div>
-<?php endif?>
-
-
-<?php
-// common tag description
-if(($currenttag!= '' && $GLOBALS['enableCommonTagDescription'])
-|| (isset($hash) && $GLOBALS['enableCommonBookmarkDescription'])):?>
-
-
-<p class="commondescription"><?php
-$cDescription = '';
-if($currenttag!= '' && $cdservice->getLastTagDescription($currenttag)) {
- $cDescription = $cdservice->getLastTagDescription($currenttag);
- echo nl2br(filter($cDescription['cdDescription']));
-} elseif(isset($hash) && $cdservice->getLastBookmarkDescription($hash)) {
- $cDescription = $cdservice->getLastBookmarkDescription($hash);
- echo nl2br(filter($cDescription['cdTitle'])). "<br/>";
- echo nl2br(filter($cDescription['cdDescription'])). "<br/>";
-}
-
-//common tag description edit
-if($userservice->isLoggedOn()) {
- if($currenttag!= '' && ($GLOBALS['enableCommonTagDescriptionEditedByAll'] || $currentUser->isAdmin())) {
- echo ' <a href="'. createURL('tagcommondescriptionedit', $currenttag).'" title="'.T_('Edit the common description of this tag').'">';
- echo !is_array($cDescription) || strlen($cDescription['cdDescription'])==0?T_('Edit the common description of this tag'):'';
- echo ' <img src="'.ROOT.'images/b_edit.png" /></a>';
- } elseif(isset($hash)) {
- echo ' (<a href="'.createURL('bookmarkcommondescriptionedit', $hash).'" title="'.T_('Edit the common description of this bookmark').'">';
- echo T_('Edit the common description of this bookmark').'</a>)';
- }
-}
-?></p>
-<?php endif ?>
-
-
-<?php
-/* personal tag description */
-if($currenttag!= '' && $user!='') {
- $userObject = $userservice->getUserByUsername($user);
- if($tagservice->getDescription($currenttag, $userObject['uId'])) { ?>
-
-<p class="commondescription"><?php
-$pDescription = $tagservice->getDescription($currenttag, $userObject['uId']);
-echo nl2br(filter($pDescription['tDescription']));
-
-//personal tag description edit
-if($userservice->isLoggedOn()) {
- if($currenttag!= '') {
- echo ' <a href="'. createURL('tagedit', $currenttag).'" title="'.T_('Edit your personal description of this tag').'" >';
- echo strlen($pDescription['tDescription'])==0?T_('Edit your personal description of this tag'):'';
- echo ' <img src="'.ROOT.'images/b_edit.png" /></a>';
- }
-}
-?></p>
-
-<?php
- }
-}
-?>
-
-<?php if (count($bookmarks) > 0) { ?>
-<script type="text/javascript">
-window.onload = playerLoad;
-</script>
-
-<p id="sort"><?php echo $total.' '.T_("bookmark(s)"); ?> - <?php echo T_("Sort by:"); ?>
- <?php
-$titleArrow = '';
-$dateArrow = '';
-$votingArrow = '';
-$dateSort = 'date_desc';
-$titleSort = 'title_asc';
-$votingSort = 'voting_desc';
-
-switch(getSortOrder()) {
-case 'date_asc':
- $dateArrow = ' &uarr;';
- $dateSort = 'date_desc';
- break;
-
-case 'title_asc':
- $titleArrow = ' &uarr;';
- $titleSort = 'title_desc';
- break;
-
-case 'title_desc':
- $titleArrow = ' &darr;';
- $titleSort = 'title_asc';
- break;
-
-case 'voting_asc':
- $votingArrow = ' &uarr;';
- $votingSort = 'voting_desc';
- break;
-
-case 'voting_desc':
- $votingArrow = ' &darr;';
- $votingSort = 'voting_asc';
- break;
-
-case 'date_desc':
-default:
- $dateArrow = ' &darr;';
- $dateSort = 'date_asc';
- break;
-}
-?>
- <a href="?sort=<?php echo $dateSort ?>"><?php echo T_("Date").$dateArrow; ?></a>
- <span>/</span>
- <a href="?sort=<?php echo $titleSort ?>"><?php echo T_("Title").$titleArrow; ?></a>
- <span>/</span>
-<?php if ($GLOBALS['enableVoting']) { ?>
- <a href="?sort=<?php echo $votingSort ?>"><?php echo T_("Voting").$votingArrow; ?></a>
- <span>/</span>
-<?php } ?>
-
-<?php
-if ($currenttag!= '') {
- if ($user!= '') {
- echo ' - ';
- echo '<a href="'. createURL('tags', $currenttag) .'">';
- echo T_('Bookmarks from other users for this tag').'</a>';
- //echo T_(' for these tags');
- } else if ($userservice->isLoggedOn()){
- echo ' - ';
- echo '<a href="'. createURL('bookmarks', $currentUser->getUsername().'/'.$currenttag) .'">';
- echo T_('Only your bookmarks for this tag').'</a>';
- //echo T_(' for these tags');
- }
-}
-?></p>
-
-<?php
- // PAGINATION
-
- // Ordering
- $sortOrder = '';
- if (GET_SORT != '') {
- $sortOrder = 'sort=' . getSortOrder();
- }
-
- $sortAmp = (($sortOrder) ? '&amp;'. $sortOrder : '');
- $sortQue = (($sortOrder) ? '?'. $sortOrder : '');
-
- // Previous
- $perpage = getPerPageCount($currentUser);
- if (!$page || $page < 2) {
- $page = 1;
- $start = 0;
- $bfirst = '<span class="disable">'. T_('First') .'</span>';
- $bprev = '<span class="disable">'. T_('Previous') .'</span>';
- } else {
- $prev = $page - 1;
- $prev = 'page='. $prev;
- $start = ($page - 1) * $perpage;
- $bfirst= '<a href="'. sprintf($nav_url, $user, $currenttag, '') . $sortQue .'">'. T_('First') .'</a>';
- $bprev = '<a href="'. sprintf($nav_url, $user, $currenttag, '?') . $prev . $sortAmp .'">'. T_('Previous') .'</a>';
- }
-
- // Next
- $next = $page + 1;
- $totalpages = ceil($total / $perpage);
- if (count($bookmarks) < $perpage || $perpage * $page == $total) {
- $bnext = '<span class="disable">'. T_('Next') .'</span>';
- $blast = '<span class="disable">'. T_('Last') ."</span>\n";
- } else {
- $bnext = '<a href="'. sprintf($nav_url, $user, $currenttag, '?page=') . $next . $sortAmp .'">'. T_('Next') .'</a>';
- $blast = '<a href="'. sprintf($nav_url, $user, $currenttag, '?page=') . $totalpages . $sortAmp .'">'. T_('Last') ."</a>\n";
- }
-
- // RSS
- $brss = '';
- $size = count($rsschannels);
- for ($i = 0; $i < $size; $i++) {
- $brss = '<a style="background:#FFFFFF" href="'. htmlspecialchars($rsschannels[$i][1]) . '"'
- . ' title="' . htmlspecialchars($rsschannels[$i][0]) . '">'
- . '<img src="' . ROOT . 'images/rss.gif" width="16" height="16" alt="' . htmlspecialchars($rsschannels[$i][0]) .'"/>'
- . '</a>';
- }
-
- $pagesBanner = '<p class="paging">'. $bfirst .'<span> / </span>'. $bprev .'<span> / </span>'. $bnext .'<span> / </span>'. $blast .'<span> / </span>'. sprintf(T_('Page %d of %d'), $page, $totalpages) ." ". $brss ." </p>\n";
-
- if (getPerPageCount($currentUser) > 10) {
- echo $pagesBanner; // display a page banner if too many bookmarks to manage
- }
-
-
-?>
-
-
-
-<ol<?php echo ($start > 0 ? ' start="'. ++$start .'"' : ''); ?> id="bookmarks">
-<?php
- $addresses = array();
- foreach ($bookmarks as $key => &$row) {
- $addresses[$row['bId']] = $row['bAddress'];
- }
- $otherCounts = $bookmarkservice->countOthers($addresses);
- if ($userservice->isLoggedOn()) {
- $existence = $bookmarkservice->bookmarksExist(
- $addresses, $currentUser->getId()
- );
- }
-
- if ($userservice->isLoggedOn()) {
- $watchedNames = $userservice->getWatchNames(
- $currentUser->getId(), true
- );
- } else {
- $watchedNames = null;
- }
-
- foreach ($bookmarks as $key => &$row) {
- switch ($row['bStatus']) {
- case 0:
- $access = ' public';
- break;
- case 1:
- $access = ' shared';
- break;
- case 2:
- $access = ' private';
- break;
- }
-
- $cats = '';
- $tagsForCopy = '';
- $tags = $row['tags'];
- foreach ($tags as $tkey => &$tag) {
- $tagcaturl = sprintf(
- $cat_url,
- filter($row['username'], 'url'),
- filter($tag, 'url')
- );
- $cats .= sprintf(
- '<a href="%s" rel="tag">%s</a>, ',
- $tagcaturl, filter($tag)
- );
- $tagsForCopy .= $tag . ',';
- }
- $cats = substr($cats, 0, -2);
- if ($cats != '') {
- $cats = T_('Tags:') . ' ' . $cats;
- }
-
- // Edit and delete links
- $edit = '';
- if ($bookmarkservice->editAllowed($row)) {
- $edit = ' - <a href="' . createURL('edit', $row['bId']) . '">'
- . T_('Edit')
- . '</a>'
- . '<script type="text/javascript">'
- . 'document.write(" - <a href=\"#\" onclick=\"deleteBookmark(this, '. $row['bId'] .'); return false;\">'
- . T_('Delete')
- .'<\/a>");</script>';
- }
-
- // Last update
- $update = ' <small title="'. T_('Last update') .'">('. date($GLOBALS['shortdate'], strtotime($row['bModified'])). ') </small>';
-
- // User attribution
- $copy = ' ' . T_('by') . ' ';
- if ($userservice->isLoggedOn()
- && $currentUser->getUsername() == $row['username']
- ) {
- $copy .= T_('you');
- } else {
- $copy .= '<a href="' . createURL('bookmarks', $row['username']) . '">'
- . $row['username'] . '</a>';
- }
-
- // Udders!
- if (!isset($hash)) {
- $others = $otherCounts[$row['bAddress']];
- $ostart = '<a href="' . createURL('history', $row['bHash']) . '">';
- $oend = '</a>';
- switch ($others) {
- case 0:
- break;
- case 1:
- $copy .= sprintf(T_(' and %s1 other%s'), $ostart, $oend);
- break;
- default:
- $copy .= sprintf(T_(' and %2$s%1$s others%3$s'), $others, $ostart, $oend);
- }
- }
-
- // Copy link
- if ($userservice->isLoggedOn()
- && ($currentUser->getId() != $row['uId'])
- && !$existence[$row['bAddress']]
- ) {
- $copy .= ' - <a href="'
- . createURL(
- 'bookmarks',
- $currentUser->getUsername()
- . '?action=add&amp;copyOf=' . $row['bId'])
- . '" title="'.T_('Copy this bookmark to YOUR bookmarks.').'">'
- . T_('Copy')
- . '</a>';
- }
-
- // Nofollow option
- $rel = '';
- if ($GLOBALS['nofollow']) {
- $rel = ' rel="nofollow"';
- }
-
- $address = filter($row['bAddress']);
- $oaddress = $address;
- // Redirection option
- if ($GLOBALS['useredir']) {
- $address = $GLOBALS['url_redir'] . $address;
- }
-
- // Admin specific design
- if ($userservice->isAdmin($row['username']) && $GLOBALS['enableAdminColors']) {
- $adminBgClass = ' class="adminBackground"';
- $adminStar = ' <img src="'. ROOT .'images/logo_24.gif" width="12px" title="'. T_('This bookmark is certified by an admin user.') .'" />';
- } else {
- $adminBgClass = '';
- $adminStar = '';
- }
-
- // Private Note (just visible by the owner and his/her contacts)
- if ($watchedNames !== null
- && ($currentUser->getId() == $row['uId']
- || in_array($row['username'], $watchedNames)
- )
- ) {
- $privateNoteField = $row['bPrivateNote'];
- } else {
- $privateNoteField = '';
- }
-
- if ($GLOBALS['enableVoting'] && $GLOBALS['hideBelowVoting'] !== null
- && $row['bVoting'] < $GLOBALS['hideBelowVoting']
- ) {
- $access .= ' below-threshold';
- }
-
- // Output
- echo ' <li class="xfolkentry'. $access .'">'."\n";
- include 'bookmarks-thumbnail.inc.tpl.php';
- include 'bookmarks-vote.inc.tpl.php';
-
- echo ' <div' . $adminBgClass . '>' . "\n";
-
- echo ' <div class="link">'
- . '<a href="'. $address .'"'. $rel .' class="taggedlink" target="_blank">'
- . filter($row['bTitle'])
- . '</a>' . $adminStar . "</div>\n";
- if ($row['bDescription'] == '') {
- $bkDescription = $GLOBALS['blankDescription'];
- } else {
- // Improve description display (anchors, links, ...)
- $bkDescription = preg_replace('|\[\/.*?\]|', '', filter($row['bDescription'])); // remove final anchor
- $bkDescription = preg_replace('|\[(.*?)\]|', ' <span class="anchorBookmark">$1</span> » ', $bkDescription); // highlight starting anchor
- $bkDescription = preg_replace('@((http|https|ftp)://.*?)( |\r|$)@', '<a href="$1" rel="nofollow">$1</a>$3', $bkDescription); // make url clickable
-
- }
- echo ' <div class="description">'. nl2br($bkDescription) ."</div>\n";
- echo ' <div class="address">' . shortenString($oaddress) . "</div>\n";
-
- echo ' <div class="meta">'
- . $cats . "\n"
- . $copy . "\n"
- . $edit . "\n"
- . $update . "\n"
- . " </div>\n";
- echo $privateNoteField != ''
- ? ' <div class="privateNote" title="'. T_('Private Note on this bookmark') .'">'.$privateNoteField."</div>\n"
- : '';
- echo ' ';
- include 'bookmarks-vote-horizontal.inc.tpl.php';
- echo " </div>\n";
-
- echo " </li>\n";
- }
- ?>
-
-</ol>
-
- <?php
- if(getPerPageCount($currentUser)>7) {
- echo '<p class="backToTop"><a href="#header" title="'.T_('Come back to the top of this page.').'">'.T_('Top of the page').'</a></p>';
- }
- echo $pagesBanner; // display previous and next links pages + RSS link
-
-
-} else {
- echo '<p class="error">'.T_('No bookmarks available').'</p>';
-}
-$this->includeTemplate('sidebar.tpl');
-$this->includeTemplate($GLOBALS['bottom_include']);
-?>
+<?php
+/**
+ * Show a list of bookmarks.
+ *
+ * SemanticScuttle - your social bookmark manager.
+ *
+ * PHP version 5.
+ *
+ * @category Bookmarking
+ * @package SemanticScuttle
+ * @subcategory Templates
+ * @author Benjamin Huynh-Kim-Bang <mensonge@users.sourceforge.net>
+ * @author Christian Weiske <cweiske@cweiske.de>
+ * @author Eric Dane <ericdane@users.sourceforge.net>
+ * @license GPL http://www.gnu.org/licenses/gpl.html
+ * @link http://sourceforge.net/projects/semanticscuttle
+ */
+
+/* Service creation: only useful services are created */
+$bookmarkservice = SemanticScuttle_Service_Factory::get('Bookmark');
+$tagservice = SemanticScuttle_Service_Factory::get('Tag');
+$cdservice = SemanticScuttle_Service_Factory::get('CommonDescription');
+
+
+$pageName = isset($pageName) ? $pageName : '';
+$user = isset($user) ? $user : '';
+$currenttag = isset($currenttag) ? $currenttag : '';
+
+
+$this->includeTemplate($GLOBALS['top_include']);
+
+include('search.menu.php');
+?>
+
+<?php if($pageName == PAGE_INDEX && $GLOBALS['welcomeMessage']):?>
+<p id="welcome"><?php echo $GLOBALS['welcomeMessage'];?></p>
+<?php endif?>
+
+
+<?php if($GLOBALS['enableAdminColors']!=false && isset($userid) && $userservice->isAdmin($userid) && $pageName != PAGE_WATCHLIST) : ?>
+<div style="width:70%;text-align:center;">
+<img src="<?php echo ROOT ?>images/logo_24.gif" width="12px"/> <?php echo T_('Bookmarks on this page are managed by an admin user.'); ?><img src="<?php echo ROOT ?>images/logo_24.gif" width="12px"/>
+</div>
+<?php endif?>
+
+
+<?php
+// common tag description
+if(($currenttag!= '' && $GLOBALS['enableCommonTagDescription'])
+|| (isset($hash) && $GLOBALS['enableCommonBookmarkDescription'])):?>
+
+
+<p class="commondescription"><?php
+$cDescription = '';
+if($currenttag!= '' && $cdservice->getLastTagDescription($currenttag)) {
+ $cDescription = $cdservice->getLastTagDescription($currenttag);
+ echo nl2br(filter($cDescription['cdDescription']));
+} elseif(isset($hash) && $cdservice->getLastBookmarkDescription($hash)) {
+ $cDescription = $cdservice->getLastBookmarkDescription($hash);
+ echo nl2br(filter($cDescription['cdTitle'])). "<br/>";
+ echo nl2br(filter($cDescription['cdDescription'])). "<br/>";
+}
+
+//common tag description edit
+if($userservice->isLoggedOn()) {
+ if($currenttag!= '' && ($GLOBALS['enableCommonTagDescriptionEditedByAll'] || $currentUser->isAdmin())) {
+ echo ' <a href="'. createURL('tagcommondescriptionedit', $currenttag).'" title="'.T_('Edit the common description of this tag').'">';
+ echo !is_array($cDescription) || strlen($cDescription['cdDescription'])==0?T_('Edit the common description of this tag'):'';
+ echo ' <img src="'.ROOT.'images/b_edit.png" /></a>';
+ } elseif(isset($hash)) {
+ echo ' (<a href="'.createURL('bookmarkcommondescriptionedit', $hash).'" title="'.T_('Edit the common description of this bookmark').'">';
+ echo T_('Edit the common description of this bookmark').'</a>)';
+ }
+}
+?></p>
+<?php endif ?>
+
+
+<?php
+/* personal tag description */
+if($currenttag!= '' && $user!='') {
+ $userObject = $userservice->getUserByUsername($user);
+ if($tagservice->getDescription($currenttag, $userObject['uId'])) { ?>
+
+<p class="commondescription"><?php
+$pDescription = $tagservice->getDescription($currenttag, $userObject['uId']);
+echo nl2br(filter($pDescription['tDescription']));
+
+//personal tag description edit
+if($userservice->isLoggedOn()) {
+ if($currenttag!= '') {
+ echo ' <a href="'. createURL('tagedit', $currenttag).'" title="'.T_('Edit your personal description of this tag').'" >';
+ echo strlen($pDescription['tDescription'])==0?T_('Edit your personal description of this tag'):'';
+ echo ' <img src="'.ROOT.'images/b_edit.png" /></a>';
+ }
+}
+?></p>
+
+<?php
+ }
+}
+?>
+
+<?php if (count($bookmarks) > 0) { ?>
+<script type="text/javascript">
+window.onload = playerLoad;
+</script>
+
+<p id="sort"><?php echo $total.' '.T_("bookmark(s)"); ?> - <?php echo T_("Sort by:"); ?>
+ <?php
+$titleArrow = '';
+$dateArrow = '';
+$votingArrow = '';
+$dateSort = 'date_desc';
+$titleSort = 'title_asc';
+$votingSort = 'voting_desc';
+
+switch(getSortOrder()) {
+case 'date_asc':
+ $dateArrow = ' &uarr;';
+ $dateSort = 'date_desc';
+ break;
+
+case 'title_asc':
+ $titleArrow = ' &uarr;';
+ $titleSort = 'title_desc';
+ break;
+
+case 'title_desc':
+ $titleArrow = ' &darr;';
+ $titleSort = 'title_asc';
+ break;
+
+case 'voting_asc':
+ $votingArrow = ' &uarr;';
+ $votingSort = 'voting_desc';
+ break;
+
+case 'voting_desc':
+ $votingArrow = ' &darr;';
+ $votingSort = 'voting_asc';
+ break;
+
+case 'date_desc':
+default:
+ $dateArrow = ' &darr;';
+ $dateSort = 'date_asc';
+ break;
+}
+?>
+ <a href="?sort=<?php echo $dateSort ?>"><?php echo T_("Date").$dateArrow; ?></a>
+ <span>/</span>
+ <a href="?sort=<?php echo $titleSort ?>"><?php echo T_("Title").$titleArrow; ?></a>
+ <span>/</span>
+<?php if ($GLOBALS['enableVoting']) { ?>
+ <a href="?sort=<?php echo $votingSort ?>"><?php echo T_("Voting").$votingArrow; ?></a>
+ <span>/</span>
+<?php } ?>
+
+<?php
+if ($currenttag!= '') {
+ if ($user!= '') {
+ echo ' - ';
+ echo '<a href="'. createURL('tags', $currenttag) .'">';
+ echo T_('Bookmarks from other users for this tag').'</a>';
+ //echo T_(' for these tags');
+ } else if ($userservice->isLoggedOn()){
+ echo ' - ';
+ echo '<a href="'. createURL('bookmarks', $currentUser->getUsername().'/'.$currenttag) .'">';
+ echo T_('Only your bookmarks for this tag').'</a>';
+ //echo T_(' for these tags');
+ }
+}
+?></p>
+
+<?php
+ // PAGINATION
+
+ // Ordering
+ $sortOrder = '';
+ if (GET_SORT != '') {
+ $sortOrder = 'sort=' . getSortOrder();
+ }
+
+ $sortAmp = (($sortOrder) ? '&amp;'. $sortOrder : '');
+ $sortQue = (($sortOrder) ? '?'. $sortOrder : '');
+
+ // Previous
+ $perpage = getPerPageCount($currentUser);
+ if (!$page || $page < 2) {
+ $page = 1;
+ $start = 0;
+ $bfirst = '<span class="disable">'. T_('First') .'</span>';
+ $bprev = '<span class="disable">'. T_('Previous') .'</span>';
+ } else {
+ $prev = $page - 1;
+ $prev = 'page='. $prev;
+ $start = ($page - 1) * $perpage;
+ $bfirst= '<a href="'. sprintf($nav_url, $user, $currenttag, '') . $sortQue .'">'. T_('First') .'</a>';
+ $bprev = '<a href="'. sprintf($nav_url, $user, $currenttag, '?') . $prev . $sortAmp .'">'. T_('Previous') .'</a>';
+ }
+
+ // Next
+ $next = $page + 1;
+ $totalpages = ceil($total / $perpage);
+ if (count($bookmarks) < $perpage || $perpage * $page == $total) {
+ $bnext = '<span class="disable">'. T_('Next') .'</span>';
+ $blast = '<span class="disable">'. T_('Last') ."</span>\n";
+ } else {
+ $bnext = '<a href="'. sprintf($nav_url, $user, $currenttag, '?page=') . $next . $sortAmp .'">'. T_('Next') .'</a>';
+ $blast = '<a href="'. sprintf($nav_url, $user, $currenttag, '?page=') . $totalpages . $sortAmp .'">'. T_('Last') ."</a>\n";
+ }
+
+ // RSS
+ $brss = '';
+ $size = count($rsschannels);
+ for ($i = 0; $i < $size; $i++) {
+ $brss = '<a style="background:#FFFFFF" href="'. htmlspecialchars($rsschannels[$i][1]) . '"'
+ . ' title="' . htmlspecialchars($rsschannels[$i][0]) . '">'
+ . '<img src="' . ROOT . 'images/rss.gif" width="16" height="16" alt="' . htmlspecialchars($rsschannels[$i][0]) .'"/>'
+ . '</a>';
+ }
+
+ $pagesBanner = '<p class="paging">'. $bfirst .'<span> / </span>'. $bprev .'<span> / </span>'. $bnext .'<span> / </span>'. $blast .'<span> / </span>'. sprintf(T_('Page %d of %d'), $page, $totalpages) ." ". $brss ." </p>\n";
+
+ if (getPerPageCount($currentUser) > 10) {
+ echo $pagesBanner; // display a page banner if too many bookmarks to manage
+ }
+
+
+?>
+
+
+
+<ol<?php echo ($start > 0 ? ' start="'. ++$start .'"' : ''); ?> id="bookmarks">
+<?php
+ $addresses = array();
+ foreach ($bookmarks as $key => &$row) {
+ $addresses[$row['bId']] = $row['bAddress'];
+ }
+ $otherCounts = $bookmarkservice->countOthers($addresses);
+ if ($userservice->isLoggedOn()) {
+ $existence = $bookmarkservice->bookmarksExist(
+ $addresses, $currentUser->getId()
+ );
+ }
+
+ if ($userservice->isLoggedOn()) {
+ $watchedNames = $userservice->getWatchNames(
+ $currentUser->getId(), true
+ );
+ } else {
+ $watchedNames = null;
+ }
+
+ foreach ($bookmarks as $key => &$row) {
+ switch ($row['bStatus']) {
+ case 0:
+ $access = '';
+ break;
+ case 1:
+ $access = ' shared';
+ break;
+ case 2:
+ $access = ' private';
+ break;
+ }
+
+ $cats = '';
+ $tagsForCopy = '';
+ $tags = $row['tags'];
+ foreach ($tags as $tkey => &$tag) {
+ $tagcaturl = sprintf(
+ $cat_url,
+ filter($row['username'], 'url'),
+ filter($tag, 'url')
+ );
+ $cats .= sprintf(
+ '<a href="%s" rel="tag">%s</a>, ',
+ $tagcaturl, filter($tag)
+ );
+ $tagsForCopy .= $tag . ',';
+ }
+ $cats = substr($cats, 0, -2);
+ if ($cats != '') {
+ $cats = T_('Tags:') . ' ' . $cats;
+ }
+
+ // Edit and delete links
+ $edit = '';
+ if ($bookmarkservice->editAllowed($row)) {
+ $edit = ' - <a href="' . createURL('edit', $row['bId']) . '">'
+ . T_('Edit')
+ . '</a>'
+ . '<script type="text/javascript">'
+ . 'document.write(" - <a href=\"#\" onclick=\"deleteBookmark(this, '. $row['bId'] .'); return false;\">'
+ . T_('Delete')
+ .'<\/a>");</script>';
+ }
+
+ // Last update
+ $update = ' <small title="'. T_('Last update') .'">('. date($GLOBALS['shortdate'], strtotime($row['bModified'])). ') </small>';
+
+ // User attribution
+ $copy = ' ' . T_('by') . ' ';
+ if ($userservice->isLoggedOn()
+ && $currentUser->getUsername() == $row['username']
+ ) {
+ $copy .= T_('you');
+ } else {
+ $copy .= '<a href="' . createURL('bookmarks', $row['username']) . '">'
+ . $row['username'] . '</a>';
+ }
+
+ // Udders!
+ if (!isset($hash)) {
+ $others = $otherCounts[$row['bAddress']];
+ $ostart = '<a href="' . createURL('history', $row['bHash']) . '">';
+ $oend = '</a>';
+ switch ($others) {
+ case 0:
+ break;
+ case 1:
+ $copy .= sprintf(T_(' and %s1 other%s'), $ostart, $oend);
+ break;
+ default:
+ $copy .= sprintf(T_(' and %2$s%1$s others%3$s'), $others, $ostart, $oend);
+ }
+ }
+
+ // Copy link
+ if ($userservice->isLoggedOn()
+ && ($currentUser->getId() != $row['uId'])
+ && !$existence[$row['bAddress']]
+ ) {
+ $copy .= ' - <a href="'
+ . createURL(
+ 'bookmarks',
+ $currentUser->getUsername()
+ . '?action=add&amp;copyOf=' . $row['bId'])
+ . '" title="'.T_('Copy this bookmark to YOUR bookmarks.').'">'
+ . T_('Copy')
+ . '</a>';
+ }
+
+ // Nofollow option
+ $rel = '';
+ if ($GLOBALS['nofollow']) {
+ $rel = ' rel="nofollow"';
+ }
+
+ $address = filter($row['bAddress']);
+ $oaddress = $address;
+ // Redirection option
+ if ($GLOBALS['useredir']) {
+ $address = $GLOBALS['url_redir'] . $address;
+ }
+
+ // Admin specific design
+ if ($userservice->isAdmin($row['username']) && $GLOBALS['enableAdminColors']) {
+ $adminBgClass = ' class="adminBackground"';
+ $adminStar = ' <img src="'. ROOT .'images/logo_24.gif" width="12px" title="'. T_('This bookmark is certified by an admin user.') .'" />';
+ } else {
+ $adminBgClass = '';
+ $adminStar = '';
+ }
+
+ // Private Note (just visible by the owner and his/her contacts)
+ if ($watchedNames !== null
+ && ($currentUser->getId() == $row['uId']
+ || in_array($row['username'], $watchedNames)
+ )
+ ) {
+ $privateNoteField = $row['bPrivateNote'];
+ } else {
+ $privateNoteField = '';
+ }
+
+ if ($GLOBALS['enableVoting'] && $GLOBALS['hideBelowVoting'] !== null
+ && $row['bVoting'] < $GLOBALS['hideBelowVoting']
+ ) {
+ $access .= ' below-threshold';
+ }
+
+ // Output
+ echo ' <li class="xfolkentry'. $access .'">'."\n";
+ include 'bookmarks-thumbnail.inc.tpl.php';
+ include 'bookmarks-vote.inc.tpl.php';
+
+ echo ' <div' . $adminBgClass . '>' . "\n";
+
+ echo ' <div class="link">'
+ . '<a href="'. $address .'"'. $rel .' class="taggedlink" target="_blank">'
+ . filter($row['bTitle'])
+ . '</a>' . $adminStar . "</div>\n";
+ if ($row['bDescription'] == '') {
+ $bkDescription = $GLOBALS['blankDescription'];
+ } else {
+ // Improve description display (anchors, links, ...)
+ $bkDescription = preg_replace('|\[\/.*?\]|', '', filter($row['bDescription'])); // remove final anchor
+ $bkDescription = preg_replace('|\[(.*?)\]|', ' <span class="anchorBookmark">$1</span> » ', $bkDescription); // highlight starting anchor
+ $bkDescription = preg_replace('@((http|https|ftp)://.*?)( |\r|$)@', '<a href="$1" rel="nofollow">$1</a>$3', $bkDescription); // make url clickable
+
+ }
+ echo ' <div class="description">'. nl2br($bkDescription) ."</div>\n";
+ echo ' <div class="address">' . shortenString($oaddress) . "</div>\n";
+
+ echo ' <div class="meta">'
+ . $cats . "\n"
+ . $copy . "\n"
+ . $edit . "\n"
+ . $update . "\n"
+ . " </div>\n";
+ echo $privateNoteField != ''
+ ? ' <div class="privateNote" title="'. T_('Private Note on this bookmark') .'">'.$privateNoteField."</div>\n"
+ : '';
+ echo ' ';
+ include 'bookmarks-vote-horizontal.inc.tpl.php';
+ echo " </div>\n";
+
+ echo " </li>\n";
+ }
+ ?>
+
+</ol>
+
+ <?php
+ if(getPerPageCount($currentUser)>7) {
+ echo '<p class="backToTop"><a href="#header" title="'.T_('Come back to the top of this page.').'">'.T_('Top of the page').'</a></p>';
+ }
+ echo $pagesBanner; // display previous and next links pages + RSS link
+
+
+} else {
+ echo '<p class="error">'.T_('No bookmarks available').'</p>';
+}
+$this->includeTemplate('sidebar.tpl');
+$this->includeTemplate($GLOBALS['bottom_include']);
+?>