aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornodiscc <nodiscc@gmail.com>2015-05-22 21:04:36 +0200
committernodiscc <nodiscc@gmail.com>2015-05-22 21:04:36 +0200
commit8b3c67fccbe7e68b304d3071b1f7a77e0f1fc048 (patch)
tree939f6c91da5b4f9c87ec7b8b84586519fb40aa00
parentf5b059254f1bc0311a4a2912502353e77dbad1dc (diff)
parentd33c5d4c3b9c70441391a08e8bcb2a8c639a4635 (diff)
downloadShaarli-8b3c67fccbe7e68b304d3071b1f7a77e0f1fc048.tar.gz
Shaarli-8b3c67fccbe7e68b304d3071b1f7a77e0f1fc048.tar.zst
Shaarli-8b3c67fccbe7e68b304d3071b1f7a77e0f1fc048.zip
Merge remote-tracking branch 'Marsup/firefox-social' into next
-rw-r--r--index.php15
-rw-r--r--tpl/editlink.html4
-rw-r--r--tpl/tools.html27
3 files changed, 39 insertions, 7 deletions
diff --git a/index.php b/index.php
index 69a8a193..80cf8bea 100644
--- a/index.php
+++ b/index.php
@@ -309,8 +309,8 @@ function autoLocale()
309 if (preg_match('/([a-z]{2})-?([a-z]{2})?/i',$_SERVER['HTTP_ACCEPT_LANGUAGE'],$matches)) { 309 if (preg_match('/([a-z]{2})-?([a-z]{2})?/i',$_SERVER['HTTP_ACCEPT_LANGUAGE'],$matches)) {
310 $loc = $matches[1] . (!empty($matches[2]) ? '_' . strtoupper($matches[2]) : ''); 310 $loc = $matches[1] . (!empty($matches[2]) ? '_' . strtoupper($matches[2]) : '');
311 $attempts = array($loc.'.UTF-8', $loc, str_replace('_', '-', $loc).'.UTF-8', str_replace('_', '-', $loc), 311 $attempts = array($loc.'.UTF-8', $loc, str_replace('_', '-', $loc).'.UTF-8', str_replace('_', '-', $loc),
312 $loc . '_' . strtoupper($loc).'.UTF-8', $loc . '_' . strtoupper($loc), 312 $loc . '_' . strtoupper($loc).'.UTF-8', $loc . '_' . strtoupper($loc),
313 $loc . '_' . $loc.'.UTF-8', $loc . '_' . $loc, $loc . '-' . strtoupper($loc).'.UTF-8', 313 $loc . '_' . $loc.'.UTF-8', $loc . '_' . $loc, $loc . '-' . strtoupper($loc).'.UTF-8',
314 $loc . '-' . strtoupper($loc), $loc . '-' . $loc.'.UTF-8', $loc . '-' . $loc); 314 $loc . '-' . strtoupper($loc), $loc . '-' . $loc.'.UTF-8', $loc . '-' . $loc);
315 } 315 }
316 } 316 }
@@ -1558,7 +1558,7 @@ function renderPage()
1558 pubsubhub(); 1558 pubsubhub();
1559 1559
1560 // If we are called from the bookmarklet, we must close the popup: 1560 // If we are called from the bookmarklet, we must close the popup:
1561 if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo '<script>self.close();</script>'; exit; } 1561 if (isset($_GET['source']) && ($_GET['source']=='bookmarklet' || $_GET['source']=='firefoxsocialapi')) { echo '<script>self.close();</script>'; exit; }
1562 $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); 1562 $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' );
1563 $returnurl .= '#'.smallHash($linkdate); // Scroll to the link which has been edited. 1563 $returnurl .= '#'.smallHash($linkdate); // Scroll to the link which has been edited.
1564 if (strstr($returnurl, "do=addlink")) { $returnurl = '?'; } //if we come from ?do=addlink, set returnurl to homepage instead 1564 if (strstr($returnurl, "do=addlink")) { $returnurl = '?'; } //if we come from ?do=addlink, set returnurl to homepage instead
@@ -1570,7 +1570,7 @@ function renderPage()
1570 if (isset($_POST['cancel_edit'])) 1570 if (isset($_POST['cancel_edit']))
1571 { 1571 {
1572 // If we are called from the bookmarklet, we must close the popup: 1572 // If we are called from the bookmarklet, we must close the popup:
1573 if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo '<script>self.close();</script>'; exit; } 1573 if (isset($_GET['source']) && ($_GET['source']=='bookmarklet' || $_GET['source']=='firefoxsocialapi')) { echo '<script>self.close();</script>'; exit; }
1574 $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); 1574 $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' );
1575 $returnurl .= '#'.smallHash($_POST['lf_linkdate']); // Scroll to the link which has been edited. 1575 $returnurl .= '#'.smallHash($_POST['lf_linkdate']); // Scroll to the link which has been edited.
1576 header('Location: '.$returnurl); // After canceling, redirect to the page the user was on. 1576 header('Location: '.$returnurl); // After canceling, redirect to the page the user was on.
@@ -1589,7 +1589,7 @@ function renderPage()
1589 $LINKSDB->savedb(); // save to disk 1589 $LINKSDB->savedb(); // save to disk
1590 1590
1591 // If we are called from the bookmarklet, we must close the popup: 1591 // If we are called from the bookmarklet, we must close the popup:
1592 if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo '<script>self.close();</script>'; exit; } 1592 if (isset($_GET['source']) && ($_GET['source']=='bookmarklet' || $_GET['source']=='firefoxsocialapi')) { echo '<script>self.close();</script>'; exit; }
1593 // Pick where we're going to redirect 1593 // Pick where we're going to redirect
1594 // ============================================================= 1594 // =============================================================
1595 // Basically, we can't redirect to where we were previously if it was a permalink 1595 // Basically, we can't redirect to where we were previously if it was a permalink
@@ -1597,7 +1597,7 @@ function renderPage()
1597 // Cases: 1597 // Cases:
1598 // - / : nothing in $_GET, redirect to self 1598 // - / : nothing in $_GET, redirect to self
1599 // - /?page : redirect to self 1599 // - /?page : redirect to self
1600 // - /?searchterm : redirect to self (there might be other links) 1600 // - /?searchterm : redirect to self (there might be other links)
1601 // - /?searchtags : redirect to self 1601 // - /?searchtags : redirect to self
1602 // - /permalink : redirect to / (the link does not exist anymore) 1602 // - /permalink : redirect to / (the link does not exist anymore)
1603 // - /?edit_link : redirect to / (the link does not exist anymore) 1603 // - /?edit_link : redirect to / (the link does not exist anymore)
@@ -1707,6 +1707,7 @@ function renderPage()
1707 $PAGE->assign('link_is_new',$link_is_new); 1707 $PAGE->assign('link_is_new',$link_is_new);
1708 $PAGE->assign('token',getToken()); // XSRF protection. 1708 $PAGE->assign('token',getToken()); // XSRF protection.
1709 $PAGE->assign('http_referer',(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '')); 1709 $PAGE->assign('http_referer',(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''));
1710 $PAGE->assign('source',(isset($_GET['source']) ? $_GET['source'] : ''));
1710 $PAGE->assign('tags', $LINKSDB->allTags()); 1711 $PAGE->assign('tags', $LINKSDB->allTags());
1711 $PAGE->renderPage('editlink'); 1712 $PAGE->renderPage('editlink');
1712 exit; 1713 exit;
@@ -1957,7 +1958,7 @@ function buildLinkList($PAGE,$LINKSDB)
1957 strlen($link["url"]) === 7) { 1958 strlen($link["url"]) === 7) {
1958 $link["url"] = indexUrl() . $link["url"]; 1959 $link["url"] = indexUrl() . $link["url"];
1959 } 1960 }
1960 1961
1961 $linkDisp[$keys[$i]] = $link; 1962 $linkDisp[$keys[$i]] = $link;
1962 $i++; 1963 $i++;
1963 } 1964 }
diff --git a/tpl/editlink.html b/tpl/editlink.html
index b737b990..0276f088 100644
--- a/tpl/editlink.html
+++ b/tpl/editlink.html
@@ -9,7 +9,9 @@
9{elseif="$link.description==''"}onload="document.linkform.lf_description.focus();" 9{elseif="$link.description==''"}onload="document.linkform.lf_description.focus();"
10{else}onload="document.linkform.lf_tags.focus();"{/if} > 10{else}onload="document.linkform.lf_tags.focus();"{/if} >
11<div id="pageheader"> 11<div id="pageheader">
12 {if="$source !== 'firefoxsocialapi'"}
12 {include="page.header"} 13 {include="page.header"}
14 {/if}
13 <div id="editlinkform"> 15 <div id="editlinkform">
14 <form method="post" name="linkform"> 16 <form method="post" name="linkform">
15 <input type="hidden" name="lf_linkdate" value="{$link.linkdate}"> 17 <input type="hidden" name="lf_linkdate" value="{$link.linkdate}">
@@ -34,7 +36,9 @@
34 </form> 36 </form>
35 </div> 37 </div>
36</div> 38</div>
39{if="$source !== 'firefoxsocialapi'"}
37{include="page.footer"} 40{include="page.footer"}
41{/if}
38{if="($GLOBALS['config']['OPEN_SHAARLI'] || isLoggedIn())"} 42{if="($GLOBALS['config']['OPEN_SHAARLI'] || isLoggedIn())"}
39<script> 43<script>
40 $ = Awesomplete.$; 44 $ = Awesomplete.$;
diff --git a/tpl/tools.html b/tpl/tools.html
index e912f615..a3b469de 100644
--- a/tpl/tools.html
+++ b/tpl/tools.html
@@ -12,7 +12,34 @@
12 <a href="?do=export"><b>Export</b> <span>: Export Netscape html bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)</span></a><br><br> 12 <a href="?do=export"><b>Export</b> <span>: Export Netscape html bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)</span></a><br><br>
13 <a class="smallbutton" onclick="alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...');return false;" href="javascript:javascript:(function(){var%20url%20=%20location.href;var%20title%20=%20document.title%20||%20url;window.open('{$pageabsaddr}?post='%20+%20encodeURIComponent(url)+'&amp;title='%20+%20encodeURIComponent(title)+'&amp;description='%20+%20encodeURIComponent(document.getSelection())+'&amp;source=bookmarklet','_blank','menubar=no,height=390,width=600,toolbar=no,scrollbars=no,status=no,dialog=1');})();"><b>✚Shaare link</b></a> <a href="#" style="clear:none;"><span>&#x21D0; Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br>&nbsp;&nbsp;&nbsp;&nbsp;Then click "✚Shaare link" button in any page you want to share.</span></a><br><br> 13 <a class="smallbutton" onclick="alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...');return false;" href="javascript:javascript:(function(){var%20url%20=%20location.href;var%20title%20=%20document.title%20||%20url;window.open('{$pageabsaddr}?post='%20+%20encodeURIComponent(url)+'&amp;title='%20+%20encodeURIComponent(title)+'&amp;description='%20+%20encodeURIComponent(document.getSelection())+'&amp;source=bookmarklet','_blank','menubar=no,height=390,width=600,toolbar=no,scrollbars=no,status=no,dialog=1');})();"><b>✚Shaare link</b></a> <a href="#" style="clear:none;"><span>&#x21D0; Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br>&nbsp;&nbsp;&nbsp;&nbsp;Then click "✚Shaare link" button in any page you want to share.</span></a><br><br>
14 <a class="smallbutton" onclick="alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...');return false;" href="?private=1&post="><b>✚Add Note</b></a> <a href="#" style="clear:none;"><span>&#x21D0; Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br>&nbsp;&nbsp;&nbsp;&nbsp;Then click "✚Add Note" button anytime to start composing a (default private) Note (text post) to your Shaarli.</span></a><br><br> 14 <a class="smallbutton" onclick="alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...');return false;" href="?private=1&post="><b>✚Add Note</b></a> <a href="#" style="clear:none;"><span>&#x21D0; Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br>&nbsp;&nbsp;&nbsp;&nbsp;Then click "✚Add Note" button anytime to start composing a (default private) Note (text post) to your Shaarli.</span></a><br><br>
15 <a class="smallbutton" onclick="activateFirefoxSocial(this)"><b>✚Add to Firefox social</b></a> <a href="#" style="clear:none;"><span>&#x21D0; Click on this button to add Shaarli to the "Share this page" button in Firefox.</span></a><br><br>
15 <div class="clear"></div> 16 <div class="clear"></div>
17
18 <script>
19 function activateFirefoxSocial(node) {
20 var loc = location.href;
21 var baseURL = loc.substring(0, loc.lastIndexOf("/"));
22
23 // Keeping the data separated (ie. not in the DOM) so that it's maintainable and diffable.
24 var data = {
25 name: "{$shaarlititle}",
26 description: "The personal, minimalist, super-fast, no-database delicious clone.",
27 author: "Shaarli",
28 version: "1.0.0",
29
30 iconURL: baseURL + "/images/favicon.ico",
31 icon32URL: baseURL + "/images/favicon.ico",
32 icon64URL: baseURL + "/images/favicon.ico",
33
34 shareURL: baseURL + "{noparse}?post=%{url}&title=%{title}&description=%{description}&source=firefoxsocialapi{/noparse}",
35 homepageURL: baseURL
36 };
37 node.setAttribute("data-service", JSON.stringify(data));
38
39 var activate = new CustomEvent("ActivateSocialFeature");
40 node.dispatchEvent(activate);
41 }
42 </script>
16 </div> 43 </div>
17</div> 44</div>
18{include="page.footer"} 45{include="page.footer"}