julienCXX
634783f916
Set cURL as default in HTTP fetching, a fallback method and consistency fixup between both methods
2016-08-08 20:45:50 +02:00
ArthurHoaro
edf3ff5a53
Initialize a translation function
...
It matches the API of ngettext().
2016-08-07 11:54:39 +02:00
ArthurHoaro
fd5ac47ea2
Generate a token for every pages
2016-08-06 14:09:26 +02:00
ArthurHoaro
50d1791838
Add trusted IPs in config and try to ban forwarded IP on failed login
...
* Add a new settings (which needs to be manually set): `security.trusted_proxies`
* On login failure, if the `REMOTE_ADDR` is in the trusted proxies, try to retrieve the forwarded IP in headers.
* If found, the client address is added in ipbans, else we do nothing.
Fixes #409
2016-08-03 10:36:47 +02:00
ArthurHoaro
c6d876bb2a
Set updated date for items in feeds
...
RSS doesn't support updated date for items, so we use the ATOM extension.
Updated dates also bump the global update
2016-08-03 09:54:57 +02:00
ArthurHoaro
9646b7da22
Save the update date in LinkDB and pass it to linklist templates
...
It can be used as a timestamp by templates under the key 'updated_timestamp'.
2016-08-03 09:44:04 +02:00
VirtualTam
c7a42ab1d9
Merge pull request #621 from ArthurHoaro/hotfix/update-escape-config
...
Fix update method escapeUnescapedConfig
2016-08-02 19:46:47 +02:00
ArthurHoaro
b9f8b83790
Fix update method escapeUnescapedConfig
...
* Actually run it
* unit tests
Fixes #611
2016-08-02 12:54:55 +02:00
ArthurHoaro
15170b5164
Parse plugin parameters description with the PluginManager
...
Plugin parameter can contain a description in their meta file under the key:
parameter.<param_name>="<description>"
2016-08-02 11:12:01 +02:00
ArthurHoaro
9866b40814
Better whitespace handling in tags
...
Correct PR #573 to work properly with hidden tags, and add ReferenceLinkDB UT.
Fixes #571 - Closes #573
2016-08-02 10:34:21 +02:00
Chris Kuethe
4b35853d68
Better whitespace handling in tags. Fixes #571
2016-08-02 10:22:18 +02:00
ArthurHoaro
97ef33bb72
Fixes #600 - Shaarli's title is not set with the new config manager
...
- Fixed title config key
- Page title (in head tag) is no longer set through the config manager
2016-07-19 18:03:09 +02:00
Arthur
0c4c7ae818
Merge pull request #558 from ArthurHoaro/hashtag4
...
Hashtag system
2016-07-09 07:36:23 +02:00
Arthur
649af5b501
Merge pull request #570 from ArthurHoaro/config-manager
...
Introduce a configuration manager
2016-07-09 07:19:48 +02:00
ArthurHoaro
5ff23f02b8
Add closing PHP tags to JSON config files
2016-06-20 18:30:37 +02:00
ArthurHoaro
b302c77c74
Pass the configuration manager to templates
2016-06-15 18:22:19 +02:00
ArthurHoaro
894a3c4bf3
Rename configuration key for better sections
2016-06-11 09:30:56 +02:00
ArthurHoaro
51def0d849
PluginManager no longer uses singleton pattern
2016-06-11 09:30:56 +02:00
ArthurHoaro
278d9ee283
ConfigManager no longer uses singleton pattern
2016-06-11 09:30:56 +02:00
ArthurHoaro
7f179985b4
Remove remaining settings initialization in index.php
...
Except for those which require external data (timezone and $_SERVER).
2016-06-11 09:30:56 +02:00
ArthurHoaro
da10377b3c
Rename configuration keys and fix GLOBALS in templates
2016-06-11 09:30:56 +02:00
ArthurHoaro
d93d51b213
Set the default timezone in index.php
2016-06-11 09:30:56 +02:00
ArthurHoaro
b74b96bfbd
Adds ConfigJson which handle the configuration in JSON format.
...
Also use the Updater to make the transition
2016-06-11 09:30:56 +02:00
ArthurHoaro
684e662a58
Replace $GLOBALS configuration with the configuration manager in the whole code base
2016-06-11 09:30:56 +02:00
ArthurHoaro
59404d7909
Introduce a configuration manager (not plugged yet)
2016-06-11 09:30:56 +02:00
ArthurHoaro
9ccca40189
Hashtag system
...
* Hashtag are auto-linked with a filter search
* Supports unicode
* Compatible with markdown (excluded in code blocks)
2016-06-06 21:04:43 +02:00
Arthur
92a381f517
Merge pull request #583 from ArthurHoaro/enhance/tag-case
...
Fixes #497 : ignore case difference between tags
2016-06-03 18:30:19 +02:00
ArthurHoaro
b1eb5d1d31
Fixes #497 : ignore case difference between tags
...
While retrieving all tags, case differences will be ignored.
This affects:
* tag cloud
* tag autocompletion
2016-05-31 09:09:32 +02:00
nodiscc
725ca094f8
Url.php: remove unwanted ?PHPSESSID= URL parameters,
...
update test case
2016-05-20 12:23:03 +02:00
Arthur
3fdcc7bd47
Merge pull request #560 from ArthurHoaro/nb-private-shaare
...
Private links counter in the header
2016-05-14 11:11:11 +02:00
ArthurHoaro
141a86c503
Add private link counter
2016-05-13 08:48:23 +02:00
ArthurHoaro
03eb19ac60
Extract PageBuilder class from index.php
2016-05-13 08:48:18 +02:00
ArthurHoaro
5046bcb6ab
Fix startsWith and endsWith case
2016-05-10 23:31:41 +02:00
VirtualTam
bb4a23aa86
Export: allow prepending notes with the Shaarli instance's URL
...
Relates to #102
Additions:
- application:
- export: allow prepending note permalinks with the instance's URL
- test coverage
Modifications:
- export template: switch to an HTML form
- link selection (all/private/public)
- prepend note permalinks with the instance's URL
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2016-05-06 16:12:46 +02:00
ArthurHoaro
caa69b5853
typo
2016-05-05 13:28:43 +02:00
Arthur
86deafe0ff
Merge pull request #551 from ArthurHoaro/hotfix/timezone
...
Use correct 'UTC' timezone
2016-05-05 13:21:36 +02:00
ArthurHoaro
12ff86c961
Use correct 'UTC' timezone
2016-05-03 20:09:24 +02:00
Arthur
47be060983
Merge pull request #532 from ArthurHoaro/hotfix/title-retrieve-the-return
...
Fixes #531 - Title retrieving is failing with multiple use case
2016-05-03 19:53:57 +02:00
ArthurHoaro
ce7b0b6480
Fixes #531 - Title retrieving is failing with multiple use case
...
see https://github.com/shaarli/Shaarli/issues/531 for details
2016-05-03 19:51:29 +02:00
D Low
20f89623c0
Fix error when filtering search tags
...
Arrays are key-value maps. We should reindex the array after a filter
since we are using the key and count to do array access in filterTags.
An example would be searching for "foo, bar", after the array filter,
our array is actually (0 -> foo, 2 -> bar) which will cause an error
when trying to access $searchtags[1].
2016-04-14 00:10:39 +01:00
VirtualTam
cd5327bee8
Refactor Netscape bookmark exporting
...
Relates to https://github.com/shaarli/netscape-bookmark-parser/issues/5
Fixes:
- respect the Netscape bookmark format "specification"
Modifications:
- [application] introduce the NetscapeBookmarkUtils class
- [template] export - improve formatting, rename export selection parameter
- [template] export.bookmarks - template for Netscape exports
- [tests] bookmark filtering, additional field generation
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2016-04-10 21:28:04 +02:00
ArthurHoaro
043eae70c4
Fixes #480 : add an option to urlencode redirector URL
...
* New config: `$GLOBALS['config']['REDIRECTOR_URLENCODE']` (default `true`).
* Parameter added to LinkDB constructor.
* Fixes a bug with urlencode and escaped url.
* In `index.php`, LinkDB is now instanciate once for `importFile()` and `showDaily()`.
* TU
2016-04-09 16:52:32 +02:00
VirtualTam
11609d9fd8
Merge pull request #522 from ArthurHoaro/hotfix/readershaare
...
Refactor and rebase #380 : Firefox reader view links
2016-03-30 19:31:19 +02:00
ArthurHoaro
c9da01e749
Refactor and rebase #380 : Firefox reader view links
...
Fixes #366
Closes #380
2016-03-26 16:26:23 +01:00
Arthur
f66a1990e5
Merge pull request #515 from ArthurHoaro/template-feeds
...
Refactor RSS feeds generation, and do it through templates
2016-03-25 19:20:55 +01:00
ArthurHoaro
528a6f8a23
Refactor filter in LinkDB
...
* search type now carried by LinkDB in order to factorize code between different search sources.
* LinkDB->filter split in 3 method: filterSearch, filterHash, filterDay (we know what type of filter is needed).
* filterHash now throw a LinkNotFoundException if it doesn't exist: internal implementation choice, still displays a 404.
* Smallhash regex has been rewritten.
* Unit tests update
2016-03-25 19:17:59 +01:00
ArthurHoaro
ee88a4bcc2
Makes escape a recursive function which handle array of strings
2016-03-25 19:17:59 +01:00
ArthurHoaro
82e3680203
Create a FeedBuilder class which build data for both ATOM and RSS feed.
2016-03-25 19:17:55 +01:00
Kevin Canévet
ecd051905f
Fix issue 366, Problem when shaaring a link in Reader View of Firefox.
2016-03-24 08:34:47 +01:00
ArthurHoaro
69c474b966
Refactor showAtom, and make it use the ATOM template
...
Minor changes:
* Fix the date which was in a invalid format.
* Avoid empty categories (tags).
* Use the locale to set the language
2016-03-18 19:13:48 +01:00
ArthurHoaro
8395d0b761
Adds a route for ATOM and RSS feeds page
2016-03-18 19:13:48 +01:00
ArthurHoaro
68ea1d2b30
Fixes #512 : retrieving title didn't match the first closing tag
2016-03-08 10:00:53 +01:00
ArthurHoaro
85244fa0d0
Fixes #477 : support multi reverse proxy with comma syntax
...
Going through multiple reverse proxy will store multiple scheme and port in HTTP header separated by a comma. Shaarli will use the first one to generate server_url.
2016-02-28 16:24:18 +01:00
Arthur
c6744a9e89
Merge pull request #496 from ArthurHoaro/cross-search
...
Allow crossed search between terms and tags
2016-02-28 14:26:46 +01:00
ArthurHoaro
c51fae92dc
Allow crossed search between terms and tags
...
* Partial fix of #449
* Current use case: search term + click on tag.
* LinkFilter now returns all links if no filter is given.
* Unit tests.
2016-02-28 14:17:40 +01:00
Arthur
10269bc8c9
Merge pull request #491 from ArthurHoaro/markdown-escape2
...
Markdown: don't escape content + sanitize sensible tags
2016-02-25 08:52:42 +01:00
Arthur
fa40b43f60
Merge pull request #492 from ArthurHoaro/locale-sort-fix
...
Fixes #481 : tag cloud fatal error
2016-02-24 19:26:57 +01:00
ArthurHoaro
7b63e4ca09
Apply the locale to all categories and move autolocale to Utils.php
2016-02-19 20:14:06 +01:00
ArthurHoaro
2925687e1e
Markdown: don't escape content + sanitize sensible tags
...
Instead of trying to fix broken content for Markdown parsing, parse it unescaped, then sanatize sensible tags such as scripts, etc.
2016-02-19 19:37:13 +01:00
VirtualTam
205a42778d
cleanup: use DateTime to format dates
...
Closes #270
Modifications:
- replace custom date parsing by DateTime calls
- use proper date formatting for RSS feeds
Deletions:
- linkdate2timestamp()
- linkdate2rfc822
- linkdate2iso8601
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2016-02-17 22:46:50 +01:00
ArthurHoaro
522b278b03
Support text search across link fields.
2016-02-15 21:38:45 +01:00
ArthurHoaro
bedd176a54
Improved search: combine AND, exact terms and exclude search.
2016-02-15 21:38:40 +01:00
ArthurHoaro
195acf9f09
Private/Hidden tags
...
Tags starting with a dot '.' are now private.
They can only be seen and searched when logged in.
Fixes #315
2016-02-15 21:18:43 +01:00
ArthurHoaro
21979ff11c
Add exclusion in tag search
...
* Searching '-mytag' will now exlude all shaares with 'mytag' tag.
* All tags starting with a '-' are renamed without it (through the Updater).
* Unit tests.
Minor code changes:
* LinkDB->filter() can now take no parameters (get all link depending on logged status).
* tagsStrToArray() is now static and filters blank tags.
2016-02-15 20:40:39 +01:00
ArthurHoaro
510377d2cb
Introduce the Updater class which
...
* contains methods designed to be run once.
* is able to upgrade the datastore or the configuration.
* is based on methods names, stored in a text file with ';' separator (updates.txt).
* begins with existing function 'mergeDeprecatedConfigFile()' (options.php).
2016-02-15 20:30:24 +01:00
Arthur
268a2e5265
Merge pull request #453 from ArthurHoaro/pr450
...
Implemented a little more sophisticated searching (squashed)
2016-02-01 19:21:47 +01:00
Florian Voigt
ebd8075a89
Implemented searching for a phrase in double-quotes or all words in no particular order.
...
+ unit tests
2016-02-01 19:18:27 +01:00
Arthur
53603f5823
Merge pull request #388 from ArthurHoaro/pluginadmin
...
Fixes #378 - Plugin administration UI.
2016-01-31 19:00:13 +01:00
Arthur
893338f0d4
Merge pull request #379 from ArthurHoaro/plugin-markdown
...
PLUGIN Markdown
2016-01-31 18:57:29 +01:00
ArthurHoaro
dea0ba28f9
Fixes #378 - Plugin administration UI.
2016-01-31 18:54:48 +01:00
ArthurHoaro
55d0a5c445
Bugfix: prevent LinkFilter to work on outdated data.
2016-01-20 22:51:56 +01:00
VirtualTam
25d88c90aa
Merge pull request #441 from virtualtam/tests/check-file-permissions
...
tests: add a make target to check file permissions
2016-01-18 00:29:14 +01:00
VirtualTam
aa7f7b3ea6
fix: use PHP_EOL for carriage returns in file logs
...
Relates to #436
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2016-01-18 00:24:36 +01:00
VirtualTam
fc17813bd1
tests: add a make target to check file permissions
...
Additions:
- [makefile] check versioned files are not executable
- [travis] call the new make target
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2016-01-17 21:02:24 +01:00
VirtualTam
478ce8afb4
Logging: improve formatting to enable fail2ban parsing
...
Fixes #436
Modifications:
- remove calls to strval() on safe data
- update the date format: 'Y/m/d_H:i:s' => 'Y/m/d H:i:s'
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2016-01-16 16:19:44 +01:00
VirtualTam
1abe655597
Logging: move logm() from index.php to application/Utils.php
...
Relates to #436
Modifications:
- inject dependencies to global variables ($_SERVER, $GLOBALS)
- apply coding conventions
- add test coverage
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2016-01-16 16:07:16 +01:00
ArthurHoaro
1557cefbd7
Fixes #410 - Retrieve title fails in multiple cases
...
* `get_http_url()` renamed to `get_http_response()`.
* Use the same HTTP context to retrieve response headers and content.
* Follow HTTP 301 and 302 redirections to retrieve the title (default max 3 redirections).
* Add `LinkUtils` to extract titles and charset.
* Try to retrieve charset from HTTP headers first (new), then HTML content.
* Use mb_string to re-encode title if necessary.
2016-01-11 21:19:31 +01:00
Arthur
88c15abb2a
Merge pull request #424 from ArthurHoaro/search
...
Link filter refactoring
2016-01-06 19:57:42 +01:00
ArthurHoaro
2c75f8e780
Fixes #426 - Do not filter with blank tags.
2016-01-06 19:53:25 +01:00
ArthurHoaro
822bffced8
Link filter refactoring
...
* introduce class LinkFilter to handle link filter operation (and lighten LinkDB).
* handle 'private only' in filtering.
* update template to prefill search fields with current search terms.
* coding style.
* unit test (mostly move from LinkDB to LinkFilter).
PS: preparation for #358 #315 and 'AND' search.
2016-01-06 19:53:04 +01:00
ArthurHoaro
1be4afacf9
PLUGIN Markdown
...
Parse link description in Markdown (HTML) before rendering.
* hard remove of Shaarli's HTML before parsing.
* Using Parsedown <https://github.com/erusev/parsedown > PHP lib.
* Includes basic markdown CSS.
* Style: removed 400px height max limit for shaares.
* Unit tests.
2016-01-03 17:36:10 +01:00
VirtualTam
defc8a3f03
Merge pull request #417 from ArthurHoaro/wallabag-improve
...
Wallabag plugin improvement
2016-01-02 20:09:29 +01:00
ArthurHoaro
938d9cce77
Wallabag plugin improvement
...
* Fixes a bug where URL weren't properly encoded.
* Adds Wallabag V2 support.
* Adds a URL function to handle trailing slash.
* UT.
* README updated.
2015-12-27 15:30:34 +01:00
ArthurHoaro
49e62f22ad
QRCode plugin: use url instead of real_url
...
Fixes #414 and avoid usage of redirector in QRCode.
Also fixed a bug with URL encoding.
2015-12-22 10:59:41 +01:00
ArthurHoaro
38603b2450
Fixes #403 : build the daily page through renderPage()
...
* new entry in the Router for daily page.
* add an always displayed button in demo_plugin
2015-12-08 15:51:49 +01:00
VirtualTam
4a7af9759a
fix: assign template variables to empty values so they can be evaluated
...
Regression introduced in #394
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2015-12-03 20:30:46 +01:00
VirtualTam
4407b45fd3
application: default to the "stable" branch for update checks
...
Relates to #372
Relates to #390
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2015-11-27 00:10:43 +01:00
VirtualTam
4bf35ba56b
application: refactor version checks, move to ApplicationUtils
...
Relates to #372
Modifications:
- move checkUpdate() to ApplicationUtils
- reduce file I/O operations during version checks
- apply coding conventions
- add test coverage
Tools:
- create a sandbox directory for tests
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2015-11-26 23:19:37 +01:00
ArthurHoaro
90e5bd65c9
URL encode links when a redirector is set.
...
Fixes #328 - URL encode links when a redirector is set
* WARNING - template edit - new variable available : "real_url"
Contains the final real url (redirected or any other change on original URL)
* Don't redirect shaares link in RSS/Atom.
* Affects links shaared in description.
* Move text2clickable and keepMultipleSpaces to Utils.php + unit test
UPDATE:
* keepMultipleSpaces renamed to space2nbsp
* space2nbsp improved to handle single space at line beginning
* links in text description aren't 'nofollow' anymore
2015-11-26 20:14:38 +01:00
VirtualTam
c9cf2715f0
application: move checkPHPVersion from Utils to ApplicationUtils
...
Relates to #372
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2015-11-24 01:40:44 +01:00
VirtualTam
2e28269bae
install: check file/directory permissions for Shaarli resources
...
Relates to #40
Relates to #372
Additions:
- FileUtils: IOException
- ApplicationUtils:
- check if Shaarli resources are accessible with sufficient permissions
- basic test coverage
- index.php:
- check access permissions and redirect to an error page if needed:
- before running the first installation
Modifications:
- LinkDB:
- factorize datastore write code
- check if the datastore
(exists AND is writeable) OR (doesn't exist AND its parent dir is writable)
- raise an IOException if needed
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2015-11-24 01:12:35 +01:00
ArthurHoaro
8f8113b94b
Fixes #176 - Add opensearch functionality
...
* add a new page in Router: do=opensearch which displays the opensearch plugin
* using base64 compressed image to avoid issue encountered with HTTPS
2015-11-17 20:19:44 +01:00
VirtualTam
a7921b2445
cleanup: remove the executable bit from source scripts
...
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2015-11-11 19:19:24 +01:00
Arthur
fd006c630b
Merge pull request #275 from shaarli/plugin-proposition
...
Plugin proposition
2015-11-08 13:29:32 +01:00
ArthurHoaro
567967fdf9
Template upgrade to handle plugin zones
...
Add a bunch of plugin placeholders in templates
2015-11-07 15:27:22 +01:00
ArthurHoaro
6fc14d5303
Plugin system - CORE
...
see shaarli/Shaarli#275
2015-11-07 15:27:17 +01:00
ArthurHoaro
d01c234235
Fixes #356
...
* adding a link should return added link's hash
* allow redirection relative urls in generateLocation
2015-11-04 19:53:59 +01:00
VirtualTam
482d67bd52
HTTP: move server URL functions to HttpUtils.php
...
Relates to #333
Modifications:
- refactor server URL utility functions
- do not access global `$_SERVER` variables
- add test coverage
- improve readability
- apply coding conventions
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2015-09-14 20:27:16 +02:00
Guillaume Virlet
ef591e7ee2
Url: introduce global helper functions for cleanup and scheme detection
...
Relates to #314 & #326
Additions:
- add global `cleanup_url()` and `get_url_scheme()` functions
Modifications:
- replace `Url` usage in `index.php` by calls to global functions
- fix `Url` tests not being run: PHPUnit expects a single test class per file
- move classes to separate files
2015-09-08 22:00:37 +02:00
VirtualTam
451314eb48
HTTP: move utils to a proper file, add tests
...
Relates to #333
Modifications:
- move HTTP utils to 'application/HttpUtils.php'
- simplify logic
- replace 'http_parse_headers_shaarli' by built-in 'get_headers()'
- remove superfluous '$status' parameter (provided by the HTTP headers)
- apply coding conventions
- add test coverage (unitary only)
Signed-off-by: VirtualTam <virtualtam@flibidi.net>
2015-09-06 19:30:26 +02:00