aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/config.default.php18
-rw-r--r--data/templates/default/bookmarks.tpl.php99
-rw-r--r--data/templates/default/top.inc.php1
3 files changed, 115 insertions, 3 deletions
diff --git a/data/config.default.php b/data/config.default.php
index bb9eddb..73b098b 100644
--- a/data/config.default.php
+++ b/data/config.default.php
@@ -778,6 +778,24 @@ $unittestUrl = null;
*/
$allowUnittestMode = false;
+/***************************************************
+ * Caching support
+ *
+ * Use the following configuration if you want to provide a link
+ * to a cached copy of your bookmarks.
+ *
+ * Please note that these feature just provide the link if a cached
+ * copy exists.
+ *
+ * You should download SemanticScuttle bookmarks using a tool like
+ * https://git.fluxo.info/?p=httruta.git
+ */
+
+/**
+ * Set to the base public URL of you cache folder.
+ */
+$cacheUrl = null;
+
/**
* bookmark-bot email address mapping
* Input address as key, user email as target
diff --git a/data/templates/default/bookmarks.tpl.php b/data/templates/default/bookmarks.tpl.php
index 2a3d169..20b5336 100644
--- a/data/templates/default/bookmarks.tpl.php
+++ b/data/templates/default/bookmarks.tpl.php
@@ -112,6 +112,7 @@ if($userservice->isLoggedOn()) {
window.onload = playerLoad;
</script>
+<?php if (count($bookmarks) > 1) { ?>
<p id="sort"><?php echo $total.' '.T_("bookmark(s)"); ?> - <?php echo T_("Sort by:"); ?>
<?php
$titleArrow = '';
@@ -162,6 +163,7 @@ default:
<a href="?sort=<?php echo $votingSort ?>"><?php echo T_("Voting").$votingArrow; ?></a>
<span>/</span>
<?php } ?>
+<?php } ?>
<?php
if ($currenttag!= '') {
@@ -275,6 +277,12 @@ if ($currenttag!= '') {
break;
}
+ // Add username in case bookmark was loaded using getBookmark()
+ if (!isset($row['username']) && isset($row['uId'])) {
+ $userinfo = $userservice->getObjectUser($row['uId']);
+ $row['username'] = $userinfo->username;
+ }
+
$cats = '';
$tagsForCopy = '';
$tags = $row['tags'];
@@ -310,12 +318,13 @@ if ($currenttag!= '') {
$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_('by') . ' ';
$copy .= T_('you');
- } else {
+ } else if (isset($row['username'])) {
+ $copy = ' ' . T_('by') . ' ';
$copy .= '<a href="' . createURL('bookmarks', $row['username']) . '">'
. SemanticScuttle_Model_UserArray::getName($row)
. '</a>';
@@ -337,6 +346,86 @@ if ($currenttag!= '') {
}
}
+ // Local cache
+ $cacheInfo = $GLOBALS['dir_cache'] .'/urls';
+ $cacheLink = null;
+ if ($GLOBALS['cacheUrl'] != null) {
+ // Hashing discussion at http://linuxprocess.free.fr/MHonArc/Oct-2005/msg00016.html
+ $assetHash = sha1($row['bAddress'] . "\n");
+ $assetHash = substr($assetHash, 0, 2) . '/' . substr($assetHash, 2, 2) . '/' . $assetHash;
+ $assetBase = $GLOBALS['cacheUrl'] . '/' . $assetHash;
+ $assetLink = $assetBase;
+ $assetPdf = $assetBase.'/screenshot.pdf';
+ $assetPng = $assetBase .'/screenshot.png';
+
+ // Handle PDF links
+ $assetFile = basename(parse_url($row['bAddress'])['path']);
+ $assetExt = strtolower(pathinfo($assetFile, PATHINFO_EXTENSION));
+ if ($assetExt == 'pdf') {
+ $assetLink = $GLOBALS['cacheUrl'] . '/' . $assetHash . '/' . $assetFile;
+ }
+
+ // Check if the link exists
+ if (file_exists($cacheInfo .'/'. $assetHash .'/hascache')) {
+ $cacheLink = "| <a href=\"$assetLink\">Cache</a>";
+
+ if (file_exists($cacheInfo .'/'. $assetHash .'/haspdf')) {
+ $cacheLink .= " | <a href=\"$assetPdf\">PDF</a>";
+ }
+
+ if (file_exists($cacheInfo .'/'. $assetHash .'/haspng')) {
+ $cacheLink .= " | <a href=\"$assetPng\">PNG</a>";
+ }
+ }
+ else if ($fp = curl_init($assetBase)) {
+ curl_setopt($fp, CURLOPT_NOBODY, true);
+ curl_exec($fp);
+
+ $retcode = curl_getinfo($fp, CURLINFO_HTTP_CODE);
+
+ if ($retcode != 404) {
+ if (!file_exists($cacheInfo .'/'. $assetHash)) {
+ mkdir($cacheInfo .'/'. $assetHash, 0755, true);
+ }
+
+ touch($cacheInfo .'/'. $assetHash .'/hascache');
+ $cacheLink = "| <a href=\"$assetLink\">Cache</a>";
+
+ // Check if PDF is available
+ if ($fp = curl_init($assetPdf)) {
+ curl_setopt($fp, CURLOPT_NOBODY, true);
+ curl_exec($fp);
+
+ $retcode = curl_getinfo($fp, CURLINFO_HTTP_CODE);
+
+ if ($retcode != 404) {
+ touch($cacheInfo .'/'. $assetHash .'/haspdf');
+ $cacheLink .= " | <a href=\"$assetPdf\">PDF</a>";
+ }
+
+ curl_close($fp);
+ }
+
+ // Check if PNG is available
+ if ($fp = curl_init($assetPng)) {
+ curl_setopt($fp, CURLOPT_NOBODY, true);
+ curl_exec($fp);
+
+ $retcode = curl_getinfo($fp, CURLINFO_HTTP_CODE);
+
+ if ($retcode != 404) {
+ touch($cacheInfo .'/'. $assetHash .'/haspng');
+ $cacheLink .= " | <a href=\"$assetPng\">PNG</a>";
+ }
+
+ curl_close($fp);
+ }
+ }
+
+ curl_close($fp);
+ }
+ }
+
// Copy link
if ($userservice->isLoggedOn()
&& ($currentUser->getId() != $row['uId'])
@@ -425,6 +514,8 @@ if ($currenttag!= '') {
. $copy . "\n"
. $edit . "\n"
. $update . "\n"
+ . $cacheLink ."\n"
+ . ' | <a href="/permalink/'. $row['bId'] . '">Permalink</a>' ."\n"
. " </div>\n";
echo $privateNoteField != ''
? ' <div class="privateNote" title="'. T_('Private Note on this bookmark') .'">'.$privateNoteField."</div>\n"
@@ -443,8 +534,10 @@ if ($currenttag!= '') {
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
+ if (isset($bookmarks) && count($bookmarks) > 1) {
+ echo $pagesBanner; // display previous and next links pages + RSS link
+ }
} else {
echo '<p class="error">'.T_('No bookmarks available').'</p>';
diff --git a/data/templates/default/top.inc.php b/data/templates/default/top.inc.php
index 55be4a7..79cc2e2 100644
--- a/data/templates/default/top.inc.php
+++ b/data/templates/default/top.inc.php
@@ -3,6 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
+ <meta name="viewport" content="width=device-width,initial-scale=1">
<title><?php echo filter($GLOBALS['sitename'] .(isset($pagetitle) ? ' ยป ' . $pagetitle : '')); ?></title>
<link rel="icon" type="image/png" href="<?php echo $theme->resource('icon.png');?>" />
<link rel="stylesheet" type="text/css" href="<?php echo $theme->resource('scuttle.css');?>" />