public static function getRolesPermissionsXml() { $localeCatalog = new \Innomatic\Locale\LocaleCatalog('innomatic::domain_profiles', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage()); $rolesList = \Innomatic\Domain\User\Role::getAllRoles(); $rolesCount = count($rolesList); // Build roles/permissions matrix $rolesPermissions = array(); foreach ($rolesList as $roleId => $roleData) { $role = new \Innomatic\Domain\User\Role($roleId); $rolesPermissions[$roleId] = $role->getPermissions(); } $permissionsList = \Innomatic\Domain\User\Permission::getAllPermissions(); // Build table headers $headers = array(); $headerCounter = 1; foreach ($rolesList as $roleId => $roleData) { $headers[$headerCounter++]['label'] = $roleData['title']; } $xml = '<vertgroup><children> <table> <args> <headers type="array">' . WuiXml::encode($headers) . '</headers> </args> <children>'; $row = 0; $prevApplication = ''; foreach ($permissionsList as $permId => $permData) { if ($permData['application'] != $prevApplication) { $xml .= '<label row="' . $row++ . '" col="0" halign="left" valign="middle" nowrap="false" width="" colspan="' . ($rolesCount + 1) . '"><args><label>' . WuiXml::cdata($permData['application']) . '</label><bold>true</bold></args></label>'; } $xml .= '<label row="' . $row . '" col="0" halign="left" valign="middle"><args><label>' . WuiXml::cdata($permData['title']) . '</label><nowrap>false</nowrap></args></label>'; $col = 1; foreach ($rolesList as $roleId => $roleData) { if (isset($rolesPermissions[$roleId][$permId])) { $checked = 'true'; } else { $checked = 'false'; } $xml .= '<checkbox row="' . $row . '" col="' . $col++ . '" halign="center" valign="middle"><name>rolepermissioncb</name><args><id>cbrole_' . $roleId . '-' . $permId . '</id><checked>' . $checked . '</checked></args></checkbox>'; } $prevApplication = $permData['application']; $row++; } $xml .= '</children> </table> <horizbar/> <button><name>save</name> <args><themeimage>buttonok</themeimage><label>' . WuiXml::cdata($localeCatalog->getStr('save_roles_permissions_button')) . '</label><action>javascript:void(0)</action><horiz>true</horiz><frame>false</frame></args> <events> <click>' . WuiXml::cdata("\nvar checkboxes = document.getElementsByName('wui[][evd][rolepermissioncb]');\nvar vals = '';\nfor (var i=0, n=checkboxes.length;i<n;i++) {\n if (checkboxes[i].checked) vals += ','+checkboxes[i].id;\n}\nif (vals) vals = vals.substring(1);\n \t\t\t\nxajax_SaveRolesPermissions(vals);") . '</click> </events></button> </children></vertgroup>'; return $xml; }
function main_showclipping($eventData) { global $gXml_def, $gLocale, $customers, $gInnowork_core; $summaries = $gInnowork_core->GetSummaries(); $innowork_clipping = new InnoworkClipping(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess(), $eventData['id']); $clippings = $innowork_clipping->GetItems(); $gXml_def = ' <innoworksearch><name>clipping</name> <args> <searchresult type="array">' . WuiXml::encode($clippings['result']) . '</searchresult> <summaries type="array">' . WuiXml::encode($summaries) . '</summaries> <clipping>true</clipping> <clippingid>' . $eventData['id'] . '</clippingid> </args> </innoworksearch>'; }
function main_innomatic($eventData) { global $gXmlDefinition, $gLocale, $gPageTitle; $country = new \Innomatic\Locale\LocaleCountry(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCountry()); $tabs[0]['label'] = $gLocale->getStr('innomatic_status.tab'); $tabs[1]['label'] = $gLocale->getStr('innomatic_requirements.tab'); $tabs[2]['label'] = $gLocale->getStr('innomatic_settings.tab'); $logsMain = new \Shared\Maintenance\InnomaticLogsMaintenance(); $cacheMain = new \Shared\Maintenance\InnomaticCacheMaintenance(); $gXmlDefinition = '<tab><name>innomatic</name> <args> <tabs type="array">' . WuiXml::encode($tabs) . '</tabs> <tabactionfunction>innomatic_tab_builder</tabactionfunction> <activetab>' . (isset($eventData['tab']) ? $eventData['tab'] : '') . '</activetab> </args> <children> <vertgroup><name></name> <children> <label><name>tabtitle</name> <args> <label type="encoded">' . urlencode($gLocale->getStr('innomatic_status.label')) . '</label> <bold>true</bold> </args> </label> <grid> <children> <label row="0" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('systemlogs_size.label')) . '</label> </args> </label> <string row="0" col="1"> <args> <size>15</size> <readonly>true</readonly> <value type="encoded">' . urlencode($country->FormatNumber($logsMain->getSystemLogsSize())) . '</value> </args> </string> <button row="0" col="2"> <args> <themeimage>documentdelete</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label> <horiz>true</horiz> <frame>false</frame> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_systemlogs')))) . '</action> </args> </button> <label row="1" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('domainslogs_size.label')) . '</label> </args> </label> <string row="1" col="1"> <args> <size>15</size> <readonly>true</readonly> <value type="encoded">' . urlencode($country->FormatNumber($logsMain->getDomainsLogsSize())) . '</value> </args> </string> <button row="1" col="2"> <args> <themeimage>documentdelete</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label> <horiz>true</horiz> <frame>false</frame> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_domainslogs')))) . '</action> </args> </button> <label row="2" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('cache_size.label')) . '</label> </args> </label> <string row="2" col="1"> <args> <size>15</size> <readonly>true</readonly> <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getCacheSize())) . '</value> </args> </string> <button row="2" col="2"> <args> <themeimage>documentdelete</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label> <horiz>true</horiz> <frame>false</frame> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_cache')))) . '</action> </args> </button> <label row="3" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('sessions_size.label')) . '</label> </args> </label> <string row="3" col="1"> <args> <size>15</size> <readonly>true</readonly> <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getSessionsSize())) . '</value> </args> </string> <button row="3" col="2"> <args> <themeimage>documentdelete</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label> <horiz>true</horiz> <frame>false</frame> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_sessions')))) . '</action> </args> </button> <label row="4" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('pidfiles_size.label')) . '</label> </args> </label> <string row="4" col="1"> <args> <size>15</size> <readonly>true</readonly> <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getPidFilesSize())) . '</value> </args> </string> <button row="4" col="2"> <args> <themeimage>documentdelete</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label> <horiz>true</horiz> <frame>false</frame> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_pidfiles')))) . '</action> </args> </button> <label row="5" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('tempdirs_size.label')) . '</label> </args> </label> <string row="5" col="1"> <args> <size>15</size> <readonly>true</readonly> <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getRootTempDirsSize())) . '</value> </args> </string> <button row="5" col="2"> <args> <themeimage>documentdelete</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label> <horiz>true</horiz> <frame>false</frame> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_tempdirs')))) . '</action> </args> </button> <label row="6" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('clipboard_size.label')) . '</label> </args> </label> <string row="6" col="1"> <args> <size>15</size> <readonly>true</readonly> <value type="encoded">' . urlencode($country->FormatNumber($cacheMain->getClipboardSize())) . '</value> </args> </string> <button row="6" col="2"> <args> <themeimage>documentdelete</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('clear.label')) . '</label> <horiz>true</horiz> <frame>false</frame> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_clipboard')))) . '</action> </args> </button> <label row="7" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('cleanable_size.label')) . '</label> </args> </label> <string row="7" col="1"> <args> <size>15</size> <readonly>true</readonly> <value type="encoded">' . urlencode($country->FormatNumber($logsMain->getCleanableDiskSize() + $cacheMain->getCleanableDiskSize())) . '</value> </args> </string> <button row="7" col="2"> <args> <themeimage>documentdelete</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('clearall.label')) . '</label> <horiz>true</horiz> <frame>false</frame> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'clear_all')))) . '</action> </args> </button> </children> </grid> </children> </vertgroup> <vertgroup><name></name> <children> <label><name>tabtitle</name> <args> <label type="encoded">' . urlencode($gLocale->getStr('innomatic_requirements.label')) . '</label> <bold>true</bold> </args> </label> <table><name>sysinfotable</name> <children> '; $wuiWidget = new WuiXml('dummy'); // Required features // PHP version check // $row = 0; //if ( ereg( '[4-9]\.[0-9]\.[5-9].*', phpversion() ) or ereg( '[4-9]\.[1-9]\.[0-9].*', phpversion() ) ) if (ereg("[5-9]\\.[0-9]\\.[0-9].*", phpversion())) { $ball = $wuiWidget->mThemeHandler->mStyle['greenball']; $checkResult = sprintf($gLocale->getStr('php_available_label'), phpversion()); } else { $ball = $wuiWidget->mThemeHandler->mStyle['redball']; $checkResult = sprintf($gLocale->getStr('php_not_available_label'), phpversion()); } $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label> <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image> <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('php_test_label')) . '</label></args></label> <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>'; // File upload support // $row++; if (ini_get('file_uploads') == '1') { $ball = $wuiWidget->mThemeHandler->mStyle['greenball']; $checkResult = $gLocale->getStr('fileupload_available_label'); } else { $ball = $wuiWidget->mThemeHandler->mStyle['redball']; $checkResult = $gLocale->getStr('fileupload_not_available_label'); $systemok = false; } $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label> <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image> <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('fileupload_test_label')) . '</label></args></label> <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>'; // XML support // $row++; if (function_exists('xml_set_object')) { $ball = $wuiWidget->mThemeHandler->mStyle['greenball']; $checkResult = $gLocale->getStr('xml_available_label'); } else { $ball = $wuiWidget->mThemeHandler->mStyle['redball']; $checkResult = $gLocale->getStr('xml_not_available_label'); } $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label> <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image> <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('xml_test_label')) . '</label></args></label> <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>'; // Zlib support // $row++; if (function_exists('gzinflate')) { $ball = $wuiWidget->mThemeHandler->mStyle['greenball']; $checkResult = $gLocale->getStr('zlib_available_label'); } else { $ball = $wuiWidget->mThemeHandler->mStyle['redball']; $checkResult = $gLocale->getStr('zlib_not_available_label'); } $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label> <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image> <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('zlib_test_label')) . '</label></args></label> <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>'; // Database support // $row++; if (function_exists('mysqli_connect') or function_exists('pg_connect')) { $ball = $wuiWidget->mThemeHandler->mStyle['greenball']; $checkResult = $gLocale->getStr('db_available_label'); } else { $ball = $wuiWidget->mThemeHandler->mStyle['redball']; $checkResult = $gLocale->getStr('db_not_available_label'); } $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>required' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('required_label')) . '</label></args></label> <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image> <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('db_test_label')) . '</label></args></label> <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>'; // Optional features /* // Crontab // $row ++; if (strlen(\Innomatic\Core\InnomaticContainer::instance('\Innomatic\Core\InnomaticContainer')->getConfig()->value('RootCrontab'))) { $ball = $wuiWidget->mThemeHandler->mStyle['greenball']; $checkResult = $gLocale->getStr('crontab_available_label'); } else { $ball = $wuiWidget->mThemeHandler->mStyle['goldball']; $checkResult = $gLocale->getStr('crontab_not_available_label'); } $gXml_def .= '<label row="'.$row.'" col="0"><name>optional'.$row.'</name><args><label type="encoded">' .urlencode($gLocale->getStr('optional_label')).'</label></args></label> <image row="'.$row.'" col="1"><name>status'.$row.'</name><args><imageurl type="encoded">' .urlencode($ball).'</imageurl></args></image> <label row="'.$row.'" col="2"><name>shared'.$row.'</name><args><label type="encoded">' .urlencode($gLocale->getStr('crontab_test_label')).'</label></args></label> <label row="'.$row.'" col="3"><name>checkresult'.$row.'</name><args><label type="encoded">' .urlencode($checkResult).'</label></args></label>'; */ // XMLRPC auth // $row++; if (php_sapi_name() != 'cgi') { $ball = $wuiWidget->mThemeHandler->mStyle['greenball']; $checkResult = $gLocale->getStr('xmlrpc_available_label'); } else { $ball = $wuiWidget->mThemeHandler->mStyle['goldball']; $checkResult = $gLocale->getStr('xmlrpc_not_available_label'); } $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>optional' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('optional_label')) . '</label></args></label> <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image> <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('xmlrpc_test_label')) . '</label></args></label> <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>'; // XMLRPC curl // $row++; if (function_exists('curl_init')) { $ball = $wuiWidget->mThemeHandler->mStyle['greenball']; $checkResult = $gLocale->getStr('xmlrpc_ssl_available_label'); } else { $ball = $wuiWidget->mThemeHandler->mStyle['goldball']; $checkResult = $gLocale->getStr('xmlrpc_ssl_not_available_label'); } $gXmlDefinition .= '<label row="' . $row . '" col="0"><name>optional' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('optional_label')) . '</label></args></label> <image row="' . $row . '" col="1"><name>status' . $row . '</name><args><imageurl type="encoded">' . urlencode($ball) . '</imageurl></args></image> <label row="' . $row . '" col="2"><name>shared' . $row . '</name><args><label type="encoded">' . urlencode($gLocale->getStr('xmlrpc_ssl_test_label')) . '</label></args></label> <label row="' . $row . '" col="3"><name>checkresult' . $row . '</name><args><label type="encoded">' . urlencode($checkResult) . '</label></args></label>'; $gXmlDefinition .= ' </children> </table> </children> </vertgroup> <vertgroup><name></name> <children> <label><name>tabtitle</name> <args> <label type="encoded">' . urlencode($gLocale->getStr('innomatic_settings.label')) . '</label> <bold>true</bold> </args> </label> <form><name>settings</name> <args> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'set_innomatic')))) . '</action> </args> <children> <vertgroup> <children> <grid> <children> <label row="0" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('action_clean.label')) . '</label> <bold>true</bold> </args> </label> <label row="0" col="1"> <args> <label type="encoded">' . urlencode($gLocale->getStr('action_rotate.label')) . '</label> <bold>true</bold> </args> </label> <label row="0" col="2"> <args> <label type="encoded">' . urlencode($gLocale->getStr('action_none.label')) . '</label> <bold>true</bold> </args> </label> <radio row="1" col="0" halign="center"><name>rootlog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getCleanRootLog() ? 'true' : 'false') . '</checked> <value>clean</value> </args> </radio> <radio row="1" col="1" halign="center"><name>rootlog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getRotateRootLog() ? 'true' : 'false') . '</checked> <value>rotate</value> </args> </radio> <radio row="1" col="2" halign="center"><name>rootlog</name> <args> <disp>action</disp> <checked>' . (($logsMain->getCleanRootLog() or $logsMain->getRotateRootLog()) ? 'false' : 'true') . '</checked> <value>leave</value> </args> </radio> <label row="1" col="3"> <args> <label type="encoded">' . urlencode($gLocale->getStr('rootlog_size.label')) . '</label> </args> </label> <radio row="2" col="0" halign="center"><name>rootdalog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getCleanRootDbLog() ? 'true' : 'false') . '</checked> <value>clean</value> </args> </radio> <radio row="2" col="1" halign="center"><name>rootdalog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getRotateRootDbLog() ? 'true' : 'false') . '</checked> <value>rotate</value> </args> </radio> <radio row="2" col="2" halign="center"><name>rootdalog</name> <args> <disp>action</disp> <checked>' . (($logsMain->getCleanRootDbLog() or $logsMain->getRotateRootDbLog()) ? 'false' : 'true') . '</checked> <value>leave</value> </args> </radio> <label row="2" col="3"> <args> <label type="encoded">' . urlencode($gLocale->getStr('rootdalog_size.label')) . '</label> </args> </label> <radio row="3" col="0" halign="center"><name>accesslog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getCleanAccessLog() ? 'true' : 'false') . '</checked> <value>clean</value> </args> </radio> <radio row="3" col="1" halign="center"><name>accesslog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getRotateAccessLog() ? 'true' : 'false') . '</checked> <value>rotate</value> </args> </radio> <radio row="3" col="2" halign="center"><name>accesslog</name> <args> <disp>action</disp> <checked>' . (($logsMain->getCleanAccessLog() or $logsMain->getRotateAccessLog()) ? 'false' : 'true') . '</checked> <value>leave</value> </args> </radio> <label row="3" col="3"> <args> <label type="encoded">' . urlencode($gLocale->getStr('accesslog_size.label')) . '</label> </args> </label> <radio row="4" col="0" halign="center"><name>webserviceslog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getCleanWebServicesLog() ? 'true' : 'false') . '</checked> <value>clean</value> </args> </radio> <radio row="4" col="1" halign="center"><name>webserviceslog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getRotateWebServicesLog() ? 'true' : 'false') . '</checked> <value>rotate</value> </args> </radio> <radio row="4" col="2" halign="center"><name>webserviceslog</name> <args> <disp>action</disp> <checked>' . (($logsMain->getCleanWebServicesLog() or $logsMain->getRotateWebServicesLog()) ? 'false' : 'true') . '</checked> <value>leave</value> </args> </radio> <label row="4" col="3"> <args> <label type="encoded">' . urlencode($gLocale->getStr('webserviceslog_size.label')) . '</label> </args> </label> <radio row="5" col="0" halign="center"><name>phplog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getCleanPhpLog() ? 'true' : 'false') . '</checked> <value>clean</value> </args> </radio> <radio row="5" col="1" halign="center"><name>phplog</name> <args> <disp>action</disp> <checked>' . ($logsMain->getRotatePhpLog() ? 'true' : 'false') . '</checked> <value>rotate</value> </args> </radio> <radio row="5" col="2" halign="center"><name>phplog</name> <args> <disp>action</disp> <checked>' . (($logsMain->getCleanPhpLog() or $logsMain->getRotatePhpLog()) ? 'false' : 'true') . '</checked> <value>leave</value> </args> </radio> <label row="5" col="3"> <args> <label type="encoded">' . urlencode($gLocale->getStr('phplog_size.label')) . '</label> </args> </label> <radio row="6" col="0" halign="center"><name>domainslogs</name> <args> <disp>action</disp> <checked>' . ($logsMain->getCleanDomainsLogs() ? 'true' : 'false') . '</checked> <value>clean</value> </args> </radio> <radio row="6" col="1" halign="center"><name>domainslogs</name> <args> <disp>action</disp> <checked>' . ($logsMain->getRotateDomainsLogs() ? 'true' : 'false') . '</checked> <value>rotate</value> </args> </radio> <radio row="6" col="2" halign="center"><name>domainslogs</name> <args> <disp>action</disp> <checked>' . (($logsMain->getCleanDomainsLogs() or $logsMain->getRotateDomainsLogs()) ? 'false' : 'true') . '</checked> <value>leave</value> </args> </radio> <label row="6" col="3"> <args> <label type="encoded">' . urlencode($gLocale->getStr('domainslogs_size.label')) . '</label> </args> </label> </children> </grid> <horizbar/> <grid> <children> <checkbox row="0" col="0"><name>cache</name> <args> <disp>action</disp> <checked>' . ($cacheMain->getCleanCache() ? 'true' : 'false') . '</checked> </args> </checkbox> <label row="0" col="1"> <args> <label type="encoded">' . urlencode($gLocale->getStr('cache_size.label')) . '</label> </args> </label> <checkbox row="1" col="0"><name>sessions</name> <args> <disp>action</disp> <checked>' . ($cacheMain->getCleanSessions() ? 'true' : 'false') . '</checked> </args> </checkbox> <label row="1" col="1"> <args> <label type="encoded">' . urlencode($gLocale->getStr('sessions_size.label')) . '</label> </args> </label> <checkbox row="2" col="0"><name>pidfiles</name> <args> <disp>action</disp> <checked>' . ($cacheMain->getCleanPidFiles() ? 'true' : 'false') . '</checked> </args> </checkbox> <label row="2" col="1"> <args> <label type="encoded">' . urlencode($gLocale->getStr('pidfiles_size.label')) . '</label> </args> </label> <checkbox row="3" col="0"><name>roottempdirs</name> <args> <disp>action</disp> <checked>' . ($cacheMain->getCleanRootTempDirs() ? 'true' : 'false') . '</checked> </args> </checkbox> <label row="3" col="1"> <args> <label type="encoded">' . urlencode($gLocale->getStr('tempdirs_size.label')) . '</label> </args> </label> <checkbox row="4" col="0"><name>clipboard</name> <args> <disp>action</disp> <checked>' . ($cacheMain->getCleanClipboard() ? 'true' : 'false') . '</checked> </args> </checkbox> <label row="4" col="1"> <args> <label type="encoded">' . urlencode($gLocale->getStr('clipboard_size.label')) . '</label> </args> </label> </children> </grid> </children> </vertgroup> </children> </form> <horizbar/> <button> <args> <themeimage>buttonok</themeimage> <label type="encoded">' . urlencode($gLocale->getStr('apply.button')) . '</label> <horiz>true</horiz> <frame>false</frame> <formsubmit>settings</formsubmit> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'innomatic'), array('action', 'set_innomatic')))) . '</action> </args> </button> </children> </vertgroup> </children> </tab>'; $gPageTitle .= ' - ' . $gLocale->getStr('innomatic.title'); }
function main_stats($eventData) { global $gPage_title, $gPage_content, $gLocale; $stats_ok = false; require_once 'innomatic/locale/LocaleCountry.php'; $locale_country = new LocaleCountry(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getCountry()); if (isset($eventData['statsfrom']) and isset($eventData['statsto'])) { //$stats_ok = true; $from_date = $locale_country->GetDateArrayFromShortDateStamp($eventData['statsfrom']); $from_ts = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->GetTimestampFromDateArray($from_date); $from_secs = mktime(0, 0, 0, $from_date['mon'], $from_date['mday'], $from_date['year']); $to_date = $locale_country->GetDateArrayFromShortDateStamp($eventData['statsto']); $to_date['hours'] = 23; $to_date['minutes'] = 59; $to_date['seconds'] = 59; $to_ts = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->GetTimestampFromDateArray($to_date); $to_secs = mktime(23, 59, 59, $to_date['mon'], $to_date['mday'], $to_date['year']); $stats_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->execute('SELECT * ' . 'FROM innowork_core_itemslog ' . 'WHERE eventtime>=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($from_ts) . ' ' . 'AND eventtime<=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($to_ts)); $users_stats_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->execute('SELECT username,count(username) AS count ' . 'FROM innowork_core_itemslog ' . 'WHERE eventtime>=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($from_ts) . ' ' . 'AND eventtime<=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($to_ts) . ' ' . 'GROUP BY username'); $stats_data = $_stats_data = array(); while (!$stats_query->eof) { $tmp_date = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->GetDateArrayFromTimestamp($stats_query->getFields('eventtime')); if (!isset($_stats_data[$tmp_date['year'] . $tmp_date['mon'] . $tmp_date['mday']])) { $_stats_data[$tmp_date['year'] . $tmp_date['mon'] . $tmp_date['mday']]['changes'] = 1; } else { $_stats_data[$tmp_date['year'] . $tmp_date['mon'] . $tmp_date['mday']]['changes']++; } $_stats_data[$tmp_date['year'] . $tmp_date['mon'] . $tmp_date['mday']]['day'] = $tmp_date['mday']; $stats_query->MoveNext(); } for ($i = $from_secs; $i <= $to_secs; $i += 60 * 60 * 24) { $tmp_date_array = $locale_country->GetDateArrayFromUnixTimestamp($i); if (!isset($_stats_data[$tmp_date_array['year'] . $tmp_date_array['mon'] . $tmp_date_array['mday']])) { $_stats_data[$tmp_date_array['year'] . $tmp_date_array['mon'] . $tmp_date_array['mday']]['changes'] = 0; $_stats_data[$tmp_date_array['year'] . $tmp_date_array['mon'] . $tmp_date_array['mday']]['day'] = $tmp_date_array['mday']; } } ksort($_stats_data); $x_array = $y_array = array(); $cont = 1; foreach ($_stats_data as $id => $value) { $x_array[] = $cont++; $y_array[] = $value['changes']; } reset($_stats_data); require_once 'phplot/PHPlot.php'; $regression_data = phplot_regression($x_array, $y_array); $cont = 0; foreach ($_stats_data as $value) { $stats_data[] = array($value['day'], $value['changes'], $regression_data[$cont++][2]); } $users_stats_data = array(); while (!$users_stats_query->eof) { if (strpos($users_stats_query->getFields('username'), '@')) { $username = substr($users_stats_query->getFields('username'), 0, strpos($users_stats_query->getFields('username'), '@')); } else { $username = $users_stats_query->getFields('username'); } $users_stats_data[] = array(ucfirst($username), $users_stats_query->getFields('count')); $users_stats_query->MoveNext(); } $stats_ok = true; } else { $from_date = $locale_country->getDateArrayFromSafeTimestamp($locale_country->SafeFormatTimestamp(time() - 60 * 60 * 24 * 30)); $to_date = $locale_country->getDateArrayFromSafeTimestamp($locale_country->SafeFormatTimestamp()); } require_once 'innomatic/wui/dispatch/WuiEventsCall.php'; $xml_def = ' <vertgroup> <children> <form><name>stats</name> <args> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'stats')))) . '</action> </args> <children> <horizgroup> <args> <align>middle</align> </args> <children> <label> <args> <label type="encoded">' . urlencode($gLocale->getStr('stats_from.label')) . '</label> </args> </label> <date><name>statsfrom</name> <args> <disp>view</disp> <value type="array">' . WuiXml::encode($from_date) . '</value> </args> </date> <label> <args> <label type="encoded">' . urlencode($gLocale->getStr('stats_to.label')) . '</label> </args> </label> <date><name>statsto</name> <args> <disp>view</disp> <value type="array">' . WuiXml::encode($to_date) . '</value> </args> </date> <button> <args> <themeimage>buttonok</themeimage> <horiz>true</horiz> <label type="encoded">' . urlencode($gLocale->getStr('get_stats.button')) . '</label> <formsubmit>stats</formsubmit> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'stats')))) . '</action> </args> </button> </children> </horizgroup> </children> </form>'; if ($stats_ok) { $legend = array($gLocale->getStr('activites_legend.label'), $gLocale->getStr('trend_legend.label')); $xml_def .= '<horizbar/> <phplot> <args> <data type="array">' . WuiXml::encode($stats_data) . '</data> <width>600</width> <height>350</height> <title type="encoded">' . urlencode($gLocale->getStr('statistics.title')) . '</title> <legend type="array">' . WuiXml::encode($legend) . '</legend> <pointsize>1</pointsize> </args> </phplot> <phplot> <args> <data type="array">' . WuiXml::encode($users_stats_data) . '</data> <width>600</width> <height>350</height> <title type="encoded">' . urlencode($gLocale->getStr('statistics_users.title')) . '</title> <plottype>bars</plottype> <pointsize>1</pointsize> </args> </phplot>'; } $xml_def .= ' </children> </vertgroup>'; $gPage_content = new WuiXml('page', array('definition' => $xml_def)); $gPage_title = $gLocale->getStr('statistics.title'); }
function main_keyring($eventData) { global $gXmlDefinition, $gLocale, $gPageTitle, $gStatus; $query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->Execute('SELECT * ' . 'FROM applications_keyring_keys ' . 'ORDER BY application,version,domain'); $gXmlDefinition .= '<vertgroup><name>vg</name><children>'; if ($query->getNumberRows()) { $headers[0]['label'] = $gLocale->getStr('application.header'); $headers[1]['label'] = $gLocale->getStr('version.header'); $headers[2]['label'] = $gLocale->getStr('domain.header'); $headers[3]['label'] = $gLocale->getStr('maxdomainusers.header'); $headers[4]['label'] = $gLocale->getStr('validip.header'); $headers[5]['label'] = $gLocale->getStr('validrange.header'); $headers[6]['label'] = $gLocale->getStr('expirydate.header'); $gXmlDefinition .= '<table> <args> <headers type="array">' . WuiXml::encode($headers) . '</headers> <rowsperpage>20</rowsperpage> <pagesactionfunction>keys_page_action_builder</pagesactionfunction> <pagenumber>' . (isset($eventData['page']) ? $eventData['page'] : '') . '</pagenumber> </args> <children>'; $row = 0; while (!$query->eof) { $toolbars = '<button> <args> <label>' . WuiXml::cdata($gLocale->getStr('removekey.button')) . '</label> <themeimage>trash</themeimage> <horiz>true</horiz> <needconfirm>true</needconfirm> <confirmmessage>' . WuiXml::cdata($gLocale->getStr('remove_key.confirm')) . '</confirmmessage> <action>' . WuiXml::cdata(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'keyring'), array('action', 'removekey', array('id' => $query->getFields('id')))))) . '</action> </args> </button>'; $gXmlDefinition .= '<label row="' . $row . '" col="0"> <args> <label type="encoded">' . urlencode($query->getFields('application')) . '</label> </args> </label> <label row="' . $row . '" col="1"> <args> <label type="encoded">' . urlencode($query->getFields('version')) . '</label> </args> </label> <label row="' . $row . '" col="2"> <args> <label type="encoded">' . urlencode($query->getFields('domain')) . '</label> </args> </label> <label row="' . $row . '" col="3"> <args> <label type="encoded">' . urlencode($query->getFields('maxdomainusers')) . '</label> </args> </label> <label row="' . $row . '" col="4"> <args> <label type="encoded">' . urlencode($query->getFields('validip')) . '</label> </args> </label> <label row="' . $row . '" col="5"> <args> <label type="encoded">' . urlencode($query->getFields('validrange')) . '</label> </args> </label> <label row="' . $row . '" col="6"> <args> <label type="encoded">' . urlencode($query->getFields('expirydate')) . '</label> </args> </label> <horizgroup row="' . $row . '" col="7"> <children>' . $toolbars . '</children> </horizgroup>'; $query->moveNext(); $row++; } $gXmlDefinition .= ' </children> </table> <horizbar><name>hb</name></horizbar>'; } else { if (!strlen($gStatus)) { $gStatus = $gLocale->getStr('nokeys.status'); } } $gXmlDefinition .= '<vertgroup> <children> <form><name>newkey</name> <args> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'keyring'), array('action', 'newkey')))) . '</action> </args> <children> <grid> <children> <label row="0" col="0"> <args> <label type="encoded">' . urlencode($gLocale->getStr('key.label')) . '</label> </args> </label> <file row="0" col="1"><name>key</name> <args> <disp>action</disp> </args> </file> <button row="0" col="2"> <args> <horiz>true</horiz> <frame>false</frame> <themeimage>mathadd</themeimage> <formsubmit>newkey</formsubmit> <label type="encoded">' . urlencode($gLocale->getStr('newkey.submit')) . '</label> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'keyring'), array('action', 'newkey')))) . '</action> </args> </button> </children> </grid> </children> </form> </children> </vertgroup>'; $gXmlDefinition .= '</children></vertgroup>'; $gPageTitle .= ' - ' . $gLocale->getStr('keys.title'); }
public function viewDefault($eventData) { $def_width = 380; $def_height = 250; $widgets = $this->getController()->getWidgetsList(); $widget_counter = 0; $columns = 3; $start_column = true; $end_column = false; $rows_per_column = floor(count($widgets) / $columns) + (count($widgets) % $columns > 0 ? 1 : 0); $wui_xml = '<horizgroup><children>'; foreach ($widgets as $widget) { $width = 0; $height = 0; $class = $widget['class']; // Check if the class exists if (class_exists($class, true)) { // Fetch the widget xml definition $widget_obj = new $class(); // Check if the widget is visible if (!$widget_obj->isVisible()) { continue; } $width = $widget_obj->getWidth() * $def_width; $height = $widget_obj->getHeight(); } else { continue; } // If this is the start of a column, add the vertical group opener if ($start_column) { $wui_xml .= '<vertgroup><children>'; $start_column = false; } // Add ajax setup call \Innomatic\Wui\Wui::instance('\\Innomatic\\Wui\\Wui')->registerAjaxSetupCall('xajax_GetDashboardWidget(\'' . $widget['name'] . '\')'); // Check width and height parameters if ($width == 0) { $width = $def_width; } if ($height == 0) { $height = $def_height; } // Widget title $widget_locale = new LocaleCatalog($widget['catalog'], $this->container->getCurrentUser()->getLanguage()); $headers = array(); $headers[0]['label'] = $widget_locale->getStr($widget['title']); // Draw the widget $wui_xml .= '<table halign="left" valign="top"><args><headers type="array">' . WuiXml::encode($headers) . '</headers></args><children><vertgroup row="0" col="0" halign="left" valign="top"><args><width>' . $width . '</width><height>' . $height . '</height><groupvalign>top</groupvalign></args><children><divframe><args><id>widget_' . $widget['name'] . '</id><width>300</width></args><children><void/></children></divframe></children></vertgroup></children></table>'; $widget_counter++; // Check if this last widget for each column if ($widget_counter % $rows_per_column == 0) { $end_column = true; } // If this is the last widget, end the column anyway if ($widget_counter == count($widgets)) { $end_column = true; } // If this the end of a column, close the vertical group if ($end_column) { $wui_xml .= '</children></vertgroup>'; $start_column = true; $end_column = false; } } $wui_xml .= '</children></horizgroup>'; $this->wuiMainframe->addChild(new WuiXml('', array('definition' => $wui_xml))); }
function _FillDefinition() { $result = true; require_once 'innomatic/locale/LocaleCatalog.php'; require_once 'innomatic/locale/LocaleCountry.php'; $row = 0; $this->mDefinition = ' <vertgroup><name>searchresult</name><children>'; while (list($type, $results) = each($this->mSearchResult)) { if (count($results)) { $tmp_locale = new LocaleCatalog($this->mSummaries[$type]['catalog'], \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage()); /* $itemtype_call = new WuiEventsCall( $val['domainpanel'] ); $itemtype_call->addEvent( new WuiEvent( 'view', 'default', '' ) ); <button> <name>itemtypeimage</name> <args><themeimage>'.$val['icon'].'</themeimage><themeimagetype>'.$val['icontype'].'</themeimagetype><action>'.$itemtype_call->getEventsCallString().'</action></args> </button> */ $this->mDefinition .= '<button><name>type</name> <args> <themeimage>' . $this->mSummaries[$type]['icon'] . '</themeimage> <themeimagetype>' . $this->mSummaries[$type]['icontype'] . '</themeimagetype> <action>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString($this->mSummaries[$type]['domainpanel'], array(array('view', 'default', '')))) . '</action> <label type="encoded">' . WuiXml::cdata(urlencode($this->mSummaries[$type]['label'])) . '</label> <horiz>true</horiz> </args> </button>'; $headers = array(); $header_count = 1; $locale_country = new LocaleCountry(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getCountry()); while (list(, $keyname) = each($this->mSummaries[$type]['viewablesearchresultkeys'])) { $headers[$header_count++]['label'] = $tmp_locale->getStr($keyname); } $this->mDefinition .= '<table><name>searchresult</name><args><headers type="array">' . WuiXml::encode($headers) . '</headers></args><children>'; $row = 0; //$col = 1; while (list($id, $result) = each($results)) { $col = 1; switch ($result['_acl']['type']) { case InnoworkAcl::TYPE_PRIVATE: $image = 'user'; break; case InnoworkAcl::TYPE_PUBLIC: case InnoworkAcl::TYPE_ACL: $image = 'useradd'; break; } $this->mDefinition .= '<button row="' . $row . '" col="0"><name>acl</name> <args> <themeimage>' . $image . '</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <action>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString($this->mSummaries[$type]['domainpanel'], array(array($this->mSummaries[$type]['showdispatcher'], $this->mSummaries[$type]['showevent'], array('id' => $result['id']))))) . '</action> </args> </button>'; foreach ($this->mSummaries[$type]['viewablesearchresultkeys'] as $key) { $value = $result[$key]; if ($col == 1) { $this->mDefinition .= '<link row="' . $row . '" col="' . $col . '"><name>key</name> <args> <compact>true</compact> <link>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString($this->mSummaries[$type]['domainpanel'], array(array($this->mSummaries[$type]['showdispatcher'], $this->mSummaries[$type]['showevent'], array('id' => $result['id']))))) . '</link> <label type="encoded">' . WuiXml::cdata(strlen($value) > 35 ? urlencode(substr($value, 0, 32)) . '...' : urlencode($value)) . '</label> <title type="encoded">' . WuiXml::cdata(urlencode(str_replace('"', '', $value))) . '</title> </args> </link>'; } else { $key_type = explode(':', $this->mSummaries[$type]['keys'][$key]); switch ($key_type[0]) { case 'text': $value = strlen($value) > 35 ? substr($value, 0, 32) . '...' : $value; break; case 'timestamp': $value = $locale_country->FormatShortArrayDate(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->GetDateArrayFromTimestamp($value)); break; case 'boolean': if ($value == \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->fmttrue) { $value = 'true'; } else { $value = 'false'; } break; case 'table': if (strlen($value)) { $tmp_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->execute('SELECT ' . $key_type[2] . ' FROM ' . $key_type[1] . ' WHERE id=' . $value); if ($tmp_query->getNumberRows()) { $value = $tmp_query->getFields($key_type[2]); } else { $value = ''; } $tmp_query->Free(); } else { $value = ''; } break; case 'userid': if (strlen($value)) { $tmp_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->execute('SELECT id,username,fname,lname FROM domain_users WHERE id=' . $value); if ($tmp_query->getNumberRows()) { $value = $tmp_query->getFields('fname') . ' ' . $tmp_query->getFields('lname'); } else { $value = ''; } $tmp_query->Free(); } else { $value = ''; } break; default: break; } $this->mDefinition .= '<label row="' . $row . '" col="' . $col . '"><name>key</name> <args> <compact>true</compact> <nowrap>false</nowrap> <label type="encoded">' . WuiXml::cdata(urlencode($value)) . '</label> </args> </label>'; } $col++; } if ($this->mTrashcan == 'true') { $locale = new LocaleCatalog('innowork-core::misc', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage()); $this->mDefinition .= '<button row="' . $row . '" col="' . $col . '"><name>restore</name> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('restore.button'))) . '</label> <horiz>true</horiz> <frame>false</frame> <themeimagetype>mini</themeimagetype> <themeimage>undo</themeimage> <action>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString('1innoworkcore', array(array('view', 'trashcan'), array('action', 'restore_item', array('itemtype' => $type, 'itemid' => $result['id']))))) . '</action> </args> </button>'; } if ($this->mClipping == 'true' and $this->mClippingId) { $locale = new LocaleCatalog('innowork-core::misc', \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getLanguage()); $this->mDefinition .= '<button row="' . $row . '" col="' . $col . '"><name>remove</name> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('remove_from_clipping.button'))) . '</label> <horiz>true</horiz> <frame>false</frame> <themeimagetype>mini</themeimagetype> <themeimage>editdelete</themeimage> <action>' . WuiXml::cdata(WuiEventsCall::buildEventsCallString('innoworkclippings', array(array('view', 'showclipping', array('id' => $this->mClippingId)), array('action', 'remove_item', array('id' => $this->mClippingId, 'itemtype' => $type, 'itemid' => $result['id']))))) . '</action> </args> </button>'; } $row++; } $this->mDefinition .= '</children></table>'; } } $this->mDefinition .= '</children></vertgroup>'; return $result; }
function main_default($eventData) { global $wuiMainFrame, $wuiTitleBar, $innomaticLocale, $actionDispatcher, $wuiMainStatus, $wuiComments, $compressedOb; $appCfg = new \Innomatic\Application\ApplicationSettings('innomatic'); $themesQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT name,catalog FROM wui_themes '); while (!$themesQuery->eof) { $tmpLocale = new \Innomatic\Locale\LocaleCatalog($themesQuery->getFields('catalog'), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getLanguage()); $elements[$themesQuery->getFields('name')] = $tmpLocale->getStr($themesQuery->getFields('name')); $themesQuery->moveNext(); } asort($elements); $themesXmlDef = '<vertgroup><name>vgroup</name><args><halign>center</halign></args><children> <form><name>theme</name><args><action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'default', ''), array('action', 'settheme', '')))) . '</action></args><children> <grid><name>themegrid</name><children> <label row="0" col="0"><name>themelabel</name><args><label type="encoded">' . urlencode($innomaticLocale->getStr('themes_label')) . '</label><bold>true</bold></args></label> <listbox row="1" col="0"><name>theme</name><args><elements type="array">' . WuiXml::encode($elements) . '</elements><default>' . \Innomatic\Wui\Wui::instance('\\Innomatic\\Wui\\Wui')->getThemeName() . '</default><disp>action</disp><size>10</size></args></listbox> </children></grid> <submit><name>submit</name><args><caption type="encoded">' . urlencode($innomaticLocale->getStr('settheme_submit')) . '</caption></args></submit> </children></form> </children></vertgroup>'; // Service provider settings // Service Provider // $serviceProviderFrame = new WuiVertframe('serviceproviderframe'); $serviceProviderVGroup = new WuiVertgroup('serviceprovidervgroup', array('width' => '100%')); $serviceProviderVGroup->addChild(new WuiLabel('serviceproviderlabel', array('label' => $innomaticLocale->getStr('serviceproviderframe_label'), 'bold' => 'true'))); $serviceProviderGrid = new WuiGrid('serviceprovidergrid', array('rows' => '4', 'cols' => '2')); // Service Provider name // $serviceProviderGrid->addChild(new WuiLabel('serviceprovidername_label', array('label' => $innomaticLocale->getStr('serviceprovidername_label'))), 0, 0); $serviceProviderGrid->addChild(new WuiString('serviceprovidername', array('disp' => 'action', 'size' => '30', 'value' => $appCfg->getKey('serviceprovider-name'))), 0, 1); // Service Provider url // $serviceProviderGrid->addChild(new WuiLabel('serviceproviderurl_label', array('label' => $innomaticLocale->getStr('serviceproviderurl_label'))), 1, 0); $serviceProviderGrid->addChild(new WuiString('serviceproviderurl', array('disp' => 'action', 'size' => '30', 'value' => $appCfg->getKey('serviceprovider-url'))), 1, 1); // Service Provider big logo // $serviceProviderGrid->addChild(new WuiLabel('serviceproviderbiglogo_label', array('label' => $innomaticLocale->getStr('serviceproviderbiglogo_label'))), 2, 0); $serviceProviderGrid->addChild(new WuiFile('serviceproviderbiglogo', array('disp' => 'action')), 2, 1); // Service Provider link logo // $serviceProviderGrid->addChild(new WuiLabel('serviceproviderlogo_label', array('label' => $innomaticLocale->getStr('serviceproviderlogo_label'))), 3, 0); $serviceProviderGrid->addChild(new WuiFile('serviceproviderlinklogo', array('disp' => 'action')), 3, 1); $serviceProviderVGroup->addChild($serviceProviderGrid); $serviceProviderVGroup->addChild(new WuiSubmit('serviceprovidersubmit', array('caption' => $innomaticLocale->getStr('serviceprovider_submit')))); $formEventsCall = new \Innomatic\Wui\Dispatch\WuiEventsCall(); $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('action', 'setserviceprovider', '')); $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', '')); $serviceProviderForm = new WuiForm('setserviceproviderform', array('action' => $formEventsCall->getEventsCallString())); $serviceProviderForm->addChild($serviceProviderVGroup); // Enabled icons // $enableVGroup = new WuiVertgroup('enablevgroup', array('width' => '100%')); $enableVGroup->addChild(new WuiLabel('enablelabel', array('label' => $innomaticLocale->getStr('enabled_icons_label'), 'bold' => 'true'))); $enableGrid = new WuiGrid('enablegrid', array('rows' => '5', 'cols' => '2')); // Innomatic site link // $enableGrid->addChild(new WuiLabel('innomaticlabel', array('label' => $innomaticLocale->getStr('innomatic_link_enabled_label'))), 0, 1); $enableGrid->addChild(new WuiCheckBox('innomaticicon', array('disp' => 'action', 'checked' => $appCfg->getKey('innomatic-link-disabled') ? 'false' : 'true')), 0, 0); // Service Provider link // $enableGrid->addChild(new WuiLabel('serviceprovidericonlabel', array('label' => $innomaticLocale->getStr('serviceprovider_link_enabled_label'))), 1, 1); $enableGrid->addChild(new WuiCheckBox('serviceprovidericon', array('disp' => 'action', 'checked' => $appCfg->getKey('serviceprovider-link-disabled') ? 'false' : 'true')), 1, 0); // Innomatic big logo // $enableGrid->addChild(new WuiLabel('innomaticbigiconlabel', array('label' => $innomaticLocale->getStr('innomatic_biglogo_enabled_label'))), 2, 1); $enableGrid->addChild(new WuiCheckBox('innomaticbigicon', array('disp' => 'action', 'checked' => $appCfg->getKey('innomatic-biglogo-disabled') ? 'false' : 'true')), 2, 0); // Service Provider logo // $enableGrid->addChild(new WuiLabel('serviceprovidericonlabel', array('label' => $innomaticLocale->getStr('serviceprovider_biglogo_enabled_label'))), 3, 1); $enableGrid->addChild(new WuiCheckBox('serviceproviderbigicon', array('disp' => 'action', 'checked' => $appCfg->getKey('serviceprovider-biglogo-disabled') ? 'false' : 'true')), 3, 0); $enableVGroup->addChild($enableGrid); $enableVGroup->addChild(new WuiSubmit('enablesubmit', array('caption' => $innomaticLocale->getStr('enable_submit')))); $formEventsCall = new \Innomatic\Wui\Dispatch\WuiEventsCall(); $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('action', 'setenabledicons', '')); $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', '')); $enableForm = new WuiForm('setenableform', array('action' => $formEventsCall->getEventsCallString())); $enableForm->addChild($enableVGroup); // Advanced settings // $advancedVGroup = new WuiVertgroup('enablevgroup', array('width' => '100%')); $advancedVGroup->addChild(new WuiLabel('enablelabel', array('label' => $innomaticLocale->getStr('advancedsettings_label'), 'bold' => 'true'))); $advancedGrid = new WuiGrid('enablegrid', array('rows' => '2', 'cols' => '2')); // Compressed output buffering // $advancedGrid->addChild(new WuiLabel('compressed-ob-label', array('label' => $innomaticLocale->getStr('compressed-ob_label'))), 0, 1); if (!strlen($compressedOb)) { if (\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getConfig()->value('CompressedOutputBuffering') == '1') { $compressedOb = 'true'; } else { $compressedOb = 'false'; } } $advancedGrid->addChild(new WuiCheckBox('compressed-ob', array('disp' => 'action', 'checked' => $compressedOb)), 0, 0); // WUI code comments // $advancedGrid->addChild(new WuiLabel('wui-comments-label', array('label' => $innomaticLocale->getStr('wui-comments_label'))), 1, 1); if (!strlen($wuiComments)) { if (\Innomatic\Wui\Wui::showSourceComments()) { $wuiComments = 'true'; } else { $wuiComments = 'false'; } } $advancedGrid->addChild(new WuiCheckBox('wui-comments', array('disp' => 'action', 'checked' => $wuiComments)), 1, 0); $advancedVGroup->addChild($advancedGrid); $advancedVGroup->addChild(new WuiSubmit('enablesubmit', array('caption' => $innomaticLocale->getStr('advanced_submit')))); $formEventsCall = new \Innomatic\Wui\Dispatch\WuiEventsCall(); $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('action', 'setadvanced', '')); $formEventsCall->addEvent(new \Innomatic\Wui\Dispatch\WuiEvent('view', 'default', '')); $advancedForm = new WuiForm('setenableform', array('action' => $formEventsCall->getEventsCallString())); $advancedForm->addChild($advancedVGroup); $tabHeaders[0]['label'] = $innomaticLocale->getStr('themes_title'); $tabHeaders[1]['label'] = $innomaticLocale->getStr('serviceproviderframe_label'); $tabHeaders[2]['label'] = $innomaticLocale->getStr('enabled_icons_label'); $tabHeaders[3]['label'] = $innomaticLocale->getStr('advancedsettings_label'); $tab = new WuiTab('interface', array('tabactionfunction' => 'interface_tab_action_builder', 'activetab' => isset($eventData['activetab']) ? $eventData['activetab'] : '', 'tabs' => $tabHeaders)); $tab->addChild(new WuiXml('page', array('definition' => $themesXmlDef))); $tab->addChild($serviceProviderForm); $tab->addChild($enableForm); $tab->addChild($advancedForm); $wuiMainFrame->addChild($tab); $wuiTitleBar->mTitle .= ' - ' . $innomaticLocale->getStr('default_title'); }
function main_change_password($eventData) { global $gXmlDefinition, $gLocale, $gPageTitle; global $wuiMainFrame; $gXmlDefinition = ' <table><name>alerts</name> <args> <headers type="array">' . WuiXml::encode(array(0 => array('label' => $gLocale->getStr('password_title')))) . '</headers> </args> <children> <form row="0" col="0"> <name>password</name> <args> <method>post</method> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'change_password', ''), array('action', 'change_password', '')))) . '</action> </args> <children> <grid> <name></name> <args> <rows>3</rows> <cols>2</cols> </args> <children> <label row="0" col="0"> <name /> <args> <label type="encoded">' . urlencode($gLocale->getStr('rootpasswordold_label')) . '</label> </args> </label> <string row="0" col="1"> <name>oldpassword</name> <args> <disp>action</disp> <password>true</password> </args> </string> <label row="1" col="0"> <name /> <args> <label type="encoded">' . urlencode($gLocale->getStr('rootpasswordold_label')) . '</label> </args> </label> <string row="1" col="1"> <name>newpassworda</name> <args> <disp>action</disp> <password>true</password> </args> </string> <label row="2" col="0"> <name /> <args> <label type="encoded">' . urlencode($gLocale->getStr('rootpasswordold_label')) . '</label> </args> </label> <string row="2" col="1"> <name>newpasswordb</name> <args> <disp>action</disp> <password>true</password> </args> </string> </children> </grid> </children> </form> <button row="1" col="0"><name>apply</name> <args> <horiz>true</horiz> <frame>false</frame> <label type="encoded">' . urlencode($gLocale->getStr('apply.submit')) . '</label> <themeimage>buttonok</themeimage> <formsubmit>password</formsubmit> <action type="encoded">' . urlencode(\Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'change_password', ''), array('action', 'change_password', '')))) . '</action> </args> </button> </children> </table>'; $gPageTitle .= ' - ' . $gLocale->getStr('password_title'); }
public function viewRoles($eventData) { $roles = \Innomatic\Domain\User\Role::getAllRoles(); $row = 0; $headers[0]['label'] = $this->localeCatalog->getStr('rolename_header'); $headers[1]['label'] = $this->localeCatalog->getStr('roledescription_header'); $xml = '<table><args><headers type="array">' . WuiXml::encode($headers) . '</headers></args><children>'; foreach ($roles as $roleId => $roleData) { $toolsArray = array(); // Roles defined by applications are not editable if (!strlen($roleData['application'])) { $toolsArray['edit'] = array('label' => $this->localeCatalog->getStr('editrole_button'), 'themeimage' => 'pencil', 'horiz' => 'true', 'action' => \Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'editrole', array('id' => $roleId))))); } $toolsArray['trash'] = array('label' => $this->localeCatalog->getStr('removerole_button'), 'themeimage' => 'trash', 'horiz' => 'true', 'needconfirm' => 'true', 'confirmmessage' => $this->localeCatalog->getStr('removerole_confirm'), 'action' => \Innomatic\Wui\Dispatch\WuiEventsCall::buildEventsCallString('', array(array('view', 'roles'), array('action', 'removerole', array('id' => $roleId))))); $xml .= '<label row="' . $row . '" col="0"><args><label>' . WuiXml::cdata($roleData['title']) . '</label></args></label> <label row="' . $row . '" col="1"><args><label>' . WuiXml::cdata($roleData['description']) . '</label><nowrap>false</nowrap></args></label> <innomatictoolbar row="' . $row . '" col="2"><name>tools</name> <args> <frame>false</frame> <toolbars type="array">' . WuiXml::encode(array('view' => $toolsArray)) . '</toolbars> </args> </innomatictoolbar>'; $row++; } $xml .= '</children></table>'; $this->wuiMainframe->addChild(new WuiXml('newrole', array('definition' => $xml))); }
function main_default($eventData) { global $gXml_def; $example_data = array(array("80", 0.0, 20, 4, 5, 6), array("81", 2.0, 30, 5, 6, 7), array("82", 3.0, 40, 5, 7, 8), array("83", 4.0, 50, 3, 6, 3), array("84", 4.4, 40, 3, 6, 5), array("85", 5.4, 40, 5, 6, 5), array("86", 5.5, 40, 7, 6, 5), array("87", 7, 35, 0.0, 0.0, ""), array("88", 7.4, 40, 14, 16, 25), array("89", 7.6, 40, 6, 6, 5), array("90", 8.199999999999999, 40, 3, 6, 5), array("91", 8.5, 40, 8, 6, 9), array("92", 9.300000000000001, 40, 5, 6, 5), array("93", 9.6, 40, 9, 6, 7), array("94", 9.9, 40, 2, 6, 5), array("95", 10.0, 40, 3, 6, 8), array("96", 10.4, 40, 3, 6, 5), array("97", 10.5, 40, 3, 6, 5), array("98", 10.8, 40, 3, 6, 5), array("99", 11.4, 40, 3, 6, 5), array("00", 12.0, 40, 3, 7, 5), array("01", 13.4, 40, 3, 5, 3), array("02", 14.0, 30, 3, 5, 6)); $legend = array('Prodotto A', 'Prodotto B', 'Prodotto C', 'Prodotto D', 'Prodotto E'); $gXml_def = '<vertgroup> <children> <label> <args> <label>Grafico</label> </args> </label> <vertframe> <children> <phplot> <args> <data type="array">' . WuiXml::encode($example_data) . '</data> <width>600</width> <height>350</height> <legend type="array">' . WuiXml::encode($legend) . '</legend> <plottype>' . $eventData['plottype'] . '</plottype> <title>Elaborazione fatturato</title> </args> </phplot> </children> </vertframe> <horizbar/> <horizgroup> <children> <button> <args> <themeimage>button_ok</themeimage> <horiz>true</horiz> <themeimagetype>mini</themeimagetype> <label>Bars</label> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'bars'))))) . '</action> </args> </button> <button> <args> <themeimage>button_ok</themeimage> <horiz>true</horiz> <themeimagetype>mini</themeimagetype> <label>Lines</label> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'lines'))))) . '</action> </args> </button> <button> <args> <themeimage>button_ok</themeimage> <horiz>true</horiz> <themeimagetype>mini</themeimagetype> <label>Linepoints</label> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'linepoints'))))) . '</action> </args> </button> <button> <args> <themeimage>button_ok</themeimage> <horiz>true</horiz> <themeimagetype>mini</themeimagetype> <label>Area</label> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'area'))))) . '</action> </args> </button> <button> <args> <themeimage>button_ok</themeimage> <horiz>true</horiz> <themeimagetype>mini</themeimagetype> <label>Points</label> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'points'))))) . '</action> </args> </button> <button> <args> <themeimage>button_ok</themeimage> <horiz>true</horiz> <themeimagetype>mini</themeimagetype> <label>Pie</label> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('plottype' => 'pie'))))) . '</action> </args> </button> </children> </horizgroup> </children> </vertgroup>'; }
private function fillDefinition() { $result = false; $container = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer'); if (!(strlen($this->mItemType) and $this->mItemId)) { return $result; } // Locale $locale = new \Innomatic\Locale\LocaleCatalog('innowork-core::misc', $container->getCurrentUser()->getLanguage()); // Core $tmp_innoworkcore = \Innowork\Core\InnoworkCore::instance('\\Innowork\\Core\\InnoworkCore', $container->getDataAccess(), $container->getCurrentDomain()->getDataAccess()); $summaries = $tmp_innoworkcore->getSummaries(); // Default parent ACL mode $parentAcl = false; // Item object if (isset($summaries[$this->mItemType]) and class_exists($summaries[$this->mItemType]['classname'])) { $class_name = $summaries[$this->mItemType]['classname']; $item_object = new $class_name($container->getDataAccess(), $container->getCurrentDomain()->getDataAccess(), $this->mItemId); $acl = $item_object->mAcl; // Check parent ACL mode if (strlen($item_object->mParentType) and $item_object->mParentId > 0) { $parentAcl = true; } } else { $item_object = null; // Access list require_once 'innowork/core/InnoworkAcl.php'; $acl = new InnoworkAcl($container->getDataAccess(), $container->getCurrentDomain()->getDataAccess(), $this->mItemType, $this->mItemId); } $tmp_acl_type = $acl->getType(); if (strlen($tmp_acl_type)) { $this->mAclType = $tmp_acl_type; } /* $acls_query = $container->getCurrentDomain()->getDataAccess()->execute( 'SELECT groupid, userid, rights '. 'FROM innowork_core_acls '. 'WHERE itemtype='.$container->getCurrentDomain()->getDataAccess()->formatText($acl->mItemType). ' '.'AND itemid='.$acl->mItemId ); */ $owner = ''; // Log if (isset($summaries[$this->mItemType]['loggable']) and $summaries[$this->mItemType]['loggable']) { require_once 'innowork/core/InnoworkItemLog.php'; $item_log = new InnoworkItemLog($this->mItemType, $this->mItemId); } if ($this->mItemOwnerId) { $owner_user = new \Innomatic\Domain\User\User($container->getCurrentDomain()->domaindata['id'], $this->mItemOwnerId); $owner_user_data = $owner_user->getUserData(); $owner = (strlen($owner_user_data['fname']) ? $owner_user_data['fname'] . ' ' : '') . $owner_user_data['lname']; } $acl_mode_sk = new \Shared\Wui\WuiSessionKey('innowork_acl_mode', array('sessionobjectnopage' => 'true')); if ($acl_mode_sk->mValue == 'advanced') { $acl_mode = 'advanced'; } else { $acl_mode = 'simple'; } $row = 0; if ($acl_mode == 'advanced') { $domainDa = $container->getCurrentDomain()->getDataAccess(); $groups_query = $domainDa->execute('SELECT id,groupname FROM domain_users_groups ORDER BY groupname'); $users_query = $domainDa->execute('SELECT id,groupid,username,fname,lname FROM domain_users WHERE disabled IS NULL or disabled <> ' . $domainDa->formatText($domainDa->fmttrue) . ' ORDER BY username'); $limited_acls = array(); $users = array(); while (!$users_query->eof) { $fname = $users_query->getFields('fname'); $lname = $users_query->getFields('lname'); if (strlen($fname) and strlen($lname)) { $tmp_username = $lname . ' ' . $fname; } else { $tmp_username = $users_query->getFields('username'); if (strpos($tmp_username, '@')) { $tmp_username = substr($tmp_username, 0, strpos($tmp_username, '@')); } } $users[$users_query->getFields('groupid')][$users_query->getFields('id')] = $tmp_username; $users_query->moveNext(); } while (!$groups_query->eof) { $group_perms = $acl->checkPermission($groups_query->getFields('id')); switch ($group_perms) { case InnoworkAcl::PERMS_NONE: $limited_acls['g' . $groups_query->getFields('id')] = '[-] ' . $groups_query->getFields('groupname'); break; case InnoworkAcl::PERMS_SEARCH: $limited_acls['g' . $groups_query->getFields('id')] = '[' . $locale->getStr('perm_search_short.label') . '] ' . $groups_query->getFields('groupname'); break; case InnoworkAcl::PERMS_READ: $limited_acls['g' . $groups_query->getFields('id')] = '[' . $locale->getStr('perm_read_short.label') . '] ' . $groups_query->getFields('groupname'); break; case InnoworkAcl::PERMS_EDIT: $limited_acls['g' . $groups_query->getFields('id')] = '[' . $locale->getStr('perm_edit_short.label') . '] ' . $groups_query->getFields('groupname'); break; case InnoworkAcl::PERMS_DELETE: $limited_acls['g' . $groups_query->getFields('id')] = '[' . $locale->getStr('perm_delete_short.label') . '] ' . $groups_query->getFields('groupname'); break; case InnoworkAcl::PERMS_ALL: $limited_acls['g' . $groups_query->getFields('id')] = '[+] ' . $groups_query->getFields('groupname'); break; } /* $limited_acls['g'.$groups_query->getFields( 'id' )] = ( > InnoworkAcl::PERMS_NONE ? '[+] ' : '[-] ' ). $groups_query->getFields( 'groupname' ); */ foreach ($users[$groups_query->getFields('id')] as $id => $username) { $user_perms = $acl->checkPermission('', $id); /* $limited_acls['u'.$id] = '-> '. ( $acl->checkPermission( '', $id ) > InnoworkAcl::PERMS_NONE ? '[+] ' : '[-] ' ). $username; */ if ($id == $this->mItemOwnerId) { $limited_acls['u' . $id] = '- ' . '[+] ' . $username; } else { switch ($user_perms) { case InnoworkAcl::PERMS_NONE: $limited_acls['u' . $id] = '- ' . '[-] ' . $username; break; case InnoworkAcl::PERMS_SEARCH: $limited_acls['u' . $id] = '- ' . '[' . $locale->getStr('perm_search_short.label') . '] ' . $username; break; case InnoworkAcl::PERMS_READ: $limited_acls['u' . $id] = '- ' . '[' . $locale->getStr('perm_read_short.label') . '] ' . $username; break; case InnoworkAcl::PERMS_EDIT: $limited_acls['u' . $id] = '- ' . '[' . $locale->getStr('perm_edit_short.label') . '] ' . $username; break; case InnoworkAcl::PERMS_DELETE: $limited_acls['u' . $id] = '- ' . '[' . $locale->getStr('perm_delete_short.label') . '] ' . $username; break; case InnoworkAcl::PERMS_ALL: $limited_acls['u' . $id] = '- ' . '[+] ' . $username; break; } } } $groups_query->MoveNext(); } $limited_acls['g0'] = '[-] No group'; foreach ($users[0] as $id => $username) { $limited_acls['u' . $id] = '-> ' . ($acl->checkPermission('', $id) > InnoworkAcl::PERMS_NONE ? '[+] ' : '[-] ') . $username; } } // Clippings require_once 'innowork/core/clipping/InnoworkClipping.php'; $innowork_clippings = new InnoworkClipping($container->getDataAccess(), $container->getCurrentDomain()->getDataAccess()); $clippings_search = $innowork_clippings->search(''); $clippings = array(); if ($this->mItemType != 'defaultaclitem' and count($clippings_search)) { foreach ($clippings_search as $id => $data) { $clippings[$id] = $data['name']; } } $item_actions = array(); // Other items widget actions if (is_object($item_object) && $acl->checkPermission('', $container->getCurrentUser()->getUserId()) > InnoworkAcl::PERMS_NONE) { foreach ($summaries as $item_type => $item_desc) { if ($item_type == $this->mItemType) { continue; } $tmp_class = $item_desc['classname']; $tmp_obj = new $tmp_class($container->getDataAccess(), $container->getCurrentDomain()->getDataAccess()); $item_action = $tmp_obj->getExternalItemWidgetXmlData($item_object); if (strlen($item_action)) { $item_actions[] = $item_action; } } } if ($acl->checkPermission('', $container->getCurrentUser()->getUserId()) == InnoworkAcl::PERMS_NONE) { $this->mDefinition = '<empty/>'; } elseif (!$parentAcl and ($this->mItemOwnerId == $container->getCurrentUser()->getUserId() or User::isAdminUser($container->getCurrentUser()->getUserName(), $container->getCurrentDomain()->getDomainId()) or $acl->checkPermission('', $container->getCurrentUser()->getUserId()) >= InnoworkAcl::PERMS_RESPONSIBLE)) { $this->mDefinition = ' <empty><name>innoworkitemacl</name> <children> <form><name>opts' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <formarg><name>aclmode</name> <args> <disp>wui</disp> <value>' . ($acl_mode == 'advanced' ? 'simple' : 'advanced') . '</value> </args> </formarg> </children> </form> <table><name>acl</name> <args> <headers type="array">' . WuiXml::encode(array('0' => array('label' => $locale->getStr('item_properties.label')))) . '</headers> </args> <children>'; if (count($item_actions)) { foreach ($item_actions as $item_action) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"><children>'; $this->mDefinition .= $item_action; $this->mDefinition .= '</children></vertgroup>'; } } $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0" halign="" valign="" nowrap="true"> <children> <form><name>itemacl' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <method>post</method> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <vertgroup><name>vg</name><children> <horizgroup> <args> <align>middle</align> <width>0%</width> </args> <children> <button> <args> <themeimage>lock</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> </args> </button> <label><name>convert</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('access_mode.label'))) . '</label> <compact>true</compact> </args> </label> </children> </horizgroup> '; if (strlen($owner)) { $this->mDefinition .= ' <label><name>owner</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode(sprintf($locale->getStr('owner.label'), $owner))) . '</label> </args> </label>'; } // Only the owner and the root user can change the acl type if ($this->mItemOwnerId == $container->getCurrentUser()->getUserId() or User::isAdminUser($container->getCurrentUser()->getUserName(), $container->getCurrentDomain()->getDomainId())) { $this->mDefinition .= ' <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg> <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg> <radio><name>acltype</name> <args> <disp>wui</disp> <value>' . InnoworkAcl::TYPE_PRIVATE . '</value> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_private.label'))) . '</label> <checked>' . ($this->mAclType == InnoworkAcl::TYPE_PRIVATE ? 'true' : 'false') . '</checked> </args> </radio> <radio><name>acltype</name> <args> <disp>wui</disp> <value>' . InnoworkAcl::TYPE_PUBLIC . '</value> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_public.label'))) . '</label> <checked>' . ($this->mAclType == InnoworkAcl::TYPE_PUBLIC ? 'true' : 'false') . '</checked> </args> </radio> <radio><name>acltype</name> <args> <disp>wui</disp> <value>' . InnoworkAcl::TYPE_ACL . '</value> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_acl.label'))) . '</label> <checked>' . ($this->mAclType == InnoworkAcl::TYPE_ACL ? 'true' : 'false') . '</checked> </args> </radio>'; } else { $this->mDefinition .= ' <label><name>acltype</name> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_private.label'))) . '</label> <bold>' . ($this->mAclType == InnoworkAcl::TYPE_PRIVATE ? 'true' : 'false') . '</bold> </args> </label> <label><name>acltype</name> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_public.label'))) . '</label> <bold>' . ($this->mAclType == InnoworkAcl::TYPE_PUBLIC ? 'true' : 'false') . '</bold> </args> </label> <label><name>acltype</name> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_acl.label'))) . '</label> <bold>' . ($this->mAclType == InnoworkAcl::TYPE_ACL ? 'true' : 'false') . '</bold> </args> </label>'; } $this->mDefinition .= ' </children></vertgroup> </children> </form> <horizgroup><args><width>0%</width></args> <children>'; if ($this->mItemOwnerId == $container->getCurrentUser()->getUserId() or $container->getCurrentDomain()->getDomainId() == $container->getCurrentUser()->getUserName()) { $this->mDefinition .= ' <button><name>setactl</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> <formsubmit>itemacl' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <horiz>true</horiz> <frame>false</frame> <themeimage>buttonok</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('apply.submit'))) . '</label> </args> </button>'; } $this->mDefinition .= ' <button><name>setopts</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> <formsubmit>opts' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <horiz>true</horiz> <frame>false</frame> <themeimage>' . ($acl_mode == 'advanced' ? 'info' : 'info') . '</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr($acl_mode == 'advanced' ? 'acl_simple.submit' : 'acl_advanced.submit'))) . '</label> </args> </button> </children> </horizgroup> </children> </vertgroup>'; if ($acl_mode == 'advanced') { if ($this->mAclType == InnoworkAcl::TYPE_ACL) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"> <children> <form><name>limitedacl' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <horizgroup> <args> <align>top</align><width>0%</width> </args> <children> <listbox><name>limitedacl</name> <args> <disp>wui</disp> <elements type="array">' . WuiXml::encode($limited_acls) . '</elements> <multiselect>true</multiselect> <size>10</size> </args> </listbox> <vertgroup> <args> <align>left</align> </args> <children> <radio><name>aclperms</name> <args> <disp>wui</disp> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_all.label'))) . '</label> <value>' . InnoworkAcl::PERMS_ALL . '</value> <checked>true</checked> </args> </radio> <radio><name>aclperms</name> <args> <disp>wui</disp> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_delete.label'))) . '</label> <value>' . InnoworkAcl::PERMS_DELETE . '</value> </args> </radio> <radio><name>aclperms</name> <args> <disp>wui</disp> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_edit.label'))) . '</label> <value>' . InnoworkAcl::PERMS_EDIT . '</value> </args> </radio> <radio><name>aclperms</name> <args> <disp>wui</disp> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_read.label'))) . '</label> <value>' . InnoworkAcl::PERMS_READ . '</value> </args> </radio> <radio><name>aclperms</name> <args> <disp>wui</disp> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('perm_search.label'))) . '</label> <value>' . InnoworkAcl::PERMS_SEARCH . '</value> </args> </radio> </children> </vertgroup> </children> </horizgroup> <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg> <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg> </children> </form> <horizgroup> <args><width>0%</width></args> <children> <button><name>add</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkacladd') . '</action> <formsubmit>limitedacl' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <horiz>true</horiz> <frame>false</frame> <themeimage>useradd</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('add_acl.submit'))) . '</label> </args> </button> <button><name>remove</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkaclremove') . '</action> <formsubmit>limitedacl' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <horiz>true</horiz> <frame>false</frame> <themeimage>userremove</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('remove_acl.submit'))) . '</label> </args> </button> </children> </horizgroup> </children> </vertgroup>'; } /* $this->mDefinition .= '<form row="'.$row++.'" col="0" halign="" valign="" nowrap="true"><name>responsibles'.md5( $this->mItemType.'-'.$this->mItemId ).'</name> <args> </args> <children> <listbox><name>responsibles</name> <args> <disp>wui</disp> <size>2</size> </args> </listbox> </children> </form> <form row="'.$row++.'" col="0" halign="" valign="" nowrap="true"><name>participants'.md5( $this->mItemType.'-'.$this->mItemId ).'</name> <args> </args> <children> <listbox><name>participants</name> <args> <disp>wui</disp> <size>2</size> </args> </listbox> </children> </form>'; */ if ($summaries[$this->mItemType]['loggable']) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <button> <args> <themeimage>alignright</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> </args> </button> <label><name>itemlog</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('history.label'))) . '</label> <compact>true</compact> </args> </label> </children> </horizgroup> <listbox><name>itemlog</name> <args> <readonly>true</readonly> <elements type="array">' . WuiXml::encode(array_reverse($item_log->GetLog())) . '</elements> <size>3</size> </args> </listbox> </children> </vertgroup>'; } if ($summaries[$this->mItemType]['convertible']) { $convert_types = array(); foreach ($summaries as $type => $item) { if ($item['convertible'] and $type != $this->mItemType) { $tmp_locale = new \Innomatic\Locale\LocaleCatalog($item['catalog'], $container->getCurrentUser()->getLanguage()); $convert_types[$type] = $tmp_locale->getStr($type); unset($tmp_locale); } } if (count($convert_types)) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <button> <args> <themeimage>elementadd</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> </args> </button> <label><name>convert</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('convert.label'))) . '</label> <compact>true</compact> </args> </label> </children> </horizgroup> <form><name>convert' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <combobox><name>type</name> <args> <disp>wui</disp> <elements type="array">' . WuiXml::encode($convert_types) . '</elements> </args> </combobox> <button><name>convert</name> <args> <horiz>true</horiz> <frame>false</frame> <themeimage>arrowright</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <formsubmit>convert' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkconvert') . '</action> </args> </button> <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg> <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg> </children> </horizgroup> </children> </form> </children> </vertgroup>'; } } // Clippings if (count($clippings)) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <button> <args> <themeimage>clip</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> </args> </button> <label><name>clipping</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('clipping.label'))) . '</label> <compact>true</compact> </args> </label> </children> </horizgroup> <form><name>clipping' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <combobox><name>clippingid</name> <args> <disp>wui</disp> <elements type="array">' . WuiXml::encode($clippings) . '</elements> </args> </combobox> <button><name>clipping</name> <args> <horiz>true</horiz> <frame>false</frame> <themeimage>arrowright</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <formsubmit>clipping' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkaddtoclipping') . '</action> </args> </button> <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg> <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg> </children> </horizgroup> </children> </form> </children> </vertgroup>'; } } if (isset($GLOBALS['innoworkcore']['itemacl'][$this->mItemType][$this->mItemId])) { $this->mDefinition .= '<label row="' . $row++ . '" col="0"> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_changed.label'))) . '</label> <bold>true</bold> </args> </label>'; } $this->mDefinition .= ' </children> </table> </children> </empty>'; } else { $this->mDefinition = ' <empty><name>innoworkitemacl</name> <children> <form><name>opts' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <formarg><name>aclmode</name> <args> <disp>wui</disp> <value>' . ($acl_mode == 'advanced' ? 'simple' : 'advanced') . '</value> </args> </formarg> </children> </form> <table><name>acl</name> <args> <headers type="array">' . WuiXml::encode(array('0' => array('label' => $locale->getStr('item_properties.label')))) . '</headers> </args> <children>'; if (count($item_actions)) { foreach ($item_actions as $item_action) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"><children>'; $this->mDefinition .= $item_action; $this->mDefinition .= '</children></vertgroup>'; } } $this->mDefinition .= ' <vertgroup row="' . $row++ . '" col="0" halign="" valign="" nowrap="true"><name>vg</name><children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <button> <args> <themeimage>lock</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> </args> </button> <label><name>convert</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('access_mode.label'))) . '</label> <compact>true</compact> </args> </label> </children> </horizgroup>'; if (strlen($owner)) { $this->mDefinition .= ' <label><name>owner</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode(sprintf($locale->getStr('owner.label'), $owner))) . '</label> </args> </label>'; } $this->mDefinition .= ' <label><name>acltype</name> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_private.label'))) . '</label> <bold>' . ($this->mAclType == InnoworkAcl::TYPE_PRIVATE ? 'true' : 'false') . '</bold> </args> </label> <label><name>acltype</name> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_public.label'))) . '</label> <bold>' . ($this->mAclType == InnoworkAcl::TYPE_PUBLIC ? 'true' : 'false') . '</bold> </args> </label> <label><name>acltype</name> <args> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('acl_type_acl.label'))) . '</label> <bold>' . ($this->mAclType == InnoworkAcl::TYPE_ACL ? 'true' : 'false') . '</bold> </args> </label> <horizgroup><args><width>0%</width></args> <children> <button><name>setopts</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> <formsubmit>opts' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <horiz>true</horiz> <frame>false</frame> <themeimage>' . ($acl_mode == 'advanced' ? 'info' : 'info') . '</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr($acl_mode == 'advanced' ? 'acl_simple.submit' : 'acl_advanced.submit'))) . '</label> </args> </button> </children> </horizgroup> </children> </vertgroup>'; if ($acl_mode == 'advanced') { if ($this->mAclType == InnoworkAcl::TYPE_ACL) { $this->mDefinition .= '<form row="' . $row++ . '" col="0"><name>limitedacl' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <listbox><name>limitedacl</name> <args> <disp>wui</disp> <elements type="array">' . WuiXml::encode($limited_acls) . '</elements> <multiselect>true</multiselect> <size>10</size> </args> </listbox> <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg> <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg> </children> </form>'; } if ($summaries[$this->mItemType]['loggable']) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <button> <args> <themeimage>alignright</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> </args> </button> <label><name>convert</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('history.label'))) . '</label> <compact>true</compact> </args> </label> </children> </horizgroup> <listbox><name>itemlog</name> <args> <readonly>true</readonly> <elements type="array">' . WuiXml::encode(array_reverse($item_log->GetLog())) . '</elements> <size>3</size> </args> </listbox> </children> </vertgroup>'; } if ($summaries[$this->mItemType]['convertible']) { $convert_types = array(); foreach ($summaries as $type => $item) { if ($item['convertible'] and $type != $this->mItemType) { $tmp_locale = new \Innomatic\Locale\LocaleCatalog($item['catalog'], $container->getCurrentUser()->getLanguage()); $convert_types[$type] = $tmp_locale->getStr($type); unset($tmp_locale); } } if (count($convert_types)) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <button> <args> <themeimage>elementadd</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> </args> </button> <label><name>convert</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('convert.label'))) . '</label> <compact>true</compact> </args> </label> </children> </horizgroup> <form><name>convert' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <combobox><name>type</name> <args> <disp>wui</disp> <elements type="array">' . WuiXml::encode($convert_types) . '</elements> </args> </combobox> <button><name>convert</name> <args> <horiz>true</horiz> <frame>false</frame> <themeimage>arrowright</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <formsubmit>convert' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkconvert') . '</action> </args> </button> <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg> <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg> </children> </horizgroup> </children> </form> </children> </vertgroup>'; } } // Clippings if (count($clippings)) { $this->mDefinition .= '<vertgroup row="' . $row++ . '" col="0"> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <button> <args> <themeimage>clip</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> </args> </button> <label><name>clipping</name> <args> <bold>true</bold> <label type="encoded">' . WuiXml::cdata(urlencode($locale->getStr('clipping.label'))) . '</label> <compact>true</compact> </args> </label> </children> </horizgroup> <form><name>clipping' . md5($this->mItemType . '-' . $this->mItemId) . '</name> <args> <action>' . WuiXml::cdata($this->mDefaultAction) . '</action> </args> <children> <horizgroup> <args> <align>middle</align><width>0%</width> </args> <children> <combobox><name>clippingid</name> <args> <disp>wui</disp> <elements type="array">' . WuiXml::encode($clippings) . '</elements> </args> </combobox> <button><name>clipping</name> <args> <horiz>true</horiz> <frame>false</frame> <themeimage>arrowright</themeimage> <themeimagetype>mini</themeimagetype> <compact>true</compact> <formsubmit>clipping' . md5($this->mItemType . '-' . $this->mItemId) . '</formsubmit> <action>' . WuiXml::cdata($this->mDefaultAction . '&wui[wui][evn]=innoworkaddtoclipping') . '</action> </args> </button> <formarg><name>aclitemtype</name><args><disp>wui</disp><value>' . $this->mItemType . '</value></args></formarg> <formarg><name>aclitemid</name><args><disp>wui</disp><value>' . $this->mItemId . '</value></args></formarg> </children> </horizgroup> </children> </form> </children> </vertgroup>'; } } $this->mDefinition .= ' </children> </table> </children> </empty>'; } $result = true; }
public function viewsituation($eventData) { $domainsQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT domainid FROM domains ORDER BY domainid'); $applicationsQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT appid FROM applications WHERE onlyextension=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->formatText(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->fmtfalse) . ' ORDER BY appid'); $headers = array(); $cont = 1; while (!$applicationsQuery->eof) { $origLabel = $applicationsQuery->getFields('appid'); $label = ''; for ($i = 0; $i < strlen($origLabel); $i++) { if ($i) { $label .= '<br>'; } $label .= $origLabel[$i]; } $headers[$cont++]['label'] = $label; $applicationsQuery->moveNext(); } $xmlDef = '<table><name>situation</name> <args> <headers type="array">' . WuiXml::encode($headers) . '</headers> </args> <children>'; $row = 0; $appDeps = new \Innomatic\Application\ApplicationDependencies(); while (!$domainsQuery->eof) { $xmlDef .= '<label row="' . $row . '" col="0"> <args> <label type="encoded">' . urlencode($domainsQuery->getFields('domainid')) . '</label> <compact>true</compact> </args> </label>'; $col = 1; $applicationsQuery->MoveFirst(); while (!$applicationsQuery->eof) { $enabled = $appDeps->IsEnabled($applicationsQuery->getFields('appid'), $domainsQuery->getFields('domainid')); $xmlDef .= '<image row="' . $row . '" col="' . $col . '" halign="center" valign="middle"> <args> <imageurl>' . ($enabled ? $this->wuiMainframe->mThemeHandler->mStyle['greenball'] : $this->wuiMainframe->mThemeHandler->mStyle['redball']) . '</imageurl> </args> </image>'; $col++; $applicationsQuery->moveNext(); } $row++; $domainsQuery->moveNext(); } $xmlDef .= ' </children> </table>'; $this->wuiMainframe->addChild(new WuiXml('', array('definition' => $xmlDef))); }
function main_default($eventData) { global $gXml_def, $innowork_core, $gLocale, $gWui, $gPage_status, $gPage_title; $summaries = $innowork_core->GetSummaries(); $types[''] = $gLocale->getStr('alltypes.label'); while (list($key, $val) = each($summaries)) { if ($val['searchable']) { $types[$key] = $val['label']; } } reset($summaries); $tab_labels[0]['label'] = $gLocale->getStr('defacls.tab'); $gXml_def = ' <vertgroup> <children> <tab> <name>settings</name> <args> <tabs type="array">' . WuiXml::encode($tab_labels) . '</tabs> <tabactionfunction>main_tab_action_handler</tabactionfunction> <activetab>' . (isset($eventData['maintab']) ? $eventData['maintab'] : '') . '</activetab> </args> <children> <!-- Default ACLs tab --> <vertgroup> <children> <label> <args> <bold>true</bold> <label type="encoded">' . urlencode($gLocale->getStr('defacls.title')) . '</label> </args> </label> <horizbar/> <horizgroup> <children> <vertgroup> <children>'; foreach ($summaries as $type => $opts) { $class_name = $opts['classname']; if (!class_exists($class_name)) { continue; } $tmp_class = new $class_name(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess(), 0); if ($type != 'defaultaclitem' and $tmp_class->mNoAcl != true and !isset($tmp_class->_mSkipAclSet) and !isset($tmp_class->_mCreationAcl)) { $gXml_def .= ' <button> <args> <label type="encoded">' . urlencode($opts['label']) . '</label> <themeimage>' . $opts['icon'] . '</themeimage> <themeimagetype>' . $opts['icontype'] . '</themeimagetype> <horiz>true</horiz> <disabled>' . ($eventData['setdefacl'] == $type ? 'true' : 'false') . '</disabled> <action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('setdefacl' => $type))))) . '</action> </args> </button>'; } } $gXml_def .= ' </children> </vertgroup>'; if (isset($eventData['setdefacl'])) { $check_query = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->Execute('SELECT * FROM innowork_core_acls_defaults WHERE ownerid=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getUserId() . ' AND itemtype=' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()->formatText($eventData['setdefacl'])); if ($check_query->getNumberRows()) { $id = $check_query->getFields('id'); } else { $item = new InnoworkDefaultAclItem(\Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess(), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getDataAccess()); $params['itemtype'] = $eventData['setdefacl']; $item->Create($params); $id = $item->mItemId; } $gXml_def .= ' <vertbar/> <vertgroup> <args> <align>center</align> </args> <children> <label> <args> <label type="encoded">' . urlencode($summaries[$eventData['setdefacl']]['label']) . '</label> <bold>true</bold> </args> </label> <horizbar/> <innoworkitemacl><name>itemacl</name> <args> <itemtype>defaultaclitem</itemtype> <itemid>' . $id . '</itemid> <itemownerid>' . \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentUser()->getUserId() . '</itemownerid> <defaultaction type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', array('setdefacl' => $eventData['setdefacl']))))) . '</defaultaction> </args> </innoworkitemacl> </children> </vertgroup> '; } $gXml_def .= ' </children> </horizgroup> </children> </vertgroup> </children> </tab> </children> </vertgroup>'; }
public function viewdefault($eventData) { //$app_cfg = new ApplicationSettings( // 'innomatic' ); $themesQuery = \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getDataAccess()->execute('SELECT name,catalog FROM wui_themes'); while (!$themesQuery->eof) { $tmpLocale = new LocaleCatalog($themesQuery->getFields('catalog'), \Innomatic\Core\InnomaticContainer::instance('\\Innomatic\\Core\\InnomaticContainer')->getCurrentDomain()->getLanguage()); $elements[$themesQuery->getFields('name')] = $tmpLocale->getStr($themesQuery->getFields('name')); $themesQuery->moveNext(); } asort($elements); $xmlDef = '<vertgroup><name>vgroup</name><args><halign>center</halign></args><children> <form><name>theme</name><args><action type="encoded">' . urlencode(WuiEventsCall::buildEventsCallString('', array(array('view', 'default', ''), array('action', 'settheme', '')))) . '</action></args><children> <grid><name>themegrid</name><children> <label row="0" col="0"><name>themelabel</name><args><label type="encoded">' . urlencode($this->localeCatalog->getStr('themes_label')) . '</label><bold>true</bold></args></label> <listbox row="1" col="0"><name>theme</name><args><elements type="array">' . WuiXml::encode($elements) . '</elements><default>' . \Innomatic\Wui\Wui::instance('\\Innomatic\\Wui\\Wui')->getThemeName() . '</default><disp>action</disp><size>10</size></args></listbox> </children></grid> <submit><name>submit</name><args><caption type="encoded">' . urlencode($this->localeCatalog->getStr('settheme_submit')) . '</caption></args></submit> </children></form> </children></vertgroup>'; $this->wuiMainframe->addChild(new WuiXml('page', array('definition' => $xmlDef))); $this->wuiTitlebar->mArgs['title'] .= ' - ' . $this->localeCatalog->getStr('themes_title'); }