aboutsummaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/config.default.php18
-rw-r--r--data/schema/2.sql2
-rw-r--r--data/templates/default/bookmarks.tpl.php81
3 files changed, 100 insertions, 1 deletions
diff --git a/data/config.default.php b/data/config.default.php
index 5e560a7..95df176 100644
--- a/data/config.default.php
+++ b/data/config.default.php
@@ -778,4 +778,22 @@ $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;
+
?>
diff --git a/data/schema/2.sql b/data/schema/2.sql
index 6c3bfaf..171e011 100644
--- a/data/schema/2.sql
+++ b/data/schema/2.sql
@@ -1,4 +1,4 @@
-ALTER TABLE `sc_bookmarks` CHANGE `bDescription` `bDescription` VARCHAR( 1500 )
+ALTER TABLE `sc_bookmarks` CHANGE `bDescription` `bDescription` VARCHAR( 1500 );
CREATE TABLE `sc_tagscache` (
`tcId` int(11) NOT NULL auto_increment,
`tag1` varchar(100) NOT NULL default '',
diff --git a/data/templates/default/bookmarks.tpl.php b/data/templates/default/bookmarks.tpl.php
index 2a3d169..818eea0 100644
--- a/data/templates/default/bookmarks.tpl.php
+++ b/data/templates/default/bookmarks.tpl.php
@@ -337,6 +337,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 +505,7 @@ if ($currenttag!= '') {
. $copy . "\n"
. $edit . "\n"
. $update . "\n"
+ . $cacheLink ."\n"
. " </div>\n";
echo $privateNoteField != ''
? ' <div class="privateNote" title="'. T_('Private Note on this bookmark') .'">'.$privateNoteField."</div>\n"