random::hash()
random::string()
random::percent()
random::int()
So that we don't have lots of different ways to get random values all
over the code. Follow-on to #1527.
Also whitelist the digibug controller so that it's accessible when the
gallery is private, and don't expire old proxies right away since
Digibug may request the full size multiple times for different preview
operations.
Fixes ticket #1410.
mostly issues around uninitialized variables, calling non-static
functions in a static context, calling Session functions directly
instead of on its singleton, passing non-variables by reference, and
subclasses not using the same interface as the parent class.
1) Controller::$input is gone -- use Input::instance() now
2) Handle new 'database.<default>.connection.params' parameter
3) Handle new 'cache.<default>.prefix' parameter
the "context" menu.
This new context menu is generated using the typical event processing
system, like our other menus. The specialized quick CSS and JS is now
gone, replaced by our generic menu handling code. It's all rolled
together currently using the thumb_menu UI for easy packaging. All
the CSS and JS is updated.
NOTE: the non-dialog links (rotate, album_cover) have a broken UI
because they return JSON which the quick.js code handled specially,
but we don't handle properly now. I need to fix this.
1) Specifically catch Kohana_404_Exception and let other exceptions pass, the
test framework will report them as errors
2) Simplify some testing idioms
3) Change malicious address to a legal addr
This patch allows users with only view permission to request fullsize
prints using Digibug. There is now a Digibug config file that contains
the IP ranges of the Digibug servers. Any request for the full size
image via the print proxy must come from within the ranges in the config
file.
The reason for the "if (!Test_Mode) {..." is that the print proxy makes a
call to Kohana::close_buffers, which closes all the output buffers and then
we see the image download on the console which messes up the test output.
theme. Because the theme comes first, this means that themes can
override any module resources, at the cost that we no longer have
namespacing for JS and CSS files.
The only file getting used outside of this model is
themes/default/screen.css which is used in the admin theme. I fixed
that by copying screen.css into admin_default and renaming its
screen.css to admin_screen.css. I also copied over all the images
that it was referencing.
Fixes tickets #48 and #539.
Theme API changes:
- theme_script(), theme_url() and theme_css() are no longer needed
- script(), url() and css() now refer to the first matching asset in
the module load path, where gallery3/lib is at the end of the path
approach using html::specialchars and purify uses HTMLPurifier to intelligently
cleanse the output fields. Use purifier for text and title fields where it is
likely that a user would enter html to format their data.
functionality. Just return false when using javascript:digibug_popup was not
enough from having the browser switch pages and show a page with the word false.
Using an event handler allows us to call event.preventDefault which cancels the
page switch.