2007-12-12 17:29:16 +01:00
< ? php
2008-11-21 18:25:23 +01:00
/* Service creation: only useful services are created */
2009-10-23 19:13:16 +02:00
$bookmarkservice = SemanticScuttle_Service_Factory :: get ( 'Bookmark' );
$tagservice = SemanticScuttle_Service_Factory :: get ( 'Tag' );
$cdservice = SemanticScuttle_Service_Factory :: get ( 'CommonDescription' );
2007-12-12 17:29:16 +01:00
2008-11-21 19:45:18 +01:00
2008-05-14 10:55:38 +02:00
$pageName = isset ( $pageName ) ? $pageName : " " ;
2008-11-27 08:27:36 +01:00
$user = isset ( $user ) ? $user : " " ;
2009-01-15 17:58:14 +01:00
$currenttag = isset ( $currenttag ) ? $currenttag : " " ;
2008-02-20 14:43:06 +01:00
2007-12-12 17:29:16 +01:00
$this -> includeTemplate ( $GLOBALS [ 'top_include' ]);
2009-10-03 23:52:30 +02:00
include ( 'search.menu.php' );
2007-12-12 17:29:16 +01:00
?>
2009-09-20 19:11:38 +02:00
< ? php if ( $pageName == PAGE_INDEX && $GLOBALS [ 'welcomeMessage' ]) : ?>
2008-05-14 10:55:38 +02:00
< p id = " welcome " >< ? php echo $GLOBALS [ 'welcomeMessage' ]; ?> </p>
< ? php endif ?>
2009-02-16 11:38:11 +01:00
< ? php if ( $GLOBALS [ 'enableAdminColors' ] != false && isset ( $userid ) && $userservice -> isAdmin ( $userid ) && $pageName != PAGE_WATCHLIST ) : ?>
2009-01-07 16:13:16 +01:00
< div style = " width:70%;text-align:center; " >
2009-02-03 15:15:34 +01:00
< 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"/>
2009-01-07 16:13:16 +01:00
</ div >
< ? php endif ?>
2008-02-13 18:34:18 +01:00
< ? php
2008-11-25 16:57:29 +01:00
// common tag description
2009-01-15 17:58:14 +01:00
if (( $currenttag != '' && $GLOBALS [ 'enableCommonTagDescription' ])
2008-11-21 19:45:18 +01:00
|| ( isset ( $hash ) && $GLOBALS [ 'enableCommonBookmarkDescription' ])) : ?>
2008-11-25 16:57:29 +01:00
2008-11-21 19:45:18 +01:00
< p class = " commondescription " >< ? php
2009-02-09 15:05:21 +01:00
$cDescription = '' ;
2009-01-15 17:58:14 +01:00
if ( $currenttag != '' && $cdservice -> getLastTagDescription ( $currenttag )) {
2009-02-09 15:05:21 +01:00
$cDescription = $cdservice -> getLastTagDescription ( $currenttag );
echo nl2br ( filter ( $cDescription [ 'cdDescription' ]));
2008-02-13 18:34:18 +01:00
} elseif ( isset ( $hash ) && $cdservice -> getLastBookmarkDescription ( $hash )) {
2009-02-09 15:05:21 +01:00
$cDescription = $cdservice -> getLastBookmarkDescription ( $hash );
echo nl2br ( filter ( $cDescription [ 'cdTitle' ])) . " <br/> " ;
echo nl2br ( filter ( $cDescription [ 'cdDescription' ])) . " <br/> " ;
2008-02-13 18:34:18 +01:00
}
2008-11-25 16:57:29 +01:00
//common tag description edit
2008-11-21 19:45:18 +01:00
if ( $userservice -> isLoggedOn ()) {
2009-02-09 15:05:21 +01:00
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>' ;
2008-11-21 19:45:18 +01:00
} elseif ( isset ( $hash )) {
2009-02-09 15:05:21 +01:00
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>)' ;
2008-11-21 19:45:18 +01:00
}
2008-02-13 18:34:18 +01:00
}
2008-11-21 19:45:18 +01:00
?> </p>
2008-02-13 18:34:18 +01:00
< ? php endif ?>
2008-04-21 17:43:00 +02:00
< ? php
2009-01-15 15:15:41 +01:00
/* personal tag description */
2009-01-15 17:58:14 +01:00
if ( $currenttag != '' && $user != '' ) {
2008-11-21 19:45:18 +01:00
$userObject = $userservice -> getUserByUsername ( $user );
if ( $tagservice -> getDescription ( $currenttag , $userObject [ 'uId' ])) { ?>
2008-05-10 10:59:41 +02:00
2008-11-21 19:45:18 +01:00
< p class = " commondescription " >< ? php
2009-02-09 15:05:21 +01:00
$pDescription = $tagservice -> getDescription ( $currenttag , $userObject [ 'uId' ]);
echo nl2br ( filter ( $pDescription [ 'tDescription' ]));
2009-01-15 15:15:41 +01:00
//personal tag description edit
if ( $userservice -> isLoggedOn ()) {
2009-01-15 17:58:14 +01:00
if ( $currenttag != '' ) {
2009-02-09 15:05:21 +01:00
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>' ;
2009-01-15 15:15:41 +01:00
}
}
2008-11-21 19:45:18 +01:00
?> </p>
2008-05-10 10:59:41 +02:00
2008-11-21 19:45:18 +01:00
< ? php
}
2008-05-10 10:59:41 +02:00
}
?>
2008-04-21 17:43:00 +02:00
2008-02-13 18:34:18 +01:00
< ? php if ( count ( $bookmarks ) > 0 ) { ?>
2007-12-12 17:29:16 +01:00
< script type = " text/javascript " >
window . onload = playerLoad ;
</ script >
2008-11-21 19:45:18 +01:00
< p id = " sort " >< ? php echo $total . ' ' . T_ ( " bookmark(s) " ); ?> - <?php echo T_("Sort by:"); ?>
< ? php
2009-10-28 23:30:12 +01:00
$titleArrow = '' ;
$dateArrow = '' ;
$votingArrow = '' ;
$dateSort = 'date_desc' ;
$titleSort = 'title_asc' ;
$votingSort = 'voting_asc' ;
2009-03-05 11:11:59 +01:00
switch ( getSortOrder ()) {
2009-10-28 23:30:12 +01:00
case 'date_asc' :
2009-03-05 11:11:59 +01:00
$dateArrow = ' ↑' ;
2009-10-28 23:30:12 +01:00
$dateSort = 'date_desc' ;
2009-03-05 11:11:59 +01:00
break ;
2009-10-28 23:30:12 +01:00
case 'title_asc' :
2009-03-05 11:11:59 +01:00
$titleArrow = ' ↑' ;
2009-10-28 23:30:12 +01:00
$titleSort = 'title_desc' ;
2009-03-05 11:11:59 +01:00
break ;
2009-10-28 23:30:12 +01:00
case 'title_desc' :
2009-03-05 11:11:59 +01:00
$titleArrow = ' ↓' ;
2009-10-28 23:30:12 +01:00
$titleSort = 'title_asc' ;
break ;
case 'voting_asc' :
$votingArrow = ' ↑' ;
$votingSort = 'voting_desc' ;
2009-03-05 11:11:59 +01:00
break ;
2009-10-28 23:30:12 +01:00
case 'voting_desc' :
$votingArrow = ' ↓' ;
$votingSort = 'voting_asc' ;
break ;
case 'date_desc' :
default :
2009-03-05 11:11:59 +01:00
$dateArrow = ' ↓' ;
$dateSort = 'date_asc' ;
break ;
}
2009-10-28 23:30:12 +01:00
?>
< 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
2009-01-15 17:58:14 +01:00
if ( $currenttag != '' ) {
if ( $user != '' ) {
2008-11-21 19:45:18 +01:00
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 ' - ' ;
2008-12-05 08:25:04 +01:00
echo '<a href="' . createURL ( 'bookmarks' , $currentUser -> getUsername () . '/' . $currenttag ) . '">' ;
2008-11-21 19:45:18 +01:00
echo T_ ( 'Only your bookmarks for this tag' ) . '</a>' ;
//echo T_(' for these tags');
}
}
?> </p>
2009-05-19 17:59:55 +02:00
< ? php
// PAGINATION
// Ordering
$sortOrder = '' ;
if ( GET_SORT != '' ) {
$sortOrder = 'sort=' . GET_SORT ;
}
$sortAmp = (( $sortOrder ) ? '&' . $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="' . $rsschannels [ $i ][ 1 ] . '" title="' . $rsschannels [ $i ][ 0 ] . '"><img src="' . ROOT . 'images/rss.gif" width="16" height="16" alt="' . $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 " ;
2009-10-28 23:30:12 +01:00
2009-10-27 21:30:33 +01:00
if ( getPerPageCount ( $currentUser ) > 10 ) {
2009-05-19 17:59:55 +02:00
echo $pagesBanner ; // display a page banner if too many bookmarks to manage
2009-10-28 23:30:12 +01:00
}
2009-05-19 17:59:55 +02:00
?>
2008-11-21 19:45:18 +01:00
< ol < ? php echo ( $start > 0 ? ' start="' . ++ $start . '"' : '' ); ?>
id = " bookmarks " >
< ? php
foreach ( array_keys ( $bookmarks ) as $key ) {
$row =& $bookmarks [ $key ];
switch ( $row [ 'bStatus' ]) {
case 0 :
$access = '' ;
break ;
case 1 :
$access = ' shared' ;
break ;
case 2 :
$access = ' private' ;
break ;
}
$cats = '' ;
$tagsForCopy = '' ;
$tags = $row [ 'tags' ];
foreach ( array_keys ( $tags ) as $key ) {
$tag =& $tags [ $key ];
$cats .= '<a href="' . sprintf ( $cat_url , filter ( $row [ 'username' ], 'url' ), filter ( $tag , 'url' )) . '" rel="tag">' . filter ( $tag ) . '</a>, ' ;
$tagsForCopy .= $tag . ',' ;
}
$cats = substr ( $cats , 0 , - 2 );
if ( $cats != '' ) {
2009-02-09 13:54:31 +01:00
$cats = ' ' . T_ ( 'Tags:' ) . ' ' . $cats ;
2008-11-21 19:45:18 +01:00
}
// Edit and delete links
$edit = '' ;
2009-09-22 08:21:45 +02:00
if ( $bookmarkservice -> editAllowed ( $row )) {
2008-11-21 19:45:18 +01:00
$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>' ;
}
2009-10-28 23:30:12 +01:00
2009-02-09 13:54:31 +01:00
// Last update
2009-02-09 15:28:46 +01:00
$update = ' <small title="' . T_ ( 'Last update' ) . '">(' . date ( $GLOBALS [ 'shortdate' ], strtotime ( $row [ 'bModified' ])) . ') </small>' ;
2008-11-21 19:45:18 +01:00
// User attribution
2009-02-09 14:10:16 +01:00
$copy = ' ' . T_ ( 'by' ) . ' ' ;
if ( $userservice -> isLoggedOn () && $currentUser -> getUsername () == $row [ 'username' ]) {
2009-10-28 23:30:12 +01:00
$copy .= T_ ( 'you' );
2009-02-09 13:54:31 +01:00
} else {
2009-02-09 14:10:16 +01:00
$copy .= '<a href="' . createURL ( 'bookmarks' , $row [ 'username' ]) . '">' . $row [ 'username' ] . '</a>' ;
2008-11-21 19:45:18 +01:00
}
// Udders!
if ( ! isset ( $hash )) {
$others = $bookmarkservice -> countOthers ( $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 ()
2009-10-27 21:30:33 +01:00
&& ( $currentUser -> getId () != $row [ 'uId' ])
&& ! $bookmarkservice -> bookmarkExists ( $row [ 'bAddress' ], $currentUser -> getId ())
) {
$copy .= ' - <a href="'
. createURL ( 'bookmarks' , $currentUser -> getUsername () . '?action=add&copyOf=' . $row [ 'bId' ])
. '" title="' . T_ ( 'Copy this bookmark to YOUR bookmarks.' ) . '">'
. T_ ( 'Copy' )
. '</a>' ;
2008-11-21 19:45:18 +01:00
}
// Nofollow option
$rel = '' ;
if ( $GLOBALS [ 'nofollow' ]) {
$rel = ' rel="nofollow"' ;
}
$address = filter ( $row [ 'bAddress' ]);
// Redirection option
if ( $GLOBALS [ 'useredir' ]) {
$address = $GLOBALS [ 'url_redir' ] . $address ;
}
2009-10-28 23:30:12 +01:00
2009-02-03 15:15:34 +01:00
// Admin specific design
if ( $userservice -> isAdmin ( $row [ 'uId' ])) {
$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 = '' ;
}
2009-10-28 23:30:12 +01:00
2009-02-17 11:06:19 +01:00
// Private Note (just visible by the owner and his/her contacts)
if ( $userservice -> isLoggedOn () && ( $currentUser -> getId () == $row [ 'uId' ] || in_array ( $row [ 'username' ], $userservice -> getWatchNames ( $currentUser -> getId (), true )))) {
$privateNoteField = $row [ 'bPrivateNote' ];
} else {
$privateNoteField = '' ;
}
2009-10-28 23:30:12 +01:00
2008-11-21 19:45:18 +01:00
// Output
2009-02-03 15:15:34 +01:00
echo '<li class="xfolkentry' . $access . '" >' . " \n " ;
2009-10-27 21:30:33 +01:00
include 'bookmarks-thumbnail.inc.tpl.php' ;
2009-10-26 22:55:43 +01:00
include 'bookmarks-vote.inc.tpl.php' ;
2009-10-28 23:30:12 +01:00
2009-02-03 15:15:34 +01:00
echo '<div ' . $adminBgClass . ' >' ;;
2008-11-21 19:45:18 +01:00
2009-05-19 14:10:10 +02:00
echo '<div class="link"><a href="' . $address . '"' . $rel . ' class="taggedlink" target="_blank">' . filter ( $row [ 'bTitle' ]) . " </a> " . $adminStar . " </div> \n " ;
2008-11-21 19:45:18 +01:00
if ( $row [ 'bDescription' ] == '' ) {
2008-12-18 17:25:17 +01:00
$bkDescription = '-' ;
} else {
2009-02-09 12:16:02 +01:00
// Improve description display (anchors, links, ...)
2008-12-18 17:25:17 +01:00
$bkDescription = preg_replace ( '|\[\/.*?\]|' , '' , filter ( $row [ 'bDescription' ])); // remove final anchor
2009-02-17 11:25:29 +01:00
$bkDescription = preg_replace ( '|\[(.*?)\]|' , ' <span class="anchorBookmark">$1</span> » ' , $bkDescription ); // highlight starting anchor
2009-02-09 13:54:31 +01:00
$bkDescription = preg_replace ( '@((http|https|ftp)://.*?)( |\r|$)@' , '<a href="$1" rel="nofollow">$1</a>$3' , $bkDescription ); // make url clickable
2009-10-28 23:30:12 +01:00
2008-11-21 19:45:18 +01:00
}
2009-01-15 16:04:59 +01:00
echo '<div class="description">' . nl2br ( $bkDescription ) . " </div> \n " ;
2009-01-06 18:31:23 +01:00
//if(!isset($hash)) {
2008-11-21 19:45:18 +01:00
echo '<div class="address">' . shortenString ( $address ) . '</div>' ;
2009-01-06 18:31:23 +01:00
//}
2008-11-21 19:45:18 +01:00
2009-02-09 13:54:31 +01:00
echo '<div class="meta">' . $cats . $copy . $edit . $update . " </div> \n " ;
2009-02-17 11:06:19 +01:00
echo $privateNoteField != '' ? '<div class="privateNote" title="' . T_ ( 'Private Note on this bookmark' ) . '">' . $privateNoteField . " </div> \n " : '' ;
2008-11-21 19:45:18 +01:00
echo '</div>' ;
echo " </li> \n " ;
}
?>
</ ol >
< ? php
2009-10-28 23:30:12 +01:00
if ( getPerPageCount ( $currentUser ) > 7 ) {
2009-05-19 17:59:55 +02:00
echo '<p class="backToTop"><a href="#header" title="' . T_ ( 'Come back to the top of this page.' ) . '">' . T_ ( 'Top of the page' ) . '</a></p>' ;
2008-02-13 18:41:47 +01:00
}
2009-05-19 17:59:55 +02:00
echo $pagesBanner ; // display previous and next links pages + RSS link
2009-10-28 23:30:12 +01:00
2008-04-24 10:48:57 +02:00
2007-12-12 17:29:16 +01:00
} else {
2008-11-21 19:45:18 +01:00
echo '<p class="error">' . T_ ( 'No bookmarks available' ) . '</p>' ;
2007-12-12 17:29:16 +01:00
}
$this -> includeTemplate ( 'sidebar.tpl' );
$this -> includeTemplate ( $GLOBALS [ 'bottom_include' ]);
?>