]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/Class/BaculumPage.php
9ae54cb98c68cf94b83d9b74f3fec365afc50709
[bacula/bacula] / gui / baculum / protected / Class / BaculumPage.php
1 <?php
2 /**
3  * Bacula® - The Network Backup Solution
4  * Baculum - Bacula web interface
5  *
6  * Copyright (C) 2013-2015 Marcin Haba
7  *
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.
11  *
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.
16  *
17  * Bacula® is a registered trademark of Kern Sibbald.
18  */
19  
20 class BaculumPage extends TPage
21 {
22
23         public function onPreInit($param) {
24                 parent::onPreInit($param);
25                 $configuration = $this->getModule('configuration');
26                 $this->Application->getGlobalization()->Culture = $this->getLanguage();
27                 $this->setPrefixForSubdir();
28         }
29
30         public function getLanguage() {
31                 if(isset($_SESSION['language']) && !empty($_SESSION['language'])) {
32                         $language =  $_SESSION['language'];
33                 } else {
34                         $language = $this->getModule('configuration')->getLanguage();
35                         $_SESSION['language'] = $language;
36                 }
37                 return $language;
38         }
39
40         public function getModule($name) {
41                 return $this->Application->getModule($name);
42         }
43
44         public function goToPage($pagePath,$getParameters=null) {
45                 $this->Response->redirect($this->Service->constructUrl($pagePath,$getParameters,false));
46         }
47
48         public function goToDefaultPage() {
49                 $this->goToPage($this->Service->DefaultPage);
50         }
51
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);
57                 }
58         }
59
60         private function getFullDocumentRoot() {
61                 $rootDir = array();
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));
67                         } else {
68                                 $rootDir[] = $dirs[$i];
69                         }
70                 }
71
72                 $rootDir = implode('/', $rootDir);
73                 return $rootDir;
74         }
75 }
76 ?>