aboutsummaryrefslogtreecommitdiffhomepage
path: root/application
Commit message (Collapse)AuthorAgeFilesLines
* cleanup: use DateTime to format datesVirtualTam2016-02-171-0/+3
| | | | | | | | | | | | | | | 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>
* Support text search across link fields.ArthurHoaro2016-02-151-25/+23
|
* Improved search: combine AND, exact terms and exclude search.ArthurHoaro2016-02-151-24/+36
|
* Private/Hidden tagsArthurHoaro2016-02-151-0/+7
| | | | | | | Tags starting with a dot '.' are now private. They can only be seen and searched when logged in. Fixes #315
* Add exclusion in tag searchArthurHoaro2016-02-153-9/+38
| | | | | | | | | | | * 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.
* Introduce the Updater class whichArthurHoaro2016-02-154-34/+232
| | | | | | | * 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).
* Merge pull request #453 from ArthurHoaro/pr450Arthur2016-02-011-13/+32
|\ | | | | Implemented a little more sophisticated searching (squashed)
| * Implemented searching for a phrase in double-quotes or all words in no ↵Florian Voigt2016-02-011-13/+32
| | | | | | | | | | | | particular order. + unit tests
* | Merge pull request #388 from ArthurHoaro/pluginadminArthur2016-01-313-0/+177
|\ \ | | | | | | Fixes #378 - Plugin administration UI.
| * | Fixes #378 - Plugin administration UI.ArthurHoaro2016-01-313-0/+177
| |/
* | Merge pull request #379 from ArthurHoaro/plugin-markdownArthur2016-01-311-8/+0
|\ \ | |/ |/| PLUGIN Markdown
| * PLUGIN MarkdownArthurHoaro2016-01-031-8/+0
| | | | | | | | | | | | | | | | | | | | 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.
* | Bugfix: prevent LinkFilter to work on outdated data.ArthurHoaro2016-01-201-8/+4
| |
* | Merge pull request #441 from virtualtam/tests/check-file-permissionsVirtualTam2016-01-183-0/+0
|\ \ | | | | | | tests: add a make target to check file permissions
| * | tests: add a make target to check file permissionsVirtualTam2016-01-173-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | Additions: - [makefile] check versioned files are not executable - [travis] call the new make target Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* | | fix: use PHP_EOL for carriage returns in file logsVirtualTam2016-01-181-1/+1
|/ / | | | | | | | | | | Relates to #436 Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* | Logging: improve formatting to enable fail2ban parsingVirtualTam2016-01-161-2/+7
| | | | | | | | | | | | | | | | | | | | 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>
* | Logging: move logm() from index.php to application/Utils.phpVirtualTam2016-01-161-0/+13
| | | | | | | | | | | | | | | | | | | | | | Relates to #436 Modifications: - inject dependencies to global variables ($_SERVER, $GLOBALS) - apply coding conventions - add test coverage Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* | Fixes #410 - Retrieve title fails in multiple casesArthurHoaro2016-01-114-9/+132
| | | | | | | | | | | | | | | | | | * `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.
* | Merge pull request #424 from ArthurHoaro/searchArthur2016-01-063-110/+281
|\ \ | | | | | | Link filter refactoring
| * | Fixes #426 - Do not filter with blank tags.ArthurHoaro2016-01-061-1/+1
| | |
| * | Link filter refactoringArthurHoaro2016-01-063-110/+281
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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.
* | | Merge pull request #417 from ArthurHoaro/wallabag-improveVirtualTam2016-01-021-0/+12
|\ \ \ | |/ / |/| | Wallabag plugin improvement
| * | Wallabag plugin improvementArthurHoaro2015-12-271-0/+12
| |/ | | | | | | | | | | | | | | * Fixes a bug where URL weren't properly encoded. * Adds Wallabag V2 support. * Adds a URL function to handle trailing slash. * UT. * README updated.
* / QRCode plugin: use url instead of real_urlArthurHoaro2015-12-221-1/+3
|/ | | | | | Fixes #414 and avoid usage of redirector in QRCode. Also fixed a bug with URL encoding.
* Fixes #403: build the daily page through renderPage()ArthurHoaro2015-12-081-0/+6
| | | | | * new entry in the Router for daily page. * add an always displayed button in demo_plugin
* fix: assign template variables to empty values so they can be evaluatedVirtualTam2015-12-031-0/+2
| | | | | | Regression introduced in #394 Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* application: default to the "stable" branch for update checksVirtualTam2015-11-271-4/+14
| | | | | | | Relates to #372 Relates to #390 Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* application: refactor version checks, move to ApplicationUtilsVirtualTam2015-11-261-0/+92
| | | | | | | | | | | | | | | 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>
* URL encode links when a redirector is set.ArthurHoaro2015-11-262-3/+70
| | | | | | | | | | | | | | | | | 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
* application: move checkPHPVersion from Utils to ApplicationUtilsVirtualTam2015-11-242-20/+20
| | | | | | Relates to #372 Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* install: check file/directory permissions for Shaarli resourcesVirtualTam2015-11-243-9/+114
| | | | | | | | | | | | | | | | | | | | | | | 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>
* Fixes #176 - Add opensearch functionalityArthurHoaro2015-11-171-0/+6
| | | | | * add a new page in Router: do=opensearch which displays the opensearch plugin * using base64 compressed image to avoid issue encountered with HTTPS
* cleanup: remove the executable bit from source scriptsVirtualTam2015-11-112-0/+0
| | | | Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* Merge pull request #275 from shaarli/plugin-propositionArthur2015-11-083-129/+423
|\ | | | | Plugin proposition
| * Template upgrade to handle plugin zonesArthurHoaro2015-11-071-1/+1
| | | | | | | | Add a bunch of plugin placeholders in templates
| * Plugin system - COREArthurHoaro2015-11-073-129/+423
| | | | | | | | see shaarli/Shaarli#275
* | Fixes #356ArthurHoaro2015-11-041-5/+6
|/ | | | | * adding a link should return added link's hash * allow redirection relative urls in generateLocation
* HTTP: move server URL functions to `HttpUtils.php`VirtualTam2015-09-141-0/+80
| | | | | | | | | | | | | 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>
* Url: introduce global helper functions for cleanup and scheme detectionGuillaume Virlet2015-09-082-2/+32
| | | | | | | | | | | | 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
* HTTP: move utils to a proper file, add testsVirtualTam2015-09-061-0/+52
| | | | | | | | | | | | | | 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>
* Session ID: extend the regex to match possible hash representationsVirtualTam2015-09-061-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Improves #306 Relates to #335 & #336 Duplicated by #339 Issues: - PHP regenerates the session ID if it is not compliant - the regex checking the session ID does not cover all cases - different algorithms: md5, sha1, sha256, etc. - bit representations: 4, 5, 6 Fix: - `index.php`: - remove `uniqid()` usage - call `session_regenerate_id()` if an invalid cookie is detected - regex: support all possible characters - '[a-zA-Z,-]{2,128}' - tests: add coverage for all algorithms & bit representations See: - http://php.net/manual/en/session.configuration.php#ini.session.hash-function - https://secure.php.net/manual/en/session.configuration.php#ini.session.hash-bits-per-character - http://php.net/manual/en/function.session-id.php - http://php.net/manual/en/function.session-regenerate-id.php - http://php.net/manual/en/function.hash-algos.php Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* Allow uppercase letters in PHP sessionid formatArthurHoaro2015-09-021-1/+1
| | | | | | Fixes shaarli/Shaarli#335 - Wrong login/password since v0.5.2 Regression introduced in 06b6660a7e8891c6e1c47815cf50ee5b2ef5f270
* Merge pull request #326 from ArthurHoaro/bug-urlVirtualTam2015-08-311-0/+16
|\ | | | | Fixes #325 - Shaarli does not recognize saved links
| * Fixes #325 - Shaarli does not recognize saved linksArthurHoaro2015-08-311-0/+16
| | | | | | | | | | | | PHP doesn't seem to autoconvert objects to strings when they're use as array indexes. Fixes regression introduced in d9d776af19fd0a191f82525991dafbb56e1bcfcb
* | Avoid Full Path Disclosure error on session error.ArthurHoaro2015-08-221-1/+25
|/ | | | | * Add a function to validate session ID. * Generate a new session ID if an invalid token is passed.
* Links: refactor & improve URL cleanupVirtualTam2015-08-151-0/+150
| | | | | | | | | | | | | | | | | | | Relates to #141 Relates to #133 Modifications - move URL cleanup to `application/Url.php` - rework the cleanup function - fragments: `#stuff` - GET parameters: `?var1=val1&var2=val2` - add documentation (APIs the params belong to) - add test coverage Reference - http://php.net/parse_url - http://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.tostring Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* Cache: simplify cached content cleanup, improve testsVirtualTam2015-08-131-14/+6
| | | | Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* CachedPage: move to a proper file, add testsVirtualTam2015-08-133-3/+113
| | | | | | | | | | | | Modifications - rename `pageCache` to `CachedPage` - move utilities to `Cache` - do not access globals - apply coding rules - update LinkDB and test code - add test coverage Signed-off-by: VirtualTam <virtualtam@flibidi.net>
* Installation: default to the server's timezoneVirtualTam2015-08-041-30/+32
| | | | | | | | | | | | | Modifications - attempt to use the server's timezone - if none is set, use UTC - TimeZone: apply coding conventions - variable naming - no closing PHP tag Relates to #274 Signed-off-by: VirtualTam <virtualtam@flibidi.net>