aboutsummaryrefslogtreecommitdiffhomepage
path: root/application
diff options
context:
space:
mode:
Diffstat (limited to 'application')
-rw-r--r--application/LinkFilter.php2
-rw-r--r--application/LinkUtils.php2
-rw-r--r--application/NetscapeBookmarkUtils.php1
-rw-r--r--application/Updater.php2
-rw-r--r--application/api/ApiMiddleware.php2
-rw-r--r--application/api/controllers/ApiController.php2
-rw-r--r--application/bookmark/LinkDB.php (renamed from application/LinkDB.php)66
-rw-r--r--application/feed/CachedPage.php1
-rw-r--r--application/feed/FeedBuilder.php15
-rw-r--r--application/render/PageBuilder.php2
10 files changed, 57 insertions, 38 deletions
diff --git a/application/LinkFilter.php b/application/LinkFilter.php
index 8f147974..91c79905 100644
--- a/application/LinkFilter.php
+++ b/application/LinkFilter.php
@@ -1,5 +1,7 @@
1<?php 1<?php
2 2
3use Shaarli\Bookmark\LinkDB;
4
3/** 5/**
4 * Class LinkFilter. 6 * Class LinkFilter.
5 * 7 *
diff --git a/application/LinkUtils.php b/application/LinkUtils.php
index d56e019f..b5110edc 100644
--- a/application/LinkUtils.php
+++ b/application/LinkUtils.php
@@ -1,5 +1,7 @@
1<?php 1<?php
2 2
3use Shaarli\Bookmark\LinkDB;
4
3/** 5/**
4 * Get cURL callback function for CURLOPT_WRITEFUNCTION 6 * Get cURL callback function for CURLOPT_WRITEFUNCTION
5 * 7 *
diff --git a/application/NetscapeBookmarkUtils.php b/application/NetscapeBookmarkUtils.php
index c0c007ea..e0022fe1 100644
--- a/application/NetscapeBookmarkUtils.php
+++ b/application/NetscapeBookmarkUtils.php
@@ -1,6 +1,7 @@
1<?php 1<?php
2 2
3use Psr\Log\LogLevel; 3use Psr\Log\LogLevel;
4use Shaarli\Bookmark\LinkDB;
4use Shaarli\Config\ConfigManager; 5use Shaarli\Config\ConfigManager;
5use Shaarli\History; 6use Shaarli\History;
6use Shaarli\NetscapeBookmarkParser\NetscapeBookmarkParser; 7use Shaarli\NetscapeBookmarkParser\NetscapeBookmarkParser;
diff --git a/application/Updater.php b/application/Updater.php
index c0d541b4..043ecf68 100644
--- a/application/Updater.php
+++ b/application/Updater.php
@@ -1,4 +1,6 @@
1<?php 1<?php
2
3use Shaarli\Bookmark\LinkDB;
2use Shaarli\Config\ConfigJson; 4use Shaarli\Config\ConfigJson;
3use Shaarli\Config\ConfigPhp; 5use Shaarli\Config\ConfigPhp;
4use Shaarli\Config\ConfigManager; 6use Shaarli\Config\ConfigManager;
diff --git a/application/api/ApiMiddleware.php b/application/api/ApiMiddleware.php
index 66eac133..a2101f29 100644
--- a/application/api/ApiMiddleware.php
+++ b/application/api/ApiMiddleware.php
@@ -127,7 +127,7 @@ class ApiMiddleware
127 */ 127 */
128 protected function setLinkDb($conf) 128 protected function setLinkDb($conf)
129 { 129 {
130 $linkDb = new \LinkDB( 130 $linkDb = new \Shaarli\Bookmark\LinkDB(
131 $conf->get('resource.datastore'), 131 $conf->get('resource.datastore'),
132 true, 132 true,
133 $conf->get('privacy.hide_public_links'), 133 $conf->get('privacy.hide_public_links'),
diff --git a/application/api/controllers/ApiController.php b/application/api/controllers/ApiController.php
index 47e0e178..cab97dc4 100644
--- a/application/api/controllers/ApiController.php
+++ b/application/api/controllers/ApiController.php
@@ -25,7 +25,7 @@ abstract class ApiController
25 protected $conf; 25 protected $conf;
26 26
27 /** 27 /**
28 * @var \LinkDB 28 * @var \Shaarli\Bookmark\LinkDB
29 */ 29 */
30 protected $linkDb; 30 protected $linkDb;
31 31
diff --git a/application/LinkDB.php b/application/bookmark/LinkDB.php
index a5b42727..3b77422a 100644
--- a/application/LinkDB.php
+++ b/application/bookmark/LinkDB.php
@@ -1,5 +1,13 @@
1<?php 1<?php
2 2
3namespace Shaarli\Bookmark;
4
5use ArrayAccess;
6use Countable;
7use DateTime;
8use Iterator;
9use LinkFilter;
10use LinkNotFoundException;
3use Shaarli\Exceptions\IOException; 11use Shaarli\Exceptions\IOException;
4use Shaarli\FileUtils; 12use Shaarli\FileUtils;
5 13
@@ -99,10 +107,10 @@ class LinkDB implements Iterator, Countable, ArrayAccess
99 * 107 *
100 * Checks if the datastore exists; else, attempts to create a dummy one. 108 * Checks if the datastore exists; else, attempts to create a dummy one.
101 * 109 *
102 * @param string $datastore datastore file path. 110 * @param string $datastore datastore file path.
103 * @param boolean $isLoggedIn is the user logged in? 111 * @param boolean $isLoggedIn is the user logged in?
104 * @param boolean $hidePublicLinks if true all links are private. 112 * @param boolean $hidePublicLinks if true all links are private.
105 * @param string $redirector link redirector set in user settings. 113 * @param string $redirector link redirector set in user settings.
106 * @param boolean $redirectorEncode Enable urlencode on redirected urls (default: true). 114 * @param boolean $redirectorEncode Enable urlencode on redirected urls (default: true).
107 */ 115 */
108 public function __construct( 116 public function __construct(
@@ -112,6 +120,7 @@ class LinkDB implements Iterator, Countable, ArrayAccess
112 $redirector = '', 120 $redirector = '',
113 $redirectorEncode = true 121 $redirectorEncode = true
114 ) { 122 ) {
123
115 $this->datastore = $datastore; 124 $this->datastore = $datastore;
116 $this->loggedIn = $isLoggedIn; 125 $this->loggedIn = $isLoggedIn;
117 $this->hidePublicLinks = $hidePublicLinks; 126 $this->hidePublicLinks = $hidePublicLinks;
@@ -141,7 +150,7 @@ class LinkDB implements Iterator, Countable, ArrayAccess
141 if (!isset($value['id']) || empty($value['url'])) { 150 if (!isset($value['id']) || empty($value['url'])) {
142 die(t('Internal Error: A link should always have an id and URL.')); 151 die(t('Internal Error: A link should always have an id and URL.'));
143 } 152 }
144 if (($offset !== null && ! is_int($offset)) || ! is_int($value['id'])) { 153 if (($offset !== null && !is_int($offset)) || !is_int($value['id'])) {
145 die(t('You must specify an integer as a key.')); 154 die(t('You must specify an integer as a key.'));
146 } 155 }
147 if ($offset !== null && $offset !== $value['id']) { 156 if ($offset !== null && $offset !== $value['id']) {
@@ -251,31 +260,31 @@ class LinkDB implements Iterator, Countable, ArrayAccess
251 $this->links = array(); 260 $this->links = array();
252 $link = array( 261 $link = array(
253 'id' => 1, 262 'id' => 1,
254 'title'=> t('The personal, minimalist, super-fast, database free, bookmarking service'), 263 'title' => t('The personal, minimalist, super-fast, database free, bookmarking service'),
255 'url'=>'https://shaarli.readthedocs.io', 264 'url' => 'https://shaarli.readthedocs.io',
256 'description'=>t( 265 'description' => t(
257 'Welcome to Shaarli! This is your first public bookmark. ' 266 'Welcome to Shaarli! This is your first public bookmark. '
258 .'To edit or delete me, you must first login. 267 . 'To edit or delete me, you must first login.
259 268
260To learn how to use Shaarli, consult the link "Documentation" at the bottom of this page. 269To learn how to use Shaarli, consult the link "Documentation" at the bottom of this page.
261 270
262You use the community supported version of the original Shaarli project, by Sebastien Sauvage.' 271You use the community supported version of the original Shaarli project, by Sebastien Sauvage.'
263 ), 272 ),
264 'private'=>0, 273 'private' => 0,
265 'created'=> new DateTime(), 274 'created' => new DateTime(),
266 'tags'=>'opensource software' 275 'tags' => 'opensource software'
267 ); 276 );
268 $link['shorturl'] = link_small_hash($link['created'], $link['id']); 277 $link['shorturl'] = link_small_hash($link['created'], $link['id']);
269 $this->links[1] = $link; 278 $this->links[1] = $link;
270 279
271 $link = array( 280 $link = array(
272 'id' => 0, 281 'id' => 0,
273 'title'=> t('My secret stuff... - Pastebin.com'), 282 'title' => t('My secret stuff... - Pastebin.com'),
274 'url'=>'http://sebsauvage.net/paste/?8434b27936c09649#bR7XsXhoTiLcqCpQbmOpBi3rq2zzQUC5hBI7ZT1O3x8=', 283 'url' => 'http://sebsauvage.net/paste/?8434b27936c09649#bR7XsXhoTiLcqCpQbmOpBi3rq2zzQUC5hBI7ZT1O3x8=',
275 'description'=> t('Shhhh! I\'m a private link only YOU can see. You can delete me too.'), 284 'description' => t('Shhhh! I\'m a private link only YOU can see. You can delete me too.'),
276 'private'=>1, 285 'private' => 1,
277 'created'=> new DateTime('1 minute ago'), 286 'created' => new DateTime('1 minute ago'),
278 'tags'=>'secretstuff', 287 'tags' => 'secretstuff',
279 ); 288 );
280 $link['shorturl'] = link_small_hash($link['created'], $link['id']); 289 $link['shorturl'] = link_small_hash($link['created'], $link['id']);
281 $this->links[0] = $link; 290 $this->links[0] = $link;
@@ -301,7 +310,7 @@ You use the community supported version of the original Shaarli project, by Seba
301 310
302 $toremove = array(); 311 $toremove = array();
303 foreach ($this->links as $key => &$link) { 312 foreach ($this->links as $key => &$link) {
304 if (! $this->loggedIn && $link['private'] != 0) { 313 if (!$this->loggedIn && $link['private'] != 0) {
305 // Transition for not upgraded databases. 314 // Transition for not upgraded databases.
306 unset($this->links[$key]); 315 unset($this->links[$key]);
307 continue; 316 continue;
@@ -311,7 +320,7 @@ You use the community supported version of the original Shaarli project, by Seba
311 sanitizeLink($link); 320 sanitizeLink($link);
312 321
313 // Remove private tags if the user is not logged in. 322 // Remove private tags if the user is not logged in.
314 if (! $this->loggedIn) { 323 if (!$this->loggedIn) {
315 $link['tags'] = preg_replace('/(^|\s+)\.[^($|\s)]+\s*/', ' ', $link['tags']); 324 $link['tags'] = preg_replace('/(^|\s+)\.[^($|\s)]+\s*/', ' ', $link['tags']);
316 } 325 }
317 326
@@ -328,10 +337,10 @@ You use the community supported version of the original Shaarli project, by Seba
328 } 337 }
329 338
330 // To be able to load links before running the update, and prepare the update 339 // To be able to load links before running the update, and prepare the update
331 if (! isset($link['created'])) { 340 if (!isset($link['created'])) {
332 $link['id'] = $link['linkdate']; 341 $link['id'] = $link['linkdate'];
333 $link['created'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['linkdate']); 342 $link['created'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['linkdate']);
334 if (! empty($link['updated'])) { 343 if (!empty($link['updated'])) {
335 $link['updated'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['updated']); 344 $link['updated'] = DateTime::createFromFormat(self::LINK_DATE_FORMAT, $link['updated']);
336 } 345 }
337 $link['shorturl'] = smallHash($link['linkdate']); 346 $link['shorturl'] = smallHash($link['linkdate']);
@@ -417,12 +426,12 @@ You use the community supported version of the original Shaarli project, by Seba
417 /** 426 /**
418 * Filter links according to search parameters. 427 * Filter links according to search parameters.
419 * 428 *
420 * @param array $filterRequest Search request content. Supported keys: 429 * @param array $filterRequest Search request content. Supported keys:
421 * - searchtags: list of tags 430 * - searchtags: list of tags
422 * - searchterm: term search 431 * - searchterm: term search
423 * @param bool $casesensitive Optional: Perform case sensitive filter 432 * @param bool $casesensitive Optional: Perform case sensitive filter
424 * @param string $visibility return only all/private/public links 433 * @param string $visibility return only all/private/public links
425 * @param string $untaggedonly return only untagged links 434 * @param string $untaggedonly return only untagged links
426 * 435 *
427 * @return array filtered links, all links if no suitable filter was provided. 436 * @return array filtered links, all links if no suitable filter was provided.
428 */ 437 */
@@ -432,6 +441,7 @@ You use the community supported version of the original Shaarli project, by Seba
432 $visibility = 'all', 441 $visibility = 'all',
433 $untaggedonly = false 442 $untaggedonly = false
434 ) { 443 ) {
444
435 // Filter link database according to parameters. 445 // Filter link database according to parameters.
436 $searchtags = isset($filterRequest['searchtags']) ? escape($filterRequest['searchtags']) : ''; 446 $searchtags = isset($filterRequest['searchtags']) ? escape($filterRequest['searchtags']) : '';
437 $searchterm = isset($filterRequest['searchterm']) ? escape($filterRequest['searchterm']) : ''; 447 $searchterm = isset($filterRequest['searchterm']) ? escape($filterRequest['searchterm']) : '';
@@ -448,7 +458,7 @@ You use the community supported version of the original Shaarli project, by Seba
448 * Returns the list tags appearing in the links with the given tags 458 * Returns the list tags appearing in the links with the given tags
449 * 459 *
450 * @param array $filteringTags tags selecting the links to consider 460 * @param array $filteringTags tags selecting the links to consider
451 * @param string $visibility process only all/private/public links 461 * @param string $visibility process only all/private/public links
452 * 462 *
453 * @return array tag => linksCount 463 * @return array tag => linksCount
454 */ 464 */
@@ -490,7 +500,7 @@ You use the community supported version of the original Shaarli project, by Seba
490 * Rename or delete a tag across all links. 500 * Rename or delete a tag across all links.
491 * 501 *
492 * @param string $from Tag to rename 502 * @param string $from Tag to rename
493 * @param string $to New tag. If none is provided, the from tag will be deleted 503 * @param string $to New tag. If none is provided, the from tag will be deleted
494 * 504 *
495 * @return array|bool List of altered links or false on error 505 * @return array|bool List of altered links or false on error
496 */ 506 */
diff --git a/application/feed/CachedPage.php b/application/feed/CachedPage.php
index 1c51ac73..d809bdd9 100644
--- a/application/feed/CachedPage.php
+++ b/application/feed/CachedPage.php
@@ -1,6 +1,7 @@
1<?php 1<?php
2 2
3namespace Shaarli\Feed; 3namespace Shaarli\Feed;
4
4/** 5/**
5 * Simple cache system, mainly for the RSS/ATOM feeds 6 * Simple cache system, mainly for the RSS/ATOM feeds
6 */ 7 */
diff --git a/application/feed/FeedBuilder.php b/application/feed/FeedBuilder.php
index dcfd2c89..737a3128 100644
--- a/application/feed/FeedBuilder.php
+++ b/application/feed/FeedBuilder.php
@@ -2,7 +2,7 @@
2namespace Shaarli\Feed; 2namespace Shaarli\Feed;
3 3
4use DateTime; 4use DateTime;
5use LinkDB; 5use Shaarli\Bookmark\LinkDB;
6 6
7/** 7/**
8 * FeedBuilder class. 8 * FeedBuilder class.
@@ -32,7 +32,7 @@ class FeedBuilder
32 public static $DEFAULT_NB_LINKS = 50; 32 public static $DEFAULT_NB_LINKS = 50;
33 33
34 /** 34 /**
35 * @var LinkDB instance. 35 * @var \Shaarli\Bookmark\LinkDB instance.
36 */ 36 */
37 protected $linkDB; 37 protected $linkDB;
38 38
@@ -79,11 +79,12 @@ class FeedBuilder
79 /** 79 /**
80 * Feed constructor. 80 * Feed constructor.
81 * 81 *
82 * @param LinkDB $linkDB LinkDB instance. 82 * @param \Shaarli\Bookmark\LinkDB $linkDB LinkDB instance.
83 * @param string $feedType Type of feed. 83 * @param string $feedType Type of feed.
84 * @param array $serverInfo $_SERVER. 84 * @param array $serverInfo $_SERVER.
85 * @param array $userInput $_GET. 85 * @param array $userInput $_GET.
86 * @param boolean $isLoggedIn True if the user is currently logged in, false otherwise. 86 * @param boolean $isLoggedIn True if the user is currently logged in,
87 * false otherwise.
87 */ 88 */
88 public function __construct($linkDB, $feedType, $serverInfo, $userInput, $isLoggedIn) 89 public function __construct($linkDB, $feedType, $serverInfo, $userInput, $isLoggedIn)
89 { 90 {
diff --git a/application/render/PageBuilder.php b/application/render/PageBuilder.php
index 1df95bfb..9a0fe61a 100644
--- a/application/render/PageBuilder.php
+++ b/application/render/PageBuilder.php
@@ -4,7 +4,7 @@ namespace Shaarli\Render;
4 4
5use ApplicationUtils; 5use ApplicationUtils;
6use Exception; 6use Exception;
7use LinkDB; 7use Shaarli\Bookmark\LinkDB;
8use RainTPL; 8use RainTPL;
9use Shaarli\Config\ConfigManager; 9use Shaarli\Config\ConfigManager;
10use Shaarli\Thumbnailer; 10use Shaarli\Thumbnailer;