Esempio n. 1
0
 /**
  * Method to be called when instancing a singleton.
  *
  * This method must be called when creating a new instance of a singleton;
  * singletons must not be created with the new keyword.
  *
  * This method calls the class ___construct method if available (please note
  * the three underscores), the first time the singleton is instanced.
  *
  * @param string $class Fully qualified class name to be instanced.
  * @static
  * @final
  * @access public
  * @return object
  */
 public static final function instance($class)
 {
     $registry = \Innomatic\Util\Registry::instance();
     // @todo compatibility mode
     if ($registry->isGlobalObject('system_classes')) {
         $system_classes = $registry->getGlobalObject('system_classes');
         if (isset($system_classes[$class])) {
             $class = $system_classes[$class]['fqcn'];
         }
     }
     if (!$registry->isGlobalObject('singleton ' . $class)) {
         $singleton = new $class();
         $registry->setGlobalObject('singleton ' . $class, $singleton);
         // Checks if the class has a ___construct method, that is the
         // real constructor for the object in place of the __construct one.
         if (method_exists($singleton, '___construct')) {
             // Checks if there are any parameter to pass to the constructor.
             if (func_num_args() > 1) {
                 // Gets this method parameters and strips away the first
                 // one, that is the name of the singleton class.
                 $args = func_get_args();
                 unset($args[0]);
                 // Calls the real class constructor.
                 call_user_func_array(array($singleton, '___construct'), $args);
             } else {
                 // Calls the real class constructor without parameters.
                 $singleton->___construct();
             }
         }
     }
     return $registry->getGlobalObject('singleton ' . $class);
 }
 protected function generateSource()
 {
     $registry = \Innomatic\Util\Registry::instance();
     if (!$registry->isGlobalObject('singleton xlayersmenu')) {
         $mid = new \Innomatic\Wui\Widgets\Layersmenu\XLayersMenu();
         $registry->setGlobalObject('singleton xlayersmenu', $mid);
     } else {
         $mid = $registry->getGlobalObject('singleton xlayersmenu');
     }
     $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $mid->libdir = $container->getHome() . 'core/lib/';
     $mid->libwww = $container->getBaseUrl(false) . '/shared/';
     //$mid->tpldir = $container->getHome().'core/conf/';
     $mid->imgdir = $this->mThemeHandler->mStyleDir;
     $mid->imgwww = $this->mThemeHandler->mStyleBase . $this->mThemeHandler->mStyleName . '/';
     //$mid->imgdir = $container->getHome().'shared/';
     //$mid->imgwww = $container->getBaseUrl(false).'/shared/';
     $mid->setMenuStructureString($this->mMenu);
     $mid->setDownArrowImg(basename($this->mThemeHandler->mStyle['arrowdownshadow']));
     $mid->setForwardArrowImg(basename($this->mThemeHandler->mStyle['arrowrightshadow']));
     $mid->ParseStructureForMenu($this->mName);
     //$mid->NewHorizontalMenu( $this->mName );
     $mid->newPlainMenu($this->mName);
     //$mid->setPHPTreeMenuDefaultExpansion("67|68|82");
     $mid->newPHPTreeMenu($this->mName);
     $mid->newTreeMenu($this->mName);
     //$mid->newVerticalMenu("vermenu1", 12);
     $mid->newVerticalMenu($this->mName);
     //$mid->setMenuStructureString($menustring);
     //$mid->parseStructureForMenu("vermenu1");
     $this->mLayout = ($this->mComments ? '<!-- begin ' . $this->mName . ' treevmenu -->' : '') . (isset($GLOBALS['gEnv']['runtime']['wui_menu']['header']) ? '' : $mid->MakeHeader()) . $mid->getTreeMenu($this->mName) . ($this->mComments ? '<!-- end ' . $this->mName . ' treevmenu -->' . "\n" : '');
     $GLOBALS['gEnv']['runtime']['wui_menu']['header'] = true;
     $GLOBALS['gEnv']['runtime']['wui_menu']['footer'] = $mid->MakeFooter();
     return true;
 }
Esempio n. 3
0
 public function getUrl()
 {
     $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $result = false;
     if (strlen($this->node)) {
         $node_name = $this->node;
         $anchor = '';
         if (strpos($this->node, '#')) {
             $node_name = substr($this->node, 0, strpos($this->node, '#'));
             $anchor = substr($this->node, strpos($this->node, '#'));
         }
         $reg = \Innomatic\Util\Registry::instance();
         // Tries specified language catalog
         //
         if (file_exists($container->getHome() . 'shared/help/' . $this->base . '/' . $this->language . '/' . $node_name)) {
             $help_node_file = $this->base . '/' . $this->language . '/' . $node_name;
         } else {
             if (file_exists($container->getHome() . 'shared/help/' . $this->base . '/' . $node_name)) {
                 $help_node_file = $this->base . '/' . $node_name;
             } else {
                 if (file_exists($container->getHome() . 'shared/help/' . $this->base . '/' . $container->getLanguage() . '/' . $node_name)) {
                     $help_node_file = $this->base . '/' . $container->getLanguage() . '/' . $node_name;
                 } else {
                     if (file_exists($container->getHome() . 'shared/help/' . $this->base . '/en/' . $node_name)) {
                         $help_node_file = $this->base . '/en/' . $node_name;
                     } else {
                         $log = $container->getLogger();
                         $log->logEvent('innomatic.txt.txt.getcontent', 'Unable to find an help node file for the specified help node (' . $node_name . ') and language (' . $this->language . ') or fallback to another language', \Innomatic\Logging\Logger::ERROR);
                     }
                 }
             }
         }
         if (!empty($help_node_file)) {
             return $container->getBaseUrl(false) . '/shared/help/' . $help_node_file . $anchor;
         }
     }
     return $result;
 }
 public static function clearClassesCache()
 {
     $home = realpath(dirname(__FILE__) . '/../../../../..') . '/';
     // Check if the serialized classes file exists
     if (file_exists($home . 'innomatic/core/temp/cache/classes.ser')) {
         unlink($home . 'innomatic/core/temp/cache/classes.ser');
         $registry = \Innomatic\Util\Registry::instance();
         $registry->setGlobalObject('system_classes', null);
         $registry->setGlobalObject('system_fqcns', null);
     }
 }
Esempio n. 5
0
 protected function generateSourceBegin()
 {
     $dashboard_id = '';
     $prefs_id = '';
     $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     // Check if Innomatic is in setup phase
     if (!($container->getState() == \Innomatic\Core\InnomaticContainer::STATE_SETUP)) {
         // Check if Innomatic is in root or domain mode
         if (!$container->isDomainStarted()) {
             // Root mode
             $root_db = $container->getDataAccess();
             $groups_query = $root_db->execute('SELECT * FROM root_panels_groups ORDER BY name');
             $num_groups = $groups_query->getNumberRows();
             $tabs = array();
             $tab_pages = array();
             if ($num_groups > 0) {
                 $cont_a = 0;
                 unset($el);
                 while (!$groups_query->eof) {
                     $group_apps = false;
                     $group_data = $groups_query->getFields();
                     if (strlen($group_data['catalog'])) {
                         $tmp_locale = new LocaleCatalog($group_data['catalog'], $container->getLanguage());
                         $el[$group_data['id']]['groupname'] = $tmp_locale->getStr($group_data['name']);
                     } else {
                         $el[$group_data['id']]['groupname'] = $group_data['name'];
                     }
                     $pagesquery = $root_db->execute('SELECT * FROM root_panels WHERE groupid=' . $group_data['id'] . ' ORDER BY name');
                     if ($pagesquery) {
                         $pagesnum = $pagesquery->getNumberRows();
                         if ($pagesnum > 0) {
                             $group_apps = true;
                             $cont_b = 0;
                             while (!$pagesquery->eof) {
                                 $pagedata = $pagesquery->getFields();
                                 if (strlen($pagedata['catalog']) > 0) {
                                     $tmploc = new LocaleCatalog($pagedata['catalog'], $container->getLanguage());
                                     $descstr = $tmploc->getStr($pagedata['name']);
                                 }
                                 $tmp_eventscall = new \Innomatic\Wui\Dispatch\WuiEventsCall($pagedata['name']);
                                 $tmp_eventscall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', ''));
                                 if (strlen($pagedata['themeicontype'])) {
                                     $imageType = $pagedata['themeicontype'];
                                 } else {
                                     $imageType = 'icons';
                                 }
                                 strlen($pagedata['themeicon']) and isset($this->mThemeHandler->mIconsSet[$imageType][$pagedata['themeicon']]) ? $imageUrl = $this->mThemeHandler->mIconsBase . $this->mThemeHandler->mIconsSet[$imageType][$pagedata['themeicon']]['base'] . '/' . $imageType . '/' . $this->mThemeHandler->mIconsSet[$imageType][$pagedata['themeicon']]['file'] : ($imageUrl = $pagedata['iconfile']);
                                 $el[$group_data['id']]['groupelements'][$cont_b]['name'] = $descstr;
                                 $el[$group_data['id']]['groupelements'][$cont_b]['image'] = $imageUrl;
                                 $el[$group_data['id']]['groupelements'][$cont_b]['action'] = $tmp_eventscall->getEventsCallString();
                                 $el[$group_data['id']]['groupelements'][$cont_b]['themesized'] = 'true';
                                 unset($tmp_eventscall);
                                 $cont_b++;
                                 $pagesquery->moveNext();
                             }
                         }
                     }
                     // TODO Check if this section is for compatibility only - and remove it
                     if ($group_data['name'] == 'innomatic') {
                         $pagesquery = $root_db->execute('SELECT * FROM root_panels WHERE groupid=0 OR groupid IS NULL ORDER BY name');
                         if ($pagesquery) {
                             $pagesnum = $pagesquery->getNumberRows();
                             if ($pagesnum > 0) {
                                 $group_apps = true;
                                 while (!$pagesquery->eof) {
                                     $pagedata = $pagesquery->getFields();
                                     if (strlen($pagedata['catalog']) > 0) {
                                         $tmploc = new LocaleCatalog($pagedata['catalog'], $container->getLanguage());
                                         $descstr = $tmploc->getStr($pagedata['name']);
                                     }
                                     $tmp_eventscall = new \Innomatic\Wui\Dispatch\WuiEventsCall($pagedata['name']);
                                     $tmp_eventscall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', ''));
                                     $el[$group_data['id']]['groupelements'][$cont_b]['name'] = $descstr;
                                     $el[$group_data['id']]['groupelements'][$cont_b]['image'] = $pagedata['iconfile'];
                                     $el[$group_data['id']]['groupelements'][$cont_b]['action'] = $tmp_eventscall->getEventsCallString();
                                     $el[$group_data['id']]['groupelements'][$cont_b]['themesized'] = 'true';
                                     unset($tmp_eventscall);
                                     $cont_b++;
                                     $pagesquery->moveNext();
                                 }
                             }
                         }
                     }
                     $groups_query->moveNext();
                     if ($group_apps) {
                         $cont_a++;
                     } else {
                         unset($el[$group_data['id']]);
                     }
                 }
             }
         } else {
             // Domain mode
             $tmpperm = new \Innomatic\Desktop\Auth\DesktopPanelAuthorizator($container->getCurrentDomain()->getDataAccess(), $container->getCurrentUser()->getGroup());
             $tabs = array();
             $tab_pages = array();
             $groupsquery = $container->getCurrentDomain()->getDataAccess()->execute('SELECT * FROM domain_panels_groups ORDER BY name');
             $numgroups = $groupsquery->getNumberRows();
             if ($numgroups > 0) {
                 $prefs_id = 0;
                 $tools_id = 0;
                 $dashboard_id = 0;
                 $cont = 0;
                 unset($el);
                 while (!$groupsquery->eof) {
                     $group_apps = false;
                     $groupdata = $groupsquery->getFields();
                     if ($tmpperm->check($groupdata['id'], 'group') != \Innomatic\Desktop\Auth\DesktopPanelAuthorizator::NODE_NOTENABLED) {
                         switch ($groupdata['name']) {
                             case 'tools':
                                 $tools_id = $groupdata['id'];
                                 break;
                             case 'preferences':
                                 $prefs_id = $groupdata['id'];
                                 break;
                             case 'dashboard':
                                 $dashboard_id = $groupdata['id'];
                                 break;
                         }
                         if (strlen($groupdata['catalog']) > 0) {
                             $tmploc = new LocaleCatalog($groupdata['catalog'], $container->getCurrentUser()->getLanguage());
                             $descstr = $tmploc->getStr($groupdata['name']);
                             $el[$groupdata['id']]['groupname'] = $descstr;
                         } else {
                             $el[$group_data['id']]['groupname'] = $groupdata['name'];
                         }
                         $pagesquery = $container->getCurrentDomain()->getDataAccess()->execute('SELECT *
                                 FROM domain_panels
                                 WHERE groupid = ' . $groupdata['id'] . '
                                 AND (hidden != ' . $container->getCurrentDomain()->getDataAccess()->formatText($container->getCurrentDomain()->getDataAccess()->fmttrue) . '
                                 OR hidden IS NULL)
                                 ORDER BY name');
                         $pagesnum = $pagesquery->getNumberRows();
                         if ($pagesnum > 0) {
                             $group_apps = true;
                             $contb = 0;
                             while (!$pagesquery->eof) {
                                 $pagedata = $pagesquery->getFields();
                                 if ($tmpperm->check($pagedata['id'], 'page') != \Innomatic\Desktop\Auth\DesktopPanelAuthorizator::NODE_NOTENABLED) {
                                     if (strlen($pagedata['catalog']) > 0) {
                                         $tmploc = new LocaleCatalog($pagedata['catalog'], $container->getCurrentUser()->getLanguage());
                                         $descstr = $tmploc->getStr($pagedata['name']);
                                         $tmp_eventscall = new \Innomatic\Wui\Dispatch\WuiEventsCall($pagedata['name']);
                                         $tmp_eventscall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', ''));
                                         if (strlen($pagedata['themeicontype'])) {
                                             $imageType = $pagedata['themeicontype'];
                                         } else {
                                             $imageType = 'apps';
                                         }
                                         (strlen($pagedata['themeicon']) and isset($this->mThemeHandler->mIconsSet[$imageType][$pagedata['themeicon']])) ? $imageUrl = $this->mThemeHandler->mIconsBase . $this->mThemeHandler->mIconsSet[$imageType][$pagedata['themeicon']]['base'] . '/' . $imageType . '/' . $this->mThemeHandler->mIconsSet[$imageType][$pagedata['themeicon']]['file'] : ($imageUrl = $pagedata['iconfile']);
                                         $el[$groupdata['id']]['groupelements'][$contb]['name'] = $descstr;
                                         $el[$groupdata['id']]['groupelements'][$contb]['image'] = $imageUrl;
                                         $el[$groupdata['id']]['groupelements'][$contb]['action'] = $tmp_eventscall->getEventsCallString();
                                         $el[$groupdata['id']]['groupelements'][$contb]['themesized'] = 'true';
                                         unset($tmp_eventscall);
                                     }
                                 }
                                 $pagesquery->movenext();
                                 $contb++;
                             }
                         }
                     }
                     // $cont++;
                     if ($group_apps) {
                         $cont++;
                     } else {
                         unset($el[$groupdata['id']]);
                     }
                     $groupsquery->movenext();
                 }
                 //if ($prefs_id != 0) {}
             }
         }
         $menu = '';
         // Dashboard is always the first menu
         if (isset($el[$dashboard_id])) {
             $menu .= '.|' . $el[$dashboard_id]['groupname'] . "\n";
             foreach ($el[$dashboard_id]['groupelements'] as $panel) {
                 $menu .= '..|' . $panel['name'] . '|' . $panel['action'] . "\n";
             }
         }
         // Build the menu list
         foreach ($el as $id => $group) {
             // Skip dashboard and preferences menu
             if ($id == $prefs_id or $id == $dashboard_id) {
                 continue;
             }
             $menu .= '.|' . $group['groupname'] . "\n";
             foreach ($group['groupelements'] as $panel) {
                 $menu .= '..|' . $panel['name'] . '|' . $panel['action'] . "\n";
             }
         }
         // Preferences is always the last menu
         if (isset($el[$prefs_id])) {
             $menu .= '.|' . $el[$prefs_id]['groupname'] . "\n";
             foreach ($el[$prefs_id]['groupelements'] as $panel) {
                 $menu .= '..|' . $panel['name'] . '|' . $panel['action'] . "\n";
             }
         }
         $registry = \Innomatic\Util\Registry::instance();
         if (!$registry->isGlobalObject('singleton xlayersmenu')) {
             $mid = new \Innomatic\Wui\Widgets\Layersmenu\XLayersMenu();
             $registry->setGlobalObject('singleton xlayersmenu', $mid);
         } else {
             $mid = $registry->getGlobalObject('singleton xlayersmenu');
         }
         // Menu parameters
         $mid->libdir = $container->getHome() . 'core/lib/';
         $mid->libwww = $container->getBaseUrl(false) . '/shared/';
         $mid->tpldir = $container->getHome() . 'core/conf/layersmenu/';
         $mid->imgdir = $this->mThemeHandler->mStyleDir;
         $mid->imgwww = $this->mThemeHandler->mStyleBase . $this->mThemeHandler->mStyleName . '/';
         $mid->setMenuStructureString($menu);
         $mid->setDownArrowImg(basename($this->mThemeHandler->mStyle['arrowdownshadow']));
         $mid->setForwardArrowImg(basename($this->mThemeHandler->mStyle['arrowrightshadow']));
         $mid->parseStructureForMenu($this->mName);
         $mid->newHorizontalMenu($this->mName);
     }
     // User data
     if ($container->isDomainStarted()) {
         $user_data = $container->getCurrentUser()->getUserData();
         $user_name = $user_data['fname'] . ' ' . $user_data['lname'];
         $domain_name = $container->getCurrentDomain()->domaindata['domainname'];
         $logout_events_call = new \Innomatic\Wui\Dispatch\WuiEventsCall(\Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer')->getProcessor()->getRequest()->getUrlPath() . '/');
         $innomatic_menu_locale = new LocaleCatalog('innomatic::domain_menu', $container->getCurrentUser()->getLanguage());
     } else {
         // In root mode we show generic user data
         $user_name = 'root';
         $domain_name = 'Innomatic';
         $logout_events_call = new \Innomatic\Wui\Dispatch\WuiEventsCall(\Innomatic\Webapp\WebAppContainer::instance('\\Innomatic\\Webapp\\WebAppContainer')->getProcessor()->getRequest()->getUrlPath() . '/root');
         $innomatic_menu_locale = new LocaleCatalog('innomatic::root_menu', $container->getLanguage());
     }
     $logout_events_call->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('login', 'logout', ''));
     // Check the environment type and set the title and the header bar color
     switch ($container->getEnvironment()) {
         case \Innomatic\Core\InnomaticContainer::ENVIRONMENT_DEVELOPMENT:
             // Development environment
             $domain_name .= ' (' . $innomatic_menu_locale->getStr('environment_development') . ')';
             $env_class = 'headerbar_dev';
             break;
         case \Innomatic\Core\InnomaticContainer::ENVIRONMENT_INTEGRATION:
             // Integration environment
             $domain_name .= ' (' . $innomatic_menu_locale->getStr('environment_integration') . ')';
             $env_class = 'headerbar_integration';
             break;
         case \Innomatic\Core\InnomaticContainer::ENVIRONMENT_STAGING:
             // Staging environment
             $domain_name .= ' (' . $innomatic_menu_locale->getStr('environment_staging') . ')';
             $env_class = 'headerbar_staging';
             break;
         case \Innomatic\Core\InnomaticContainer::ENVIRONMENT_PRODUCTION:
             // Production environment
             $env_class = 'headerbar';
             break;
     }
     // HTML
     $charset = 'UTF-8';
     // $block = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n";
     // $block = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' . "\n";
     $block = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . "\n";
     $block .= "<html>\n";
     $block .= "<head>\n";
     // WUI javascript
     $block .= '<script language="JavaScript" type="text/javascript" src="' . $container->getBaseUrl(false) . '/shared/wui.js"></script>' . "\n";
     $block .= "<script language=\"JavaScript\" type=\"text/javascript\" src=\"" . $container->getBaseUrl(false) . '/shared/' . "layersmenu.js\"></script>\n";
     // WUI style
     $block .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . $this->mThemeHandler->mStyle['css'] . "\">\n";
     // JQuery
     $block .= '<link href="' . $container->getBaseUrl(false) . '/shared/jquery/css/jquery-ui-1.10.3.custom.min.css" rel="stylesheet">' . "\n";
     $block .= '<script language="JavaScript" type="text/javascript" src="' . $container->getBaseUrl(false) . '/shared/jquery/js/jquery-1.9.1.js"></script>' . "\n";
     $block .= '<script language="JavaScript" type="text/javascript" src="' . $container->getBaseUrl(false) . '/shared/jquery/js/jquery-ui-1.10.3.custom.min.js"></script>' . "\n";
     $block .= '<link href="' . $container->getBaseUrl(false) . '/shared/jquery/css/jquery_validation_errors.css" rel="stylesheet">' . "\n";
     $block .= '<script language="JavaScript" type="text/javascript" src="' . $container->getBaseUrl(false) . '/shared/jquery/js/jquery.validate.js"></script>' . "\n";
     // Favicon
     $block .= '<link rel="shortcut icon" href="' . $container->getBaseUrl(false) . '/favicon.png" type="image/png"/>' . "\n";
     // PNG Behavior
     // @todo Consider removing support for PNG behavior
     $block .= "<style type=\"text/css\">\nimg {\nbehavior:    url(\"" . $container->getBaseUrl(false) . '/shared/' . "pngbehavior.htc\");\n}\n</style>\n";
     // Page title
     $block .= "<title>" . \Innomatic\Wui\Wui::utf8_entities($this->mArgs['title']) . "</title>\n";
     // Optional inline javascript code
     $block .= (isset($this->mArgs['javascript']) and strlen($this->mArgs['javascript'])) ? "<script language=\"JavaScript\">\n<!--\n" . $this->mArgs['javascript'] . "\n//-->\n</script>\n" : '';
     // Content type
     $block .= '<meta http-equiv="Content-Type" content="text/html; charset=' . $charset . '">' . "\n";
     $block .= '<meta name="MSSmartTagsPreventParsing" content="true">' . "\n";
     // Optional auto refresh
     if ($this->mArgs['refresh']) {
         $block .= '<meta http-equiv="refresh" content="' . $this->mArgs['refresh'] . '">' . "\n";
     }
     $block .= "</head>\n";
     $block .= '<body bgcolor="' . $this->mThemeHandler->mColorsSet['pages']['bgcolor'] . '"';
     if (isset($this->mArgs['background']) and strlen($this->mArgs['background'])) {
         $block .= ' style="background-image: url(\'' . $this->mArgs['background'] . '\');';
         if (isset($this->mArgs['horizbackground']) and $this->mArgs['horizbackground'] == 'true') {
             $block .= ' background-repeat: repeat-x;';
         }
         $block .= '"';
     }
     $block .= ">\n";
     $block .= '<table width="100%" height="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
         <td valign="' . $this->mArgs['valign'] . '" align="' . $this->mArgs['align'] . '" style="height: 100%;">' . "\n";
     if ($this->mArgs['border'] == 'true') {
         if (!($container->getState() == \Innomatic\Core\InnomaticContainer::STATE_SETUP)) {
             $menu_header = (isset($GLOBALS['gEnv']['runtime']['wui_menu']['header']) ? '' : $mid->MakeHeader()) . $mid->getMenu($this->mName);
             $menu_footer = $mid->MakeFooter();
         } else {
             $menu_header = $menu_footer = '';
         }
         $block .= "<table class=\"page\" border=\"0\" style=\"border-bottom: 0px solid " . $this->mThemeHandler->mColorsSet['pages']['border'] . ";\" width=\"100%\" cellspacing=\"0\" cellpadding=\"10\">\n" . '<thead id="page-thead" class="page"><tr class="' . $env_class . '">' . "\n" . "<td style=\"width: 100%; align: center; padding-left: 16px;\" align=\"left\">" . "<a href=\"" . $container->getBaseUrl(false) . "\"><img src=\"" . $this->mThemeHandler->mStyle['titlelogo'] . "\" align=\"left\" width=\"25\" height=\"25\" style=\"margin-right: 15px;\" border=\"0\" alt=\"Innomatic\"></a>" . "<span nowrap class=\"headerbar\" style=\"white-space: nowrap;\">" . $domain_name . '</span></td>' . '<td align="right" valign="middle" nowrap style="white-space: nowrap; padding-right: 10px;">' . '<table border="0" style="margin: 0px; padding: 0px;" cellpadding="0" cellspacing="0"><tr>';
         if (!($container->getState() == \Innomatic\Core\InnomaticContainer::STATE_SETUP)) {
             $block .= '<td><span class="headerbar" style="white-space: nowrap;">' . $user_name . "</span></td>";
             if ($container->isDomainStarted() == true) {
                 // Tray bar items
                 $domain_da = $container->getCurrentDomain()->getDataAccess();
                 $perm = new \Innomatic\Desktop\Auth\DesktopPanelAuthorizator($domain_da, $container->getCurrentUser()->getGroup());
                 // Extract the list of all the tray bar items
                 $traybar_items_query = $domain_da->execute('SELECT * FROM domain_traybar_items ORDER BY name');
                 while (!$traybar_items_query->eof) {
                     $panel = $traybar_items_query->getFields('panel');
                     // Do not show traybar items tied to a panel when the panel is not accessible to the current user
                     if (strlen($panel)) {
                         $node_id = $perm->getNodeIdFromFileName($panel);
                         if ($perm->check($node_id, \Innomatic\Desktop\Auth\DesktopPanelAuthorizator::NODETYPE_PAGE) == \Innomatic\Desktop\Auth\DesktopPanelAuthorizator::NODE_NOTENABLED) {
                             $traybar_items_query->moveNext();
                             continue;
                         }
                     }
                     $class_name = $traybar_items_query->getFields('class');
                     if (class_exists($class_name)) {
                         $traybar_item = new $class_name();
                         $traybar_item->prepare();
                         $block .= '<td style="padding-left: 15px;">' . $traybar_item->getHtml() . '</td>';
                     }
                     $traybar_items_query->moveNext();
                 }
             }
             // Logout button
             $block .= '<td><a href="' . $logout_events_call->getEventsCallString() . '" alt="' . $innomatic_menu_locale->getStr('logout') . '"><img width="25" height="25" align="right" style="margin-left: 15px;" src="' . $this->mThemeHandler->mStyle['logout'] . '" alt="' . $innomatic_menu_locale->getStr('logout') . '" /></a></td>';
         }
         // Menu and toolbar
         $block .= "</tr></table></td></tr>" . "<tr><td colspan=\"2\" style=\"border-bottom: 1px solid #cccccc; margin: 0px; padding: 0px; width: 100%; height: 45px; background-color: " . $this->mThemeHandler->mColorsSet['titlebars']['bgcolor'] . ";\" align=\"left\" valign=\"middle\" nowrap style=\"white-space: nowrap\">" . $menu_header . '</td></tr>' . "<tr><td id=\"sub-top-menu\" class=\"table-container\" colspan=\"2\" style=\"border-bottom: 1px solid #cccccc; margin: 0px; padding: 0px; height: 45px; background-color: white;\" align=\"left\" valign=\"middle\" nowrap style=\"white-space: nowrap\">" . "<table cellspacing=\"0\" cellpadding=\"0\" style=\"margin: 0px; padding: 4px;\"><tr><td>{[wui-titlebar-title]}{[wui-toolbars]}" . '</tr></table></td></tr><tr>' . '</thead><tbody id="page-tbody" class="page">' . "<td valign=\"top\" colspan=\"2\" style=\"\">\n";
         // @todo Refactor and remove the globals
         $GLOBALS['gEnv']['runtime']['wui_menu']['header'] = true;
         $GLOBALS['gEnv']['runtime']['wui_menu']['footer'] = $menu_footer;
     }
     return $block;
 }
 public function cleanSystemLogs()
 {
     $reg = \Innomatic\Util\Registry::instance();
     if ($this->mCleanRootLog and file_exists(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/innomatic.log')) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/innomatic.log');
         $log->Rotate(0);
         unlink(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/innomatic.log');
     }
     if ($this->mCleanRootDbLog and file_exists(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/innomatic_root_db.log')) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/innomatic_root_db.log');
         $log->Rotate(0);
         unlink(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/innomatic_root_db.log');
     }
     if ($this->mCleanPhpLog and file_exists(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/php.log')) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/php.log');
         $log->Rotate(0);
         unlink(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/php.log');
     }
     if ($this->mCleanWebServicesLog and file_exists(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/webservices.log')) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/webservices.log');
         $log->Rotate(0);
         unlink(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/webservices.log');
     }
     if ($this->mCleanAccessLog and file_exists(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/access.log')) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/access.log');
         $log->Rotate(0);
         unlink(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/access.log');
     }
     if ($this->mRotateRootLog) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/innomatic.log');
         $log->Rotate(7);
     }
     if ($this->mRotateRootDbLog) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/innomatic_root_db.log');
         $log->Rotate(7);
     }
     if ($this->mRotatePhpLog) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/php.log');
         $log->Rotate(7);
     }
     if ($this->mRotateWebServicesLog) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/webservices.log');
         $log->Rotate(7);
     }
     if ($this->mRotateAccessLog) {
         $log = new \Innomatic\Logging\Logger(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getHome() . 'core/log/access.log');
         $log->Rotate(7);
     }
     return true;
 }
Esempio n. 7
0
 public static function createDb($eventData = '', $log = '')
 {
     $result = false;
     $reg = \Innomatic\Util\Registry::instance();
     $innomatic = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer');
     $dasn_string = $eventData['dbtype'] . '://' . $eventData['dbuser'] . ':' . $eventData['dbpass'] . '@' . $eventData['dbhost'] . ':' . $eventData['dbport'] . '/' . $eventData['dbname'] . '?' . 'logfile=' . $innomatic->getHome() . 'core/log/innomatic_root_db.log';
     $tmpdb = \Innomatic\Dataaccess\DataAccessFactory::getDataAccess(new \Innomatic\Dataaccess\DataAccessSourceName($dasn_string));
     if ($tmpdb->Connect()) {
         $tmpdb->DropDB($eventData);
         $tmpdb->Close();
     }
     if ($tmpdb->CreateDB($eventData)) {
         if ($tmpdb->Connect()) {
             // Tables creation
             //
             $xmldb = new \Innomatic\Dataaccess\DataAccessXmlTable($tmpdb, \Innomatic\Dataaccess\DataAccessXmlTable::SQL_CREATE);
             if ($xmldb->load_DefFile($innomatic->getHome() . 'core/db/innomatic_root.xml')) {
                 if ($tmpdb->execute($xmldb->getSQL())) {
                     // Database configuration file creation
                     //
                     $fh = @fopen($innomatic->getHome() . 'core/conf/innomatic.ini', 'a');
                     if ($fh) {
                         fputs($fh, 'RootDatabaseType = ' . $eventData['dbtype'] . "\n");
                         fputs($fh, 'RootDatabaseName = ' . $eventData['dbname'] . "\n");
                         fputs($fh, 'RootDatabaseHost = ' . $eventData['dbhost'] . "\n");
                         fputs($fh, 'RootDatabasePort = ' . $eventData['dbport'] . "\n");
                         fputs($fh, 'RootDatabaseUser = '******'dbuser'] . "\n");
                         fputs($fh, 'RootDatabasePassword = '******'dbpass'] . "\n");
                         fputs($fh, 'RootDatabaseDebug = 0' . "\n");
                         fclose($fh);
                         $result = true;
                         @touch($innomatic->getHome() . 'core/temp/setup_dbcreated', time());
                         if (file_exists($innomatic->getHome() . 'core/temp/setup_creatingdb')) {
                             @unlink($innomatic->getHome() . 'core/temp/setup_creatingdb');
                         }
                     } else {
                         $log->logevent('innomatic.root.main_php', 'Unable to create root database configuration file during initialization', \Innomatic\Logging\Logger::ERROR);
                     }
                 } else {
                     $log->logevent('innomatic.root.main_php', 'Unable to create root database tables during initialization', \Innomatic\Logging\Logger::ERROR);
                 }
             } else {
                 $log->logevent('innomatic.root.main_php', 'Unable to open Innomatic structure file during initialization', \Innomatic\Logging\Logger::ERROR);
             }
         } else {
             $log->logevent('innomatic.root.main_php', 'Unable to connect to root database during initialization', \Innomatic\Logging\Logger::ERROR);
         }
     } else {
         $log->logevent('innomatic.root.main_php', 'Unable to create root database during initialization: ' . $tmpdb->getLastError(), \Innomatic\Logging\Logger::ERROR);
     }
     return $result;
 }