);*/ // Doctrine ORM configuration $dbParams = array('driver' => 'pdo_mysql', 'host' => $_configuration['db_host'], 'user' => $_configuration['db_user'], 'password' => $_configuration['db_password'], 'dbname' => $_configuration['main_database'], 'path' => isset($_configuration['db_path']) ? $_configuration['db_path'] : '', 'port' => isset($_configuration['db_port']) ? $_configuration['db_port'] : ''); try { $database = new \Database(); $database->connect($dbParams); } catch (Exception $e) { $global_error_code = 3; // The database server is not available or credentials are invalid. require $includePath . '/global_error_message.inc.php'; die; } /* RETRIEVING ALL THE CHAMILO CONFIG SETTINGS FOR MULTIPLE URLs FEATURE*/ if (!empty($_configuration['multiple_access_urls'])) { $_configuration['access_url'] = 1; $access_urls = api_get_access_urls(); $root_rel = api_get_self(); $root_rel = substr($root_rel, 1); $pos = strpos($root_rel, '/'); $root_rel = substr($root_rel, 0, $pos); $protocol = (!empty($_SERVER['HTTPS']) && strtoupper($_SERVER['HTTPS']) != 'OFF' ? 'https' : 'http') . '://'; //urls with subdomains (HTTP_HOST is preferred - see #6764) $request_url_root = ''; if (empty($_SERVER['HTTP_HOST'])) { if (empty($_SERVER['SERVER_NAME'])) { $request_url_root = $protocol . 'localhost/'; } else { $request_url_root = $protocol . $_SERVER['SERVER_NAME'] . '/'; } } else { $request_url_root = $protocol . $_SERVER['HTTP_HOST'] . '/';
/** * @param GetResponseEvent $event */ public function onKernelRequest(GetResponseEvent $event) { $request = $event->getRequest(); $session = $request->getSession(); /** @var ContainerInterface $container */ $container = $this->container; // Setting container Container::setContainer($container); // Setting database. $connection = $container->get('database_connection'); // Setting DB connection and Doctrine Manager. $database = new \Database(); $database->setConnection($connection); $entityManager = $container->get('doctrine')->getManager(); $database->setManager($entityManager); \CourseManager::setEntityManager($entityManager); \CourseManager::setCourseSettingsManager($container->get('chamilo_course.settings.manager')); // Legacy way of detect current access_url $installed = $this->container->getParameter('installed'); $urlId = 1; if (!empty($installed)) { $access_urls = api_get_access_urls(); $root_rel = api_get_self(); $root_rel = substr($root_rel, 1); $pos = strpos($root_rel, '/'); $root_rel = substr($root_rel, 0, $pos); $protocol = (!empty($_SERVER['HTTPS']) && strtoupper($_SERVER['HTTPS']) != 'OFF' ? 'https' : 'http') . '://'; //urls with subdomains (HTTP_HOST is preferred - see #6764) if (empty($_SERVER['HTTP_HOST'])) { if (empty($_SERVER['SERVER_NAME'])) { $request_url_root = $protocol . 'localhost/'; } else { $request_url_root = $protocol . $_SERVER['SERVER_NAME'] . '/'; } } else { $request_url_root = $protocol . $_SERVER['HTTP_HOST'] . '/'; } //urls with subdirs $request_url_sub = $request_url_root . $root_rel . '/'; // You can use subdirs as multi-urls, but in this case none of them can be // the root dir. The admin portal should be something like https://host/adm/ // At this time, subdirs will still hold a share cookie, so not ideal yet // see #6510 $urlId = 1; foreach ($access_urls as $details) { if ($request_url_sub == $details['url']) { $urlId = $details['id']; break; //found one match with subdir, get out of foreach } // Didn't find any? Now try without subdirs if ($request_url_root == $details['url']) { $urlId = $details['id']; break; //found one match, get out of foreach } } } $session->set('access_url_id', $urlId); // Setting course tool chain (in order to create tools to a course) \CourseManager::setToolList($container->get('chamilo_course.tool_chain')); \CourseManager::setCourseManager($container->get('chamilo_core.manager.course')); // Setting legacy properties. Container::$dataDir = $container->get('kernel')->getDataDir(); Container::$courseDir = $container->get('kernel')->getDataDir(); }