Adding Container class instead of ChamiloSession

1.10.x
Julio Montoya 11 years ago
parent e2a3376165
commit 61e8062a33
  1. 5
      main/admin/user_list.php
  2. 4
      main/calendar/agenda_js.php
  3. 1
      main/inc/ajax/exercise.ajax.php
  4. 27
      main/inc/lib/api.lib.php
  5. 151
      main/inc/lib/chamilo_session.class.php
  6. 3
      main/inc/lib/display.lib.php
  7. 3
      main/inc/lib/formvalidator/Element/html_editor.php
  8. 7
      main/inc/lib/internationalization.lib.php
  9. 27
      src/Chamilo/CoreBundle/Controller/LegacyController.php
  10. 48
      src/Chamilo/CoreBundle/EventListener/LegacyListener.php
  11. 173
      src/Chamilo/CoreBundle/Framework/Application.php
  12. 145
      src/Chamilo/CoreBundle/Framework/Container.php
  13. 15
      src/Chamilo/CoreBundle/Framework/Legacy.php

@ -5,7 +5,8 @@
@author Julio Montoya <gugli100@gmail.com> BeezNest 2011 @author Julio Montoya <gugli100@gmail.com> BeezNest 2011
* @package chamilo.admin * @package chamilo.admin
*/ */
use ChamiloSession as Session; use Chamilo\CoreBundle\Framework\Container;
// name of the language file that needs to be included // name of the language file that needs to be included
$language_file = array ('registration','admin'); $language_file = array ('registration','admin');
$cidReset = true; $cidReset = true;
@ -410,7 +411,7 @@ function modify_filter($user_id, $url_params, $row) {
) )
) { ) {
if (!$user_is_anonymous) { if (!$user_is_anonymous) {
if (Session::getSecurity()->isGranted('ROLE_GLOBAL_ADMIN')) { if (Container::getSecurity()->isGranted('ROLE_GLOBAL_ADMIN')) {
// everything looks good, show "login as" link // everything looks good, show "login as" link
if ($user_id != $userId) { if ($user_id != $userId) {
$result .= '<a href="'.api_get_path(WEB_PUBLIC_PATH).'?_switch_user='.$row[5].'">'.Display::return_icon('login_as.gif', get_lang('LoginAs')).'</a>&nbsp;&nbsp;'; $result .= '<a href="'.api_get_path(WEB_PUBLIC_PATH).'?_switch_user='.$row[5].'">'.Display::return_icon('login_as.gif', get_lang('LoginAs')).'</a>&nbsp;&nbsp;';

@ -4,7 +4,7 @@
* @package chamilo.calendar * @package chamilo.calendar
*/ */
use \ChamiloSession as Session; use Chamilo\CoreBundle\Framework\Container;
// use anonymous mode when accessing this course tool // use anonymous mode when accessing this course tool
$use_anonymous = true; $use_anonymous = true;
@ -60,7 +60,7 @@ if (!empty($group_id)) {
} }
$app['title'] = get_lang('Agenda'); $app['title'] = get_lang('Agenda');
$tpl = Session::getTwig(); $tpl = Container::getTwig();
$tpl->addGlobal('use_google_calendar', 0); $tpl->addGlobal('use_google_calendar', 0);
$can_add_events = 0; $can_add_events = 0;

@ -9,6 +9,7 @@ require_once api_get_path(SYS_CODE_PATH).'exercice/question.class.php';
require_once api_get_path(SYS_CODE_PATH).'exercice/answer.class.php'; require_once api_get_path(SYS_CODE_PATH).'exercice/answer.class.php';
use \ChamiloSession as Session; use \ChamiloSession as Session;
use Chamilo\CoreBundle\Framework\Container;
api_protect_course_script(true); api_protect_course_script(true);

@ -12,6 +12,7 @@ use \ChamiloSession as Session;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
use Application\Sonata\UserBundle\Entity\User; use Application\Sonata\UserBundle\Entity\User;
use Chamilo\CoreBundle\Entity\Course; use Chamilo\CoreBundle\Entity\Course;
use Chamilo\CoreBundle\Framework\Container;
/** /**
* Constants declaration * Constants declaration
@ -617,8 +618,8 @@ function api_get_path($path_type, $path = null) {
// Default $_configuration['root_web'] configuration // Default $_configuration['root_web'] configuration
//$root_web = isset($_configuration['root_web']) ? $_configuration['root_web'] : $app['url_generator']; //$root_web = isset($_configuration['root_web']) ? $_configuration['root_web'] : $app['url_generator'];
$root_web = Session::getUrlGenerator()->generate('home'); //$_configuration['root_web']; $root_web = Container::getUrlGenerator()->generate('home'); //$_configuration['root_web'];
$rootDir = Session::getRootDir(); $rootDir = Container::getRootDir();
// Configuration data for already installed system. // Configuration data for already installed system.
$root_sys = $rootDir; $root_sys = $rootDir;
@ -659,10 +660,10 @@ function api_get_path($path_type, $path = null) {
$paths[SYS_PATH] = $root_sys; $paths[SYS_PATH] = $root_sys;
// Update data path to get it from config file if defined // Update data path to get it from config file if defined
$paths[SYS_DATA_PATH] = Session::getDataDir(); $paths[SYS_DATA_PATH] = Container::getDataDir();
$paths[SYS_LOG_PATH] = Session::getLogDir(); $paths[SYS_LOG_PATH] = Container::getLogDir();
$paths[SYS_CONFIG_PATH] = Session::getConfigDir(); $paths[SYS_CONFIG_PATH] = Container::getConfigDir();
$paths[SYS_COURSE_PATH] = Session::getCourseDir(); $paths[SYS_COURSE_PATH] = Container::getCourseDir();
$paths[SYS_DEFAULT_COURSE_DOCUMENT_PATH] = $paths[SYS_DATA_PATH].'default_course_document/'; $paths[SYS_DEFAULT_COURSE_DOCUMENT_PATH] = $paths[SYS_DATA_PATH].'default_course_document/';
@ -689,7 +690,7 @@ function api_get_path($path_type, $path = null) {
// Now we can switch into api_get_path() "terminology". // Now we can switch into api_get_path() "terminology".
$paths[SYS_LANG_PATH] = $paths[SYS_CODE_PATH].$paths[SYS_LANG_PATH]; $paths[SYS_LANG_PATH] = $paths[SYS_CODE_PATH].$paths[SYS_LANG_PATH];
$paths[SYS_PLUGIN_PATH] = $paths[SYS_PATH].$paths[SYS_PLUGIN_PATH]; $paths[SYS_PLUGIN_PATH] = $paths[SYS_PATH].$paths[SYS_PLUGIN_PATH];
$paths[SYS_ARCHIVE_PATH] = Session::getTempDir(); $paths[SYS_ARCHIVE_PATH] = Container::getTempDir();
$paths[SYS_TEST_PATH] = $paths[SYS_PATH].$paths[SYS_TEST_PATH]; $paths[SYS_TEST_PATH] = $paths[SYS_PATH].$paths[SYS_TEST_PATH];
$paths[SYS_TEMPLATE_PATH] = $paths[SYS_CODE_PATH].$paths[SYS_TEMPLATE_PATH]; $paths[SYS_TEMPLATE_PATH] = $paths[SYS_CODE_PATH].$paths[SYS_TEMPLATE_PATH];
$paths[SYS_CSS_PATH] = $paths[SYS_PATH].$paths[SYS_CSS_PATH]; $paths[SYS_CSS_PATH] = $paths[SYS_PATH].$paths[SYS_CSS_PATH];
@ -2198,7 +2199,7 @@ function api_get_self() {
*/ */
function api_is_platform_admin($allow_sessions_admins = false) function api_is_platform_admin($allow_sessions_admins = false)
{ {
$security = Session::getSecurity(); $security = Container::getSecurity();
if ($security) { if ($security) {
$token = $security->getToken(); $token = $security->getToken();
@ -2221,7 +2222,7 @@ function api_is_platform_admin($allow_sessions_admins = false)
*/ */
function api_is_question_manager() function api_is_question_manager()
{ {
$security = Session::getSecurity(); $security = Container::getSecurity();
$token = $security->getToken(); $token = $security->getToken();
if (!empty($token)) { if (!empty($token)) {
if ($security->isGranted('ROLE_QUESTION_MANAGER')) { if ($security->isGranted('ROLE_QUESTION_MANAGER')) {
@ -2238,7 +2239,7 @@ function api_is_question_manager()
*/ */
function api_is_session_admin() function api_is_session_admin()
{ {
$security = Session::getSecurity(); $security = Container::getSecurity();
$token = $security->getToken(); $token = $security->getToken();
if (!empty($token)) { if (!empty($token)) {
if ($security->isGranted('ROLE_SESSION_MANAGER')) { if ($security->isGranted('ROLE_SESSION_MANAGER')) {
@ -2253,7 +2254,7 @@ function api_is_session_admin()
* @return boolean True if current user is a human resources manager * @return boolean True if current user is a human resources manager
*/ */
function api_is_drh() { function api_is_drh() {
$security = Session::getSecurity(); $security = Container::getSecurity();
$token = $security->getToken(); $token = $security->getToken();
if (!empty($token)) { if (!empty($token)) {
if ($security->isGranted('ROLE_RRHH')) { if ($security->isGranted('ROLE_RRHH')) {
@ -2268,7 +2269,7 @@ function api_is_drh() {
* @return boolean True if current user is a human resources manager * @return boolean True if current user is a human resources manager
*/ */
function api_is_student() { function api_is_student() {
$security = Session::getSecurity(); $security = Container::getSecurity();
$token = $security->getToken(); $token = $security->getToken();
if (!empty($token)) { if (!empty($token)) {
if ($security->isGranted('ROLE_STUDENT')) { if ($security->isGranted('ROLE_STUDENT')) {
@ -2283,7 +2284,7 @@ function api_is_student() {
* @return boolean True if current user is a human resources manager * @return boolean True if current user is a human resources manager
*/ */
function api_is_teacher() { function api_is_teacher() {
$security = Session::getSecurity(); $security = Container::getSecurity();
$token = $security->getToken(); $token = $security->getToken();
if (!empty($token)) { if (!empty($token)) {
if ($security->isGranted('ROLE_TEACHER')) { if ($security->isGranted('ROLE_TEACHER')) {

@ -1,138 +1,12 @@
<?php <?php
use Chamilo\CoreBundle\Framework\Container;
/** /**
* ChamiloSession class * ChamiloSession class
*/ */
class ChamiloSession class ChamiloSession
{ {
public static $session;
public static $configuration;
public static $urlGenerator;
public static $security;
public static $translator;
public static $rootDir;
public static $logDir;
public static $tempDir;
public static $dataDir;
public static $courseDir;
public static $configDir;
public static $assets;
public static $htmlEditor;
public static $twig;
/**
* @return string
*/
public static function getConfigDir()
{
return self::$configDir;
}
/**
* @return string
*/
public static function getLogDir()
{
return self::$logDir;
}
/**
* @return string
*/
public static function getTempDir()
{
return self::$tempDir;
}
/**
* @return string
*/
public static function getRootDir()
{
return self::$rootDir;
}
/**
* @return string
*/
public static function getDataDir()
{
return self::$dataDir;
}
/**
* @return string
*/
public static function getCourseDir()
{
return self::$courseDir;
}
/**
* @return Twig_Environment
*/
public static function getTwig()
{
return self::$twig;
}
/**
* @return Chamilo\CoreBundle\Component\Editor\Editor
*/
public static function getHtmlEditor()
{
return self::$htmlEditor;
}
/**
* @return Symfony\Component\Routing\Generator\UrlGeneratorInterface
*/
public static function getUrlGenerator()
{
return self::$urlGenerator;
}
/**
* @return Symfony\Component\HttpFoundation\Session\SessionInterface;
*/
public static function getSession()
{
return self::$session;
}
/**
* @return Symfony\Component\Security\Core\SecurityContextInterface
*/
public static function getSecurity()
{
return self::$security;
}
/**
* @return Symfony\Bundle\FrameworkBundle\Translation\Translator
*/
public static function getTranslator()
{
return self::$translator;
}
/**
* @param $session
*/
public static function setSession($session)
{
self::$session = $session;
}
/**
* @return Symfony\Component\Templating\Helper\CoreAssetsHelper
*/
public static function getAsset()
{
return self::$assets;
}
/** /**
* @param $variable * @param $variable
* @param null $default * @param null $default
@ -140,9 +14,10 @@ class ChamiloSession
*/ */
public static function read($variable, $default = null) public static function read($variable, $default = null)
{ {
$session = Container::getSession();
$result = null; $result = null;
if (isset(self::$session)) { if (isset($session)) {
$result = self::$session->get($variable); $result = $session->get($variable);
} }
// Check if the value exists in the $_SESSION array // Check if the value exists in the $_SESSION array
if (empty($result)) { if (empty($result)) {
@ -158,9 +33,10 @@ class ChamiloSession
*/ */
public static function write($variable, $value) public static function write($variable, $value)
{ {
$session = Container::getSession();
// Writing the session in 2 instances because // Writing the session in 2 instances because
$_SESSION[$variable] = $value; $_SESSION[$variable] = $value;
self::$session->set($variable, $value); $session->set($variable, $value);
} }
/** /**
@ -169,7 +45,8 @@ class ChamiloSession
public static function erase($variable) public static function erase($variable)
{ {
$variable = (string) $variable; $variable = (string) $variable;
self::$session->remove($variable); $session = Container::getSession();
$session->remove($variable);
if (isset($GLOBALS[$variable])) { if (isset($GLOBALS[$variable])) {
unset($GLOBALS[$variable]); unset($GLOBALS[$variable]);
@ -180,18 +57,20 @@ class ChamiloSession
} }
/** /**
* * Clear session
*/ */
public static function clear() public static function clear()
{ {
self::$session->clear(); $session = Container::getSession();
$session->clear();
} }
/** /**
* * Invalidates a session
*/ */
public static function destroy() public static function destroy()
{ {
self::$session->invalidate(); $session = Container::getSession();
$session->invalidate();
} }
} }

@ -2,6 +2,7 @@
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use ChamiloSession as Session; use ChamiloSession as Session;
use Chamilo\CoreBundle\Framework\Container;
/** /**
* Class Display * Class Display
@ -816,7 +817,7 @@ class Display
$icon = 'bundles/chamilocore/img/'.$icon; $icon = 'bundles/chamilocore/img/'.$icon;
$icon = Session::getAsset()->getUrl($icon); $icon = Container::getAsset()->getUrl($icon);
//$icon = api_get_cdn_path($icon); //$icon = api_get_cdn_path($icon);
if ($return_only_path) { if ($return_only_path) {
return $icon; return $icon;

@ -1,5 +1,6 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\Framework\Container;
/** /**
* A html editor field to use with QuickForm * A html editor field to use with QuickForm
@ -29,7 +30,7 @@ class HTML_QuickForm_html_editor extends HTML_QuickForm_textarea
global $fck_attribute; global $fck_attribute;
$editor = \ChamiloSession::getHtmlEditor(); $editor = Container::getHtmlEditor();
if ($editor) { if ($editor) {
$this->editor = $editor; $this->editor = $editor;
$this->editor->setName($name); $this->editor->setName($name);

@ -11,6 +11,7 @@
* @package chamilo.library * @package chamilo.library
*/ */
use \ChamiloSession as Session; use \ChamiloSession as Session;
use Chamilo\CoreBundle\Framework\Container;
use Symfony\Component\Intl\DateFormatter\IntlDateFormatter; use Symfony\Component\Intl\DateFormatter\IntlDateFormatter;
// Predefined date formats in Chamilo provided by the language sub-system. // Predefined date formats in Chamilo provided by the language sub-system.
@ -50,11 +51,11 @@ define('PERSON_NAME_DATA_EXPORT', PERSON_NAME_EASTERN_ORDER); // Contextual: for
function get_lang($variable) function get_lang($variable)
{ {
$defaultDomain = 'all'; $defaultDomain = 'all';
$translated = Session::getTranslator()->trans($variable, array(), $defaultDomain); $translated = Container::getTranslator()->trans($variable, array(), $defaultDomain);
if ($translated == $variable) { if ($translated == $variable) {
// Check the langVariable for BC // Check the langVariable for BC
$translated = Session::getTranslator()->trans("lang$variable", array(), $defaultDomain); $translated = Container::getTranslator()->trans("lang$variable", array(), $defaultDomain);
if ($translated == "lang$variable") { if ($translated == "lang$variable") {
return $variable; return $variable;
} }
@ -123,7 +124,7 @@ function api_purify_language_id($language)
*/ */
function api_get_language_isocode($language = null, $default_code = 'en') function api_get_language_isocode($language = null, $default_code = 'en')
{ {
return Session::getTranslator()->getLocale(); return Container::getTranslator()->getLocale();
static $iso_code = array(); static $iso_code = array();
if (empty($language)) { if (empty($language)) {

@ -8,6 +8,7 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use \ChamiloSession as Session; use \ChamiloSession as Session;
use Chamilo\CoreBundle\Framework\Container;
use Display; use Display;
/** /**
@ -42,21 +43,21 @@ class LegacyController extends BaseController
$fileToLoad = $mainPath.$name; $fileToLoad = $mainPath.$name;
// Legacy inclusions // Legacy inclusions
Session::setSession($this->getRequest()->getSession()); Container::setSession($request->getSession());
$dbConnection = $this->container->get('database_connection'); $dbConnection = $this->container->get('database_connection');
$database = new \Database($dbConnection, array()); $database = new \Database($dbConnection, array());
Session::$urlGenerator = $this->container->get('router'); Container::$urlGenerator = $this->container->get('router');
Session::$security = $this->container->get('security.context'); Container::$security = $this->container->get('security.context');
Session::$translator = $this->container->get('translator'); Container::$translator = $this->container->get('translator');
Session::$assets = $this->container->get('templating.helper.assets'); Container::$assets = $this->container->get('templating.helper.assets');
Session::$rootDir = $this->container->get('kernel')->getRealRootDir(); Container::$rootDir = $this->container->get('kernel')->getRealRootDir();
Session::$logDir = $this->container->get('kernel')->getLogDir(); Container::$logDir = $this->container->get('kernel')->getLogDir();
Session::$dataDir = $this->container->get('kernel')->getDataDir(); Container::$dataDir = $this->container->get('kernel')->getDataDir();
Session::$tempDir = $this->container->get('kernel')->getCacheDir(); Container::$tempDir = $this->container->get('kernel')->getCacheDir();
Session::$courseDir = $this->container->get('kernel')->getDataDir(); Container::$courseDir = $this->container->get('kernel')->getDataDir();
//Session::$configDir = $this->container->get('kernel')->getConfigDir(); //Container::$configDir = $this->container->get('kernel')->getConfigDir();
Session::$htmlEditor = $this->container->get('html_editor'); Container::$htmlEditor = $this->container->get('html_editor');
Session::$twig = $this->container->get('twig'); Container::$twig = $this->container->get('twig');
if (is_file($fileToLoad) && if (is_file($fileToLoad) &&
\Security::check_abs_path($fileToLoad, $mainPath) \Security::check_abs_path($fileToLoad, $mainPath)

@ -5,11 +5,10 @@ namespace Chamilo\CoreBundle\EventListener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent; use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent; use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpKernel\Event\FilterControllerEvent; use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
use \ChamiloSession as Session; use Chamilo\CoreBundle\Framework\Container;
class LegacyListener class LegacyListener
{ {
@ -33,24 +32,31 @@ class LegacyListener
$session = $request->getSession(); $session = $request->getSession();
$container = $this->container; $container = $this->container;
// Loading legacy variables // Setting session.
Session::setSession($request->getSession()); Container::setSession($request->getSession());
$dbConnection = $this->container->get('database_connection');
$database = new \Database($dbConnection, array()); // Setting database.
$dbConnection = $container->get('database_connection');
\Database::setManager($this->container->get('doctrine')->getManager()); // Setting db manager.
\CourseManager::setToolList($this->container->get('chamilo.tool_chain')); $database = new \Database($dbConnection, array());
Session::$urlGenerator = $this->container->get('router'); \Database::setManager($container->get('doctrine')->getManager());
Session::$security = $this->container->get('security.context');
Session::$translator = $this->container->get('translator'); // Setting course tool chain.
Session::$rootDir = $this->container->get('kernel')->getRealRootDir(); \CourseManager::setToolList($container->get('chamilo.tool_chain'));
Session::$logDir = $this->container->get('kernel')->getLogDir();
Session::$dataDir = $this->container->get('kernel')->getDataDir(); // Setting legacy properties
Session::$tempDir = $this->container->get('kernel')->getCacheDir(); Container::$urlGenerator = $container->get('router');
Session::$courseDir = $this->container->get('kernel')->getDataDir(); Container::$security = $container->get('security.context');
//Session::$configDir = $this->container->get('kernel')->getConfigDir(); Container::$translator = $container->get('translator');
Session::$assets = $this->container->get('templating.helper.assets'); Container::$rootDir = $container->get('kernel')->getRealRootDir();
Session::$htmlEditor = $this->container->get('html_editor'); Container::$logDir = $container->get('kernel')->getLogDir();
Container::$dataDir = $container->get('kernel')->getDataDir();
Container::$tempDir = $container->get('kernel')->getCacheDir();
Container::$courseDir = $container->get('kernel')->getDataDir();
//Container::$configDir = $container->get('kernel')->getConfigDir();
Container::$assets = $container->get('templating.helper.assets');
Container::$htmlEditor = $container->get('html_editor');
if (!defined('DEFAULT_DOCUMENT_QUOTA')) { if (!defined('DEFAULT_DOCUMENT_QUOTA')) {
$default_quota = api_get_setting('default_document_quotum'); $default_quota = api_get_setting('default_document_quotum');
@ -72,13 +78,13 @@ class LegacyListener
$courseCode = $courseCodeFromRequest; $courseCode = $courseCodeFromRequest;
} }
/** @var \Doctrine\ORM\EntityManager $em */ /** @var \Doctrine\ORM\EntityManager $em */
$em = $this->container->get('doctrine')->getManager(); $em = $container->get('doctrine')->getManager();
if (!empty($courseCode)) { if (!empty($courseCode)) {
$course = $em->getRepository('ChamiloCoreBundle:Course')->findOneByCode($courseCode); $course = $em->getRepository('ChamiloCoreBundle:Course')->findOneByCode($courseCode);
if ($course) { if ($course) {
$courseInfo = api_get_course_info($course->getCode()); $courseInfo = api_get_course_info($course->getCode());
$this->container->get('twig')->addGlobal('course', $course); $container->get('twig')->addGlobal('course', $course);
$request->getSession()->set('_real_cid', $course->getId()); $request->getSession()->set('_real_cid', $course->getId());
$request->getSession()->set('_cid', $course->getCode()); $request->getSession()->set('_cid', $course->getCode());
$request->getSession()->set('_course', $courseInfo); $request->getSession()->set('_course', $courseInfo);

@ -1,173 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
namespace Chamilo\CoreBundle\Framework;
use Zend\Config\Config;
/**
* Class Application
* @package Chamilo\CoreBundle\Framework
*/
class Application extends \Silex\Application
{
public $installed = false;
public $configurationArray = array();
public $configuration;
/**
* @return bool
*/
public function isInstalled()
{
return $this->installed;
}
/**
* @param array $paths
*/
public function bindInstallPaths(array $paths)
{
foreach ($paths as $key => $value) {
$this['path.'.$key] = realpath($value).'/';
}
}
/**
* @return array
*/
public function getConfigurationArray()
{
return $this->configurationArray;
}
/**
* @return Config
*/
public function getConfiguration()
{
return $this->configuration;
}
/**
* @return bool|mixed
*/
public function getConfigurationArrayFromFile()
{
$configurationFile = $this['path.config'].'configuration.php';
if (file_exists($configurationFile)) {
return require_once $configurationFile;
}
return array();
}
/**
* Reads the configuration.php file
*/
public function readConfigurationFiles()
{
$this->configuration = $this->getConfigurationArrayFromFile();
if (!empty($this->configuration)) {
$config = new Config($this->configuration, true);
$this->installed = true;
/** Overwriting paths if set */
$this['path.data'] = empty($config->get('path.data')) ? $this['path.data'] : $config->get('path.data');
$this['path.course'] = empty($config->get('path.courses')) ? $this['path.courses'] : $config->get('path.courses');
$this['path.temp'] = empty($config->get('path.temp')) ? $this['path.temp'] : $config->get('path.temp');
$this['path.logs'] = empty($config->get('path.logs')) ? $this['path.logs'] : $config->get('path.logs');
$configPath = $this['path.config'];
$confFiles = array(
'auth.conf.php',
'events.conf.php',
'mail.conf.php',
'portfolio.conf.php',
'profile.conf.php'
);
foreach ($confFiles as $confFile) {
if (file_exists($configPath . $confFile)) {
require_once $configPath . $confFile;
}
}
// Fixing $_configuration array
// Fixes bug in Chamilo 1.8.7.1 array was not set
/*$administrator['email'] = isset($administrator['email']) ? $administrator['email'] : 'admin@example.com';
$administrator['name'] = isset($administrator['name']) ? $administrator['name'] : 'Admin';*/
// Code for transitional purposes, it can be removed right before the 1.8.7 release.
/*if (empty($_configuration['system_version'])) {
$_configuration['system_version'] = (!empty($_configuration['dokeos_version']) ? $_configuration['dokeos_version'] : '');
$_configuration['system_stable'] = (!empty($_configuration['dokeos_stable']) ? $_configuration['dokeos_stable'] : '');
$_configuration['software_url'] = 'http://www.chamilo.org/';
}*/
// For backward compatibility.
//$this->configuration['dokeos_version'] = isset($this->configuration['system_version']) ? $this->configuration['system_version'] : null;
//$_configuration['dokeos_stable'] = $_configuration['system_stable'];
//$userPasswordCrypted = (!empty($_configuration['password_encryption']) ? $_configuration['password_encryption'] : 'sha1');
//$this->configuration['password_encryption'] = isset($this->configuration['password_encryption']) ? $this->configuration['password_encryption'] : 'sha1';
$this->configurationArray = $this->configuration;
$this->configuration = $config;
}
}
public function setupDoctrineExtensions()
{
if (isset($this->getConfiguration()->main_database) && isset($this['db.event_manager'])) {
// @todo improvement do not create every time this objects
$sortableGroup = new \Gedmo\Mapping\Annotation\SortableGroup(array());
$sortablePosition = new \Gedmo\Mapping\Annotation\SortablePosition(array());
$tree = new \Gedmo\Mapping\Annotation\Tree(array());
$tree = new \Gedmo\Mapping\Annotation\TreeParent(array());
$tree = new \Gedmo\Mapping\Annotation\TreeLeft(array());
$tree = new \Gedmo\Mapping\Annotation\TreeRight(array());
$tree = new \Gedmo\Mapping\Annotation\TreeRoot(array());
$tree = new \Gedmo\Mapping\Annotation\TreeLevel(array());
$tree = new \Gedmo\Mapping\Annotation\Versioned(array());
$tree = new \Gedmo\Mapping\Annotation\Loggable(array());
$tree = new \Gedmo\Loggable\Entity\LogEntry();
// Setting Doctrine2 extensions
$timestampableListener = new \Gedmo\Timestampable\TimestampableListener();
// $app['db.event_manager']->addEventSubscriber($timestampableListener);
$this['dbs.event_manager']['db_read']->addEventSubscriber($timestampableListener);
$this['dbs.event_manager']['db_write']->addEventSubscriber($timestampableListener);
$sluggableListener = new \Gedmo\Sluggable\SluggableListener();
// $this['db.event_manager']->addEventSubscriber($sluggableListener);
$this['dbs.event_manager']['db_read']->addEventSubscriber($sluggableListener);
$this['dbs.event_manager']['db_write']->addEventSubscriber($sluggableListener);
$sortableListener = new \Gedmo\Sortable\SortableListener();
// $this['db.event_manager']->addEventSubscriber($sortableListener);
$this['dbs.event_manager']['db_read']->addEventSubscriber($sortableListener);
$this['dbs.event_manager']['db_write']->addEventSubscriber($sortableListener);
$treeListener = new \Gedmo\Tree\TreeListener();
//$treeListener->setAnnotationReader($cachedAnnotationReader);
// $this['db.event_manager']->addEventSubscriber($treeListener);
$this['dbs.event_manager']['db_read']->addEventSubscriber($treeListener);
$this['dbs.event_manager']['db_write']->addEventSubscriber($treeListener);
$loggableListener = new \Gedmo\Loggable\LoggableListener();
if (PHP_SAPI != 'cli') {
//$userInfo = api_get_user_info();
if (isset($userInfo) && !empty($userInfo['username'])) {
//$loggableListener->setUsername($userInfo['username']);
}
}
$this['dbs.event_manager']['db_read']->addEventSubscriber($loggableListener);
$this['dbs.event_manager']['db_write']->addEventSubscriber($loggableListener);
}
}
}

@ -0,0 +1,145 @@
<?php
namespace Chamilo\CoreBundle\Framework;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Security\Core\SecurityContextInterface;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Bundle\FrameworkBundle\Translation\Translator;
use Symfony\Component\Templating\Helper\CoreAssetsHelper;
use Chamilo\CoreBundle\Component\Editor\Editor;
/**
* Class Container
* @package Chamilo\CoreBundle\Framework
*/
class Container
{
public static $session;
public static $configuration;
public static $urlGenerator;
public static $security;
public static $translator;
public static $rootDir;
public static $logDir;
public static $tempDir;
public static $dataDir;
public static $courseDir;
public static $configDir;
public static $assets;
public static $htmlEditor;
public static $twig;
/**
* @return string
*/
public static function getConfigDir()
{
return self::$configDir;
}
/**
* @return string
*/
public static function getLogDir()
{
return self::$logDir;
}
/**
* @return string
*/
public static function getTempDir()
{
return self::$tempDir;
}
/**
* @return string
*/
public static function getRootDir()
{
return self::$rootDir;
}
/**
* @return string
*/
public static function getDataDir()
{
return self::$dataDir;
}
/**
* @return string
*/
public static function getCourseDir()
{
return self::$courseDir;
}
/**
* @return \Twig_Environment
*/
public static function getTwig()
{
return self::$twig;
}
/**
* @return Editor
*/
public static function getHtmlEditor()
{
return self::$htmlEditor;
}
/**
* @return UrlGeneratorInterface
*/
public static function getUrlGenerator()
{
return self::$urlGenerator;
}
/**
* @return SessionInterface;
*/
public static function getSession()
{
return self::$session;
}
/**
* @param SessionInterface $session
*/
public static function setSession($session)
{
self::$session = $session;
}
/**
* @return SecurityContextInterface
*/
public static function getSecurity()
{
return self::$security;
}
/**
* @return Translator
*/
public static function getTranslator()
{
return self::$translator;
}
/**
* @return CoreAssetsHelper
*/
public static function getAsset()
{
return self::$assets;
}
}

@ -1,15 +0,0 @@
<?php
class Legacy
{
public static function getRouter()
public static function setConfiguration($configuration)
{
self::$configuration = $configuration;
}
public static function getConfiguration()
{
return self::$configuration;
}
}
Loading…
Cancel
Save