/** * 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; }
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); } }
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; }
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; }