Exemplo n.º 1
0
 protected function getComponentShortCut()
 {
     $data = array();
     $app = $this->getApplication();
     $db = $app->getModule('horuxDb')->DbConnection;
     $db->Active = true;
     $cmd = $this->db->createCommand("SELECT * FROM hr_install WHERE type='component' AND name!='tracking'");
     $data_ = $cmd->query();
     $data_ = $data_->readAll();
     $isComponentHasOne = false;
     foreach ($data_ as $d) {
         $doc = new TXmlDocument();
         $doc->loadFromFile('./protected/pages/components/' . $d['name'] . '/install.xml');
         $name = $doc->getElementByTagName('name');
         $installName = $doc->getElementByTagName('installName')->getValue();
         $cmd = $this->db->createCommand("SELECT * FROM hr_install WHERE type='component' AND name='{$installName}'");
         $data1 = $cmd->query();
         $data1 = $data1->readAll();
         foreach ($data1 as $d1) {
             $cmd = $this->db->createCommand("SELECT * FROM hr_install AS i LEFT JOIN hr_component as c ON c.id_install=i.id WHERE i.type='component' AND c.parentmenu=0 AND i.id=" . $d1['id']);
             $data2 = $cmd->query();
             $data2 = $data2->read();
             $url = "./themes/letux/images/header/icon-48-link.png";
             if (!$isComponentHasOne) {
                 if ($this->isAccess($data2['page'])) {
                     $data[] = array('page' => $data2['page'], 'Name' => Prado::localize($name->getValue(), array(), $data2['name']), 'icon' => $url);
                 }
                 $isComponentHasOne = true;
             } else {
                 if ($this->isAccess($data2['page'])) {
                     $data[] = array('page' => $data2['page'], 'Name' => Prado::localize($name->getValue(), array(), $data2['name']), 'icon' => $url);
                 }
             }
             $cmd = $this->db->createCommand("SELECT * FROM hr_install AS i LEFT JOIN hr_component as c ON c.id_install=i.id WHERE i.type='component' AND c.parentmenu=" . $data2['id'] . " AND c.parentmenu>0 AND i.id=" . $d1['id']);
             $data2 = $cmd->query();
             $data2 = $data2->readAll();
             foreach ($data2 as $d2) {
                 if ($this->isAccess($d2['page'])) {
                     $pagePath = str_replace(".", "/", $d2['page']);
                     if (file_exists('./protected/pages/' . $pagePath . '.page')) {
                         $content = file_get_contents('./protected/pages/' . $pagePath . '.page');
                         if (preg_match("/IconAsset=\"<%~(.*)%>\"/", $content, $matches)) {
                             if (($assetPos = strrpos($matches[1], "assets/")) !== false) {
                                 $icon = substr($matches[1], $assetPos + 7);
                                 $icon = trim($icon);
                                 if ($icon) {
                                     $url = Prado::getApplication()->getAssetManager()->publishFilePath(Prado::getApplication()->getBasePath() . '/pages/components/' . $d2['name'] . '/assets/' . $icon);
                                 }
                             }
                         }
                     }
                     $data[] = array('page' => $d2['page'], 'Name' => Prado::localize($d2['menuname'], array(), $d2['name']), 'icon' => $url);
                 }
             }
         }
     }
     return $data;
 }
Exemplo n.º 2
0
 public function getData()
 {
     $cmd = $this->db->createCommand("SELECT * FROM hr_install WHERE type='language'");
     $data = $cmd->query();
     $data = $data->readAll();
     $template = array();
     foreach ($data as $d) {
         $doc = new TXmlDocument();
         $doc->loadFromFile('.' . DIRECTORY_SEPARATOR . 'protected' . DIRECTORY_SEPARATOR . 'messages' . DIRECTORY_SEPARATOR . '' . $d['param'] . DIRECTORY_SEPARATOR . 'install.xml');
         $version = $doc->getElementByTagName('version');
         $date = $doc->getElementByTagName('creationDate');
         $description = $doc->getElementByTagName('description');
         $author = $doc->getElementByTagName('author');
         $license = $doc->getElementByTagName('license');
         $template[] = array('id' => $d['id'], 'name' => $d['name'], 'default' => $d['default'], 'version' => $version->getValue(), 'date' => $date->getValue(), 'description' => $description->getValue(), 'author' => $author->getValue(), 'license' => $license->getValue());
     }
     return $template;
 }
Exemplo n.º 3
0
 public function selectionChangedModule($sender, $param)
 {
     $value = $sender->getSelectedValue();
     $d = array();
     $d[] = array("Text" => Prado::localize("-- Select a Module--"), "Value" => "0");
     if ($value == "." || $value == "0") {
         $this->extension->DataSource = $d;
         $this->extension->dataBind();
         $this->displayLanguage();
         return;
     }
     $list = array();
     if ($value == "themes") {
         $list = scandir("." . DIRECTORY_SEPARATOR . "themes");
     } else {
         $value = str_replace(".", DIRECTORY_SEPARATOR, $value);
         $list = scandir("." . DIRECTORY_SEPARATOR . "protected" . DIRECTORY_SEPARATOR . "pages" . DIRECTORY_SEPARATOR . $value);
     }
     $i = 1;
     foreach ($list as $l) {
         if ($l != "." && $l != ".." && $l != ".svn") {
             $doc = new TXmlDocument();
             if ($value == "themes") {
                 $doc->loadFromFile('.' . DIRECTORY_SEPARATOR . 'themes' . DIRECTORY_SEPARATOR . $l . DIRECTORY_SEPARATOR . 'install.xml');
             } else {
                 $doc->loadFromFile('.' . DIRECTORY_SEPARATOR . 'protected' . DIRECTORY_SEPARATOR . 'pages' . DIRECTORY_SEPARATOR . $value . DIRECTORY_SEPARATOR . $l . DIRECTORY_SEPARATOR . 'install.xml');
             }
             $name = $doc->getElementByTagName('name');
             $d[$i]['Value'] = $l;
             $d[$i++]['Text'] = $name->getValue();
         }
     }
     $this->extension->DataSource = $d;
     $this->extension->dataBind();
     $this->displayLanguage();
 }
Exemplo n.º 4
0
 protected function installComponent($compName)
 {
     $doc = new TXmlDocument();
     $doc->loadFromFile('.' . DIRECTORY_SEPARATOR . 'protected' . DIRECTORY_SEPARATOR . 'pages' . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . '' . $compName . DIRECTORY_SEPARATOR . 'install.xml');
     $installName = $doc->getElementByTagName('installName');
     $sqlinstall = $doc->getElementByTagName('sqlinstall');
     if ($sqlinstall) {
         $this->sqlInstall('.' . DIRECTORY_SEPARATOR . 'protected' . DIRECTORY_SEPARATOR . 'pages' . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . $compName . DIRECTORY_SEPARATOR . $sqlinstall->getValue());
     }
     $cmd = $this->db->createCommand("INSERT INTO hr_install (`name`,`type`,`system`, `default`, `param`) VALUES (:name, 'component',0,0,'')");
     $cmd->bindValue(":name", $installName->getValue(), PDO::PARAM_STR);
     $cmd->execute();
     $lastId = $this->db->getLastInsertId();
     $mainmenu = $doc->getElementByTagName('mainmenu');
     $mainmenu = $mainmenu->getElements();
     foreach ($mainmenu as $menu) {
         $iconmenu = $menu->getAttribute('iconmenu');
         $url = $menu->getAttribute('url');
         $menuname = $menu->getAttribute('name');
         $parentmenu = 0;
         $cmd = $this->db->createCommand("INSERT INTO hr_component (`id_install`,`parentmenu`,`menuname`, `page`, `iconmenu`) VALUES (:lastId, :parentmenu,:menuname,:url,:iconmenu)");
         $cmd->bindValue(":lastId", $lastId, PDO::PARAM_INT);
         $cmd->bindValue(":iconmenu", $iconmenu, PDO::PARAM_STR);
         $cmd->bindValue(":url", $url, PDO::PARAM_STR);
         $cmd->bindValue(":menuname", $menuname, PDO::PARAM_STR);
         $cmd->bindValue(":parentmenu", $parentmenu, PDO::PARAM_INT);
         $cmd->execute();
         if ($menu->getHasElement()) {
             $submenu = $menu->getElementByTagName('submenus');
             $submenu = $submenu->getElements();
             $lastMenuId = $this->db->getLastInsertId();
             foreach ($submenu as $smenu) {
                 $iconmenu = $smenu->getAttribute('iconmenu');
                 $url = $smenu->getAttribute('url');
                 $menuname = $smenu->getAttribute('name');
                 $cmd = $this->db->createCommand("INSERT INTO hr_component (`id_install`,`parentmenu`,`menuname`, `page`, `iconmenu`) VALUES (:lastId, :parentmenu,:menuname,:url,:iconmenu)");
                 $cmd->bindValue(":lastId", $lastId, PDO::PARAM_INT);
                 $cmd->bindValue(":iconmenu", $iconmenu, PDO::PARAM_STR);
                 $cmd->bindValue(":url", $url, PDO::PARAM_STR);
                 $cmd->bindValue(":menuname", $menuname, PDO::PARAM_STR);
                 $cmd->bindValue(":parentmenu", $lastMenuId, PDO::PARAM_INT);
                 $cmd->execute();
             }
         }
     }
     $this->moveLanguageDirectory('.' . DIRECTORY_SEPARATOR . 'protected' . DIRECTORY_SEPARATOR . 'pages' . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . '' . $compName . DIRECTORY_SEPARATOR, $installName->getValue());
     return true;
 }
Exemplo n.º 5
0
 protected function insertNewPermissions($lastId)
 {
     $data = $this->Session['dataPage'];
     foreach ($data as $v) {
         switch ($v['id']) {
             case "controlPanel":
                 $v['access'] ? $this->insertNewPermission($lastId, 'controlPanel.ControlPanel') : '';
                 break;
             case "superUser":
                 $v['access'] ? $this->insertNewPermission($lastId, 'superuser.userList', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'superuser.userAdd') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'superuser.userMod') : '';
                 break;
             case "superUserGroup":
                 $v['access'] ? $this->insertNewPermission($lastId, 'superuser.userGroupList', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'superuser.userGroupAdd') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'superuser.userGroupMod') : '';
                 break;
             case "configuration":
                 $v['access'] ? $this->insertNewPermission($lastId, 'configuration.config', $v['shortcut']) : '';
                 break;
             case "site":
                 $v['access'] ? $this->insertNewPermission($lastId, 'site.Site', $v['shortcut']) : '';
                 break;
             case "department":
                 $v['access'] ? $this->insertNewPermission($lastId, 'site.department', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'site.add', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'site.mod', $v['shortcut']) : '';
                 break;
             case "openTime":
                 $v['access'] ? $this->insertNewPermission($lastId, 'openTime.openTimeList', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'openTime.add') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'openTime.mod') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'openTime.attribute') : '';
                 break;
             case "horuxController":
                 $v['access'] ? $this->insertNewPermission($lastId, 'horuxController.horuxController', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'horuxController.add') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'horuxController.mod') : '';
                 break;
             case "hardware":
                 $v['access'] ? $this->insertNewPermission($lastId, 'hardware.HardwareList', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'hardware.HardwareAddList') : '';
                 $path = './protected/pages/hardware/device/';
                 $files = scandir($path);
                 foreach ($files as $f) {
                     if ($f != '..' && $f != '.' && $f != '.svn' && is_dir($path . $f)) {
                         $doc = new TXmlDocument();
                         $doc->loadFromFile($path . $f . '/install.xml');
                         $permissions = $doc->getElementByTagName('permissions');
                         $permissions = $permissions->getElements();
                         foreach ($permissions as $perm) {
                             $v['access'] ? $this->insertNewPermission($lastId, $perm->getValue()) : '';
                         }
                     }
                 }
                 break;
             case "alarms":
                 $v['access'] ? $this->insertNewPermission($lastId, 'system.Alarms', $v['shortcut']) : '';
                 break;
             case "notification":
                 $v['access'] ? $this->insertNewPermission($lastId, 'system.Notification', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'system.NotificationAdd') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'system.NotificationMod') : '';
                 break;
             case "service":
                 $v['access'] ? $this->insertNewPermission($lastId, 'system.Service', $v['shortcut']) : '';
                 break;
             case "status":
                 $v['access'] ? $this->insertNewPermission($lastId, 'system.Status', $v['shortcut']) : '';
                 break;
             case "user":
                 $v['access'] ? $this->insertNewPermission($lastId, 'user.UserList', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'user.add') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'user.mod') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'user.attribution') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'user.groups') : '';
                 break;
             case "userGroup":
                 $v['access'] ? $this->insertNewPermission($lastId, 'userGroup.UserGroupList', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'userGroup.add') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'userGroup.mod') : '';
                 break;
             case "userWizard":
                 $v['access'] ? $this->insertNewPermission($lastId, 'user.UserWizzard', $v['shortcut']) : '';
                 break;
             case "key":
                 $v['access'] ? $this->insertNewPermission($lastId, 'key.KeyList', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'key.add') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'key.mod') : '';
                 break;
             case "accessLevel":
                 $v['access'] ? $this->insertNewPermission($lastId, 'accessLevel.accessLevelList', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'accessLevel.add') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'accessLevel.mod') : '';
                 break;
             case "nonWorkingDay":
                 $v['access'] ? $this->insertNewPermission($lastId, 'nonWorkingDay.nonWorkingDay', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'nonWorkingDay.add') : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'nonWorkingDay.mod') : '';
                 break;
             case "install_uninstall":
                 $v['access'] ? $this->insertNewPermission($lastId, 'installation.extensions', $v['shortcut']) : '';
                 break;
             case "devices":
                 $v['access'] ? $this->insertNewPermission($lastId, 'installation.devices', $v['shortcut']) : '';
                 break;
             case "components":
                 $v['access'] ? $this->insertNewPermission($lastId, 'installation.components', $v['shortcut']) : '';
                 $v['access'] ? $this->insertNewPermission($lastId, 'installation.componentconfig') : '';
                 break;
             case "template":
                 $v['access'] ? $this->insertNewPermission($lastId, 'installation.template', $v['shortcut']) : '';
                 break;
             case "language":
                 $v['access'] ? $this->insertNewPermission($lastId, 'installation.language', $v['shortcut']) : '';
                 break;
             case "recycling":
                 $v['access'] ? $this->insertNewPermission($lastId, 'key.recycling', $v['shortcut']) : '';
                 break;
             case "globalCheckin":
                 $v['access'] ? $this->insertNewPermission($lastId, 'tool.GlobalCheckin', $v['shortcut']) : '';
                 break;
             case "guilog":
                 $v['access'] ? $this->insertNewPermission($lastId, 'tool.GuiLog', $v['shortcut']) : '';
                 break;
             case "update":
                 $v['access'] ? $this->insertNewPermission($lastId, 'update.Update', $v['shortcut']) : '';
                 break;
             case "systemInfo":
                 $v['access'] ? $this->insertNewPermission($lastId, 'help.SystemInfo', $v['shortcut']) : '';
                 break;
             case "about":
                 $v['access'] ? $this->insertNewPermission($lastId, 'help.About', $v['shortcut']) : '';
                 break;
             default:
                 /*add child permission*/
                 $path = './protected/pages/components/' . $v['composantname'];
                 $files = scandir($path);
                 $doc = new TXmlDocument();
                 $doc->loadFromFile($path . '/install.xml');
                 $permissions = $doc->getElementByTagName('permissions');
                 $permissions = $permissions->getElements();
                 $id = 0;
                 $addParent = null;
                 //! find the parent id of $v['id']
                 foreach ($permissions as $perm) {
                     if ($perm->getValue() == $v['id']) {
                         $id = $perm->getAttribute('id');
                         $addParent = $perm->getAttribute('add');
                     }
                 }
                 //add each permission where the parentid equal the id
                 foreach ($permissions as $perm) {
                     if ($id == $perm->getAttribute('parent')) {
                         $v['access'] ? $this->insertNewPermission($lastId, $perm->getValue()) : '';
                     }
                 }
                 if ($addParent === null || $addParent == "true") {
                     $v['access'] ? $this->insertNewPermission($lastId, $v['id'], $v['shortcut']) : '';
                 }
                 break;
         }
     }
 }
Exemplo n.º 6
0
 protected function onPrint()
 {
     parent::onPrint();
     $param = $this->Application->getParameters();
     $groupId = $this->Application->getUser()->getGroupID();
     $nCell = 0;
     $accessRight = array();
     $cellHeaderWidth = 6;
     $cellHeaderHeight = 40;
     $this->pdf->AddPage('L');
     $this->pdf->SetFont('Arial', '', 11);
     $this->pdf->Cell(0, 10, utf8_decode(Prado::localize('List of the super users groups')), 0, 0, 'L');
     $this->pdf->Ln(10);
     $this->pdf->setDefaultFont();
     //! put a marge
     $this->pdf->Cell(30);
     $this->pdf->SetFillColor(124, 124, 124);
     $this->pdf->SetTextColor(255);
     $this->pdf->SetDrawColor(255);
     $this->pdf->SetLineWidth(0.3);
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Control Panel')), 1, 0, 'D', true);
     $accessRight[] = "controlPanel.ControlPanel";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Super User')), 1, 0, 'D', true);
     $accessRight[] = "superuser.userList";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Super User Group')), 1, 0, 'D', true);
     $accessRight[] = "superuser.userGroupList";
     if ($param['appMode'] == 'saas' && $groupId == 1 || $param['appMode'] != 'saas') {
         $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Configuration')), 1, 0, 'D', true);
         $accessRight[] = "configuration.config";
     } else {
         $nCell--;
     }
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Site')), 1, 0, 'D', true);
     $accessRight[] = "site.Site";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Hardware')), 1, 0, 'D', true);
     $accessRight[] = "hardware.HardwareList";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Opent time')), 1, 0, 'D', true);
     $accessRight[] = "openTime.openTimeList";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Alarms')), 1, 0, 'D', true);
     $accessRight[] = "system.Alarms";
     if ($param['appMode'] == 'saas' && $groupId == 1 || $param['appMode'] != 'saas') {
         $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Horux Service')), 1, 0, 'D', true);
         $accessRight[] = "system.Service";
     } else {
         $nCell--;
     }
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Horux Status')), 1, 0, 'D', true);
     $accessRight[] = "system.Status";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('User')), 1, 0, 'D', true);
     $accessRight[] = "user.UserList";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('User Group')), 1, 0, 'D', true);
     $accessRight[] = "userGroup.UserGroupList";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('User Wizard')), 1, 0, 'D', true);
     $accessRight[] = "user.UserWizzard";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Key')), 1, 0, 'D', true);
     $accessRight[] = "key.KeyList";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Access Level')), 1, 0, 'D', true);
     $accessRight[] = "accessLevel.accessLevelList";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Non Working Day')), 1, 0, 'D', true);
     $accessRight[] = "nonWorkingDay.nonWorkingDay";
     $cmd = $this->db->createCommand("SELECT * FROM hr_install WHERE type='component'");
     $data = $cmd->query();
     $data = $data->readAll();
     $this->pdf->SetFillColor(176, 176, 176);
     foreach ($data as $d) {
         $nCell++;
         $doc = new TXmlDocument();
         $doc->loadFromFile('./protected/pages/components/' . $d['name'] . '/install.xml');
         $name = $doc->getElementByTagName('name');
         $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize($name->getValue())), 1, 0, 'D', true);
         $accessRight[] = "components." . $d['name'];
     }
     $this->pdf->SetFillColor(124, 124, 124);
     if ($param['appMode'] == 'saas' && $groupId == 1 || $param['appMode'] != 'saas') {
         $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Install/Uninstall')), 1, 0, 'D', true);
         $accessRight[] = "installation.extensions";
         $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Devices Manager')), 1, 0, 'D', true);
         $accessRight[] = "installation.devices";
         $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Component Manager')), 1, 0, 'D', true);
         $accessRight[] = "installation.components";
         $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Template Manager')), 1, 0, 'D', true);
         $accessRight[] = "installation.template";
     } else {
         $nCell -= 4;
     }
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Language Manager')), 1, 0, 'D', true);
     $accessRight[] = "installation.language";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Global Checkin')), 1, 0, 'D', true);
     $accessRight[] = "tool.GlobalCheckin";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('Horux Gui log')), 1, 0, 'D', true);
     $accessRight[] = "tool.GuiLog";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('System Info')), 1, 0, 'D', true);
     $accessRight[] = "help.SystemInfo";
     $this->pdf->VCell($cellHeaderWidth, $cellHeaderHeight, utf8_decode(Prado::localize('About')), 1, 1, 'D', true);
     $accessRight[] = "help.About";
     $nCell += 25;
     $groups = $this->getData();
     foreach ($groups as $g) {
         if ($g['superAdmin'] == 1) {
             $this->pdf->SetFillColor(255, 76, 76);
         } else {
             $this->pdf->SetFillColor(124, 124, 124);
         }
         $this->pdf->Cell(30, $cellHeaderWidth, utf8_decode($g['name']), 1, 0, 'L', true);
         for ($i = 0; $i < $nCell; $i++) {
             $cmd = $this->db->createCommand("SELECT * FROM hr_gui_permissions  WHERE page LIKE '" . $accessRight[$i] . "%' AND value=" . $g['id']);
             $data = $cmd->query();
             $data = $data->readAll();
             if ($data || $accessRight[$i] == "controlPanel.ControlPanel" || $accessRight[$i] == "help.About") {
                 $this->pdf->Image("./fpdf/ok.png", $this->pdf->GetX() + $i * 6 + 1.5, $this->pdf->GetY() + 1.5, 3, 3);
             } else {
                 $this->pdf->Image("./fpdf/ko.png", $this->pdf->GetX() + $i * 6 + 1.5, $this->pdf->GetY() + 1.5, 3, 3);
             }
         }
         $this->pdf->Ln(6);
     }
     $this->pdf->Ln(10);
     $this->pdf->SetTextColor(0);
     $this->pdf->SetDrawColor(0);
     $groups = $this->getData();
     foreach ($groups as $g) {
         $this->pdf->Cell(80, $cellHeaderWidth, utf8_decode(Prado::Localize('Super users in "{g}" group', array("g" => $g['name']))), 'B', 1);
         $cmd = $this->db->createCommand("SELECT su.name AS username, u.name, u.firstname FROM hr_superusers AS su LEFT JOIN hr_user AS u ON u.id=su.user_id WHERE su.group_id=" . $g['id']);
         $data = $cmd->query();
         $users = $data->readAll();
         $userList = array();
         foreach ($users as $user) {
             $u = $user['username'];
             if (strlen($user['name']) > 0 || strlen($user['firstname']) > 0) {
                 $u .= " (" . $user['name'] . " " . $user['firstname'] . ")";
             }
             $userList[] = utf8_decode($u);
         }
         $userList = join(', ', $userList);
         $this->pdf->MultiCell(0, 6, $userList, 0, 1);
     }
     $this->pdf->render();
 }
 protected function saveData()
 {
     $key = $this->Request->getKeys();
     $res = array();
     for ($i = 0; $i < count($key); $i++) {
         if (strpos($key[$i], "hidden_") !== FALSE) {
             $res[$this->Request[$key[$i]]] = $this->Request[$key[$i + 1]];
         }
     }
     $id = $this->Request["id"];
     $cmd = $this->db->createCommand("SELECT i.name FROM hr_install AS i LEFT JOIN hr_component AS c ON c.id_install=i.id WHERE i.id=:id AND c.parentmenu=0");
     $cmd->bindValue(":id", $id, PDO::PARAM_INT);
     $cmd = $cmd->query();
     $data = $cmd->read();
     $this->cname->Text = $data["name"];
     $xml = "." . DIRECTORY_SEPARATOR . "protected" . DIRECTORY_SEPARATOR . "pages" . DIRECTORY_SEPARATOR . "components" . DIRECTORY_SEPARATOR . $data["name"] . DIRECTORY_SEPARATOR . "config.xml";
     if (file_exists($xml)) {
         $doc = new TXmlDocument();
         $doc->loadFromFile($xml);
         $parameters = $doc->getElementByTagName('parameters');
         $parameters = $parameters->getElements();
         foreach ($parameters as $parameter) {
             $k = $parameter->getAttribute('id');
             $parameter->setAttribute('value', $res[$k]);
         }
         $doc->saveToFile($xml);
     }
     return true;
 }