diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Core/Bootstrap.php b/CoreVersions/0.2.0/Frameworks/Baikal/Core/Bootstrap.php deleted file mode 100644 index 35f071e..0000000 --- a/CoreVersions/0.2.0/Frameworks/Baikal/Core/Bootstrap.php +++ /dev/null @@ -1,155 +0,0 @@ - -* All rights reserved -* -* http://baikal.codr.fr -* -* This script is part of the Baïkal Server project. The Baïkal -* Server project is free software; you can redistribute it -* and/or modify it under the terms of the GNU General Public -* License as published by the Free Software Foundation; either -* version 2 of the License, or (at your option) any later version. -* -* The GNU General Public License can be found at -* http://www.gnu.org/copyleft/gpl.html. -* -* This script is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* This copyright notice MUST APPEAR in all copies of the script! -***************************************************************/ - - -function rmBeginSlash($sString) { - if(substr($sString, 0, 1) === "/") { - $sString = substr($sString, 1); - } - - return $sString; -} - -function rmEndSlash($sString) { - if(substr($sString, -1) === "/") { - $sString = substr($sString, 0, -1); - } - - return $sString; -} - -function appendSlash($sString) { - if(substr($sString, -1) !== "/") { - $sString .= "/"; - } - - return $sString; -} - -function prependSlash($sString) { - if(substr($sString, 0, 1) !== "/") { - $sString = "/" . $sString; - } - - return $sString; -} - -function installTool() { - if(defined("BAIKAL_CONTEXT_INSTALL") && BAIKAL_CONTEXT_INSTALL === TRUE) { - return; - } else { - $sInstallToolUrl = BAIKAL_URI . "admin/install/"; - header("Location: " . $sInstallToolUrl); - exit(0); - } -} - -# Asserting PHP 5.3.0+ -if(version_compare(PHP_VERSION, '5.3.0', '<')) { - die('Baikal Fatal Error: Baikal requires PHP 5.3.0+ to run properly. You version is: ' . PHP_VERSION . '.'); -} - -# Registering Baikal classloader -define("BAIKAL_PATH_FRAMEWORKROOT", dirname(dirname(__FILE__)) . "/"); -require_once(BAIKAL_PATH_FRAMEWORKROOT . '/Core/ClassLoader.php'); -\Baikal\Core\ClassLoader::register(); - -\Baikal\Core\Tools::assertEnvironmentIsOk(); - -# determine Baïkal install root path -# not using realpath here to avoid symlinks resolution - -define("BAIKAL_PATH_ROOT", dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))) . "/"); # ../../../../../ -define("BAIKAL_PATH_CORE", BAIKAL_PATH_ROOT . "Core/"); -define("BAIKAL_PATH_SPECIFIC", BAIKAL_PATH_ROOT . "Specific/"); -define("BAIKAL_PATH_FRAMEWORKS", BAIKAL_PATH_CORE . "Frameworks/"); -define("BAIKAL_PATH_WWWROOT", BAIKAL_PATH_CORE . "WWWRoot/"); - -# Define path to Baïkal SQLite file -define("BAIKAL_SQLITE_FILE", BAIKAL_PATH_SPECIFIC . "db/baikal.sqlite"); - -require_once(BAIKAL_PATH_CORE . "Distrib.php"); - -# Determine BAIKAL_URI -$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"])); -$sDirName = appendSlash(dirname($sScript)); -$sBaseUrl = appendSlash(substr($sDirName, 0, -1 * strlen(BAIKAL_CONTEXT_BASEURI))); -$aParts = explode("/", $_SERVER["SERVER_PROTOCOL"]); -$sProtocol = strtolower(array_shift($aParts)); -define("BAIKAL_BASEURI", $sBaseUrl); -define("BAIKAL_URI", $sProtocol . "://" . rmEndSlash($_SERVER["HTTP_HOST"]) . $sBaseUrl); -unset($sScript); unset($sDirName); unset($sBaseUrl); unset($sProtocol); unset($aParts); - -# Bootstrap Flake -require_once(BAIKAL_PATH_FRAMEWORKS . "Flake/Core/Bootstrap.php"); - -# Check that a config file exists -if( - !file_exists(BAIKAL_PATH_SPECIFIC . "config.php") || - !file_exists(BAIKAL_PATH_SPECIFIC . "config.system.php") -) { - installTool(); -} else { - require_once(BAIKAL_PATH_SPECIFIC . "config.php"); - require_once(BAIKAL_PATH_SPECIFIC . "config.system.php"); - date_default_timezone_set(BAIKAL_TIMEZONE); - - # Check that Baïkal is already configured - if(!defined("BAIKAL_CONFIGURED_VERSION")) { - installTool(); - - } else { - - # Check that running version matches configured version - if(version_compare(BAIKAL_VERSION, BAIKAL_CONFIGURED_VERSION) > 0) { - installTool(); - - } else { - - # Check that admin password is set - if(!defined("BAIKAL_ADMIN_PASSWORDHASH")) { - installTool(); - } - - \Baikal\Core\Tools::assertBaikalIsOk(); - - # Establishing connection with database - $GLOBALS["DB"] = new \Flake\Core\Database\Sqlite(BAIKAL_SQLITE_FILE); - - # Mapping PHP errors to exceptions; needed by SabreDAV - function exception_error_handler($errno, $errstr, $errfile, $errline) { - throw new \ErrorException($errstr, 0, $errno, $errfile, $errline); - } - - set_error_handler("exception_error_handler"); - - unset($bShouldCheckEnv); - - # SabreDAV Autoloader - require_once(BAIKAL_PATH_SABREDAV . 'autoload.php'); - } - } -} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Core/ClassLoader.php b/CoreVersions/0.2.0/Frameworks/Baikal/Core/ClassLoader.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Core/Tools.php b/CoreVersions/0.2.0/Frameworks/Baikal/Core/Tools.php old mode 100644 new mode 100755 index a498b43..096602b --- a/CoreVersions/0.2.0/Frameworks/Baikal/Core/Tools.php +++ b/CoreVersions/0.2.0/Frameworks/Baikal/Core/Tools.php @@ -48,50 +48,59 @@ class Tools { } } + public static function configureEnvironment() { + set_exception_handler('\Baikal\Core\Tools::handleException'); + ini_set("error_reporting", E_ALL); + } + + function handleException($exception) { + echo $exception; + } + public static function assertBaikalIsOk() { # Asserting DB file exists - if(!file_exists(BAIKAL_SQLITE_FILE)) { + if(!file_exists(PROJECT_SQLITE_FILE)) { throw new \Exception("DB file does not exist. To create it, please copy 'Core/Resources/baikal.empty.sqlite' to 'Specific/db/baikal.sqlite'."); } # Asserting DB file is readable - if(!is_readable(BAIKAL_SQLITE_FILE)) { + if(!is_readable(PROJECT_SQLITE_FILE)) { throw new \Exception("DB file is not readable. Please give read permissions to httpd user on file 'Specific/db/baikal.sqlite'."); } # Asserting DB file is writable - if(!is_writable(BAIKAL_SQLITE_FILE)) { + if(!is_writable(PROJECT_SQLITE_FILE)) { throw new \Exception("DB file is not writable. Please give write permissions to httpd user on file 'Specific/db/baikal.sqlite'."); } # Asserting config file exists - if(!file_exists(BAIKAL_PATH_SPECIFIC . "config.php")) { + if(!file_exists(PROJECT_PATH_SPECIFIC . "config.php")) { throw new \Exception("Specific/config.php does not exist. Please use the Install tool to create it."); } # Asserting config file is readable - if(!is_readable(BAIKAL_PATH_SPECIFIC . "config.php")) { + if(!is_readable(PROJECT_PATH_SPECIFIC . "config.php")) { throw new \Exception("Specific/config.php is not readable. Please give read permissions to httpd user on file 'Specific/config.php'."); } # Asserting config file is writable - if(!is_writable(BAIKAL_PATH_SPECIFIC . "config.php")) { + if(!is_writable(PROJECT_PATH_SPECIFIC . "config.php")) { throw new \Exception("Specific/config.php is not writable. Please give write permissions to httpd user on file 'Specific/config.php'."); } # Asserting system config file exists - if(!file_exists(BAIKAL_PATH_SPECIFIC . "config.system.php")) { + if(!file_exists(PROJECT_PATH_SPECIFIC . "config.system.php")) { throw new \Exception("Specific/config.system.php does not exist. Please use the Install tool to create it."); } # Asserting system config file is readable - if(!is_readable(BAIKAL_PATH_SPECIFIC . "config.system.php")) { + if(!is_readable(PROJECT_PATH_SPECIFIC . "config.system.php")) { throw new \Exception("Specific/config.system.php is not readable. Please give read permissions to httpd user on file 'Specific/config.system.php'."); } # Asserting system config file is writable - if(!is_writable(BAIKAL_PATH_SPECIFIC . "config.system.php")) { + if(!is_writable(PROJECT_PATH_SPECIFIC . "config.system.php")) { throw new \Exception("Specific/config.system.php is not writable. Please give write permissions to httpd user on file 'Specific/config.system.php'."); } } diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Framework.php b/CoreVersions/0.2.0/Frameworks/Baikal/Framework.php new file mode 100755 index 0000000..5959680 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/Baikal/Framework.php @@ -0,0 +1,97 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project is free software; you can redistribute it +* and/or modify it under the terms of the GNU General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace Baikal; + +class Framework extends \Flake\Core\Framework { + + public static function installTool() { + if(defined("BAIKAL_CONTEXT_INSTALL") && BAIKAL_CONTEXT_INSTALL === TRUE) { + return; + } else { + $sInstallToolUrl = PROJECT_URI . "admin/install/"; + header("Location: " . $sInstallToolUrl); + exit(0); + } + } + + public static function bootstrap() { + + # Registering Baikal classloader + define("BAIKAL_PATH_FRAMEWORKROOT", dirname(__FILE__) . "/"); + require_once(BAIKAL_PATH_FRAMEWORKROOT . '/Core/ClassLoader.php'); + \Baikal\Core\ClassLoader::register(); + + \Baikal\Core\Tools::assertEnvironmentIsOk(); + \Baikal\Core\Tools::configureEnvironment(); + + # Check that a config file exists + if( + !file_exists(PROJECT_PATH_SPECIFIC . "config.php") || + !file_exists(PROJECT_PATH_SPECIFIC . "config.system.php") + ) { + self::installTool(); + } else { + require_once(PROJECT_PATH_SPECIFIC . "config.php"); + require_once(PROJECT_PATH_SPECIFIC . "config.system.php"); + date_default_timezone_set(BAIKAL_TIMEZONE); + + # Check that Baïkal is already configured + if(!defined("BAIKAL_CONFIGURED_VERSION")) { + self::installTool(); + + } else { + + # Check that running version matches configured version + if(version_compare(BAIKAL_VERSION, BAIKAL_CONFIGURED_VERSION) > 0) { + self::installTool(); + + } else { + + # Check that admin password is set + if(!defined("BAIKAL_ADMIN_PASSWORDHASH")) { + self::installTool(); + } + + \Baikal\Core\Tools::assertBaikalIsOk(); + + set_error_handler("\Baikal\Framework::exception_error_handler"); + + unset($bShouldCheckEnv); + + # SabreDAV Autoloader + require_once(BAIKAL_PATH_SABREDAV . 'autoload.php'); + } + } + } + + } + + # Mapping PHP errors to exceptions; needed by SabreDAV + function exception_error_handler($errno, $errstr, $errfile, $errline) { + throw new \ErrorException($errstr, 0, $errno, $errfile, $errline); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/AddressBook.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/AddressBook.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/AddressBook/Contact.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/AddressBook/Contact.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Calendar.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Calendar.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Calendar/Event.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Calendar/Event.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/Standard.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/Standard.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/System.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/System.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Principal.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Principal.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/User.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/User.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Dashboard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Dashboard.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/AdminPassword.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/AdminPassword.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/Initialize.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/Initialize.php old mode 100644 new mode 100755 index 86d5246..2dc0192 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/Initialize.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/Initialize.php @@ -35,8 +35,13 @@ class Initialize extends \Flake\Core\Controller { public function __construct() { parent::__construct(); + # Assert that /Specific is writable + if(!file_exists(PROJECT_PATH_SPECIFIC) || !is_dir(PROJECT_PATH_SPECIFIC) || !is_writable(PROJECT_PATH_SPECIFIC)) { + throw new \Flake\Core\DocumentedException("specificreadonly"); + } + $this->createDefaultConfigFilesIfNeeded(); - $this->oModel = new \Baikal\Model\Config\Standard(BAIKAL_PATH_SPECIFIC . "config.php"); + $this->oModel = new \Baikal\Model\Config\Standard(PROJECT_PATH_SPECIFIC . "config.php"); # Assert that config file is writable if(!$this->oModel->writable()) { @@ -53,7 +58,7 @@ class Initialize extends \Flake\Core\Controller { $this->oForm->execute(); if($this->oForm->persisted()) { - $sContent = file_get_contents(BAIKAL_PATH_SPECIFIC . "config.system.php"); + $sContent = file_get_contents(PROJECT_PATH_SPECIFIC . "config.system.php"); $sBaikalVersion = BAIKAL_VERSION; $sEncryptionKey = md5(microtime() . rand()); @@ -68,7 +73,7 @@ define("BAIKAL_CONFIGURED_VERSION", "{$sBaikalVersion}"); PHP; # Writing results to file - file_put_contents(BAIKAL_PATH_SPECIFIC . "config.system.php", $sContent . "\n\n" . $sNewConstants); + file_put_contents(PROJECT_PATH_SPECIFIC . "config.system.php", $sContent . "\n\n" . $sNewConstants); } } } @@ -85,7 +90,7 @@ PHP; HTML; if($this->oForm->persisted()) { - $sHtml .= "

Baïkal is now configured. You may now Access the Baïkal admin"; + $sHtml .= "

Baïkal is now configured. You may now Access the Baïkal admin"; } else { # Display the config form @@ -96,25 +101,25 @@ HTML; } protected function tagConfiguredVersion() { - file_put_contents(BAIKAL_PATH_SPECIFIC . "config.php", $sContent); + file_put_contents(PROJECT_PATH_SPECIFIC . "config.php", $sContent); } protected function createDefaultConfigFilesIfNeeded() { # Create empty config.php if needed - if(!file_exists(BAIKAL_PATH_SPECIFIC . "config.php")) { - @touch(BAIKAL_PATH_SPECIFIC . "config.php"); + if(!file_exists(PROJECT_PATH_SPECIFIC . "config.php")) { + @touch(PROJECT_PATH_SPECIFIC . "config.php"); $sContent = "getDefaultConfig(); - file_put_contents(BAIKAL_PATH_SPECIFIC . "config.php", $sContent); + file_put_contents(PROJECT_PATH_SPECIFIC . "config.php", $sContent); } # Create empty config.system.php if needed - if(!file_exists(BAIKAL_PATH_SPECIFIC . "config.system.php")) { - @touch(BAIKAL_PATH_SPECIFIC . "config.system.php"); + if(!file_exists(PROJECT_PATH_SPECIFIC . "config.system.php")) { + @touch(PROJECT_PATH_SPECIFIC . "config.system.php"); $sContent = "getDefaultSystemConfig(); - file_put_contents(BAIKAL_PATH_SPECIFIC . "config.system.php", $sContent); + file_put_contents(PROJECT_PATH_SPECIFIC . "config.system.php", $sContent); } } @@ -163,16 +168,16 @@ define("BAIKAL_STANDALONE_ALLOWED", FALSE); define("BAIKAL_STANDALONE_PORT", 8888); # PATH to SabreDAV -define("BAIKAL_PATH_SABREDAV", BAIKAL_PATH_FRAMEWORKS . "SabreDAV/lib/Sabre/"); +define("BAIKAL_PATH_SABREDAV", PROJECT_PATH_FRAMEWORKS . "SabreDAV/lib/Sabre/"); # If you change this value, you'll have to re-generate passwords for all your users define("BAIKAL_AUTH_REALM", "BaikalDAV"); # Should begin and end with a "/" -define("BAIKAL_CARD_BASEURI", BAIKAL_BASEURI . "card.php/"); +define("BAIKAL_CARD_BASEURI", PROJECT_BASEURI . "card.php/"); # Should begin and end with a "/" -define("BAIKAL_CAL_BASEURI", BAIKAL_BASEURI . "cal.php/"); +define("BAIKAL_CAL_BASEURI", PROJECT_BASEURI . "cal.php/"); CODE; $sCode = trim($sCode); return $sCode; diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/VersionUpgrade.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/VersionUpgrade.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Install.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Install.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/Standard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/Standard.php old mode 100644 new mode 100755 index d9c2dbc..c6271d1 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/Standard.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/Standard.php @@ -30,7 +30,7 @@ class Standard extends \Flake\Core\Controller { public function __construct() { parent::__construct(); - $this->oModel = new \Baikal\Model\Config\Standard(BAIKAL_PATH_SPECIFIC . "config.php"); + $this->oModel = new \Baikal\Model\Config\Standard(PROJECT_PATH_SPECIFIC . "config.php"); # Assert that config file is writable if(!$this->oModel->writable()) { diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/System.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/System.php old mode 100644 new mode 100755 index 8063a90..dd0f887 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/System.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/System.php @@ -30,7 +30,7 @@ class System extends \Flake\Core\Controller { public function __construct() { parent::__construct(); - $this->oModel = new \Baikal\Model\Config\System(BAIKAL_PATH_SPECIFIC . "config.system.php"); + $this->oModel = new \Baikal\Model\Config\System(PROJECT_PATH_SPECIFIC . "config.system.php"); # Assert that config file is writable if(!$this->oModel->writable()) { diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/AddressBooks.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/AddressBooks.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/Calendars.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/Calendars.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Users.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Users.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Auth.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Auth.php old mode 100644 new mode 100755 index 7f52b15..e23d88e --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Auth.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Auth.php @@ -44,7 +44,7 @@ class Auth { } $bLocked = TRUE; - $sEnableFile = BAIKAL_PATH_SPECIFIC . "ENABLE_ADMIN"; + $sEnableFile = PROJECT_PATH_SPECIFIC . "ENABLE_ADMIN"; if(file_exists($sEnableFile)) { clearstatcache(); diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/ClassLoader.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/ClassLoader.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/View.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/View.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Bootstrap.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Framework.php old mode 100644 new mode 100755 similarity index 57% rename from CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Bootstrap.php rename to CoreVersions/0.2.0/Frameworks/BaikalAdmin/Framework.php index a544041..2379bb1 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Bootstrap.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Framework.php @@ -24,21 +24,23 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -define("BAIKALADMIN_PATH_ROOT", dirname(dirname(__FILE__)) . "/"); +namespace BaikalAdmin; -# Bootstrap Baïkal Core -require_once(dirname(dirname(dirname(__FILE__))) . "/Baikal/Core/Bootstrap.php"); # ../../, symlink-safe +class Framework extends \Flake\Core\Framework { + + public static function bootstrap() { + define("BAIKALADMIN_PATH_ROOT", dirname(__FILE__) . "/"); # ./ + + \Baikal\Framework::bootstrap(); + \Formal\Framework::bootstrap(); -# Bootstrap Formal -require_once(dirname(dirname(dirname(__FILE__))) . "/Formal/Core/Bootstrap.php"); + # Registering BaikalAdmin classloader + require_once(BAIKALADMIN_PATH_ROOT . '/Core/ClassLoader.php'); + \BaikalAdmin\Core\ClassLoader::register(); + + $GLOBALS["ROUTER"]::setURIPath("admin/"); -# Registering BaikalAdmin classloader -require_once(dirname(__FILE__) . '/ClassLoader.php'); -\BaikalAdmin\Core\ClassLoader::register(); - -# Relative to BAIKAL_URI; so that BAIKAL_URI . BAIKALADMIN_URIPATH corresponds to the full URL to Baïkal admin -define("BAIKALADMIN_URIPATH", "admin/"); -$GLOBALS["ROUTER"]::setURIPath(BAIKALADMIN_URIPATH); - -# Include BaikalAdmin Framework config -require_once(BAIKALADMIN_PATH_ROOT . "config.php"); \ No newline at end of file + # Include BaikalAdmin Framework config + require_once(BAIKALADMIN_PATH_ROOT . "config.php"); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Model/Install.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Model/Install.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyph-dark.png b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyph-dark.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyph2x-dark.png b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyph2x-dark.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyphpro-2x.css b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyphpro-2x.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyphpro.css b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyphpro.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/test-glyphpro2x.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/test-glyphpro2x.html old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Strings/EN/Exceptions.json b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Strings/EN/Exceptions.json new file mode 100755 index 0000000..4eb7c3f --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Strings/EN/Exceptions.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/AddressBooks/Listing.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/AddressBooks/Listing.html old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Calendars/Listing.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Calendars/Listing.html old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/index.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/index.html old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/page-bg-light.png b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/page-bg-light.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/page-bg.png b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/page-bg.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/style.css b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/style.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Users/Listing.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Users/Listing.html old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Dashboard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Dashboard.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Install.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Install.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Settings/Standard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Settings/Standard.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Settings/System.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Settings/System.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/User/AddressBooks.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/User/AddressBooks.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/User/Calendars.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/User/Calendars.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Users.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Users.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/AddressBooks/Listing.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/AddressBooks/Listing.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Calendars/Listing.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Calendars/Listing.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Users/Listing.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Users/Listing.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/index.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/index.php old mode 100644 new mode 100755 index 70d5e83..e099170 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/index.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/index.php @@ -26,13 +26,16 @@ ini_set("display_errors", 1); error_reporting(E_ALL); -define("BAIKAL_CONTEXT_BASEURI", "/admin/"); +define("PROJECT_CONTEXT_BASEURI", "/admin/"); define("BAIKAL_CONTEXT", TRUE); define("BAIKAL_CONTEXT_ADMIN", TRUE); +# Bootstrap Flake +require_once(dirname(dirname(dirname(__FILE__))) . "/Flake/Core/Bootstrap.php"); # ../../ + # Bootstrap BaikalAdmin -require_once(dirname(dirname(__FILE__)) . "/Core/Bootstrap.php"); # ../ +\BaikalAdmin\Framework::bootstrap(); # Evaluate assertions \BaikalAdmin\Core\Auth::assertEnabled(); @@ -42,7 +45,7 @@ require_once(dirname(dirname(__FILE__)) . "/Core/Bootstrap.php"); # ../ $oPage = new \Flake\Controller\Page(BAIKALADMIN_PATH_TEMPLATES . "Page/index.html"); $oPage->injectHTTPHeaders(); $oPage->setTitle("Baïkal Web Admin"); -$oPage->setBaseUrl(BAIKAL_URI); +$oPage->setBaseUrl(PROJECT_URI); $oPage->zone("navbar")->addBlock(new \BaikalAdmin\Controller\Navigation\Topbar()); diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/install/index.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/install/index.php old mode 100644 new mode 100755 index 21c5f60..a610846 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/install/index.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/install/index.php @@ -26,13 +26,16 @@ ini_set("display_errors", 1); error_reporting(E_ALL); -define("BAIKAL_CONTEXT_BASEURI", "/admin/install/"); +define("PROJECT_CONTEXT_BASEURI", "/admin/install/"); define("BAIKAL_CONTEXT", TRUE); define("BAIKAL_CONTEXT_INSTALL", TRUE); +# Bootstrap Flake +require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/Flake/Core/Bootstrap.php"); # ../../../ + # Bootstrap BaikalAdmin -require_once(dirname(dirname(dirname(__FILE__))) . "/Core/Bootstrap.php"); # ../../ +\BaikalAdmin\Framework::bootstrap(); # Evaluate assertions \BaikalAdmin\Core\Auth::assertUnlocked(); @@ -41,7 +44,7 @@ require_once(dirname(dirname(dirname(__FILE__))) . "/Core/Bootstrap.php"); # ../ $oPage = new \Flake\Controller\Page(BAIKALADMIN_PATH_TEMPLATES . "Page/index.html"); $oPage->injectHTTPHeaders(); $oPage->setTitle("Baïkal Maintainance"); -$oPage->setBaseUrl(BAIKAL_URI); +$oPage->setBaseUrl(PROJECT_URI); $oPage->zone("navbar")->addBlock(new \BaikalAdmin\Controller\Navigation\Topbar\Install()); diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/config.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/config.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/Bootstrap.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/Bootstrap.php index 9f12d54..4f65cd5 100755 --- a/CoreVersions/0.2.0/Frameworks/Flake/Core/Bootstrap.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/Bootstrap.php @@ -24,6 +24,14 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ +# Asserting PHP 5.3.0+ +if(version_compare(PHP_VERSION, '5.3.0', '<')) { + die('Flake Fatal Error: Flake requires PHP 5.3.0+ to run properly. Your version is: ' . PHP_VERSION . '.'); +} + +# Define absolute server path to Flake Framework +define("FLAKE_PATH_ROOT", dirname(dirname(__FILE__)) . "/"); # ../ + if(!defined('LF')) { define('LF', chr(10)); } @@ -38,28 +46,77 @@ if(array_key_exists("SERVER_NAME", $_SERVER) && $_SERVER["SERVER_NAME"] === "mon define("MONGOOSE_SERVER", FALSE); } -define("FLAKE_PATH_ROOT", dirname(dirname(__FILE__)) . "/"); # ../ - # Display errors messages, except notices #ini_set("display_errors", 1); #ini_set("error_reporting", E_ALL & ~E_NOTICE); -if(!function_exists("appendSlash")) { - function appendSlash($sPath) { - if($sPath{strlen($sPath) - 1} !== "/") { - $sPath .= "/"; - } - - return $sPath; +function rmBeginSlash($sString) { + if(substr($sString, 0, 1) === "/") { + $sString = substr($sString, 1); } + + return $sString; } +function rmEndSlash($sString) { + if(substr($sString, -1) === "/") { + $sString = substr($sString, 0, -1); + } + + return $sString; +} + +function appendSlash($sString) { + if(substr($sString, -1) !== "/") { + $sString .= "/"; + } + + return $sString; +} + +function prependSlash($sString) { + if(substr($sString, 0, 1) !== "/") { + $sString = "/" . $sString; + } + + return $sString; +} if(!function_exists("debug")) { function debug($mVar, $sHeader=0) { \Flake\Util\Tools::debug($mVar, $sHeader); } } +################################################################################################# + +# determine Flake install root path +# not using realpath here to avoid symlinks resolution + +define("PROJECT_PATH_ROOT", dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))) . "/"); # ../../../../../ +define("PROJECT_PATH_CORE", PROJECT_PATH_ROOT . "Core/"); +define("PROJECT_PATH_SPECIFIC", PROJECT_PATH_ROOT . "Specific/"); +define("PROJECT_PATH_FRAMEWORKS", PROJECT_PATH_CORE . "Frameworks/"); +define("PROJECT_PATH_WWWROOT", PROJECT_PATH_CORE . "WWWRoot/"); + +# Define path to Baïkal SQLite file +define("PROJECT_SQLITE_FILE", PROJECT_PATH_SPECIFIC . "db/baikal.sqlite"); + +define("PROJECT_SAFEHASH_SALT", "une-clef-super-secrete"); + +require_once(PROJECT_PATH_CORE . "Distrib.php"); + +# Determine PROJECT_URI +$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"])); +$sDirName = appendSlash(dirname($sScript)); +$sBaseUrl = appendSlash(substr($sDirName, 0, -1 * strlen(PROJECT_CONTEXT_BASEURI))); +$aParts = explode("/", $_SERVER["SERVER_PROTOCOL"]); +$sProtocol = strtolower(array_shift($aParts)); +define("PROJECT_BASEURI", $sBaseUrl); +define("PROJECT_URI", $sProtocol . "://" . rmEndSlash($_SERVER["HTTP_HOST"]) . $sBaseUrl); +unset($sScript); unset($sDirName); unset($sBaseUrl); unset($sProtocol); unset($aParts); + +################################################################################################# + require_once(FLAKE_PATH_ROOT . 'Core/ClassLoader.php'); \Flake\Core\ClassLoader::register(); @@ -77,13 +134,13 @@ if(!\Flake\Util\Tools::isCliPhp()) { setlocale(LC_ALL, FLAKE_LOCALE); date_default_timezone_set(FLAKE_TIMEZONE); -if(defined("FLAKE_DB_FILEPATH") && file_exists(FLAKE_DB_FILEPATH) && is_readable(FLAKE_DB_FILEPATH) && !isset($GLOBALS["DB"])) { - $GLOBALS["DB"] = new \Flake\Core\Database\Sqlite(FLAKE_DB_FILEPATH); +if(defined("PROJECT_SQLITE_FILE") && file_exists(PROJECT_SQLITE_FILE) && is_readable(PROJECT_SQLITE_FILE) && !isset($GLOBALS["DB"])) { + $GLOBALS["DB"] = new \Flake\Core\Database\Sqlite(PROJECT_SQLITE_FILE); } $GLOBALS["TEMPLATESTACK"] = array(); -$aUrlInfo = parse_url(FLAKE_URI); +$aUrlInfo = parse_url(PROJECT_URI); define("FLAKE_DOMAIN", $_SERVER["HTTP_HOST"]); define("FLAKE_URIPATH", \Flake\Util\Tools::stripBeginSlash($aUrlInfo["path"])); unset($aUrlInfo); \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/ClassLoader.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/ClassLoader.php index 12d70b9..55a5b30 100755 --- a/CoreVersions/0.2.0/Frameworks/Flake/Core/ClassLoader.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/ClassLoader.php @@ -34,34 +34,50 @@ class ClassLoader { public static function loadClass($sFullClassName) { + $sClassPath = FALSE; + $aParts = explode("\\", $sFullClassName); if(count($aParts) === 1) { return; } - if($aParts[0] !== "Flake" && $aParts[0] !== "Specific" && $aParts[0] !== "Frameworks") { + # Extracting the Radical + $sRadical = $aParts[0]; + + if(in_array($sRadical, array("Flake", "Specific", "Frameworks"))) { + + if($sRadical === "Flake") { + $sRootPath = FLAKE_PATH_ROOT; + } elseif($sRadical === "Specific") { + $sRootPath = FLAKE_PATH_SPECIFIC; + } else { + $sRootPath = PROJECT_PATH_FRAMEWORKS; + } + + # Stripping radical + array_shift($aParts); + + # Classname is the last part + $sClassName = array_pop($aParts); + + # Path to class + $sClassPath = $sRootPath . implode("/", $aParts) . "/" . $sClassName . ".php"; + + } elseif(count($aParts) > 1) { + if($aParts[1] === "Framework") { + # It must be a Flake Framework + $sClassPath = PROJECT_PATH_FRAMEWORKS . $sRadical . "/Framework.php"; + } + } + + if($sClassPath === FALSE) { return; } - - // ejecting the Radical - $sRadical = array_shift($aParts); - - if($sRadical === "Flake") { - $sRootPath = FLAKE_PATH_ROOT; - } elseif($sRadical === "Specific") { - $sRootPath = FLAKE_PATH_SPECIFIC; # When prefix does not point another namespaced framework, we use "Specific" - } elseif($sRadical === "Frameworks") { - $sRootPath = FLAKE_PATH_FRAMEWORKS; - } - - $sClassName = array_pop($aParts); - $sBasePath = $sRootPath . implode("/", $aParts) . "/"; - $sClassPath = $sBasePath . $sClassName . ".php"; if(file_exists($sClassPath) && is_readable($sClassPath)) { require_once($sClassPath); } else { - echo '

PHP Autoload Error. Cannot find ' . $sFullClassName . '

'; + echo '

PHP Autoload Error. Cannot find ' . $sFullClassName . ' in ' . $sClassPath . '

'; echo "
" . print_r(debug_backtrace(), TRUE) . "
"; die(); } diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/DocumentedException.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/DocumentedException.php new file mode 100755 index 0000000..f31be68 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/DocumentedException.php @@ -0,0 +1,83 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project is free software; you can redistribute it +* and/or modify it under the terms of the GNU General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace Flake\Core; + +class DocumentedException extends \Exception { + + protected $aMarkers = array(); + + # Redefine the exception signature + public function __construct($message, $aMarkers = array()) { + $this->aMarkers = $aMarkers; + parent::__construct($message, 0, null); + } + + # custom string representation of object + public function __toString() { + $aDoc = $this->getDocumentation(); + debug($aDoc); + return "" . htmlspecialchars($this->message) . ""; + } + + protected function getSoftrefPath() { + $sSoftRef = $this->getMessage(); + $aTrace = $this->getTrace(); + + if($sSoftRef{0} === "\\") { + # An absolute softref has been given + return $sSoftRef; + } + + if(isset($aTrace[0]["class"])) { + return "\\" . $aTrace[0]["class"] . "#" . $sSoftRef; + } + + return $sSoftRef; + } + + protected function getDocumentation() { + # Determine the documentation softref + $sSoftRefPath = $this->getSoftrefPath(); + return $sSoftRefPath; + + /* + $aParts = explode("#", \Flake\Util\Tools::trimStrings($sSoftRefPath, "\\")); + + $aSegments = explode("\\", $aParts[0]); + $sKey = $aParts[1]; + + # Is it a Framework ? + if(\Flake\Util\Frameworks::isAFramework($aSegments[0])) { + $sPath = \Flake\Util\Frameworks::getPath($aSegments[0]); + die($sPath); + } + + debug($aParts); + return $sSoftRefPath; + */ + } +} diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Core/Bootstrap.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/Framework.php old mode 100644 new mode 100755 similarity index 83% rename from CoreVersions/0.2.0/Frameworks/Formal/Core/Bootstrap.php rename to CoreVersions/0.2.0/Frameworks/Flake/Core/Framework.php index ed02d22..8816fea --- a/CoreVersions/0.2.0/Frameworks/Formal/Core/Bootstrap.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/Framework.php @@ -24,8 +24,8 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -define("FORMAL_PATH_ROOT", dirname(dirname(__FILE__)) . "/"); +namespace Flake\Core; -# Registering BaikalAdmin classloader -require_once(dirname(__FILE__) . '/ClassLoader.php'); -\Formal\Core\ClassLoader::register(); \ No newline at end of file +class Framework extends \Flake\Core\FLObject { + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Util/Frameworks.php b/CoreVersions/0.2.0/Frameworks/Flake/Util/Frameworks.php old mode 100644 new mode 100755 index e6d2e30..170b93f --- a/CoreVersions/0.2.0/Frameworks/Flake/Util/Frameworks.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Util/Frameworks.php @@ -30,7 +30,26 @@ class Frameworks extends \Flake\Core\FLObject { private function __construct() { # private constructor to force static class } + public function isAFramework($sName) { + $sName = trim(\Flake\Util\Tools::trimSlashes($sName)); + if($sName === "" || $sName === "." || $sName === "..") { + return FALSE; + } + + $sFrameworkPath = PROJECT_PATH_FRAMEWORKS . $sName; + return file_exists($sFrameworkPath) && is_dir($sFrameworkPath); + } + public static function enabled($sFramework) { return FALSE; } + + # TODO: Create a 'Framework' Model + public function getPath($sName) { + if(self::isAFramework($sName)) { + throw new \Flake\Core\DocumentedException("notaframework", $sName); + } + + return \Flake\Util\Tools::appendSlash(PROJECT_PATH_FRAMEWORKS . $sName); + } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Util/Router/QuestionMarkRewrite.php b/CoreVersions/0.2.0/Frameworks/Flake/Util/Router/QuestionMarkRewrite.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Util/Tools.php b/CoreVersions/0.2.0/Frameworks/Flake/Util/Tools.php index 0a0e0e9..0620df4 100755 --- a/CoreVersions/0.2.0/Frameworks/Flake/Util/Tools.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Util/Tools.php @@ -65,7 +65,7 @@ class Tools extends \Flake\Core\FLObject { } public static function serverToRelativeWebPath($sAbsPath) { - return "/" . str_replace(FLAKE_PATH_WWWROOT, "", $sAbsPath); + return "/" . str_replace(PROJECT_PATH_WWWROOT, "", $sAbsPath); } public static function view_array($array_in) { @@ -192,7 +192,7 @@ class Tools extends \Flake\Core\FLObject { } public static function safelock($sString) { - return substr(md5(FLAKE_SAFEHASH_SALT . ":" . $sString), 0, 5); + return substr(md5(PROJECT_SAFEHASH_SALT . ":" . $sString), 0, 5); } public static function redirect($sUrl) { @@ -568,42 +568,65 @@ TEST; return $_SERVER['HTTP_USER_AGENT']; } + ########### public static function appendSlash($sString) { - if(substr($sString, -1) !== "/") { - $sString .= "/"; - } - - return $sString; + return self::appendString($sString, "/"); } public static function prependSlash($sString) { - if(substr($sString, 0, 1) !== "/") { - $sString = "/" . $sString; - } - - return $sString; + return self::prependString($sString, "/"); } public static function stripBeginSlash($sString) { - if(substr($sString, 0, 1) === "/") { - $sString = substr($sString, 1); - } - - return $sString; + return self::stripBeginString($sString, "/"); } public static function stripEndSlash($sString) { - if(substr($sString, -1) === "/") { - $sString = substr($sString, 0, -1); - } - - return $sString; + return self::stripEndString($sString, "/"); } public static function trimSlashes($sString) { return self::stripBeginSlash(self::stripEndSlash($sString)); } + ########### + public static function appendString($sString, $sAppend) { + if(substr($sString, -1 * strlen($sAppend)) !== $sAppend) { + $sString .= $sAppend; + } + + return $sString; + } + + public static function prependString($sString, $sAppend) { + if(substr($sString, 0, 1 * strlen($sAppend)) !== $sAppend) { + $sString = $sAppend . $sString; + } + + return $sString; + } + + public static function stripBeginString($sString, $sAppend) { + if(substr($sString, 0, 1 * strlen($sAppend)) === $sAppend) { + $sString = substr($sString, strlen($sAppend)); + } + + return $sString; + } + + public static function stripEndString($sString, $sAppend) { + if(substr($sString, -1 * strlen($sAppend)) === $sAppend) { + $sString = substr($sString, 0, -1 * strlen($sAppend)); + } + + return $sString; + } + + public static function trimStrings($sString, $sAppend) { + return self::stripBeginString(self::stripEndString($sString, $sAppend), $sAppend); + } + ########### + public static function router() { return "\Flake\Util\Router\QuestionMarkRewrite"; } diff --git a/CoreVersions/0.2.0/Frameworks/Flake/config.php b/CoreVersions/0.2.0/Frameworks/Flake/config.php old mode 100644 new mode 100755 index 0e23890..67ab3ca --- a/CoreVersions/0.2.0/Frameworks/Flake/config.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/config.php @@ -24,12 +24,6 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -define("FLAKE_URI", BAIKAL_URI); -define("FLAKE_DB_FILEPATH", BAIKAL_SQLITE_FILE); -define("FLAKE_PATH_FRAMEWORKS", BAIKAL_PATH_FRAMEWORKS); -define("FLAKE_PATH_WWWROOT", BAIKAL_PATH_WWWROOT); - -define("FLAKE_SAFEHASH_SALT", "une-clef-super-secrete"); define("FLAKE_LOCALE", "fr_FR.UTF-8"); if(defined("BAIKAL_TIMEZONE")) { diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Core/ClassLoader.php b/CoreVersions/0.2.0/Frameworks/Formal/Core/ClassLoader.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Core/Message.php b/CoreVersions/0.2.0/Frameworks/Formal/Core/Message.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element.php b/CoreVersions/0.2.0/Frameworks/Formal/Element.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element/Checkbox.php b/CoreVersions/0.2.0/Frameworks/Formal/Element/Checkbox.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element/Listbox.php b/CoreVersions/0.2.0/Frameworks/Formal/Element/Listbox.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element/Password.php b/CoreVersions/0.2.0/Frameworks/Formal/Element/Password.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element/Text.php b/CoreVersions/0.2.0/Frameworks/Formal/Element/Text.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Form.php b/CoreVersions/0.2.0/Frameworks/Formal/Form.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Form/Morphology.php b/CoreVersions/0.2.0/Frameworks/Formal/Form/Morphology.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Framework.php b/CoreVersions/0.2.0/Frameworks/Formal/Framework.php new file mode 100755 index 0000000..ce34fd4 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/Formal/Framework.php @@ -0,0 +1,37 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project is free software; you can redistribute it +* and/or modify it under the terms of the GNU General Public +* License as published by the Free Software Foundation; either +* version 2 of the License, or (at your option) any later version. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace Formal; + +class Framework extends \Flake\Core\Framework { + + public static function bootstrap() { + define("FORMAL_PATH_ROOT", dirname(__FILE__) . "/"); + + require_once(dirname(__FILE__) . '/Core/ClassLoader.php'); + \Formal\Core\ClassLoader::register(); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Colorize.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Colorize.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.cli.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.cli.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.html.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.html.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/TabulatorColumn.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/TabulatorColumn.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap-responsive.css b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap-responsive.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap-responsive.min.css b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap-responsive.min.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap.css b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap.min.css b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap.min.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings-orig.png b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings-orig.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings-white.png b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings-white.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings.png b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap-popover.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap-popover.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap-tooltip.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap-tooltip.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap.min.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap.min.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/jquery-1.7.1.min.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/jquery-1.7.1.min.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Resources/Web/README.md b/CoreVersions/0.2.0/Resources/Web/README.md old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Scripts/adminpassword.php b/CoreVersions/0.2.0/Scripts/adminpassword.php index dab0494..961ddb1 100755 --- a/CoreVersions/0.2.0/Scripts/adminpassword.php +++ b/CoreVersions/0.2.0/Scripts/adminpassword.php @@ -34,7 +34,7 @@ require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/Core/Frameworks/Ba # Bootstraping BaikalAdmin require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/Core/Frameworks/BaikalAdmin/Core/Bootstrap.php"); # ../../../ -$sConfigFile = BAIKAL_PATH_SPECIFIC . "config.php"; +$sConfigFile = PROJECT_PATH_SPECIFIC . "config.php"; if(!file_exists($sConfigFile)) { die("Specific/config.php is does not exist. Aborting, cannot modify admin password."); diff --git a/CoreVersions/0.2.0/WWWRoot/cal.php b/CoreVersions/0.2.0/WWWRoot/cal.php index 4b03ef0..a5077ed 100755 --- a/CoreVersions/0.2.0/WWWRoot/cal.php +++ b/CoreVersions/0.2.0/WWWRoot/cal.php @@ -25,7 +25,7 @@ ***************************************************************/ define("BAIKAL_CONTEXT", TRUE); -define("BAIKAL_CONTEXT_BASEURI", "/"); +define("PROJECT_CONTEXT_BASEURI", "/"); # Bootstraping Baikal require_once(dirname(dirname(__FILE__)) . "/Frameworks/Baikal/Core/Bootstrap.php"); diff --git a/CoreVersions/0.2.0/WWWRoot/card.php b/CoreVersions/0.2.0/WWWRoot/card.php index 701cbe7..bdb7282 100755 --- a/CoreVersions/0.2.0/WWWRoot/card.php +++ b/CoreVersions/0.2.0/WWWRoot/card.php @@ -25,7 +25,7 @@ ***************************************************************/ define("BAIKAL_CONTEXT", TRUE); -define("BAIKAL_CONTEXT_BASEURI", "/"); +define("PROJECT_CONTEXT_BASEURI", "/"); # Bootstraping Baikal require_once(dirname(dirname(__FILE__)) . "/Frameworks/Baikal/Core/Bootstrap.php"); diff --git a/CoreVersions/0.2.0/WWWRoot/index.php b/CoreVersions/0.2.0/WWWRoot/index.php index a7a64fc..bc3cec0 100755 --- a/CoreVersions/0.2.0/WWWRoot/index.php +++ b/CoreVersions/0.2.0/WWWRoot/index.php @@ -24,7 +24,7 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ define("BAIKAL_CONTEXT", TRUE); -define("BAIKAL_CONTEXT_BASEURI", "/"); +define("PROJECT_CONTEXT_BASEURI", "/"); # Bootstraping Baikal require_once(dirname(dirname(__FILE__)) . "/Frameworks/Baikal/Core/Bootstrap.php"); diff --git a/Specific/db/baikal.sqlite b/Specific/db/baikal.sqlite index 32253c2..a272785 100755 Binary files a/Specific/db/baikal.sqlite and b/Specific/db/baikal.sqlite differ diff --git a/html/.htaccess b/html/.htaccess old mode 100644 new mode 100755