diff options
-rw-r--r-- | application/Router.php | 6 | ||||
-rw-r--r-- | index.php | 25 | ||||
-rw-r--r-- | plugins/demo_plugin/custom_demo.css | 6 | ||||
-rw-r--r-- | plugins/demo_plugin/demo_plugin.php | 8 | ||||
-rw-r--r-- | tpl/page.footer.html | 5 | ||||
-rwxr-xr-x[-rw-r--r--] | tpl/tools.html | 51 |
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; |
@@ -995,8 +995,12 @@ function showDailyRSS() { | |||
995 | exit; | 995 | exit; |
996 | } | 996 | } |
997 | 997 | ||
998 | // "Daily" page. | 998 | /** |
999 | function showDaily() | 999 | * Show the 'Daily' page. |
1000 | * | ||
1001 | * @param PageBuilder $pageBuilder Template engine wrapper. | ||
1002 | */ | ||
1003 | function 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 | |||
2456 | if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=rss')) { showRSS(); exit; } | 2468 | if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=rss')) { showRSS(); exit; } |
2457 | if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=atom')) { showATOM(); exit; } | 2469 | if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=atom')) { showATOM(); exit; } |
2458 | if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=dailyrss')) { showDailyRSS(); exit; } | 2470 | if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=dailyrss')) { showDailyRSS(); exit; } |
2459 | if (isset($_SERVER["QUERY_STRING"]) && startswith($_SERVER["QUERY_STRING"],'do=daily')) { showDaily(); exit; } | ||
2460 | if (!isset($_SESSION['LINKS_PER_PAGE'])) $_SESSION['LINKS_PER_PAGE']=$GLOBALS['config']['LINKS_PER_PAGE']; | 2471 | if (!isset($_SESSION['LINKS_PER_PAGE'])) $_SESSION['LINKS_PER_PAGE']=$GLOBALS['config']['LINKS_PER_PAGE']; |
2461 | renderPage(); | 2472 | renderPage(); |
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">●</span> Shaarli {$newVersion} is | 14 | <span id="version_id">●</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)+'&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" |
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 | onclick="return alertBookmarklet();" |
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 | 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 | '&title='%20+%20encodeURIComponent(title)+ | ||
22 | '&description='%20+%20encodeURIComponent(document.getSelection())+ | ||
23 | '&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 | ⇐ Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br> | ||
32 | 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&post="> | ||
38 | <b>✚Add Note</b> | ||
39 | </a> | ||
40 | <a href="#" onclick="return alertBookmarklet();"> | ||
41 | <span> | ||
42 | ⇐ Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br> | ||
43 | 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>⇐ 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> |