-
Notifications
You must be signed in to change notification settings - Fork 296
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rain variables #11
Rain variables #11
Conversation
The path for templates and temporary files are now part of the configuration. For a custom install, it's possible to put these writable directories elsewhere than in the read-only source code.
The same test is already on line 93
I'm not sure I see the value in the variable for the template files, as those don't need write access. But I second the idea of write vs. read-only access, as that is what the Debian package already performs:
In the Debian package, the paths are hardcoded (in debian/patches/install.patch, but it would be as fine to have them configurable using the config file, and Debian would provide a standard config file with these paths already set. For completeness' sake, FYI there is a second patch debian/patches/raintpl-tmp-folder-creation.patch that uses the Could you increase the scope of this pull request, to also allow indicating the storage location for data, cache and pagecache? This would allow me to drop 2 patches from the package, which is great news. |
Hey nice patch, I would also remove the Just create empty |
I grepped all the mkdir statements, it's about : DATADIR, RAINTPL_TMP, CACHEDIR, PAGECACHE. Special mention about the french provider free.fr and the session directory to create. @nodiscc If I follow your thoughts correctly, we would create in the repository the following directories : data, tmp, cache, pagecache. This way, we could get rid of the mkdir. Is this ok? I added the template directory, just to be able to customize all the paths. Let's imagine that, later, templates are added. An option could allow to choose one or another, especially if Shaarli go mutli-users... @e2jk the location of the cache, pagecache, and data were already existing as variables. As you can see on line 37 you can add DATADIR/options.php to override the values. |
Yes that's what I had in mind.
Very good. Same could be said for custom themes/CSS as we have already collected a few |
They are still in .gitignore because their future content will still be ignored.
I also removed the previously created placeholders, which after all, have no more utility.
I added the empty directories, filling them with an htaccess denying access. I also removed the directories creation and the creation of the htaccess. |
I didn't see any problem with it. Is it ok for you that I merge it in master? |
Let's do this. Thanks! |
When we try to access the atom feed and have no bookmarks, it raised the following exception : ``` Call to a member function reorder() on array /webroot/application/bookmark/BookmarkFileService.php:143 #0 /webroot/application/feed/FeedBuilder.php(106): Shaarli\Bookmark\BookmarkFileService->search(Array, 'public', false, false, true) shaarli#1 /webroot/application/front/controller/visitor/FeedController.php(47): Shaarli\Feed\FeedBuilder->buildData('atom', Array) shaarli#2 /webroot/application/front/controller/visitor/FeedController.php(20): Shaarli\Front\Controller\Visitor\FeedController->processRequest('atom', Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#3 [internal function]: Shaarli\Front\Controller\Visitor\FeedController->atom(Object(Slim\Http\Request), Object(Slim\Http\Response), Array) shaarli#4 /webroot/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(40): call_user_func(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array) shaarli#5 /webroot/vendor/slim/slim/Slim/Route.php(281): Slim\Handlers\Strategies\RequestResponse->__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array) shaarli#6 /webroot/application/front/ShaarliMiddleware.php(55): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#7 [internal function]: Shaarli\Front\ShaarliMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#8 /webroot/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Array, Array) shaarli#9 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#10 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#11 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#12 /webroot/vendor/slim/slim/Slim/Route.php(268): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#13 /webroot/vendor/slim/slim/Slim/App.php(503): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#14 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#15 /webroot/vendor/slim/slim/Slim/App.php(392): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#16 /webroot/vendor/slim/slim/Slim/App.php(297): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#17 /webroot/index.php(177): Slim\App->run(true) shaarli#18 {main} ```
When we try to access the atom feed and have no bookmarks, it raised the following exception : ``` Call to a member function reorder() on array /webroot/application/bookmark/BookmarkFileService.php:143 #0 /webroot/application/feed/FeedBuilder.php(106): Shaarli\Bookmark\BookmarkFileService->search(Array, 'public', false, false, true) #1 /webroot/application/front/controller/visitor/FeedController.php(47): Shaarli\Feed\FeedBuilder->buildData('atom', Array) #2 /webroot/application/front/controller/visitor/FeedController.php(20): Shaarli\Front\Controller\Visitor\FeedController->processRequest('atom', Object(Slim\Http\Request), Object(Slim\Http\Response)) #3 [internal function]: Shaarli\Front\Controller\Visitor\FeedController->atom(Object(Slim\Http\Request), Object(Slim\Http\Response), Array) #4 /webroot/vendor/slim/slim/Slim/Handlers/Strategies/RequestResponse.php(40): call_user_func(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array) #5 /webroot/vendor/slim/slim/Slim/Route.php(281): Slim\Handlers\Strategies\RequestResponse->__invoke(Array, Object(Slim\Http\Request), Object(Slim\Http\Response), Array) shaarli#6 /webroot/application/front/ShaarliMiddleware.php(55): Slim\Route->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#7 [internal function]: Shaarli\Front\ShaarliMiddleware->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#8 /webroot/vendor/slim/slim/Slim/DeferredCallable.php(57): call_user_func_array(Array, Array) shaarli#9 [internal function]: Slim\DeferredCallable->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#10 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(70): call_user_func(Object(Slim\DeferredCallable), Object(Slim\Http\Request), Object(Slim\Http\Response), Object(Slim\Route)) shaarli#11 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\Route->Slim\{closure}(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#12 /webroot/vendor/slim/slim/Slim/Route.php(268): Slim\Route->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#13 /webroot/vendor/slim/slim/Slim/App.php(503): Slim\Route->run(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#14 /webroot/vendor/slim/slim/Slim/MiddlewareAwareTrait.php(117): Slim\App->__invoke(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#15 /webroot/vendor/slim/slim/Slim/App.php(392): Slim\App->callMiddlewareStack(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#16 /webroot/vendor/slim/slim/Slim/App.php(297): Slim\App->process(Object(Slim\Http\Request), Object(Slim\Http\Response)) shaarli#17 /webroot/index.php(177): Slim\App->run(true) shaarli#18 {main} ```
Hi all!
I wish to add the ability to define where to store all writable files. I set up two variables for RainTPL. This way, it will be possible to install/setup Shaarli in two separate directory : one with write access, one with read only access.
I think it would be neat for package maintainer and, maybe, to have a multi-user deployment.
Would you like to check this, at least, the following ways:
Thanks in advance.