3 * Bacula® - The Network Backup Solution
4 * Baculum - Bacula web interface
6 * Copyright (C) 2013-2015 Marcin Haba
8 * The main author of Baculum is Marcin Haba.
9 * The main author of Bacula is Kern Sibbald, with contributions from many
10 * others, a complete list can be found in the file AUTHORS.
12 * You may use this file and others of this release according to the
13 * license defined in the LICENSE file, which includes the Affero General
14 * Public License, v3.0 ("AGPLv3") and some additional permissions and
15 * terms pursuant to its AGPLv3 Section 7.
17 * Bacula® is a registered trademark of Kern Sibbald.
20 class BaculumPage extends TPage
23 public function onPreInit($param) {
24 parent::onPreInit($param);
25 $configuration = $this->getModule('configuration');
26 $this->Application->getGlobalization()->Culture = $this->getLanguage();
27 $this->setPrefixForSubdir();
30 public function getLanguage() {
31 if(isset($_SESSION['language']) && !empty($_SESSION['language'])) {
32 $language = $_SESSION['language'];
34 $language = $this->getModule('configuration')->getLanguage();
35 $_SESSION['language'] = $language;
40 public function getModule($name) {
41 return $this->Application->getModule($name);
44 public function goToPage($pagePath,$getParameters=null) {
45 $this->Response->redirect($this->Service->constructUrl($pagePath,$getParameters,false));
48 public function goToDefaultPage() {
49 $this->goToPage($this->Service->DefaultPage);
52 public function setPrefixForSubdir() {
53 $fullDocumentRoot = preg_replace('#(\/)$#', '', $this->getFullDocumentRoot());
54 $urlPrefix = str_replace($fullDocumentRoot, '', APPLICATION_DIRECTORY);
55 if(!empty($urlPrefix)) {
56 $this->Application->getModule('friendly-url')->setUrlPrefix($urlPrefix);
60 private function getFullDocumentRoot() {
62 $dirs = explode('/', $_SERVER['DOCUMENT_ROOT']);
63 for($i = 0; $i < count($dirs); $i++) {
64 $documentRootPart = implode('/', $rootDir) . '/' . $dirs[$i];
65 if(is_link($documentRootPart)) {
66 $rootDir = array(readlink($documentRootPart));
68 $rootDir[] = $dirs[$i];
72 $rootDir = implode('/', $rootDir);