diff options
-rw-r--r-- | index.php | 24 | ||||
-rw-r--r-- | tpl/editlink.html | 4 | ||||
-rw-r--r-- | tpl/tools.html | 27 |
3 files changed, 45 insertions, 10 deletions
@@ -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 | } |
@@ -555,9 +555,12 @@ function endsWith($haystack,$needle,$case=true) | |||
555 | PS: I could have used strptime(), but it does not exist on Windows. I'm too kind. */ | 555 | PS: I could have used strptime(), but it does not exist on Windows. I'm too kind. */ |
556 | function linkdate2timestamp($linkdate) | 556 | function linkdate2timestamp($linkdate) |
557 | { | 557 | { |
558 | $Y=$M=$D=$h=$m=$s=0; | 558 | if(strcmp($linkdate, '_000000') !== 0 || !$linkdate){ |
559 | sscanf($linkdate,'%4d%2d%2d_%2d%2d%2d',$Y,$M,$D,$h,$m,$s); | 559 | $Y=$M=$D=$h=$m=$s=0; |
560 | return mktime($h,$m,$s,$M,$D,$Y); | 560 | $r = sscanf($linkdate,'%4d%2d%2d_%2d%2d%2d',$Y,$M,$D,$h,$m,$s); |
561 | return mktime($h,$m,$s,$M,$D,$Y); | ||
562 | } | ||
563 | return time(); | ||
561 | } | 564 | } |
562 | 565 | ||
563 | /* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a RFC822 date. | 566 | /* Converts a linkdate time (YYYYMMDD_HHMMSS) of an article to a RFC822 date. |
@@ -1572,7 +1575,7 @@ function renderPage() | |||
1572 | pubsubhub(); | 1575 | pubsubhub(); |
1573 | 1576 | ||
1574 | // If we are called from the bookmarklet, we must close the popup: | 1577 | // If we are called from the bookmarklet, we must close the popup: |
1575 | if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo '<script>self.close();</script>'; exit; } | 1578 | if (isset($_GET['source']) && ($_GET['source']=='bookmarklet' || $_GET['source']=='firefoxsocialapi')) { echo '<script>self.close();</script>'; exit; } |
1576 | $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); | 1579 | $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); |
1577 | $returnurl .= '#'.smallHash($linkdate); // Scroll to the link which has been edited. | 1580 | $returnurl .= '#'.smallHash($linkdate); // Scroll to the link which has been edited. |
1578 | if (strstr($returnurl, "do=addlink")) { $returnurl = '?'; } //if we come from ?do=addlink, set returnurl to homepage instead | 1581 | if (strstr($returnurl, "do=addlink")) { $returnurl = '?'; } //if we come from ?do=addlink, set returnurl to homepage instead |
@@ -1584,7 +1587,7 @@ function renderPage() | |||
1584 | if (isset($_POST['cancel_edit'])) | 1587 | if (isset($_POST['cancel_edit'])) |
1585 | { | 1588 | { |
1586 | // If we are called from the bookmarklet, we must close the popup: | 1589 | // If we are called from the bookmarklet, we must close the popup: |
1587 | if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo '<script>self.close();</script>'; exit; } | 1590 | if (isset($_GET['source']) && ($_GET['source']=='bookmarklet' || $_GET['source']=='firefoxsocialapi')) { echo '<script>self.close();</script>'; exit; } |
1588 | $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); | 1591 | $returnurl = ( isset($_POST['returnurl']) ? $_POST['returnurl'] : '?' ); |
1589 | $returnurl .= '#'.smallHash($_POST['lf_linkdate']); // Scroll to the link which has been edited. | 1592 | $returnurl .= '#'.smallHash($_POST['lf_linkdate']); // Scroll to the link which has been edited. |
1590 | header('Location: '.$returnurl); // After canceling, redirect to the page the user was on. | 1593 | header('Location: '.$returnurl); // After canceling, redirect to the page the user was on. |
@@ -1603,7 +1606,7 @@ function renderPage() | |||
1603 | $LINKSDB->savedb(); // save to disk | 1606 | $LINKSDB->savedb(); // save to disk |
1604 | 1607 | ||
1605 | // If we are called from the bookmarklet, we must close the popup: | 1608 | // If we are called from the bookmarklet, we must close the popup: |
1606 | if (isset($_GET['source']) && $_GET['source']=='bookmarklet') { echo '<script>self.close();</script>'; exit; } | 1609 | if (isset($_GET['source']) && ($_GET['source']=='bookmarklet' || $_GET['source']=='firefoxsocialapi')) { echo '<script>self.close();</script>'; exit; } |
1607 | // Pick where we're going to redirect | 1610 | // Pick where we're going to redirect |
1608 | // ============================================================= | 1611 | // ============================================================= |
1609 | // Basically, we can't redirect to where we were previously if it was a permalink | 1612 | // Basically, we can't redirect to where we were previously if it was a permalink |
@@ -1611,7 +1614,7 @@ function renderPage() | |||
1611 | // Cases: | 1614 | // Cases: |
1612 | // - / : nothing in $_GET, redirect to self | 1615 | // - / : nothing in $_GET, redirect to self |
1613 | // - /?page : redirect to self | 1616 | // - /?page : redirect to self |
1614 | // - /?searchterm : redirect to self (there might be other links) | 1617 | // - /?searchterm : redirect to self (there might be other links) |
1615 | // - /?searchtags : redirect to self | 1618 | // - /?searchtags : redirect to self |
1616 | // - /permalink : redirect to / (the link does not exist anymore) | 1619 | // - /permalink : redirect to / (the link does not exist anymore) |
1617 | // - /?edit_link : redirect to / (the link does not exist anymore) | 1620 | // - /?edit_link : redirect to / (the link does not exist anymore) |
@@ -1721,6 +1724,7 @@ function renderPage() | |||
1721 | $PAGE->assign('link_is_new',$link_is_new); | 1724 | $PAGE->assign('link_is_new',$link_is_new); |
1722 | $PAGE->assign('token',getToken()); // XSRF protection. | 1725 | $PAGE->assign('token',getToken()); // XSRF protection. |
1723 | $PAGE->assign('http_referer',(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '')); | 1726 | $PAGE->assign('http_referer',(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '')); |
1727 | $PAGE->assign('source',(isset($_GET['source']) ? $_GET['source'] : '')); | ||
1724 | $PAGE->assign('tags', $LINKSDB->allTags()); | 1728 | $PAGE->assign('tags', $LINKSDB->allTags()); |
1725 | $PAGE->renderPage('editlink'); | 1729 | $PAGE->renderPage('editlink'); |
1726 | exit; | 1730 | exit; |
@@ -1975,7 +1979,7 @@ function buildLinkList($PAGE,$LINKSDB) | |||
1975 | strlen($link["url"]) === 7) { | 1979 | strlen($link["url"]) === 7) { |
1976 | $link["url"] = indexUrl() . $link["url"]; | 1980 | $link["url"] = indexUrl() . $link["url"]; |
1977 | } | 1981 | } |
1978 | 1982 | ||
1979 | $linkDisp[$keys[$i]] = $link; | 1983 | $linkDisp[$keys[$i]] = $link; |
1980 | $i++; | 1984 | $i++; |
1981 | } | 1985 | } |
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)+'&title='%20+%20encodeURIComponent(title)+'&description='%20+%20encodeURIComponent(document.getSelection())+'&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>⇐ Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br> 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)+'&title='%20+%20encodeURIComponent(title)+'&description='%20+%20encodeURIComponent(document.getSelection())+'&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>⇐ Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br> 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>⇐ Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br> 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>⇐ Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br> 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>⇐ 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"} |