aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--application/Router.php6
-rw-r--r--index.php25
-rw-r--r--plugins/demo_plugin/custom_demo.css6
-rw-r--r--plugins/demo_plugin/demo_plugin.php8
-rw-r--r--tpl/page.footer.html5
-rwxr-xr-x[-rw-r--r--]tpl/tools.html51
6 files changed, 90 insertions, 11 deletions
diff --git a/application/Router.php b/application/Router.php
index 1e6a3983..0c813847 100644
--- a/application/Router.php
+++ b/application/Router.php
@@ -13,6 +13,8 @@ class Router
13 13
14 public static $PAGE_TAGCLOUD = 'tagcloud'; 14 public static $PAGE_TAGCLOUD = 'tagcloud';
15 15
16 public static $PAGE_DAILY = 'daily';
17
16 public static $PAGE_TOOLS = 'tools'; 18 public static $PAGE_TOOLS = 'tools';
17 19
18 public static $PAGE_CHANGEPASSWORD = 'changepasswd'; 20 public static $PAGE_CHANGEPASSWORD = 'changepasswd';
@@ -69,6 +71,10 @@ class Router
69 return self::$PAGE_OPENSEARCH; 71 return self::$PAGE_OPENSEARCH;
70 } 72 }
71 73
74 if (startsWith($query, 'do='. self::$PAGE_DAILY)) {
75 return self::$PAGE_DAILY;
76 }
77
72 // At this point, only loggedin pages. 78 // At this point, only loggedin pages.
73 if (!$loggedIn) { 79 if (!$loggedIn) {
74 return self::$PAGE_LINKLIST; 80 return self::$PAGE_LINKLIST;
diff --git a/index.php b/index.php
index 81ab7676..d0876d95 100644
--- a/index.php
+++ b/index.php
@@ -995,8 +995,12 @@ function showDailyRSS() {
995 exit; 995 exit;
996} 996}
997 997
998// "Daily" page. 998/**
999function showDaily() 999 * Show the 'Daily' page.
1000 *
1001 * @param PageBuilder $pageBuilder Template engine wrapper.
1002 */
1003function showDaily($pageBuilder)
1000{ 1004{
1001 $LINKSDB = new LinkDB( 1005 $LINKSDB = new LinkDB(
1002 $GLOBALS['config']['DATASTORE'], 1006 $GLOBALS['config']['DATASTORE'],
@@ -1059,7 +1063,7 @@ function showDaily()
1059 array_push($columns[$index],$link); // Put entry in this column. 1063 array_push($columns[$index],$link); // Put entry in this column.
1060 $fill[$index]+=$length; 1064 $fill[$index]+=$length;
1061 } 1065 }
1062 $PAGE = new pageBuilder; 1066
1063 $data = array( 1067 $data = array(
1064 'linksToDisplay' => $linksToDisplay, 1068 'linksToDisplay' => $linksToDisplay,
1065 'linkcount' => count($LINKSDB), 1069 'linkcount' => count($LINKSDB),
@@ -1072,10 +1076,10 @@ function showDaily()
1072 $pluginManager->executeHooks('render_daily', $data, array('loggedin' => isLoggedIn())); 1076 $pluginManager->executeHooks('render_daily', $data, array('loggedin' => isLoggedIn()));
1073 1077
1074 foreach ($data as $key => $value) { 1078 foreach ($data as $key => $value) {
1075 $PAGE->assign($key, $value); 1079 $pageBuilder->assign($key, $value);
1076 } 1080 }
1077 1081
1078 $PAGE->renderPage('daily'); 1082 $pageBuilder->renderPage('daily');
1079 exit; 1083 exit;
1080} 1084}
1081 1085
@@ -1209,6 +1213,11 @@ function renderPage()
1209 exit; 1213 exit;
1210 } 1214 }
1211 1215
1216 // Daily page.
1217 if ($targetPage == Router::$PAGE_DAILY) {
1218 showDaily($PAGE);
1219 }
1220
1212 // Display openseach plugin (XML) 1221 // Display openseach plugin (XML)
1213 if ($targetPage == Router::$PAGE_OPENSEARCH) { 1222 if ($targetPage == Router::$PAGE_OPENSEARCH) {
1214 header('Content-Type: application/xml; charset=utf-8'); 1223 header('Content-Type: application/xml; charset=utf-8');
@@ -1948,7 +1957,6 @@ function buildLinkList($PAGE,$LINKSDB)
1948 1957
1949 // Fill all template fields. 1958 // Fill all template fields.
1950 $data = array( 1959 $data = array(
1951 'pagetitle' => $GLOBALS['pagetitle'],
1952 'linkcount' => count($LINKSDB), 1960 'linkcount' => count($LINKSDB),
1953 'previous_page_url' => $previous_page_url, 1961 'previous_page_url' => $previous_page_url,
1954 'next_page_url' => $next_page_url, 1962 'next_page_url' => $next_page_url,
@@ -1962,6 +1970,10 @@ function buildLinkList($PAGE,$LINKSDB)
1962 'links' => $linkDisp, 1970 'links' => $linkDisp,
1963 'tags' => $LINKSDB->allTags(), 1971 'tags' => $LINKSDB->allTags(),
1964 ); 1972 );
1973 // FIXME! temporary fix - see #399.
1974 if (!empty($GLOBALS['pagetitle']) && count($linkDisp) == 1) {
1975 $data['pagetitle'] = $GLOBALS['pagetitle'];
1976 }
1965 1977
1966 $pluginManager = PluginManager::getInstance(); 1978 $pluginManager = PluginManager::getInstance();
1967 $pluginManager->executeHooks('render_linklist', $data, array('loggedin' => isLoggedIn())); 1979 $pluginManager->executeHooks('render_linklist', $data, array('loggedin' => isLoggedIn()));
@@ -2456,7 +2468,6 @@ if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=g
2456if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=rss')) { showRSS(); exit; } 2468if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=rss')) { showRSS(); exit; }
2457if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=atom')) { showATOM(); exit; } 2469if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=atom')) { showATOM(); exit; }
2458if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=dailyrss')) { showDailyRSS(); exit; } 2470if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=dailyrss')) { showDailyRSS(); exit; }
2459if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=daily')) { showDaily(); exit; }
2460if (!isset($_SESSION['LINKS_PER_PAGE'])) $_SESSION['LINKS_PER_PAGE']=$GLOBALS['config']['LINKS_PER_PAGE']; 2471if (!isset($_SESSION['LINKS_PER_PAGE'])) $_SESSION['LINKS_PER_PAGE']=$GLOBALS['config']['LINKS_PER_PAGE'];
2461renderPage(); 2472renderPage();
2462?> 2473?>
diff --git a/plugins/demo_plugin/custom_demo.css b/plugins/demo_plugin/custom_demo.css
index ab1720b5..af5e8bf9 100644
--- a/plugins/demo_plugin/custom_demo.css
+++ b/plugins/demo_plugin/custom_demo.css
@@ -4,4 +4,10 @@
4 4
5.upper_plugin_demo { 5.upper_plugin_demo {
6 float: left; 6 float: left;
7}
8
9#demo_marquee {
10 background: darkmagenta;
11 color: white;
12 font-weight: bold;
7} \ No newline at end of file 13} \ No newline at end of file
diff --git a/plugins/demo_plugin/demo_plugin.php b/plugins/demo_plugin/demo_plugin.php
index 84763c2b..f5f028e0 100644
--- a/plugins/demo_plugin/demo_plugin.php
+++ b/plugins/demo_plugin/demo_plugin.php
@@ -40,6 +40,8 @@ function hook_demo_plugin_render_header($data)
40 // Fields in toolbar 40 // Fields in toolbar
41 $data['fields_toolbar'][] = 'DEMO_fields_toolbar'; 41 $data['fields_toolbar'][] = 'DEMO_fields_toolbar';
42 } 42 }
43 // Another button always displayed
44 $data['buttons_toolbar'][] = '<li><a href="#">DEMO</a></li>';
43 45
44 return $data; 46 return $data;
45} 47}
@@ -74,6 +76,7 @@ function hook_demo_plugin_render_includes($data)
74 * 76 *
75 * Template placeholders: 77 * Template placeholders:
76 * - text 78 * - text
79 * - endofpage
77 * - js_files 80 * - js_files
78 * 81 *
79 * Data: 82 * Data:
@@ -89,6 +92,11 @@ function hook_demo_plugin_render_footer($data)
89 // footer text 92 // footer text
90 $data['text'][] = 'Shaarli is now enhanced by the awesome demo_plugin.'; 93 $data['text'][] = 'Shaarli is now enhanced by the awesome demo_plugin.';
91 94
95 // Free elements at the end of the page.
96 $data['endofpage'][] = '<marquee id="demo_marquee">' .
97 'DEMO: it\'s 1999 all over again!' .
98 '</marquee>';
99
92 // List of plugin's JS files. 100 // List of plugin's JS files.
93 // Note that you just need to specify CSS path. 101 // Note that you just need to specify CSS path.
94 $data['js_files'][] = PluginManager::$PLUGINS_PATH . '/demo_plugin/demo_plugin.js'; 102 $data['js_files'][] = PluginManager::$PLUGINS_PATH . '/demo_plugin/demo_plugin.js';
diff --git a/tpl/page.footer.html b/tpl/page.footer.html
index b20aae54..195dada0 100644
--- a/tpl/page.footer.html
+++ b/tpl/page.footer.html
@@ -4,6 +4,11 @@
4 {$value} 4 {$value}
5 {/loop} 5 {/loop}
6</div> 6</div>
7
8{loop="$plugins_footer.endofpage"}
9 {$value}
10{/loop}
11
7{if="$newVersion"} 12{if="$newVersion"}
8<div id="newversion"> 13<div id="newversion">
9 <span id="version_id">&#x25CF;</span> Shaarli {$newVersion} is 14 <span id="version_id">&#x25CF;</span> Shaarli {$newVersion} is
diff --git a/tpl/tools.html b/tpl/tools.html
index c9ada4ac..c13f4f16 100644..100755
--- a/tpl/tools.html
+++ b/tpl/tools.html
@@ -10,12 +10,50 @@
10 <a href="?do=changetag"><b>Rename/delete tags</b> <span>: Rename or delete a tag in all links</span></a><br><br> 10 <a href="?do=changetag"><b>Rename/delete tags</b> <span>: Rename or delete a tag in all links</span></a><br><br>
11 <a href="?do=import"><b>Import</b> <span>: Import Netscape html bookmarks (as exported from Firefox, Chrome, Opera, delicious...)</span></a> <br><br> 11 <a href="?do=import"><b>Import</b> <span>: Import Netscape html bookmarks (as exported from 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> 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"
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 onclick="return alertBookmarklet();"
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 href="javascript:(
16 {loop="$tools_plugin"} 16 function(){
17 var%20url%20=%20location.href;
18 var%20title%20=%20document.title%20||%20url;
19 window.open(
20 '{$pageabsaddr}?post='%20+%20encodeURIComponent(url)+
21 '&amp;title='%20+%20encodeURIComponent(title)+
22 '&amp;description='%20+%20encodeURIComponent(document.getSelection())+
23 '&amp;source=bookmarklet','_blank','menubar=no,height=390,width=600,toolbar=no,scrollbars=no,status=no,dialog=1'
24 );
25 }
26 )();">
27 <b>✚Shaare link</b>
28 </a>
29 <a href="#" onclick="return alertBookmarklet();">
30 <span>
31 &#x21D0; Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br>
32 &nbsp;&nbsp;&nbsp;&nbsp;Then click "✚Shaare link" button in any page you want to share.
33 </span>
34 </a><br><br>
35 <a class="smallbutton"
36 onclick="return alertBookmarklet();"
37 href="?private=1&amp;post=">
38 <b>✚Add Note</b>
39 </a>
40 <a href="#" onclick="return alertBookmarklet();">
41 <span>
42 &#x21D0; Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br>
43 &nbsp;&nbsp;&nbsp;&nbsp;Then click "✚Add Note" button anytime to start composing a private Note (text post) to your Shaarli.
44 </span>
45 </a><br><br>
46 <a class="smallbutton" onclick="activateFirefoxSocial(this)">
47 <b>✚Add to Firefox social</b>
48 </a>
49 <a href="#">
50 <span>&#x21D0; Click on this button to add Shaarli to the "Share this page" button in Firefox.</span>
51 </a><br><br>
52
53 {loop="$tools_plugin"}
17 {$value} 54 {$value}
18 {/loop} 55 {/loop}
56
19 <div class="clear"></div> 57 <div class="clear"></div>
20 58
21 <script> 59 <script>
@@ -42,6 +80,11 @@
42 var activate = new CustomEvent("ActivateSocialFeature"); 80 var activate = new CustomEvent("ActivateSocialFeature");
43 node.dispatchEvent(activate); 81 node.dispatchEvent(activate);
44 } 82 }
83
84 function alertBookmarklet() {
85 alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...');
86 return false;
87 }
45 </script> 88 </script>
46 </div> 89 </div>
47</div> 90</div>