aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/functions_html.inc.php11
-rw-r--r--include/template.class.php12
2 files changed, 20 insertions, 3 deletions
diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php
index 0ab3aae42..e78f823e8 100644
--- a/include/functions_html.inc.php
+++ b/include/functions_html.inc.php
@@ -361,10 +361,15 @@ function page_not_found($msg, $alternate_url=null)
* this method can be called at any time (does not use template/language/user etc...)
* @param string msg a message to display
*/
-function fatal_error($msg)
+function fatal_error($msg, $title=null, $show_trace=true)
{
+ if (empty($title))
+ {
+ $title = 'Piwigo encountered a non recoverable error';
+ }
+
$btrace_msg = '';
- if (function_exists('debug_backtrace'))
+ if ($show_trace and function_exists('debug_backtrace'))
{
$bt = debug_backtrace();
for ($i=1; $i<count($bt); $i++)
@@ -377,7 +382,7 @@ function fatal_error($msg)
}
$display = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
-<h1>Piwigo encountered a non recoverable error</h1>
+<h1>$title</h1>
<pre style='font-size:larger;background:white;color:red;padding:1em;margin:0;clear:both;display:block;width:auto;height:auto;overflow:auto'>
<b>$msg</b>
$btrace_msg
diff --git a/include/template.class.php b/include/template.class.php
index a92e499a8..ec813efb3 100644
--- a/include/template.class.php
+++ b/include/template.class.php
@@ -52,6 +52,18 @@ class Template {
$this->smarty->compile_check = $conf['template_compile_check'];
$this->smarty->force_compile = $conf['template_force_compile'];
+ if (!is_writable($conf['local_data_dir']))
+ {
+ load_language('admin.lang');
+ fatal_error(
+ sprintf(
+ l10n('Give write access (chmod 777) to "%s" directory at the root of your Piwigo installation'),
+ basename($conf['local_data_dir'])
+ ),
+ l10n('an error happened'),
+ false // show trace
+ );
+ }
$compile_dir = $conf['local_data_dir'].'/templates_c';
mkgetdir( $compile_dir );