295 Commits

Author SHA1 Message Date
Marien Fressinaud
2039710d12 Avoid "PHP Strict Standards" error
A "Only variables should be passed by reference" error was raised in the
extension->getFileUrl() method.
2015-01-15 13:43:05 +01:00
Marien Fressinaud
13cf8b5f9f Improve hook calls and add post_update hook
- To the hook is associated a method signature (OneToOne or NoneToNone for now) so
  it is easier to call hooks correctly
- post_update hook is called during the post update moment.
2015-01-15 12:02:42 +01:00
Marien Fressinaud
789d9fc6c8 Fix coding style in extension manager
Yep, same as 8968288...
2015-01-14 23:40:18 +01:00
Marien Fressinaud
8968288600 Fix extension API (coding style)
is_enabled() becomes isEnabled(). Sorry for this coding style mistake :s
2015-01-14 22:22:30 +01:00
Marien Fressinaud
ade1524d43 Fix valid extension entry points.
Add possibility to use underscores (_) in entrypoints.
2015-01-14 21:59:53 +01:00
Marien Fressinaud
806b4de54f Add mechanism at (un)install of an extension
Test if the install or uninstall has been successfully performed.
If these methods return true, all is ok but if a string is returned,
the string must explain the problem. This problem is stored in log file.

A feedback is given to explain to check log file.

This commit fix a problem in the english translation of
feedback.sub.feed.internal_problem.
2015-01-14 21:38:35 +01:00
Marien Fressinaud
b23fc3187c Fix translation bug
A path registered after initialization must be loaded.
2015-01-08 21:32:21 +01:00
Marien Fressinaud
19dfef8b49 Fix bug with Minz_Translate
When a path was registered before initialization, it was not considered unless
by calling reset() method.

This is fixed now.
2015-01-08 16:32:13 +01:00
Marien Fressinaud
85ea5e548a Fix install.php script (choice of lang)
Fix a bug in Minz_Translate too
2015-01-08 15:16:32 +01:00
Marien Fressinaud
8f04cb9d9d Change Minz_Translate::reset() behaviour
- Don't reset the path list (use init() instead)
- init() accept a null lang_name. To use i18n, you'll have to use reset() later.
  It is helpful to load the list of available language before choosing one of them.
2015-01-08 15:05:25 +01:00
Marien Fressinaud
a3f667e586 Fix Minz_Translate::availableLanguages() method 2015-01-08 14:50:21 +01:00
Marien Fressinaud
5bd7997d41 Call handleConfigureAction() even for GET requests
See https://github.com/FreshRSS/FreshRSS/issues/252
2015-01-08 14:30:05 +01:00
Marien Fressinaud
73023bc12b Merge branch 'dev' into 252-extensions
Conflicts:
	app/FreshRSS.php
	app/Models/Configuration.php
	app/views/index/index.phtml
	app/views/index/normal.phtml
	lib/Minz/Configuration.php
	lib/Minz/Translate.php
	lib/lib_rss.php
2015-01-08 14:18:32 +01:00
Marien Fressinaud
fb614ab80c Change way to call configuration setter.
- Add a support($key) method which return if the given key is supported by
  the setter.
- Change handle signature by adding a $data param which must be passed by
  reference.

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 17:36:29 +01:00
Marien Fressinaud
7f12058fab Add a method to change the configuration setter
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 16:09:24 +01:00
Marien Fressinaud
91e2d4936d Add support of configuration_setter
A configuration setter must implement only one method: `handle($key, $value)`.
Before setting a value in configuration, the setter will be called with this
method to check its validity.
If a setter has been assigned to a configuration object, it will be called for
each of its data so be careful to always return a value (or null if you want
to delete the key).

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 15:57:27 +01:00
Marien Fressinaud
09545b0a65 Fix calls to remove_query_by_get()
The function has been moved into lib_rss.php

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 15:37:24 +01:00
Marien Fressinaud
bd199c6170 If a conf param doesn't exist, log and return null
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-07 10:48:47 +01:00
Marien Fressinaud
8e6ab12e89 Fix a bug in FreshRSS_Auth::giveAccess()
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 22:43:24 +01:00
Marien Fressinaud
dd41642ce6 Fix calls to FreshRSS_Configuration
Replaced by a get_user_configuration() function in lib_rss.
This function register a new configuration based on the given username
and return the corresponding configuration.

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 21:40:19 +01:00
Marien Fressinaud
17a280230f Change Minz_Configuration::parseFile() in load()
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 21:16:33 +01:00
Marien Fressinaud
addcea9cd4 Fix i18n loading and availableLanguages calls
- Change the way to init i18n
- Add a availableLanguages() method to Minz_Translate

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 21:10:51 +01:00
Marien Fressinaud
d3a93ea290 BREAKING FEATURE: Remove general in config
General attribute has been removed from system config.
Now subattributes (e.g. environment, salt, title, etc.) are directly accessible.

YOU HAVE TO FIX YOUR ./data/config.php file!

- Remove the general array
- Values inside this array must be kept
- To see what it must look like, please have a look to ./data/config.default.php
  (but keep your values!!).

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 18:53:36 +01:00
Marien Fressinaud
d27efeec04 Fix Controllers to use the correct config system
See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-06 17:38:31 +01:00
Marien Fressinaud
51a71ec4b9 New configuration system (not working yet)
- Use only Minz_Configuration
- register() method to load a new configuration file
- get() to get a configuration
- new exceptions related to configuration
- fix a list configuration calls to have FRSS working

Current problems to resolve:

- How to handle configuration param verifications (i.e. check auth_type
  is a value from none, http_auth, persona or form)
- We must use $conf = Minz_Configuration::get('system'); $general_conf = $conf->general;
  to access global system configuration which is quite annoying. How to change that?

See https://github.com/FreshRSS/FreshRSS/issues/730
2015-01-05 16:54:16 +01:00
Marien Fressinaud
d234304580 Add files for the new favicon system
Use https://github.com/ArthurHoaro/favicon
See https://github.com/FreshRSS/FreshRSS/issues/290
2014-12-29 11:22:22 +01:00
Marien Fressinaud
c391ca62f1 Remove all old references to LOG_PATH
See https://github.com/FreshRSS/FreshRSS/issues/729
2014-12-28 18:05:02 +01:00
Marien Fressinaud
7a967e68ad Merge branch 'dev' into 729-move_data 2014-12-21 17:54:37 +01:00
Marien Fressinaud
5f327abeec Add recursive_unlink function in dev branch 2014-12-21 17:53:03 +01:00
Marien Fressinaud
966c061b3c Fix listUsers function
See https://github.com/FreshRSS/FreshRSS/issues/729
2014-12-21 17:38:38 +01:00
Marien Fressinaud
b5bee85603 BREAKING FEATURE: move user data
- Create ./data/users/ folder
- Move user configuration to ./data/users/username/config.php
- Move sqlite db to ./data/users/username/db.sqlite
- Move user logs to ./data/users/username/log.txt

See https://github.com/FreshRSS/FreshRSS/issues/729
2014-12-21 13:10:02 +01:00
Marien Fressinaud
26da4aa448 Update Minz_Translation
- Give possibility to register new i18n files
- Add a extension->registerTranslates() method
- extensions can define new strings or override previous ones

Fix https://github.com/FreshRSS/FreshRSS/issues/731
2014-12-18 18:59:13 +01:00
Marien Fressinaud
251d5a78ce Fix php interpretation in configure.phtml file
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-18 13:57:25 +01:00
Marien Fressinaud
0b89867800 Merge branch 'dev' into 252-extensions
Conflicts:
	app/i18n/en/admin.php
	app/i18n/en/feedback.php
	app/i18n/en/gen.php
	app/i18n/fr/admin.php
	app/i18n/fr/feedback.php
	app/i18n/fr/gen.php
	app/views/index/normal.phtml
2014-12-17 21:41:33 +01:00
Marien Fressinaud
d455837c6d Fix i18n for normal view 2014-12-11 00:00:15 +01:00
Marien Fressinaud
aa54f43795 Verbose for unvalid key format 2014-12-10 22:57:43 +01:00
Marien Fressinaud
76358846ab Implement extension deletion
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-08 13:36:08 +01:00
Marien Fressinaud
188b517daa Add a feed_before_insert hook
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-08 13:05:56 +01:00
Marien Fressinaud
a79107fb04 Merge branch 'dev' into 252-extensions 2014-12-08 12:53:01 +01:00
Marien Fressinaud
a596385343 Fix a security issue in Minz_Error::error()
Mehtod must redirect automatically by default to avoid code execution after
calling the method.
2014-12-08 12:37:06 +01:00
Marien Fressinaud
c6dfec3ad3 Add behaviour to configure action (extensions)
- Put extension configure view in dir_ext/configure.phtml
- Handle POST action in Extension->handleConfigureAction() method

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-08 12:01:47 +01:00
Marien Fressinaud
198b154064 Fix View files inclusion.
Now, each part of the view (layout, partials, helpers, views) is included based
on the $base_pathnames attribute.
Extensions can now override all of these files.

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-07 15:30:24 +01:00
Marien Fressinaud
5932c3427b Add entry_before_display hook
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-07 14:31:50 +01:00
Marien Fressinaud
08546af75f Add a first draft for hooks
- New Extension->registerHook($hook_name, $hook_function) method to register a new hook
- Only one hook works for the moment: entry_before_insert
- ExtensionManager::callHook will need to evolve based on future hooks

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06 18:48:00 +01:00
Marien Fressinaud
4c888590e6 Improve system/user types for extensions
- system extensions can only be managed by an administrator
- system extensions are loaded for all users (even if not logged)
- user extensions are loaded for logged users only
- system extensions loading is saved in global config.php file

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06 16:41:06 +01:00
Marien Fressinaud
2e4682ebd4 Add enable / disable extension features
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06 16:17:11 +01:00
Marien Fressinaud
a08c382e06 Separate views registration from controllers one.
- Add an Extension->registerViews() method.
- Views are first searched in extension paths, then in APP_PATH.
- It gives a way to override easily existing controllers / views.
- Change include into an include_once in Dispatcher for new controllers.

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-06 15:20:20 +01:00
Marien Fressinaud
c6a682deb9 Extensions can define new views
- View base pathname is set to the extension directory
- An extension can now override an existing controller / view

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-05 15:27:56 +01:00
Marien Fressinaud
f8aa66152f Give possibility to register a new Controller.
- Add a Extension->registerController(name) method
- Controllers must be written in extension_dir/controllers/nameController.php
- Controllers must be named as FreshExtension_name_Controller
- Controllers must extend Minz_ActionController

See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-05 14:48:09 +01:00
Marien Fressinaud
9fc60317ee First draft for listing and manipulate extensions
See https://github.com/FreshRSS/FreshRSS/issues/252
2014-12-05 14:17:02 +01:00