]>
git.agnieray.net Git - galette.git/blob - galette/includes/galette.inc.php
3 /* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
6 * Main Galette initialisation
10 * Copyright © 2009-2024 The Galette Team
12 * This file is part of Galette (http://galette.tuxfamily.org).
14 * Galette is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License as published by
16 * the Free Software Foundation, either version 3 of the License, or
17 * (at your option) any later version.
19 * Galette is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
24 * You should have received a copy of the GNU General Public License
25 * along with Galette. If not, see <http://www.gnu.org/licenses/>.
30 * @author Johan Cwiklinski <johan@x-tnd.be>
31 * @copyright 2007-2024 The Galette Team
32 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL License 3.0 or (at your option) any later version
33 * @link http://galette.tuxfamily.org
34 * @since Available since 0.7-dev - 2007-10-07
37 //define galette's root directory
38 if (!defined('GALETTE_ROOT')) {
39 define('GALETTE_ROOT', __DIR__
. '/../');
42 require_once GALETTE_ROOT
. 'config/versions.inc.php';
43 require_once GALETTE_ROOT
. 'config/paths.inc.php';
45 // check required PHP version...
46 if (version_compare(PHP_VERSION
, GALETTE_PHP_MIN
, '<')) {
47 echo 'Galette is NOT compliant with your current PHP version. ' .
48 'Galette requires PHP ' . GALETTE_PHP_MIN
.
49 ' minimum and current version is ' . phpversion();
53 $time_start = microtime(true);
54 $cron = (PHP_SAPI
=== 'cli');
56 // define relative base path templating can use
57 if (!defined('GALETTE_BASE_PATH')) {
58 define('GALETTE_BASE_PATH', './');
61 //we'll only include relevant parts if we work from installer
62 if (!isset($installer)) {
65 // test if galette is already installed or if we're form installer
66 // and redirect to install page if not
67 $installed = file_exists(GALETTE_CONFIG_PATH
. 'config.inc.php');
68 if (!$installed && !$installer) {
69 header('location: ./installer.php');
74 file_exists(GALETTE_CONFIG_PATH
. 'behavior.inc.php')
75 && !defined('GALETTE_TESTS')
77 include_once GALETTE_CONFIG_PATH
. 'behavior.inc.php';
80 if (isset($installer) && $installer !== true) {
81 //If we're not working from installer
82 include_once GALETTE_CONFIG_PATH
. 'config.inc.php';
87 use Analog\Handler\LevelName
;
90 require GALETTE_ROOT
. '/vendor/autoload.php';
94 defined('GALETTE_XHPROF_PATH')
95 && function_exists('xhprof_enable')
97 include_once __DIR__
. '/../lib/Galette/Common/XHProf.php';
98 $profiler = new Galette\Common\
XHProf();
102 define('GALETTE_NIGHTLY', false);
103 define('GALETTE_VERSION', 'v1.0.2');
106 if (!defined('GALETTE_HIDE_VERSION')) {
107 define('GALETTE_DISPLAY_VERSION', \Galette\Core\Galette
::gitVersion(false));
110 define('GALETTE_COMPAT_VERSION', '1.0.0');
111 define('GALETTE_DB_VERSION', '0.960');
112 if (!defined('GALETTE_MODE')) {
113 define('GALETTE_MODE', \Galette\Core\Galette
::MODE_PROD
);
116 if (!isset($_COOKIE['show_galette_dashboard'])) {
118 'show_galette_dashboard',
121 'expires' => time() +
31536000, //valid for a year
127 ini_set('display_errors', (defined('GALETTE_TESTS') ?
'1' : '0'));
129 /*------------------------------------------------------------------------------
131 ------------------------------------------------------------------------------*/
133 error_reporting(E_ALL
);
134 set_error_handler(function ($severity, $message, $file, $line) {
135 if (error_reporting() & $severity) {
136 throw new \
ErrorException($message, 0, $severity, $file, $line);
140 //change default format so the 3rd param is a string for level name
141 Analog
::$format = "%s - %s - %s - %s\n";
142 $galette_run_log = null;
144 if (!defined('GALETTE_LOG_LVL')) {
145 if (\Galette\Core\Galette
::isDebugEnabled()) {
146 define('GALETTE_LOG_LVL', Analog
::DEBUG
);
147 } elseif (defined('GALETTE_TESTS')) {
148 define('GALETTE_LOG_LVL', Analog
::NOTICE
);
150 define('GALETTE_LOG_LVL', Analog
::WARNING
);
154 if (defined('GALETTE_TESTS')) {
155 $log_path = GALETTE_LOGS_PATH
. 'tests.log';
156 $galette_run_log = LevelName
::init(Handler\File
::init($log_path));
158 $galette_log_var = null;
160 if (!$installer ||
($installer && defined('GALETTE_LOGGER_CHECKED'))) {
161 //logs everything in galette log file
162 if (!isset($logfile)) {
163 //if no filename has been setted (ie. from install), set default one
164 $logfile = 'galette';
166 $log_path = GALETTE_LOGS_PATH
. $logfile . '.log';
167 $galette_run_log = LevelName
::init(Handler\File
::init($log_path));
169 $galette_run_log = LevelName
::init(Handler\Variable
::init($galette_log_var));
172 Core\Logs
::cleanup();
176 Analog
::handler($galette_run_log);
178 require_once GALETTE_ROOT
. 'includes/functions.inc.php';
180 if (!$installer and !defined('GALETTE_TESTS')) {
181 //If we're not working from installer nor from tests
182 include_once GALETTE_CONFIG_PATH
. 'config.inc.php';
185 * Database instantiation
187 $zdb = new Core\
Db();
189 if ($zdb->checkDbVersion()) {
194 $preferences = new Core\
Preferences($zdb);
197 * Set the path to the current theme templates
200 '_CURRENT_THEME_PATH',
201 GALETTE_THEMES_PATH
. $preferences->pref_theme
. '/'
204 if (!defined('GALETTE_THEME')) {
207 'themes/' . $preferences->pref_theme
. '/'
211 $needs_update = true;
215 $plugins = new Galette\Core\
Plugins();
216 //make sure plugins autoload is called before session start
217 $plugins->autoload(GALETTE_PLUGINS_PATH
);