diff --git a/application/DBSearchHelper.php b/application/DBSearchHelper.php index 6061079ba..8f9a2ab27 100644 --- a/application/DBSearchHelper.php +++ b/application/DBSearchHelper.php @@ -1,4 +1,5 @@ AddCondition_PointingTo($oFilter, $sHierarchicalKeyCode, TREE_OPERATOR_BELOW); $oSearch->AddCondition_PointingTo($oHKFilter, $sAttCode); } - } - catch (Exception $e) { + } catch (Exception $e) { // If filtering fails just ignore it } } @@ -57,4 +57,4 @@ class DBSearchHelper } } } -} \ No newline at end of file +} diff --git a/application/application.inc.php b/application/application.inc.php index 88b332b66..c04e8d679 100644 --- a/application/application.inc.php +++ b/application/application.inc.php @@ -1,4 +1,5 @@ - /** * Class ApplicationContext * @@ -47,16 +47,16 @@ interface iDBObjectURLMaker /** * Direct end-users to the standard iTop application: UI.php - */ + */ class iTopStandardURLMaker implements iDBObjectURLMaker { - /** - * @param string $sClass - * @param string $iId - * - * @return string - * @throws \Exception - */ + /** + * @param string $sClass + * @param string $iId + * + * @return string + * @throws \Exception + */ public static function MakeObjectURL($sClass, $iId) { $sPage = DBObject::ComputeStandardUIPage($sClass); @@ -68,16 +68,16 @@ class iTopStandardURLMaker implements iDBObjectURLMaker /** * Direct end-users to the standard Portal application - */ + */ class PortalURLMaker implements iDBObjectURLMaker { - /** - * @param string $sClass - * @param string $iId - * - * @return string - * @throws \Exception - */ + /** + * @param string $sClass + * @param string $iId + * + * @return string + * @throws \Exception + */ public static function MakeObjectURL($sClass, $iId) { $sAbsoluteUrl = utils::GetAbsoluteUrlAppRoot(); @@ -86,7 +86,6 @@ class PortalURLMaker implements iDBObjectURLMaker } } - /** * Helper class to store and manipulate the parameters that make the application's context * @@ -99,99 +98,90 @@ class PortalURLMaker implements iDBObjectURLMaker */ class ApplicationContext { - public static $m_sUrlMakerClass = null; - protected static $m_aPluginProperties = null; - protected static $aDefaultValues; // Cache shared among all instances + public static $m_sUrlMakerClass = null; + protected static $m_aPluginProperties = null; + protected static $aDefaultValues; // Cache shared among all instances protected $aNames; protected $aValues; - /** - * ApplicationContext constructor. - * - * @param bool $bReadContext - * - * @throws \Exception - */ + /** + * ApplicationContext constructor. + * + * @param bool $bReadContext + * + * @throws \Exception + */ public function __construct($bReadContext = true) { - $this->aNames = array( - 'org_id', 'menu' - ); - if ($bReadContext) - { - $this->ReadContext(); + $this->aNames = [ + 'org_id', 'menu', + ]; + if ($bReadContext) { + $this->ReadContext(); } } - /** - * Read the context directly in the PHP parameters (either POST or GET) - * return nothing - * - * @throws \Exception - */ + /** + * Read the context directly in the PHP parameters (either POST or GET) + * return nothing + * + * @throws \Exception + */ protected function ReadContext() { - if (!isset(self::$aDefaultValues)) - { - self::$aDefaultValues = array(); - $aContext = utils::ReadParam('c', array(), false, 'context_param'); - foreach($this->aNames as $sName) - { + if (!isset(self::$aDefaultValues)) { + self::$aDefaultValues = []; + $aContext = utils::ReadParam('c', [], false, 'context_param'); + foreach ($this->aNames as $sName) { $sValue = isset($aContext[$sName]) ? $aContext[$sName] : ''; // TO DO: check if some of the context parameters are mandatory (or have default values) - if (!empty($sValue)) - { + if (!empty($sValue)) { self::$aDefaultValues[$sName] = $sValue; } // Hmm, there must be a better (more generic) way to handle the case below: // When there is only one possible (allowed) organization, the context must be // fixed to this org unless there is only one organization in the system then // no filter is applied - if ($sName == 'org_id') - { - if (MetaModel::IsValidClass('Organization')) - { + if ($sName == 'org_id') { + if (MetaModel::IsValidClass('Organization')) { $oSearchFilter = new DBObjectSearch('Organization'); $oSet = new CMDBObjectSet($oSearchFilter); $iCount = $oSet->CountWithLimit(2); - if ($iCount > 1) - { + if ($iCount > 1) { $oSearchFilter->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', true); $oSet = new CMDBObjectSet($oSearchFilter); $iCount = $oSet->CountWithLimit(2); - if ($iCount == 1) - { + if ($iCount == 1) { // Only one possible value for org_id, set it in the context $oOrg = $oSet->Fetch(); self::$aDefaultValues[$sName] = $oOrg->GetKey(); } } - } + } } } } $this->aValues = self::$aDefaultValues; } - /** - * Returns the current value for the given parameter - * - * @param string $sParamName Name of the parameter to read - * @param string $defaultValue - * - * @return mixed The value for this parameter - */ + /** + * Returns the current value for the given parameter + * + * @param string $sParamName Name of the parameter to read + * @param string $defaultValue + * + * @return mixed The value for this parameter + */ public function GetCurrentValue($sParamName, $defaultValue = '') { - if (isset($this->aValues[$sParamName])) - { + if (isset($this->aValues[$sParamName])) { return $this->aValues[$sParamName]; } return $defaultValue; } - + /** * Returns the context as string with the format name1=value1&name2=value2.... * @return string The context as a string to be appended to an href property @@ -200,21 +190,20 @@ class ApplicationContext public function GetForLink(bool $bWithLeadingAmpersand = false) { // If there are no parameters, return an empty string - if(empty($this->aValues)){ + if (empty($this->aValues)) { return ''; } // Build the query string with ampersand separated parameters - $aParams = array(); - foreach($this->aValues as $sName => $sValue) - { + $aParams = []; + foreach ($this->aValues as $sName => $sValue) { $aParams[] = "c[$sName]".'='.urlencode($sValue); } $sReturnValue = implode('&', $aParams); // add the leading ampersand if requested - if($bWithLeadingAmpersand){ - $sReturnValue = '&' . $sReturnValue; + if ($bWithLeadingAmpersand) { + $sReturnValue = '&'.$sReturnValue; } return $sReturnValue; @@ -278,14 +267,13 @@ class ApplicationContext */ public function GetAsHash() { - $aReturn = array(); - foreach($this->aValues as $sName => $sValue) - { + $aReturn = []; + foreach ($this->aValues as $sName => $sValue) { $aReturn["c[$sName]"] = $sValue; } return $aReturn; } - + /** * Returns an array of the context parameters NAMEs * @return array The list of context parameters @@ -298,11 +286,10 @@ class ApplicationContext * Removes the specified parameter from the context, for example when the same parameter * is already a search parameter * @param string $sParamName Name of the parameter to remove - */ + */ public function Reset($sParamName) { - if (isset($this->aValues[$sParamName])) - { + if (isset($this->aValues[$sParamName])) { unset($this->aValues[$sParamName]); } } @@ -318,27 +305,22 @@ class ApplicationContext public function InitObjectFromContext(DBObject &$oObj) { $sClass = get_class($oObj); - foreach($this->GetNames() as $key) - { - $aCallSpec = array($sClass, 'MapContextParam'); - if (is_callable($aCallSpec)) - { - $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter + foreach ($this->GetNames() as $key) { + $aCallSpec = [$sClass, 'MapContextParam']; + if (is_callable($aCallSpec)) { + $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter - if (MetaModel::IsValidAttCode($sClass, $sAttCode)) - { + if (MetaModel::IsValidAttCode($sClass, $sAttCode)) { $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); - if ($oAttDef->IsWritable()) - { + if ($oAttDef->IsWritable()) { $value = $this->GetCurrentValue($key, null); - if (!is_null($value)) - { + if (!is_null($value)) { $oObj->Set($sAttCode, $value); } } } } - } + } } /** @@ -362,14 +344,10 @@ class ApplicationContext */ public static function GetUrlMakerClass() { - if (is_null(self::$m_sUrlMakerClass)) - { - if (Session::IsSet('UrlMakerClass')) - { + if (is_null(self::$m_sUrlMakerClass)) { + if (Session::IsSet('UrlMakerClass')) { self::$m_sUrlMakerClass = Session::Get('UrlMakerClass'); - } - else - { + } else { self::$m_sUrlMakerClass = 'iTopStandardURLMaker'; } } @@ -387,23 +365,23 @@ class ApplicationContext * @return string the name of the class * @throws \Exception */ - public static function MakeObjectUrl($sObjClass, $sObjKey, $sUrlMakerClass = null, $bWithNavigationContext = true) - { - $oAppContext = new ApplicationContext(); + public static function MakeObjectUrl($sObjClass, $sObjKey, $sUrlMakerClass = null, $bWithNavigationContext = true) + { + $oAppContext = new ApplicationContext(); - if (is_null($sUrlMakerClass)) { - $sUrlMakerClass = self::GetUrlMakerClass(); - } - $sUrl = call_user_func(array($sUrlMakerClass, 'MakeObjectUrl'), $sObjClass, $sObjKey); - if (utils::StrLen($sUrl) > 0) { - if ($bWithNavigationContext) { - return $sUrl.$oAppContext->GetForLink(true); - } else { - return $sUrl; - } - } else { - return ''; - } + if (is_null($sUrlMakerClass)) { + $sUrlMakerClass = self::GetUrlMakerClass(); + } + $sUrl = call_user_func([$sUrlMakerClass, 'MakeObjectUrl'], $sObjClass, $sObjKey); + if (utils::StrLen($sUrl) > 0) { + if ($bWithNavigationContext) { + return $sUrl.$oAppContext->GetForLink(true); + } else { + return $sUrl; + } + } else { + return ''; + } } /** @@ -412,13 +390,10 @@ class ApplicationContext */ protected static function LoadPluginProperties() { - if (Session::IsSet('PluginProperties')) - { + if (Session::IsSet('PluginProperties')) { self::$m_aPluginProperties = Session::Get('PluginProperties'); - } - else - { - self::$m_aPluginProperties = array(); + } else { + self::$m_aPluginProperties = []; } } @@ -431,7 +406,9 @@ class ApplicationContext */ public static function SetPluginProperty($sPluginClass, $sProperty, $value) { - if (is_null(self::$m_aPluginProperties)) self::LoadPluginProperties(); + if (is_null(self::$m_aPluginProperties)) { + self::LoadPluginProperties(); + } self::$m_aPluginProperties[$sPluginClass][$sProperty] = $value; Session::Set(['PluginProperties', $sPluginClass, $sProperty], $value); @@ -444,15 +421,14 @@ class ApplicationContext */ public static function GetPluginProperties($sPluginClass) { - if (is_null(self::$m_aPluginProperties)) self::LoadPluginProperties(); - - if (array_key_exists($sPluginClass, self::$m_aPluginProperties)) - { - return self::$m_aPluginProperties[$sPluginClass]; + if (is_null(self::$m_aPluginProperties)) { + self::LoadPluginProperties(); } - else - { - return array(); + + if (array_key_exists($sPluginClass, self::$m_aPluginProperties)) { + return self::$m_aPluginProperties[$sPluginClass]; + } else { + return []; } } diff --git a/application/audit.category.class.inc.php b/application/audit.category.class.inc.php index 2ffeb2d58..d5549b8f8 100644 --- a/application/audit.category.class.inc.php +++ b/application/audit.category.class.inc.php @@ -1,9 +1,10 @@ - /** * This class manages the audit "categories". Each category defines a set of objects * to check and is linked to a set of rules that determine the valid or invalid objects @@ -32,34 +32,36 @@ class AuditCategory extends cmdbAbstractObject { public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "application,grant_by_profile", "key_type" => "autoincrement", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array('name'), + "reconc_keys" => ['name'], "db_table" => "priv_auditcategory", "db_key_field" => "id", "db_finalclass_field" => "", 'style' => new ormStyle(null, null, null, null, null, '../images/icons/icons8-audit-folder.svg'), - ); + ]; MetaModel::Init_Params($aParams); - MetaModel::Init_AddAttribute(new AttributeString("name", array("description"=>"Short name for this category", "allowed_values"=>null, "sql"=>"name", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeOQL("definition_set", array("allowed_values"=>null, "sql"=>"definition_set", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeLinkedSet("rules_list", array("linked_class"=>"AuditRule", "ext_key_to_me"=>"category_id", "allowed_values"=>null, "count_min"=>0, "count_max"=>0, "depends_on"=>array(), "edit_mode" => LINKSET_EDITMODE_INPLACE, "tracking_level" => LINKSET_TRACKING_ALL))); - MetaModel::Init_AddAttribute(new AttributeInteger("ok_error_tolerance", array("allowed_values"=>null, "sql"=>"ok_error_tolerance", "default_value"=>5, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeInteger("warning_error_tolerance", array("allowed_values" => null, "sql" => "warning_error_tolerance", "default_value" => 25, "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("domains_list", - array("linked_class" => "lnkAuditCategoryToAuditDomain", "ext_key_to_me" => "category_id", "ext_key_to_remote" => "domain_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => array(), "display_style" => 'property'))); + MetaModel::Init_AddAttribute(new AttributeString("name", ["description" => "Short name for this category", "allowed_values" => null, "sql" => "name", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeOQL("definition_set", ["allowed_values" => null, "sql" => "definition_set", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeLinkedSet("rules_list", ["linked_class" => "AuditRule", "ext_key_to_me" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "edit_mode" => LINKSET_EDITMODE_INPLACE, "tracking_level" => LINKSET_TRACKING_ALL])); + MetaModel::Init_AddAttribute(new AttributeInteger("ok_error_tolerance", ["allowed_values" => null, "sql" => "ok_error_tolerance", "default_value" => 5, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeInteger("warning_error_tolerance", ["allowed_values" => null, "sql" => "warning_error_tolerance", "default_value" => 25, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect( + "domains_list", + ["linked_class" => "lnkAuditCategoryToAuditDomain", "ext_key_to_me" => "category_id", "ext_key_to_remote" => "domain_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "display_style" => 'property'] + )); // Display lists - MetaModel::Init_SetZListItems('details', array('name', 'description', 'definition_set', 'ok_error_tolerance', 'warning_error_tolerance', 'rules_list', 'domains_list')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('description', )); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['name', 'description', 'definition_set', 'ok_error_tolerance', 'warning_error_tolerance', 'rules_list', 'domains_list']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['description', ]); // Attributes to be displayed for a list // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('description', 'definition_set')); // Criteria of the std search form - MetaModel::Init_SetZListItems('default_search', array('name', 'description')); // Criteria of the default search form + MetaModel::Init_SetZListItems('standard_search', ['description', 'definition_set']); // Criteria of the std search form + MetaModel::Init_SetZListItems('default_search', ['name', 'description']); // Criteria of the default search form } /** @@ -74,9 +76,9 @@ class AuditCategory extends cmdbAbstractObject public function GetReportColor($iTotal, $iErrors) { $sResult = 'red'; - if ( ($iTotal == 0) || ($iErrors / $iTotal) <= ($this->Get('ok_error_tolerance') / 100) ) { + if (($iTotal == 0) || ($iErrors / $iTotal) <= ($this->Get('ok_error_tolerance') / 100)) { $sResult = 'green'; - } else if (($iErrors / $iTotal) <= ($this->Get('warning_error_tolerance') / 100)) { + } elseif (($iErrors / $iTotal) <= ($this->Get('warning_error_tolerance') / 100)) { $sResult = 'orange'; } @@ -93,4 +95,3 @@ class AuditCategory extends cmdbAbstractObject return $aShortcutActions; } } -?> diff --git a/application/audit.domain.class.inc.php b/application/audit.domain.class.inc.php index 5e8f56e5f..8da740a82 100644 --- a/application/audit.domain.class.inc.php +++ b/application/audit.domain.class.inc.php @@ -1,4 +1,5 @@ - /** * This class manages the audit "categories". Each category defines a set of objects * to check and is linked to a set of rules that determine the valid or invalid objects @@ -33,32 +33,34 @@ class AuditDomain extends cmdbAbstractObject { public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "application,grant_by_profile", "key_type" => "autoincrement", "name_attcode" => "name", - "complementary_name_attcode" => array('description'), + "complementary_name_attcode" => ['description'], "state_attcode" => "", - "reconc_keys" => array('name'), + "reconc_keys" => ['name'], "db_table" => "priv_auditdomain", "db_key_field" => "id", "db_finalclass_field" => "", 'style' => new ormStyle(null, null, null, null, null, '../images/icons/icons8-audit-album.svg'), - ); + ]; MetaModel::Init_Params($aParams); - MetaModel::Init_AddAttribute(new AttributeString("name", array("description" => "Short name for this category", "allowed_values" => null, "sql" => "name", "default_value" => "", "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values" => null, "sql" => "description", "default_value" => "", "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeImage("icon", array("is_null_allowed" => true, "depends_on" => array(), "display_max_width" => 96, "display_max_height" => 96, "storage_max_width" => 256, "storage_max_height" => 256, "default_image" => null, "always_load_in_tables" => false))); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("categories_list", - array("linked_class" => "lnkAuditCategoryToAuditDomain", "ext_key_to_me" => "domain_id", "ext_key_to_remote" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => array()))); + MetaModel::Init_AddAttribute(new AttributeString("name", ["description" => "Short name for this category", "allowed_values" => null, "sql" => "name", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeImage("icon", ["is_null_allowed" => true, "depends_on" => [], "display_max_width" => 96, "display_max_height" => 96, "storage_max_width" => 256, "storage_max_height" => 256, "default_image" => null, "always_load_in_tables" => false])); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect( + "categories_list", + ["linked_class" => "lnkAuditCategoryToAuditDomain", "ext_key_to_me" => "domain_id", "ext_key_to_remote" => "category_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => []] + )); // Display lists - MetaModel::Init_SetZListItems('details', array('name', 'description', 'icon', 'categories_list')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('description',)); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['name', 'description', 'icon', 'categories_list']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['description',]); // Attributes to be displayed for a list // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('description')); // Criteria of the std search form - MetaModel::Init_SetZListItems('default_search', array('name', 'description')); // Criteria of the default search form + MetaModel::Init_SetZListItems('standard_search', ['description']); // Criteria of the std search form + MetaModel::Init_SetZListItems('default_search', ['name', 'description']); // Criteria of the default search form } public static function GetShortcutActions($sFinalClass) @@ -84,40 +86,39 @@ class lnkAuditCategoryToAuditDomain extends cmdbAbstractObject */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "application,grant_by_profile", "key_type" => "autoincrement", "name_attcode" => "", "state_attcode" => "", - "reconc_keys" => array('category_id', 'domain_id'), + "reconc_keys" => ['category_id', 'domain_id'], "db_table" => "priv_link_audit_category_domain", "db_key_field" => "id", "db_finalclass_field" => "", "is_link" => true, - 'uniqueness_rules' => array( - 'no_duplicate' => array( - 'attributes' => array( + 'uniqueness_rules' => [ + 'no_duplicate' => [ + 'attributes' => [ 0 => 'category_id', 1 => 'domain_id', - ), + ], 'filter' => '', 'disabled' => false, 'is_blocking' => true, - ), - ), - ); + ], + ], + ]; MetaModel::Init_Params($aParams); - MetaModel::Init_AddAttribute(new AttributeExternalKey("category_id", array("targetclass" => "AuditCategory", "jointype" => '', "allowed_values" => null, "sql" => "category_id", "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeExternalField("category_name", array("allowed_values" => null, "extkey_attcode" => 'category_id', "target_attcode" => "name"))); - MetaModel::Init_AddAttribute(new AttributeExternalKey("domain_id", array("targetclass" => "AuditDomain", "jointype" => '', "allowed_values" => null, "sql" => "domain_id", "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeExternalField("domain_name", array("allowed_values" => null, "extkey_attcode" => 'domain_id', "target_attcode" => "name"))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("category_id", ["targetclass" => "AuditCategory", "jointype" => '', "allowed_values" => null, "sql" => "category_id", "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalField("category_name", ["allowed_values" => null, "extkey_attcode" => 'category_id', "target_attcode" => "name"])); + MetaModel::Init_AddAttribute(new AttributeExternalKey("domain_id", ["targetclass" => "AuditDomain", "jointype" => '', "allowed_values" => null, "sql" => "domain_id", "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalField("domain_name", ["allowed_values" => null, "extkey_attcode" => 'domain_id', "target_attcode" => "name"])); // Display lists - MetaModel::Init_SetZListItems('details', array('category_id', 'domain_id')); - MetaModel::Init_SetZListItems('list', array('category_id', 'domain_id')); + MetaModel::Init_SetZListItems('details', ['category_id', 'domain_id']); + MetaModel::Init_SetZListItems('list', ['category_id', 'domain_id']); // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('category_id', 'domain_id')); + MetaModel::Init_SetZListItems('standard_search', ['category_id', 'domain_id']); } } - diff --git a/application/audit.rule.class.inc.php b/application/audit.rule.class.inc.php index af3cb093a..2da2e28ef 100644 --- a/application/audit.rule.class.inc.php +++ b/application/audit.rule.class.inc.php @@ -1,9 +1,10 @@ - /** * This class manages the audit "rule" linked to a given audit category. * Each rule is based on an OQL expression that returns either the "good" objects @@ -33,35 +33,34 @@ class AuditRule extends cmdbAbstractObject { public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "application,grant_by_profile", "key_type" => "autoincrement", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array('name'), + "reconc_keys" => ['name'], "db_table" => "priv_auditrule", "db_key_field" => "id", "db_finalclass_field" => "", 'style' => new ormStyle(null, null, null, null, null, '../images/icons/icons8-audit.svg'), - ); + ]; MetaModel::Init_Params($aParams); - MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values" => null, "sql" => "name", "default_value" => "", "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values" => null, "sql" => "description", "default_value" => "", "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeOQL("query", array("allowed_values" => null, "sql" => "query", "default_value" => "", "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeEnum("valid_flag", array("allowed_values" => new ValueSetEnum('true,false'), "sql" => "valid_flag", "default_value" => "true", "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeExternalKey("category_id", array("allowed_values" => null, "sql" => "category_id", "targetclass" => "AuditCategory", "is_null_allowed" => false, "on_target_delete" => DEL_MANUAL, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeExternalField("category_name", array("allowed_values" => null, "extkey_attcode" => 'category_id', "target_attcode" => "name"))); + MetaModel::Init_AddAttribute(new AttributeString("name", ["allowed_values" => null, "sql" => "name", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeOQL("query", ["allowed_values" => null, "sql" => "query", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeEnum("valid_flag", ["allowed_values" => new ValueSetEnum('true,false'), "sql" => "valid_flag", "default_value" => "true", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalKey("category_id", ["allowed_values" => null, "sql" => "category_id", "targetclass" => "AuditCategory", "is_null_allowed" => false, "on_target_delete" => DEL_MANUAL, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalField("category_name", ["allowed_values" => null, "extkey_attcode" => 'category_id', "target_attcode" => "name"])); // Display lists - MetaModel::Init_SetZListItems('details', array('category_id', 'name', 'description', 'query', 'valid_flag')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('category_id', 'description', 'valid_flag')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['category_id', 'name', 'description', 'query', 'valid_flag']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['category_id', 'description', 'valid_flag']); // Attributes to be displayed for a list // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('category_id', 'name', 'description', 'valid_flag', 'query')); // Criteria of the std search form - MetaModel::Init_SetZListItems('default_search', array('name', 'description', 'category_id')); // Criteria of the advanced search form + MetaModel::Init_SetZListItems('standard_search', ['category_id', 'name', 'description', 'valid_flag', 'query']); // Criteria of the std search form + MetaModel::Init_SetZListItems('default_search', ['name', 'description', 'category_id']); // Criteria of the advanced search form } - public static function GetShortcutActions($sFinalClass) { $aShortcutActions = parent::GetShortcutActions($sFinalClass); @@ -72,4 +71,3 @@ class AuditRule extends cmdbAbstractObject return $aShortcutActions; } } -?> diff --git a/application/compilecssservice.class.inc.php b/application/compilecssservice.class.inc.php index a6831e30e..1dc3a2be0 100644 --- a/application/compilecssservice.class.inc.php +++ b/application/compilecssservice.class.inc.php @@ -1,4 +1,5 @@ '', 'icon' => '', 'description' => '', - ); + ]; } } abstract class DashboardLayoutMultiCol extends DashboardLayout { protected $iNbCols; - + public function __construct() { $this->iNbCols = 1; @@ -63,47 +64,38 @@ abstract class DashboardLayoutMultiCol extends DashboardLayout $aKeys = array_reverse(array_keys($aDashlets)); $idx = 0; $bNoVisibleFound = true; - while($idx < count($aKeys) && $bNoVisibleFound) - { + while ($idx < count($aKeys) && $bNoVisibleFound) { /** @var \Dashlet $oDashlet */ $oDashlet = $aDashlets[$aKeys[$idx]]; - if ($oDashlet::IsVisible()) - { + if ($oDashlet::IsVisible()) { $bNoVisibleFound = false; - } - else - { + } else { unset($aDashlets[$aKeys[$idx]]); } $idx++; } return $aDashlets; } - + protected function TrimCellsArray($aCells) { - foreach($aCells as $key => $aDashlets) - { + foreach ($aCells as $key => $aDashlets) { $aCells[$key] = $this->TrimCell($aDashlets); } $aKeys = array_reverse(array_keys($aCells)); $idx = 0; $bNoVisibleFound = true; - while($idx < count($aKeys) && $bNoVisibleFound) - { + while ($idx < count($aKeys) && $bNoVisibleFound) { $aDashlets = $aCells[$aKeys[$idx]]; - if (count($aDashlets) > 0) - { + if (count($aDashlets) > 0) { $bNoVisibleFound = false; - } - else - { + } else { unset($aCells[$aKeys[$idx]]); } $idx++; } - return $aCells; - + return $aCells; + } /** @@ -112,7 +104,7 @@ abstract class DashboardLayoutMultiCol extends DashboardLayout * @param bool $bEditMode * @param array $aExtraParams */ - public function Render($oPage, $aCells, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $aCells, $bEditMode = false, $aExtraParams = []) { // Trim the list of cells to remove the invisible/empty ones at the end of the array $aCells = $this->TrimCellsArray($aCells); @@ -157,8 +149,7 @@ abstract class DashboardLayoutMultiCol extends DashboardLayout $oPage->add_script("function updateDashboard".$aExtraParams['dashboard_div_id']."(){".$sJSReload."}"); - if ($bEditMode) // Add one row for extensibility - { + if ($bEditMode) { // Add one row for extensibility $oDashboardRow = new DashboardRow(); $oDashboardLayout->AddDashboardRow($oDashboardRow); @@ -180,7 +171,7 @@ abstract class DashboardLayoutMultiCol extends DashboardLayout $iColNumber = (int) $iCellIdx % $this->iNbCols; $iRowNumber = (int) floor($iCellIdx / $this->iNbCols); - return array($iColNumber, $iRowNumber); + return [$iColNumber, $iRowNumber]; } } @@ -191,13 +182,13 @@ class DashboardLayoutOneCol extends DashboardLayoutMultiCol parent::__construct(); $this->iNbCols = 1; } - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => 'One Column', 'icon' => 'images/layout_1col.png', 'description' => '', - ); + ]; } } @@ -208,13 +199,13 @@ class DashboardLayoutTwoCols extends DashboardLayoutMultiCol parent::__construct(); $this->iNbCols = 2; } - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => 'Two Columns', 'icon' => 'images/layout_2col.png', 'description' => '', - ); + ]; } } @@ -225,12 +216,12 @@ class DashboardLayoutThreeCols extends DashboardLayoutMultiCol parent::__construct(); $this->iNbCols = 3; } - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => 'Two Columns', 'icon' => 'images/layout_3col.png', 'description' => '', - ); + ]; } -} \ No newline at end of file +} diff --git a/application/dashlet.class.inc.php b/application/dashlet.class.inc.php index 73ff08f38..a94c3e55a 100644 --- a/application/dashlet.class.inc.php +++ b/application/dashlet.class.inc.php @@ -1,9 +1,10 @@ sId = $sId; $this->bRedrawNeeded = true; // By default: redraw each time a property changes $this->bFormRedrawNeeded = false; // By default: no need to redraw the form (independent fields) - $this->aProperties = array(); // By default: there is no property - $this->aCSSClasses = array('ibo-dashlet'); + $this->aProperties = []; // By default: there is no property + $this->aCSSClasses = ['ibo-dashlet']; $this->sDashletType = get_class($this); } @@ -100,16 +101,11 @@ abstract class Dashlet public function Prop2Str($value) { $sType = gettype($value); - if ($sType == 'boolean') - { + if ($sType == 'boolean') { $sRet = $value ? 'true' : 'false'; - } - elseif ($sType == 'array') - { + } elseif ($sType == 'array') { $sRet = implode(',', $value); - } - else - { + } else { $sRet = (string) $value; } return $sRet; @@ -124,11 +120,9 @@ abstract class Dashlet */ public function FromDOMNode($oDOMNode) { - foreach ($this->aProperties as $sProperty => $value) - { + foreach ($this->aProperties as $sProperty => $value) { $oPropNode = $oDOMNode->getElementsByTagName($sProperty)->item(0); - if ($oPropNode != null) - { + if ($oPropNode != null) { $this->aProperties[$sProperty] = $this->PropertyFromDOMNode($oPropNode, $sProperty); } } @@ -140,8 +134,7 @@ abstract class Dashlet */ public function ToDOMNode($oDOMNode) { - foreach ($this->aProperties as $sProperty => $value) - { + foreach ($this->aProperties as $sProperty => $value) { $oPropNode = $oDOMNode->ownerDocument->createElement($sProperty); $oDOMNode->appendChild($oPropNode); $this->PropertyToDOMNode($oPropNode, $sProperty, $value); @@ -183,8 +176,7 @@ abstract class Dashlet libxml_clear_errors(); $oDomDoc->loadXml($sXml); $aErrors = libxml_get_errors(); - if (count($aErrors) > 0) - { + if (count($aErrors) > 0) { throw new DOMException("Malformed XML"); } @@ -228,7 +220,7 @@ abstract class Dashlet * @param bool $bEnclosingDiv * @param array $aExtraParams */ - public function DoRender($oPage, $bEditMode = false, $bEnclosingDiv = true, $aExtraParams = array()): UIBlock + public function DoRender($oPage, $bEditMode = false, $bEnclosingDiv = true, $aExtraParams = []): UIBlock { $sId = $this->GetID(); @@ -305,7 +297,7 @@ EOF * * @return iUIBlock */ - abstract public function Render($oPage, $bEditMode = false, $aExtraParams = array()); + abstract public function Render($oPage, $bEditMode = false, $aExtraParams = []); /** * Rendering without the real data @@ -316,7 +308,7 @@ EOF * * @return iUIBlock */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { return $this->Render($oPage, $bEditMode, $aExtraParams); } @@ -344,10 +336,8 @@ EOF */ public function Update($aValues, $aUpdatedFields) { - foreach($aUpdatedFields as $sProp) - { - if (array_key_exists($sProp, $this->aProperties)) - { + foreach ($aUpdatedFields as $sProp) { + if (array_key_exists($sProp, $this->aProperties)) { $this->aProperties[$sProp] = $this->Str2Prop($sProp, $aValues[$sProp]); } } @@ -374,13 +364,13 @@ EOF /** * @return array */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => '', 'icon' => '', 'description' => '', - ); + ]; } /** @@ -388,7 +378,7 @@ EOF * * @return \DesignerForm */ - public function GetForm($aInfo = array()) + public function GetForm($aInfo = []) { $oForm = new DesignerForm(); $sPrefix = "dashlet_".$this->GetID(); @@ -413,7 +403,7 @@ EOF /** * @return bool */ - static public function IsVisible() + public static function IsVisible() { return true; } @@ -421,7 +411,7 @@ EOF /** * @return bool */ - static public function CanCreateFromOQL() + public static function CanCreateFromOQL() { return false; } @@ -442,18 +432,15 @@ EOF */ protected function GetGroupByOptions($sOql) { - $aGroupBy = array(); - try - { + $aGroupBy = []; + try { $oQuery = $this->oModelReflection->GetQuery($sOql); $sClass = $oQuery->GetClass(); - foreach($this->oModelReflection->ListAttributes($sClass) as $sAttCode => $sAttType) - { + foreach ($this->oModelReflection->ListAttributes($sClass) as $sAttCode => $sAttType) { // For external fields, find the real type of the target $sExtFieldAttCode = $sAttCode; $sTargetClass = $sClass; - while (is_a($sAttType, 'AttributeExternalField', true)) - { + while (is_a($sAttType, 'AttributeExternalField', true)) { $sExtKeyAttCode = $this->oModelReflection->GetAttributeProperty($sTargetClass, $sExtFieldAttCode, 'extkey_attcode'); $sTargetAttCode = $this->oModelReflection->GetAttributeProperty($sTargetClass, $sExtFieldAttCode, 'target_attcode'); $sTargetClass = $this->oModelReflection->GetAttributeProperty($sTargetClass, $sExtKeyAttCode, 'targetclass'); @@ -472,19 +459,16 @@ EOF 'AttributePassword', ]; foreach ($aForbidenAttType as $sForbidenAttType) { - if (is_a($sAttType, $sForbidenAttType, true)) - { + if (is_a($sAttType, $sForbidenAttType, true)) { continue 2; } } $sLabel = $this->oModelReflection->GetLabel($sClass, $sAttCode); - if (!in_array($sLabel, $aGroupBy)) - { + if (!in_array($sLabel, $aGroupBy)) { $aGroupBy[$sAttCode] = $sLabel; - if (is_a($sAttType, 'AttributeDateTime', true)) - { + if (is_a($sAttType, 'AttributeDateTime', true)) { $aGroupBy[$sAttCode.':hour'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-Hour', $sLabel); $aGroupBy[$sAttCode.':month'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-Month', $sLabel); $aGroupBy[$sAttCode.':day_of_week'] = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Select-DayOfWeek', $sLabel); @@ -493,9 +477,7 @@ EOF } } asort($aGroupBy); - } - catch (Exception $e) - { + } catch (Exception $e) { // Fallback in case of OQL problem } return $aGroupBy; @@ -527,7 +509,7 @@ EOF */ class DashletUnknown extends Dashlet { - static protected $aClassList = null; + protected static $aClassList = null; protected $sOriginalDashletXML; @@ -550,22 +532,19 @@ class DashletUnknown extends Dashlet parent::FromDOMNode($oDOMNode); // Build properties from XML - $this->sOriginalDashletXML = ""; - foreach($oDOMNode->childNodes as $oDOMChildNode) - { - if($oDOMChildNode instanceof DOMElement) - { + $this->sOriginalDashletXML = ""; + foreach ($oDOMNode->childNodes as $oDOMChildNode) { + if ($oDOMChildNode instanceof DOMElement) { $sProperty = $oDOMChildNode->tagName; // For all properties but "rank" as it is handle by the dashboard. - if($sProperty !== 'rank') - { + if ($sProperty !== 'rank') { // We need to initialize the property before setting it, otherwise it will guessed as NULL and not used. $this->aProperties[$sProperty] = ''; $this->aProperties[$sProperty] = $this->PropertyFromDOMNode($oDOMChildNode, $sProperty); // And build the original XML - $this->sOriginalDashletXML .= $oDOMChildNode->ownerDocument->saveXML($oDOMChildNode)."\n"; + $this->sOriginalDashletXML .= $oDOMChildNode->ownerDocument->saveXML($oDOMChildNode)."\n"; } } } @@ -585,12 +564,10 @@ class DashletUnknown extends Dashlet libxml_clear_errors(); $oDoc->loadXML(''.$this->sOriginalDashletXML.''); $aErrors = libxml_get_errors(); - if (count($aErrors) > 0) - { + if (count($aErrors) > 0) { throw new DOMFormatException('Dashlet definition not correctly formatted!'); } - foreach($oDoc->documentElement->childNodes as $oDOMChildNode) - { + foreach ($oDoc->documentElement->childNodes as $oDOMChildNode) { $oPropNode = $oDOMNode->ownerDocument->importNode($oDOMChildNode, true); $oDOMNode->appendChild($oPropNode); } @@ -602,23 +579,22 @@ class DashletUnknown extends Dashlet * @throws \DOMException */ public function FromParams($aParams) - { - // For unknown dashlet, parameters are not parsed but passed as a raw xml - if(array_key_exists('xml', $aParams)) - { - // A namespace must be present for the "xsi:type" attribute, otherwise a warning will be thrown. - $sXML = ''.$aParams['xml'].''; - $this->FromXml($sXML); - } - $this->OnUpdate(); - } + { + // For unknown dashlet, parameters are not parsed but passed as a raw xml + if (array_key_exists('xml', $aParams)) { + // A namespace must be present for the "xsi:type" attribute, otherwise a warning will be thrown. + $sXML = ''.$aParams['xml'].''; + $this->FromXml($sXML); + } + $this->OnUpdate(); + } /** * @inheritdoc * * @throws \Exception */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { $aInfos = static::GetInfo(); @@ -637,7 +613,7 @@ class DashletUnknown extends Dashlet * * @throws \Exception */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $aInfos = static::GetInfo(); @@ -654,10 +630,9 @@ class DashletUnknown extends Dashlet /** * @inheritdoc */ - public function GetForm($aInfo = array()) + public function GetForm($aInfo = []) { - if (isset($aInfo['configuration']) && empty($this->sOriginalDashletXML)) - { + if (isset($aInfo['configuration']) && empty($this->sOriginalDashletXML)) { $this->sOriginalDashletXML = $aInfo['configuration']; } return parent::GetForm($aInfo); @@ -678,23 +653,18 @@ class DashletUnknown extends Dashlet protected function PropertyFromDOMNode($oDOMNode, $sProperty) { $bHasSubProperties = false; - foreach($oDOMNode->childNodes as $oDOMChildNode) - { - if($oDOMChildNode->nodeType === XML_ELEMENT_NODE) - { + foreach ($oDOMNode->childNodes as $oDOMChildNode) { + if ($oDOMChildNode->nodeType === XML_ELEMENT_NODE) { $bHasSubProperties = true; break; } } - if($bHasSubProperties) - { + if ($bHasSubProperties) { $sTmp = $oDOMNode->ownerDocument->saveXML($oDOMNode, LIBXML_NOENT); $sTmp = trim(preg_replace("/(<".$oDOMNode->tagName."[^>]*>|<\/".$oDOMNode->tagName.">)/", "", $sTmp)); return $sTmp; - } - else - { + } else { return parent::PropertyFromDOMNode($oDOMNode, $sProperty); } } @@ -705,15 +675,12 @@ class DashletUnknown extends Dashlet protected function PropertyToDOMNode($oDOMNode, $sProperty, $value) { // Save subnodes - if(preg_match('/<(.*)>/', $value)) - { + if (preg_match('/<(.*)>/', $value)) { /** @var \DOMDocumentFragment $oDOMFragment */ $oDOMFragment = $oDOMNode->ownerDocument->createDocumentFragment(); $oDOMFragment->appendXML($value); $oDOMNode->appendChild($oDOMFragment); - } - else - { + } else { parent::PropertyToDOMNode($oDOMNode, $sProperty, $value); } } @@ -724,22 +691,22 @@ class DashletUnknown extends Dashlet * @throws \DOMException */ public function Update($aValues, $aUpdatedFields) - { - $this->FromParams($aValues); - // OnUpdate() already done in FromParams() - return $this; - } + { + $this->FromParams($aValues); + // OnUpdate() already done in FromParams() + return $this; + } /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletUnknown:Label'), 'icon' => 'images/dashlet-unknown.png', 'description' => Dict::S('UI:DashletUnknown:Description'), - ); + ]; } } @@ -753,10 +720,9 @@ class DashletProxy extends DashletUnknown parent::__construct($oModelReflection, $sId); // Remove DashletUnknown class - if( ($key = array_search('dashlet-unknown', $this->aCSSClasses)) !== false ) - { - unset($this->aCSSClasses[$key]); - } + if (($key = array_search('dashlet-unknown', $this->aCSSClasses)) !== false) { + unset($this->aCSSClasses[$key]); + } $this->aCSSClasses[] = 'dashlet-proxy'; } @@ -764,7 +730,7 @@ class DashletProxy extends DashletUnknown /** * @inheritdoc */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { // This should never be called. $oDashletContainer = new DashletContainer(null, ['dashlet-content']); @@ -777,7 +743,7 @@ class DashletProxy extends DashletUnknown * * @throws \Exception */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $aInfos = static::GetInfo(); @@ -797,13 +763,13 @@ class DashletProxy extends DashletUnknown /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletProxy:Label'), 'icon' => 'images/dashlet-proxy.png', 'description' => Dict::S('UI:DashletProxy:Description'), - ); + ]; } } @@ -820,7 +786,7 @@ class DashletEmptyCell extends Dashlet /** * @inheritdoc */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { return new Html(' '); } @@ -835,19 +801,19 @@ class DashletEmptyCell extends Dashlet /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => 'Empty Cell', 'icon' => 'images/dashlet-text.png', 'description' => 'Empty Cell Dashlet Placeholder', - ); + ]; } /** * @inheritdoc */ - static public function IsVisible() + public static function IsVisible() { return false; } @@ -867,11 +833,11 @@ class DashletPlainText extends Dashlet /** * @inheritdoc */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { $sText = $this->aProperties['text']; $sText = utils::EscapeHtml(Dict::S($sText)); - $sText = str_replace(array("\r\n", "\n", "\r"), "
", $sText); + $sText = str_replace(["\r\n", "\n", "\r"], "
", $sText); $sId = 'plaintext_'.($bEditMode ? 'edit_' : '').$this->sId; @@ -891,13 +857,13 @@ class DashletPlainText extends Dashlet /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletPlainText:Label'), 'icon' => 'images/dashlets/icons8-text-box-48.png', 'description' => Dict::S('UI:DashletPlainText:Description'), - ); + ]; } } @@ -921,7 +887,7 @@ class DashletObjectList extends Dashlet * @throws \CoreException * @throws \ArchivedObjectException */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { $sTitle = $this->aProperties['title']; $sShowMenu = $this->aProperties['menu'] ? '1' : '0'; @@ -931,14 +897,14 @@ class DashletObjectList extends Dashlet // ->AddCSSClass('ibo-datatable-panel'); $oBlock = new DisplayBlock($oFilter, 'list'); - $aParams = array( + $aParams = [ 'menu' => $sShowMenu, 'table_id' => self::APPUSERPREFERENCES_PREFIX.$this->sId, 'surround_with_panel' => true, 'max_height' => '500px', "panel_title" => Dict::S($sTitle), "panel_class" => $sClass, - ); + ]; $sBlockId = 'block_'.$this->sId.($bEditMode ? '_edit' : ''); // make a unique id (edition occurring in the same DOM) //$oBlock->DisplayIntoContentBlock($oPanel, $oPage, $sBlockId, array_merge($aExtraParams, $aParams)); @@ -950,7 +916,7 @@ class DashletObjectList extends Dashlet /** * @inheritdoc */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $oDashletContainer = new DashletContainer($this->sId, ['dashlet-content']); $sTitle = $this->aProperties['title']; @@ -984,7 +950,7 @@ HTML; return $oDashletContainer; } - public function GetDBSearch($aExtraParams = array()) + public function GetDBSearch($aExtraParams = []) { $sQuery = $this->aProperties['query']; if (isset($aExtraParams['query_params'])) { @@ -993,7 +959,7 @@ HTML; $oObj = MetaModel::GetObject($aExtraParams['this->class'], $aExtraParams['this->id']); $aQueryParams = $oObj->ToArgsForQuery(); } else { - $aQueryParams = array(); + $aQueryParams = []; } return DBObjectSearch::FromOQL($sQuery, $aQueryParams); @@ -1020,19 +986,19 @@ HTML; /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletObjectList:Label'), 'icon' => 'images/dashlets/icons8-list-48.png', 'description' => Dict::S('UI:DashletObjectList:Description'), - ); + ]; } /** * @inheritdoc */ - static public function CanCreateFromOQL() + public static function CanCreateFromOQL() { return true; } @@ -1104,72 +1070,52 @@ abstract class DashletGroupBy extends Dashlet $this->sLimit = $this->aProperties['limit']; $this->sOrderBy = $this->aProperties['order_by']; - if (empty($this->sOrderBy)) - { - if ($this->aProperties['style'] == 'pie') - { + if (empty($this->sOrderBy)) { + if ($this->aProperties['style'] == 'pie') { $this->sOrderBy = 'function'; - } - else - { + } else { $this->sOrderBy = 'attribute'; } } // First perform the query - if the OQL is not ok, it will generate an exception : no need to go further - try - { + try { $oQuery = $this->oModelReflection->GetQuery($sQuery); $this->sClass = $oQuery->GetClass(); $sClassAlias = $oQuery->GetClassAlias(); - } - catch(Exception $e) - { + } catch (Exception $e) { // Invalid query, let the user edit the dashlet/dashboard anyhow $this->sClass = null; $sClassAlias = ''; } // Check groupby... it can be wrong at this stage - if (preg_match('/^(.*):(.*)$/', $sGroupBy, $aMatches)) - { + if (preg_match('/^(.*):(.*)$/', $sGroupBy, $aMatches)) { $this->sGroupByAttCode = $aMatches[1]; $this->sFunction = $aMatches[2]; - } - else - { + } else { $this->sGroupByAttCode = $sGroupBy; $this->sFunction = null; } - if ((!is_null($this->sClass)) && empty($this->aProperties['order_direction'])) - { + if ((!is_null($this->sClass)) && empty($this->aProperties['order_direction'])) { $aAttributeTypes = $this->oModelReflection->ListAttributes($this->sClass); - if (isset($aAttributeTypes[$this->sGroupByAttCode])) - { + if (isset($aAttributeTypes[$this->sGroupByAttCode])) { $sAttributeType = $aAttributeTypes[$this->sGroupByAttCode]; - if (is_subclass_of($sAttributeType, 'AttributeDateTime') || $sAttributeType == 'AttributeDateTime') - { + if (is_subclass_of($sAttributeType, 'AttributeDateTime') || $sAttributeType == 'AttributeDateTime') { $this->sOrderDirection = 'asc'; - } - else - { + } else { $this->sOrderDirection = 'desc'; } } - } - else - { + } else { $this->sOrderDirection = $this->aProperties['order_direction']; } - if ((!is_null($this->sClass)) && $this->oModelReflection->IsValidAttCode($this->sClass, $this->sGroupByAttCode)) - { + if ((!is_null($this->sClass)) && $this->oModelReflection->IsValidAttCode($this->sClass, $this->sGroupByAttCode)) { $sAttLabel = $this->oModelReflection->GetLabel($this->sClass, $this->sGroupByAttCode); - if (!is_null($this->sFunction)) - { - switch($this->sFunction) - { + if (!is_null($this->sFunction)) { + switch ($this->sFunction) { case 'hour': $this->sGroupByLabel = Dict::Format('UI:DashletGroupBy:Prop-GroupBy:Hour', $sAttLabel); $this->sGroupByExpr = "DATE_FORMAT($sClassAlias.{$this->sGroupByAttCode}, '%H')"; // 0 -> 23 @@ -1194,15 +1140,11 @@ abstract class DashletGroupBy extends Dashlet $this->sGroupByLabel = 'Unknown group by function '.$this->sFunction; $this->sGroupByExpr = $sClassAlias.'.'.$this->sGroupByAttCode; } - } - else - { + } else { $this->sGroupByExpr = $sClassAlias.'.'.$this->sGroupByAttCode; $this->sGroupByLabel = $sAttLabel; } - } - else - { + } else { $this->sGroupByAttCode = null; } } @@ -1213,7 +1155,7 @@ abstract class DashletGroupBy extends Dashlet * @throws \CoreException * @throws \ArchivedObjectException */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { $sTitle = $this->aProperties['title']; $sQuery = $this->aProperties['query']; @@ -1226,7 +1168,7 @@ abstract class DashletGroupBy extends Dashlet $oObj = MetaModel::GetObject($aExtraParams['this->class'], $aExtraParams['this->id']); $aQueryParams = $oObj->ToArgsForQuery(); } else { - $aQueryParams = array(); + $aQueryParams = []; } $oFilter = DBObjectSearch::FromOQL($sQuery, $aQueryParams); $oFilter->SetShowObsoleteData(utils::ShowObsoleteData()); @@ -1239,7 +1181,7 @@ abstract class DashletGroupBy extends Dashlet switch ($sStyle) { case 'bars': $sType = 'chart'; - $aParams = array( + $aParams = [ 'chart_type' => 'bars', 'chart_title' => $sTitle, 'group_by' => $this->sGroupByExpr, @@ -1249,13 +1191,13 @@ abstract class DashletGroupBy extends Dashlet 'limit' => $this->sLimit, 'order_direction' => $this->sOrderDirection, 'order_by' => $this->sOrderBy, - ); + ]; $sHtmlTitle = ''; // done in the itop block break; case 'pie': $sType = 'chart'; - $aParams = array( + $aParams = [ 'chart_type' => 'pie', 'chart_title' => $sTitle, 'group_by' => $this->sGroupByExpr, @@ -1265,7 +1207,7 @@ abstract class DashletGroupBy extends Dashlet 'limit' => $this->sLimit, 'order_direction' => $this->sOrderDirection, 'order_by' => $this->sOrderBy, - ); + ]; $sHtmlTitle = ''; // done in the itop block break; @@ -1273,7 +1215,7 @@ abstract class DashletGroupBy extends Dashlet default: $sHtmlTitle = utils::HtmlEntities(Dict::S($sTitle)); // done in the itop block $sType = 'count'; - $aParams = array( + $aParams = [ 'group_by' => $this->sGroupByExpr, 'group_by_label' => $this->sGroupByLabel, 'aggregation_function' => $this->sAggregationFunction, @@ -1281,14 +1223,13 @@ abstract class DashletGroupBy extends Dashlet 'limit' => $this->sLimit, 'order_direction' => $this->sOrderDirection, 'order_by' => $this->sOrderBy, - ); + ]; break; } //$oPanel = \Combodo\iTop\Application\UI\Base\Layout\UIContentBlockUIBlockFactory::MakeStandard(); //PanelUIBlockFactory::MakeForClass($sClass, Dict::S($sTitle)); - $sBlockId = 'block_'.$this->sId.($bEditMode ? '_edit' : ''); // make a unique id (edition occurring in the same DOM) $oBlock = new DisplayBlock($oFilter, $sType); //$oBlock->DisplayIntoContentBlock($oPanel, $oPage, $sBlockId, array_merge($aExtraParams, $aParams)); @@ -1313,13 +1254,11 @@ abstract class DashletGroupBy extends Dashlet $oQuery = $this->oModelReflection->GetQuery($sQuery); $sClass = $oQuery->GetClass(); - $aDisplayValues = array(); - if ($this->oModelReflection->IsValidAttCode($sClass, $this->sGroupByAttCode)) - { + $aDisplayValues = []; + if ($this->oModelReflection->IsValidAttCode($sClass, $this->sGroupByAttCode)) { $aAttributeTypes = $this->oModelReflection->ListAttributes($sClass); $sAttributeType = $aAttributeTypes[$this->sGroupByAttCode]; - if (is_subclass_of($sAttributeType, 'AttributeDateTime') || $sAttributeType == 'AttributeDateTime') - { + if (is_subclass_of($sAttributeType, 'AttributeDateTime') || $sAttributeType == 'AttributeDateTime') { // Note: an alternative to this somewhat hardcoded way of doing things would be to implement... //$oExpr = Expression::FromOQL($this->sGroupByExpr); //$aTranslationData = array($oQuery->GetClassAlias() => array($this->sGroupByAttCode => new ScalarExpression(date('Y-m-d H:i:s', $iTime)))); @@ -1329,50 +1268,42 @@ abstract class DashletGroupBy extends Dashlet // - an update to the prototype of MakeValueLabel() so that it takes ModelReflection parameters // - propose clever date/times samples - $aValues = array(); - switch($this->sFunction) - { + $aValues = []; + switch ($this->sFunction) { case 'hour': - $aValues = array(8, 9, 15, 18); + $aValues = [8, 9, 15, 18]; break; case 'month': - $aValues = array('2013 '.Dict::S('Month-11'), '2013 '.Dict::S('Month-12'), '2014 '.Dict::S('Month-01'), '2014 '.Dict::S('Month-02'), '2014 '.Dict::S('Month-03')); + $aValues = ['2013 '.Dict::S('Month-11'), '2013 '.Dict::S('Month-12'), '2014 '.Dict::S('Month-01'), '2014 '.Dict::S('Month-02'), '2014 '.Dict::S('Month-03')]; break; case 'day_of_week': - $aValues = array(Dict::S('DayOfWeek-Monday'), Dict::S('DayOfWeek-Wednesday'), Dict::S('DayOfWeek-Thursday'), Dict::S('DayOfWeek-Friday')); + $aValues = [Dict::S('DayOfWeek-Monday'), Dict::S('DayOfWeek-Wednesday'), Dict::S('DayOfWeek-Thursday'), Dict::S('DayOfWeek-Friday')]; break; case 'day_of_month': - $aValues = array(Dict::S('Month-03'). ' 30', Dict::S('Month-03'). ' 31', Dict::S('Month-04'). ' 01', Dict::S('Month-04'). ' 02', Dict::S('Month-04'). ' 03'); + $aValues = [Dict::S('Month-03').' 30', Dict::S('Month-03').' 31', Dict::S('Month-04').' 01', Dict::S('Month-04').' 02', Dict::S('Month-04').' 03']; break; } - foreach ($aValues as $sValue) - { - $aDisplayValues[] = array('label' => $sValue, 'value' => (int)rand(1, 15)); + foreach ($aValues as $sValue) { + $aDisplayValues[] = ['label' => $sValue, 'value' => (int)rand(1, 15)]; } - } - elseif (is_subclass_of($sAttributeType, 'AttributeEnum') || $sAttributeType == 'AttributeEnum') - { + } elseif (is_subclass_of($sAttributeType, 'AttributeEnum') || $sAttributeType == 'AttributeEnum') { $aAllowed = $this->oModelReflection->GetAllowedValues_att($sClass, $this->sGroupByAttCode); - if ($aAllowed) // null for non enums - { - foreach ($aAllowed as $sValue => $sValueLabel) - { + if ($aAllowed) { // null for non enums + foreach ($aAllowed as $sValue => $sValueLabel) { $iCount = (int) rand(2, 100); - $aDisplayValues[] = array( + $aDisplayValues[] = [ 'label' => $sValueLabel, - 'value' => $iCount - ); + 'value' => $iCount, + ]; } } - } - else - { - $aDisplayValues[] = array('label' => 'a', 'value' => 123); - $aDisplayValues[] = array('label' => 'b', 'value' => 321); - $aDisplayValues[] = array('label' => 'c', 'value' => 456); + } else { + $aDisplayValues[] = ['label' => 'a', 'value' => 123]; + $aDisplayValues[] = ['label' => 'b', 'value' => 321]; + $aDisplayValues[] = ['label' => 'c', 'value' => 456]; } } return $aDisplayValues; @@ -1381,7 +1312,7 @@ abstract class DashletGroupBy extends Dashlet /** * @inheritdoc */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $oDashletContainer = new DashletContainer(null, ['dashlet-content']); $oDashletContainer->AddHtml('error!'); @@ -1409,20 +1340,18 @@ abstract class DashletGroupBy extends Dashlet $oField = new DesignerComboField('group_by', Dict::S('UI:DashletGroupBy:Prop-GroupBy'), $this->aProperties['group_by']); $oField->SetMandatory(); $oField->SetAllowedValues($aGroupBy); - } - catch(Exception $e) - { + } catch (Exception $e) { $oField = new DesignerTextField('group_by', Dict::S('UI:DashletGroupBy:Prop-GroupBy'), $this->aProperties['group_by']); $oField->SetReadOnly(); - $aGroupBy = array(); + $aGroupBy = []; } $oForm->AddField($oField); - $aStyles = array( + $aStyles = [ 'pie' => Dict::S('UI:DashletGroupByPie:Label'), 'bars' => Dict::S('UI:DashletGroupByBars:Label'), 'table' => Dict::S('UI:DashletGroupByTable:Label'), - ); + ]; $oField = new DesignerComboField('style', Dict::S('UI:DashletGroupBy:Prop-Style'), $this->aProperties['style']); $oField->SetMandatory(); @@ -1437,8 +1366,7 @@ abstract class DashletGroupBy extends Dashlet // Count sub-menu $oSubForm = new DesignerForm(); $oSelectorField->AddSubForm($oSubForm, Dict::S('UI:GroupBy:count'), 'count'); - foreach($aFunctions as $sFct => $sLabel) - { + foreach ($aFunctions as $sFct => $sLabel) { $oSubForm = new DesignerForm(); $oField = new DesignerComboField('aggregation_attribute', Dict::S('UI:DashletGroupBy:Prop-FunctionAttribute'), $this->aProperties['aggregation_attribute']); $oField->SetMandatory(); @@ -1447,39 +1375,33 @@ abstract class DashletGroupBy extends Dashlet $oSelectorField->AddSubForm($oSubForm, $sLabel, $sFct); } - $aOrderField = array(); + $aOrderField = []; - if (isset($this->aProperties['group_by']) && isset($aGroupBy[$this->aProperties['group_by']])) - { + if (isset($this->aProperties['group_by']) && isset($aGroupBy[$this->aProperties['group_by']])) { $aOrderField['attribute'] = $aGroupBy[$this->aProperties['group_by']]; } - if ($this->aProperties['aggregation_function'] == 'count') - { + if ($this->aProperties['aggregation_function'] == 'count') { $aOrderField['function'] = Dict::S('UI:GroupBy:count'); - } - else - { + } else { $aOrderField['function'] = $aFunctions[$this->aProperties['aggregation_function']]; } $oSelectorField = new DesignerFormSelectorField('order_by', Dict::S('UI:DashletGroupBy:Prop-OrderField'), $this->aProperties['order_by']); $oForm->AddField($oSelectorField); $oSelectorField->SetMandatory(); - foreach($aOrderField as $sField => $sLabel) - { + foreach ($aOrderField as $sField => $sLabel) { $oSubForm = new DesignerForm(); - if ($sField == 'function') - { + if ($sField == 'function') { $oField = new DesignerIntegerField('limit', Dict::S('UI:DashletGroupBy:Prop-Limit'), $this->aProperties['limit']); $oSubForm->AddField($oField); } $oSelectorField->AddSubForm($oSubForm, $sLabel, $sField); } - $aOrderDirections = array( + $aOrderDirections = [ 'asc' => Dict::S('UI:DashletGroupBy:Order:asc'), 'desc' => Dict::S('UI:DashletGroupBy:Order:desc'), - ); + ]; $sOrderDirection = empty($this->aProperties['order_direction']) ? $this->sOrderDirection : $this->aProperties['order_direction']; $oField = new DesignerComboField('order_direction', Dict::S('UI:DashletGroupBy:Prop-OrderDirection'), $sOrderDirection); $oField->SetMandatory(); @@ -1493,13 +1415,12 @@ abstract class DashletGroupBy extends Dashlet */ protected function GetOrderBy() { - if (is_null($this->sClass)) - { - return array(); + if (is_null($this->sClass)) { + return []; } - return array( + return [ $this->aProperties['group_by'] => $this->oModelReflection->GetLabel($this->sClass, $this->aProperties['group_by']), - '_itop_'.$this->aProperties['aggregation_function'].'_' => Dict::S('UI:GroupBy:'.$this->aProperties['aggregation_function'])); + '_itop_'.$this->aProperties['aggregation_function'].'_' => Dict::S('UI:GroupBy:'.$this->aProperties['aggregation_function'])]; } /** @@ -1509,10 +1430,9 @@ abstract class DashletGroupBy extends Dashlet */ protected function GetAllowedFunctions($aFunctionAttributes) { - $aFunctions = array(); + $aFunctions = []; - if (!empty($aFunctionAttributes) || is_null($this->sClass)) - { + if (!empty($aFunctionAttributes) || is_null($this->sClass)) { $aFunctions['sum'] = Dict::S('UI:GroupBy:sum'); $aFunctions['avg'] = Dict::S('UI:GroupBy:avg'); $aFunctions['min'] = Dict::S('UI:GroupBy:min'); @@ -1529,19 +1449,15 @@ abstract class DashletGroupBy extends Dashlet */ protected function GetNumericAttributes($sOql) { - $aFunctionAttributes = array(); - try - { + $aFunctionAttributes = []; + try { $oQuery = $this->oModelReflection->GetQuery($sOql); $sClass = $oQuery->GetClass(); - if (is_null($sClass)) - { + if (is_null($sClass)) { return $aFunctionAttributes; } - foreach($this->oModelReflection->ListAttributes($sClass) as $sAttCode => $sAttType) - { - switch ($sAttType) - { + foreach ($this->oModelReflection->ListAttributes($sClass) as $sAttCode => $sAttType) { + switch ($sAttType) { case 'AttributeDecimal': case 'AttributeDuration': case 'AttributeInteger': @@ -1552,9 +1468,7 @@ abstract class DashletGroupBy extends Dashlet break; } } - } - catch (Exception $e) - { + } catch (Exception $e) { // In case the OQL is bad } @@ -1566,10 +1480,8 @@ abstract class DashletGroupBy extends Dashlet */ public function Update($aValues, $aUpdatedFields) { - if (in_array('query', $aUpdatedFields)) - { - try - { + if (in_array('query', $aUpdatedFields)) { + try { $sCurrQuery = $aValues['query']; $oCurrSearch = $this->oModelReflection->GetQuery($sCurrQuery); $sCurrClass = $oCurrSearch->GetClass(); @@ -1578,24 +1490,19 @@ abstract class DashletGroupBy extends Dashlet $oPrevSearch = $this->oModelReflection->GetQuery($sPrevQuery); $sPrevClass = $oPrevSearch->GetClass(); - if ($sCurrClass != $sPrevClass) - { + if ($sCurrClass != $sPrevClass) { $this->bFormRedrawNeeded = true; // wrong but not necessary - unset($aUpdatedFields['group_by']); $this->aProperties['group_by'] = ''; } - } - catch(Exception $e) - { + } catch (Exception $e) { $this->bFormRedrawNeeded = true; } } $oDashlet = parent::Update($aValues, $aUpdatedFields); - if (in_array('style', $aUpdatedFields)) - { - switch($aValues['style']) - { + if (in_array('style', $aUpdatedFields)) { + switch ($aValues['style']) { // Style changed, mutate to the specified type of chart case 'pie': $oDashlet = new DashletGroupByPie($this->oModelReflection, $this->sId); @@ -1613,12 +1520,10 @@ abstract class DashletGroupBy extends Dashlet $oDashlet->bRedrawNeeded = true; $oDashlet->bFormRedrawNeeded = true; } - if (in_array('aggregation_attribute', $aUpdatedFields) || in_array('order_direction', $aUpdatedFields) || in_array('order_by', $aUpdatedFields) || in_array('limit', $aUpdatedFields)) - { + if (in_array('aggregation_attribute', $aUpdatedFields) || in_array('order_direction', $aUpdatedFields) || in_array('order_by', $aUpdatedFields) || in_array('limit', $aUpdatedFields)) { $oDashlet->bRedrawNeeded = true; } - if (in_array('group_by', $aUpdatedFields) || in_array('aggregation_function', $aUpdatedFields)) - { + if (in_array('group_by', $aUpdatedFields) || in_array('aggregation_function', $aUpdatedFields)) { $oDashlet->bRedrawNeeded = true; $oDashlet->bFormRedrawNeeded = true; } @@ -1628,20 +1533,20 @@ abstract class DashletGroupBy extends Dashlet /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { // Note: no need to translate, should never be visible to the end-user! - return array( + return [ 'label' => 'Objects grouped by...', 'icon' => 'images/dashlets/icons8-transaction-list-48.png', 'description' => 'Grouped objects dashlet (abstract)', - ); + ]; } /** * @inheritdoc */ - static public function CanCreateFromOQL() + public static function CanCreateFromOQL() { return true; } @@ -1692,13 +1597,13 @@ class DashletGroupByPie extends DashletGroupBy /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletGroupByPie:Label'), 'icon' => 'images/dashlets/icons8-pie-chart-48.png', 'description' => Dict::S('UI:DashletGroupByPie:Description'), - ); + ]; } /** @@ -1726,7 +1631,7 @@ class DashletGroupByPie extends DashletGroupBy /** * @inheritdoc */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $oDashletContainer = new DashletContainer(null, ['dashlet-content']); @@ -1739,10 +1644,10 @@ class DashletGroupByPie extends DashletGroupBy $aDisplayValues = $this->MakeSimulatedData(); - $aColumns = array(); - $aNames = array(); + $aColumns = []; + $aNames = []; foreach ($aDisplayValues as $idx => $aValue) { - $aColumns[] = array('series_'.$idx, (int)$aValue['value']); + $aColumns[] = ['series_'.$idx, (int)$aValue['value']]; $aNames['series_'.$idx] = $aValue['label']; } $sJSColumns = json_encode($aColumns); @@ -1774,7 +1679,6 @@ EOF } } - class DashletGroupByBars extends DashletGroupBy { /** @@ -1789,19 +1693,19 @@ class DashletGroupByBars extends DashletGroupBy /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletGroupByBars:Label'), 'icon' => 'images/dashlets/icons8-bar-chart-48.png', 'description' => Dict::S('UI:DashletGroupByBars:Description'), - ); + ]; } /** * @inheritdoc */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $oDashletContainer = new DashletContainer(null, ['dashlet-content']); @@ -1814,7 +1718,7 @@ class DashletGroupByBars extends DashletGroupBy $aDisplayValues = $this->MakeSimulatedData(); - $aNames = array(); + $aNames = []; foreach ($aDisplayValues as $idx => $aValue) { $aNames[$idx] = $aValue['label']; } @@ -1889,19 +1793,19 @@ class DashletGroupByTable extends DashletGroupBy /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletGroupByTable:Label'), 'description' => Dict::S('UI:DashletGroupByTable:Description'), 'icon' => 'images/dashlets/icons8-transaction-list-48.png', - ); + ]; } /** * @inheritdoc */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $oDashletContainer = new DashletContainer(); @@ -1911,7 +1815,6 @@ class DashletGroupByTable extends DashletGroupBy $iTotal += $aDisplayData['value']; } - $sBlockId = 'block_fake_'.$this->sId.($bEditMode ? '_edit' : ''); // make a unique id (edition occuring in the same DOM) $sHtml = ''; @@ -1944,7 +1847,6 @@ class DashletGroupByTable extends DashletGroupBy } } - class DashletHeaderStatic extends Dashlet { /** @@ -1961,7 +1863,7 @@ class DashletHeaderStatic extends Dashlet /** * @inheritdoc */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { $sTitle = $this->aProperties['title']; $sIcon = $this->aProperties['icon']; @@ -1993,13 +1895,10 @@ class DashletHeaderStatic extends Dashlet */ protected function PropertyFromDOMNode($oDOMNode, $sProperty) { - if ($sProperty == 'icon') - { + if ($sProperty == 'icon') { $oIconField = $this->oModelReflection->GetIconSelectionField('icon'); return $oIconField->ValueFromDOMNode($oDOMNode); - } - else - { + } else { return parent::PropertyFromDOMNode($oDOMNode, $sProperty); } } @@ -2009,13 +1908,10 @@ class DashletHeaderStatic extends Dashlet */ protected function PropertyToDOMNode($oDOMNode, $sProperty, $value) { - if ($sProperty == 'icon') - { + if ($sProperty == 'icon') { $oIconField = $this->oModelReflection->GetIconSelectionField('icon'); $oIconField->ValueToDOMNode($oDOMNode, $value); - } - else - { + } else { parent::PropertyToDOMNode($oDOMNode, $sProperty, $value); } } @@ -2023,17 +1919,16 @@ class DashletHeaderStatic extends Dashlet /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletHeaderStatic:Label'), 'icon' => 'images/dashlets/icons8-header-48.png', 'description' => Dict::S('UI:DashletHeaderStatic:Description'), - ); + ]; } } - class DashletHeaderDynamic extends Dashlet { /** @@ -2048,7 +1943,7 @@ class DashletHeaderDynamic extends Dashlet $this->aProperties['subtitle'] = Dict::S('UI:DashletHeaderDynamic:Prop-Subtitle:Default'); $this->aProperties['query'] = 'SELECT Contact'; $this->aProperties['group_by'] = 'status'; - $this->aProperties['values'] = array('active', 'inactive'); + $this->aProperties['values'] = ['active', 'inactive']; } /** @@ -2060,21 +1955,17 @@ class DashletHeaderDynamic extends Dashlet $sGroupBy = $this->aProperties['group_by']; $aValues = $this->aProperties['values']; - if (empty($aValues)) - { - $aValues = array(); + if (empty($aValues)) { + $aValues = []; } $oQuery = $this->oModelReflection->GetQuery($sQuery); $sClass = $oQuery->GetClass(); - if ($this->oModelReflection->IsValidAttCode($sClass, $sGroupBy)) - { - if (count($aValues) == 0) - { + if ($this->oModelReflection->IsValidAttCode($sClass, $sGroupBy)) { + if (count($aValues) == 0) { $aAllowed = $this->oModelReflection->GetAllowedValues_att($sClass, $sGroupBy); - if (is_array($aAllowed)) - { + if (is_array($aAllowed)) { $aValues = array_keys($aAllowed); } } @@ -2088,7 +1979,7 @@ class DashletHeaderDynamic extends Dashlet * @throws \CoreException * @throws \ArchivedObjectException */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { $sTitle = utils::HtmlEntities($this->aProperties['title']); $sIcon = $this->aProperties['icon']; @@ -2106,20 +1997,20 @@ class DashletHeaderDynamic extends Dashlet if (count($aValues) > 0) { // Stats grouped by $sCSV = implode(',', $aValues); - $aParams = array( + $aParams = [ 'title[block]' => $sTitle, 'label[block]' => $sSubtitle, 'status[block]' => $sGroupBy, 'status_codes[block]' => $sCSV, 'context_filter' => 1, - ); + ]; } else { // Simple stats - $aParams = array( + $aParams = [ 'title[block]' => $sTitle, 'label[block]' => $sSubtitle, 'context_filter' => 1, - ); + ]; } if (isset($aExtraParams['query_params'])) { @@ -2128,7 +2019,7 @@ class DashletHeaderDynamic extends Dashlet $oObj = MetaModel::GetObject($aExtraParams['this->class'], $aExtraParams['this->id']); $aQueryParams = $oObj->ToArgsForQuery(); } else { - $aQueryParams = array(); + $aQueryParams = []; } $oFilter = DBObjectSearch::FromOQL($sQuery, $aQueryParams); $oFilter->SetShowObsoleteData(utils::ShowObsoleteData()); @@ -2154,7 +2045,7 @@ class DashletHeaderDynamic extends Dashlet /** * @inheritdoc */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $sTitle = utils::HtmlEntities($this->aProperties['title']); $sIcon = $this->aProperties['icon']; @@ -2171,8 +2062,7 @@ class DashletHeaderDynamic extends Dashlet foreach ($aValues as $sValue) { $aValueLabels[] = $this->oModelReflection->GetValueLabel($sClass, $sGroupBy, $sValue); } - } - catch (UnknownClassOqlException $e) { + } catch (UnknownClassOqlException $e) { $aValueLabels[] = $e->GetUserFriendlyDescription(); $aValues[] = 1; } @@ -2214,7 +2104,6 @@ class DashletHeaderDynamic extends Dashlet $sHtml .= ''.utils::HtmlEntities($sSubtitle).''; $sHtml .= ''; - $oDashletContainer->AddHtml($sHtml); return $oDashletContainer; @@ -2242,8 +2131,7 @@ class DashletHeaderDynamic extends Dashlet $oField->AddCSSClass("ibo-is-code"); $oForm->AddField($oField); - try - { + try { // Group by field: build the list of possible values (attribute codes + ...) $oQuery = $this->oModelReflection->GetQuery($this->aProperties['query']); $sClass = $oQuery->GetClass(); @@ -2251,9 +2139,7 @@ class DashletHeaderDynamic extends Dashlet $oField = new DesignerComboField('group_by', Dict::S('UI:DashletHeaderDynamic:Prop-GroupBy'), $this->aProperties['group_by']); $oField->SetMandatory(); $oField->SetAllowedValues($aGroupBy); - } - catch(Exception $e) - { + } catch (Exception $e) { $oField = new DesignerTextField('group_by', Dict::S('UI:DashletHeaderDynamic:Prop-GroupBy'), $this->aProperties['group_by']); $oField->SetReadOnly(); } @@ -2261,13 +2147,10 @@ class DashletHeaderDynamic extends Dashlet $oField = new DesignerComboField('values', Dict::S('UI:DashletHeaderDynamic:Prop-Values'), $this->aProperties['values']); $oField->MultipleSelection(true); - if (isset($sClass) && $this->oModelReflection->IsValidAttCode($sClass, $this->aProperties['group_by'])) - { + if (isset($sClass) && $this->oModelReflection->IsValidAttCode($sClass, $this->aProperties['group_by'])) { $aValues = $this->oModelReflection->GetAllowedValues_att($sClass, $this->aProperties['group_by']); $oField->SetAllowedValues($aValues); - } - else - { + } else { $oField->SetReadOnly(); } $oForm->AddField($oField); @@ -2278,10 +2161,8 @@ class DashletHeaderDynamic extends Dashlet */ public function Update($aValues, $aUpdatedFields) { - if (in_array('query', $aUpdatedFields)) - { - try - { + if (in_array('query', $aUpdatedFields)) { + try { $sCurrQuery = $aValues['query']; $oCurrSearch = $this->oModelReflection->GetQuery($sCurrQuery); $sCurrClass = $oCurrSearch->GetClass(); @@ -2290,23 +2171,19 @@ class DashletHeaderDynamic extends Dashlet $oPrevSearch = $this->oModelReflection->GetQuery($sPrevQuery); $sPrevClass = $oPrevSearch->GetClass(); - if ($sCurrClass != $sPrevClass) - { + if ($sCurrClass != $sPrevClass) { $this->bFormRedrawNeeded = true; // wrong but not necessary - unset($aUpdatedFields['group_by']); $this->aProperties['group_by'] = ''; - $this->aProperties['values'] = array(); + $this->aProperties['values'] = []; } - } - catch(Exception $e) - { + } catch (Exception $e) { $this->bFormRedrawNeeded = true; } } - if (in_array('group_by', $aUpdatedFields)) - { + if (in_array('group_by', $aUpdatedFields)) { $this->bFormRedrawNeeded = true; - $this->aProperties['values'] = array(); + $this->aProperties['values'] = []; } return parent::Update($aValues, $aUpdatedFields); } @@ -2316,13 +2193,10 @@ class DashletHeaderDynamic extends Dashlet */ protected function PropertyFromDOMNode($oDOMNode, $sProperty) { - if ($sProperty == 'icon') - { + if ($sProperty == 'icon') { $oIconField = $this->oModelReflection->GetIconSelectionField('icon'); return $oIconField->ValueFromDOMNode($oDOMNode); - } - else - { + } else { return parent::PropertyFromDOMNode($oDOMNode, $sProperty); } } @@ -2332,13 +2206,10 @@ class DashletHeaderDynamic extends Dashlet */ protected function PropertyToDOMNode($oDOMNode, $sProperty, $value) { - if ($sProperty == 'icon') - { + if ($sProperty == 'icon') { $oIconField = $this->oModelReflection->GetIconSelectionField('icon'); $oIconField->ValueToDOMNode($oDOMNode, $value); - } - else - { + } else { parent::PropertyToDOMNode($oDOMNode, $sProperty, $value); } } @@ -2346,17 +2217,16 @@ class DashletHeaderDynamic extends Dashlet /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletHeaderDynamic:Label'), 'icon' => 'images/dashlets/icons8-header-altered-48.png', 'description' => Dict::S('UI:DashletHeaderDynamic:Description'), - ); + ]; } } - class DashletBadge extends Dashlet { /** @@ -2375,7 +2245,7 @@ class DashletBadge extends Dashlet * * @throws \Exception */ - public function Render($oPage, $bEditMode = false, $aExtraParams = array()) + public function Render($oPage, $bEditMode = false, $aExtraParams = []) { $oDashletContainer = new DashletContainer($this->sId, ['dashlet-content']); @@ -2393,7 +2263,7 @@ class DashletBadge extends Dashlet /** * @inheritdoc */ - public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = array()) + public function RenderNoData($oPage, $bEditMode = false, $aExtraParams = []) { $oDashletContainer = new DashletContainer($this->sId, ['dashlet-content']); @@ -2417,7 +2287,7 @@ HTML; return $oDashletContainer; } - static protected $aClassList = null; + protected static $aClassList = null; /** * @inheritdoc @@ -2426,28 +2296,24 @@ HTML; */ public function GetPropertiesFields(DesignerForm $oForm) { - if (is_null(self::$aClassList)) - { + if (is_null(self::$aClassList)) { // Cache the ordered list of classes (ordered on the label) // (has a significant impact when editing a page with lots of badges) // - $aClasses = array(); - foreach($this->oModelReflection->GetClasses('bizmodel', true /*exclude links*/) as $sClass) - { + $aClasses = []; + foreach ($this->oModelReflection->GetClasses('bizmodel', true /*exclude links*/) as $sClass) { $aClasses[$sClass] = $this->oModelReflection->GetName($sClass); } asort($aClasses); - self::$aClassList = array(); - foreach($aClasses as $sClass => $sLabel) - { + self::$aClassList = []; + foreach ($aClasses as $sClass => $sLabel) { $sIconUrl = $this->oModelReflection->GetClassIcon($sClass, false); - if ($sIconUrl == '') - { + if ($sIconUrl == '') { // The icon does not exist, let's use a transparent one of the same size. $sIconUrl = utils::GetAbsoluteUrlAppRoot().'images/transparent_32_32.png'; } - self::$aClassList[] = array('value' => $sClass, 'label' => $sLabel, 'icon' => $sIconUrl); + self::$aClassList[] = ['value' => $sClass, 'label' => $sLabel, 'icon' => $sIconUrl]; } } @@ -2460,12 +2326,12 @@ HTML; /** * @inheritdoc */ - static public function GetInfo() + public static function GetInfo() { - return array( + return [ 'label' => Dict::S('UI:DashletBadge:Label'), 'icon' => 'images/dashlets/icons8-badge-48.png', 'description' => Dict::S('UI:DashletBadge:Description'), - ); + ]; } } diff --git a/application/exceptions/ApplicationException.php b/application/exceptions/ApplicationException.php index 6a390a3f5..e9c7f59f2 100644 --- a/application/exceptions/ApplicationException.php +++ b/application/exceptions/ApplicationException.php @@ -1,4 +1,5 @@ aIssues) == 1) { $sIssue = reset($this->aIssues); - $sContent .= $sIssue; + $sContent .= $sIssue; } else { foreach ($this->aIssues as $sError) { - $sContent .= " " . $sError . ", "; + $sContent .= " ".$sError.", "; } } return $sContent; } - public function getIssues() { return $this->aIssues; diff --git a/application/exceptions/CoreException.php b/application/exceptions/CoreException.php index 178b5397d..6751665aa 100644 --- a/application/exceptions/CoreException.php +++ b/application/exceptions/CoreException.php @@ -1,4 +1,5 @@ m_aContextData) > 0) { $sMessage .= ": "; - $aContextItems = array(); + $aContextItems = []; foreach ($this->m_aContextData as $sKey => $value) { if (is_array($value)) { - $aPairs = array(); + $aPairs = []; foreach ($value as $key => $val) { if (is_array($val)) { $aPairs[] = $key.'=>('.implode(', ', $val).')'; @@ -109,4 +110,4 @@ class CoreException extends Exception { return $this->m_aContextData; } -} \ No newline at end of file +} diff --git a/application/exceptions/CorePortalInvalidActionRuleException.php b/application/exceptions/CorePortalInvalidActionRuleException.php index 598fd3253..1b5015117 100644 --- a/application/exceptions/CorePortalInvalidActionRuleException.php +++ b/application/exceptions/CorePortalInvalidActionRuleException.php @@ -1,4 +1,5 @@ getMessage(); parent::__construct($sMessage, null, '', $oTwigException); } -} \ No newline at end of file +} diff --git a/application/exceptions/CoreUnexpectedValue.php b/application/exceptions/CoreUnexpectedValue.php index 78a3f8b4c..5dd6371a2 100644 --- a/application/exceptions/CoreUnexpectedValue.php +++ b/application/exceptions/CoreUnexpectedValue.php @@ -1,4 +1,5 @@ GetKey(); + $aContextData[self::ENUM_PARAMS_OBJECT] = get_class($oObject).'::'.$oObject->GetKey(); $aContextData[self::ENUM_PARAMS_ATTCODE] = $sAttCode; $aContextData[self::ENUM_PARAMS_ATTVALUE] = $oObject->Get($sAttCode); $oCurrentUser = UserRights::GetUserObject(); if (false === is_null($oCurrentUser)) { - $aContextData[self::ENUM_PARAMS_USER] = get_class($oCurrentUser) . '::' . $oCurrentUser->GetKey(); + $aContextData[self::ENUM_PARAMS_USER] = get_class($oCurrentUser).'::'.$oCurrentUser->GetKey(); } parent::__construct('Attribute pointing to an object that is either non existing or not readable by the current user', $aContextData, '', $oPrevious); diff --git a/application/exceptions/InvalidPasswordAttributeOneWayPassword.php b/application/exceptions/InvalidPasswordAttributeOneWayPassword.php index 9239f7363..19638a909 100644 --- a/application/exceptions/InvalidPasswordAttributeOneWayPassword.php +++ b/application/exceptions/InvalidPasswordAttributeOneWayPassword.php @@ -1,4 +1,5 @@ getCode(); $this->code = $oException->getCode(); $aContext['mysql_error'] = $oException->getMessage(); - } else if ($oMysqli != null) { + } elseif ($oMysqli != null) { $aContext['mysql_errno'] = $oMysqli->errno; $this->code = $oMysqli->errno; $aContext['mysql_error'] = $oMysqli->error; @@ -36,4 +37,4 @@ class MySQLException extends CoreException error_reporting(0); } } -} \ No newline at end of file +} diff --git a/application/exceptions/mysql/MySQLHasGoneAwayException.php b/application/exceptions/mysql/MySQLHasGoneAwayException.php index cb16e6840..b830a92c1 100644 --- a/application/exceptions/mysql/MySQLHasGoneAwayException.php +++ b/application/exceptions/mysql/MySQLHasGoneAwayException.php @@ -1,4 +1,5 @@ * @since 3.0.0 N°3588 */ -class FindStylesheetObject{ - +class FindStylesheetObject +{ //file URIs private $aStylesheetFileURIs; @@ -64,7 +65,7 @@ class FindStylesheetObject{ return $this->aStylesheetFileURIs; } - public function GetLastModified() : int + public function GetLastModified(): int { return $this->iLastModified; } @@ -92,7 +93,8 @@ class FindStylesheetObject{ $this->sLastStyleSheetPath = $sStylesheetFilePath; } - public function AlreadyFetched(string $sStylesheetFilePath) : bool { + public function AlreadyFetched(string $sStylesheetFilePath): bool + { return in_array($sStylesheetFilePath, $this->aAllStylesheetFilePaths); } @@ -111,4 +113,4 @@ class FindStylesheetObject{ { $this->sLastStyleSheetPath = ""; } -} \ No newline at end of file +} diff --git a/application/forms.class.inc.php b/application/forms.class.inc.php index 3b111a172..ba5dc97dc 100644 --- a/application/forms.class.inc.php +++ b/application/forms.class.inc.php @@ -1,9 +1,10 @@ aFieldSets = array(); + $this->aFieldSets = []; $this->sCurrentFieldSet = ''; $this->sScript = ''; $this->sReadyScript = ''; @@ -61,62 +62,55 @@ class DesignerForm $this->sHierarchySelector = ''; $this->StartFieldSet($this->sCurrentFieldSet); $this->bDisplayed = true; - $this->aDefaultValues = array(); + $this->aDefaultValues = []; } - + public function AddField(DesignerFormField $oField) { - if (!is_array($this->aFieldSets[$this->sCurrentFieldSet])) - { - $this->aFieldSets[$this->sCurrentFieldSet] = array(); + if (!is_array($this->aFieldSets[$this->sCurrentFieldSet])) { + $this->aFieldSets[$this->sCurrentFieldSet] = []; } $this->aFieldSets[$this->sCurrentFieldSet][] = $oField; $oField->SetForm($this); } - + public function StartFieldSet($sLabel) { $this->sCurrentFieldSet = $sLabel; - if (!array_key_exists($this->sCurrentFieldSet, $this->aFieldSets)) - { - $this->aFieldSets[$this->sCurrentFieldSet] = array(); + if (!array_key_exists($this->sCurrentFieldSet, $this->aFieldSets)) { + $this->aFieldSets[$this->sCurrentFieldSet] = []; } } - + public function Render($oP, $bReturnHTML = false) { $sFormId = $this->GetFormId(); - if ($this->oParentForm == null) - { + if ($this->oParentForm == null) { $sReturn = '
'; - } - else - { + } else { $sReturn = ''; } $sHiddenFields = ''; - foreach($this->aFieldSets as $sLabel => $aFields) - { - $aDetails = array(); - if ($sLabel != '') - { + foreach ($this->aFieldSets as $sLabel => $aFields) { + $aDetails = []; + if ($sLabel != '') { $sReturn .= '
'; $sReturn .= ''.$sLabel.''; } /** @var \DesignerFormField $oField */ - foreach($aFields as $oField) { + foreach ($aFields as $oField) { $aRow = $oField->Render($oP, $sFormId); if ($oField->IsVisible()) { $sValidation = ''.$this->GetValidationArea($oField->GetFieldId()).''; $sField = $aRow['value'].$sValidation; - $aDetails[] = array( + $aDetails[] = [ 'label' => $aRow['label'], 'value' => $sField, 'attcode' => $oField->GetCode(), 'attlabel' => $aRow['label'], 'inputid' => $this->GetFieldId($oField->GetCode()), 'inputtype' => $oField->GetInputType(), - ); + ]; } else { $sHiddenFields .= $aRow['value']; } @@ -128,29 +122,23 @@ class DesignerForm } } $sReturn .= $sHiddenFields; - - if ($this->oParentForm == null) - { + + if ($this->oParentForm == null) { $sReturn .= ''; } - if($this->sScript != '') - { + if ($this->sScript != '') { $oP->add_script($this->sScript); } - if($this->sReadyScript != '') - { + if ($this->sReadyScript != '') { $oP->add_ready_script($this->sReadyScript); } - if ($bReturnHTML) - { + if ($bReturnHTML) { return $sReturn; - } - else - { + } else { $oP->add($sReturn); } } - + public function GetFieldSets() { return $this->aFieldSets; @@ -161,51 +149,50 @@ class DesignerForm $this->sSubmitTo = $sSubmitToUrl; $this->aSubmitParams = $aSubmitParams; } - + public function CopySubmitParams($oParentForm) { $this->sSubmitTo = $oParentForm->sSubmitTo; $this->aSubmitParams = $oParentForm->aSubmitParams; } - + public function GetSubmitParams() { - return array( 'url' => $this->sSubmitTo, 'params' => $this->aSubmitParams); + return [ 'url' => $this->sSubmitTo, 'params' => $this->aSubmitParams]; } - + /** - * Helper to handle subforms hide/show - */ + * Helper to handle subforms hide/show + */ public function SetHierarchyPath($sHierarchy) { $this->sHierarchyPath = $sHierarchy; } - + /** - * Helper to handle subforms hide/show - */ + * Helper to handle subforms hide/show + */ public function GetHierarchyPath() { return $this->sHierarchyPath; } - + /** - * Helper to handle subforms hide/show - */ + * Helper to handle subforms hide/show + */ public function SetHierarchyParent($sHierarchy) { $this->sHierarchyParent = $sHierarchy; } - + /** - * Helper to handle subforms hide/show - */ + * Helper to handle subforms hide/show + */ public function GetHierarchyParent() { return $this->sHierarchyParent; } - - + public function RenderAsPropertySheet($oP, $bReturnHTML = false, $sNotifyParentSelector = null) { $sReturn = ''; @@ -220,12 +207,11 @@ class DesignerForm $sHiddenFields = ''; foreach ($this->aFieldSets as $sLabel => $aFields) { - $aDetails = array(); + $aDetails = []; if ($sLabel != '') { $sReturn .= $this->StartRow().''.$sLabel.''.$this->EndRow(); } - foreach ($aFields as $oField) { $aRow = $oField->Render($oP, $sFormId, 'property'); if ($oField->IsVisible()) { @@ -249,44 +235,37 @@ class DesignerForm $sWidgetClass = $oField->GetWidgetClass(); $sJSExtraParams = ''; - if (count($oField->GetWidgetExtraParams()) > 0) - { - $aExtraParams = array(); - foreach($oField->GetWidgetExtraParams() as $key=> $value) - { + if (count($oField->GetWidgetExtraParams()) > 0) { + $aExtraParams = []; + foreach ($oField->GetWidgetExtraParams() as $key => $value) { $aExtraParams[] = "'$key': ".json_encode($value); } - $sJSExtraParams = ', '.implode(', ', $aExtraParams); + $sJSExtraParams = ', '.implode(', ', $aExtraParams); } $this->AddReadyScript( -<<oParentForm == null) - { + + if ($this->oParentForm == null) { $sFormId = $this->sFormId; $sReturn .= ''; $sReturn .= ''; $sReturn .= $sHiddenFields; $sReturn .= ''; $sReturn .= '
'; // for the return of the submit operation - } - else - { + } else { $sReturn .= $sHiddenFields; } $this->AddReadyScript( -<<sScript != '') - { + + if ($this->sScript != '') { $oP->add_script($this->sScript); } - if($this->sReadyScript != '') - { + if ($this->sReadyScript != '') { $oP->add_ready_script($this->sReadyScript); } - if ($bReturnHTML) - { + if ($bReturnHTML) { return $sReturn; - } - else - { + } else { $oP->add($sReturn); } } - + public function StartRow($sFieldId = null) { - if ($sFieldId != null) - { + if ($sFieldId != null) { return ''; } return ''; } - + public function EndRow() { return ''; } - + public function RenderAsDialog($oPage, $sDialogId, $sDialogTitle, $iDialogWidth, $sOkButtonLabel, $sIntroduction = null, $bAutoOpen = true) { $this->SetPrefix('dlg_'); // To make sure that the controls have different IDs that the property sheet which may be displayed at the same time - + $sDialogTitle = addslashes($sDialogTitle); $sOkButtonLabel = addslashes($sOkButtonLabel); $sCancelButtonLabel = Dict::S('UI:Button:Cancel'); $oPage->add("
"); - if ($sIntroduction != null) - { + if ($sIntroduction != null) { $oPage->add('
'.$sIntroduction.'
'); } $this->Render($oPage); $oPage->add('
'); - + $sAutoOpen = $bAutoOpen ? 'true' : 'false'; $oPage->add_ready_script( -<<aFieldSets as $sLabel => $aFields) - { - foreach($aFields as $oField) - { + foreach ($this->aFieldSets as $sLabel => $aFields) { + foreach ($aFields as $oField) { /** @var \DesignerFormField $oField */ $oField->ReadParam($aValues); } } return $aValues; } - + public function SetPrefix($sPrefix) { $this->sFormPrefix = $sPrefix; } - + public function GetPrefix() { - $sPrefix = ''; - if ($this->oParentForm != null) - { + $sPrefix = ''; + if ($this->oParentForm != null) { $sPrefix = $this->oParentForm->GetPrefix(); } return $sPrefix.$this->sFormPrefix; @@ -416,89 +385,80 @@ EOF { $this->sFieldsSuffix = $sSuffix; } - + public function GetSuffix() { $sSuffix = ''; - if ($this->oParentForm != null) - { + if ($this->oParentForm != null) { $sSuffix = $this->oParentForm->GetSuffix(); } return $sSuffix.$this->sFieldsSuffix; } - + public function SetReadOnly($bReadOnly = true) { $this->bReadOnly = $bReadOnly; } - + public function IsReadOnly() { - if ($this->oParentForm == null) - { + if ($this->oParentForm == null) { return $this->bReadOnly; - } - else - { + } else { return $this->oParentForm->IsReadOnly(); } } - + public function SetParamsContainer($sParamsContainer) { $this->sParamsContainer = $sParamsContainer; } - + public function GetParamsContainer() { - if ($this->oParentForm == null) - { + if ($this->oParentForm == null) { return $this->sParamsContainer; - } - else - { + } else { return $this->oParentForm->GetParamsContainer(); } } - + public function SetParentForm($oParentForm) { $this->oParentForm = $oParentForm; } - + public function SetDefaultValues($aDefaultValues) { - if (!is_array($aDefaultValues)) return; - - foreach($this->aFieldSets as $sLabel => $aFields) - { - foreach($aFields as $oField) - { + if (!is_array($aDefaultValues)) { + return; + } + + foreach ($this->aFieldSets as $sLabel => $aFields) { + foreach ($aFields as $oField) { $oField->SetDefaultValueFrom($aDefaultValues); } } } - + public function GetDefaultValues() { return $this->aDefaultValues; } - - + public function GetParentForm() { return $this->oParentForm; } - + public function GetFormId() { - if ($this->oParentForm) - { + if ($this->oParentForm) { $this->oParentForm->GetFormId(); } return $this->sFormId; } - + public function SetDisplayed($bDisplayed) { $this->bDisplayed = $bDisplayed; @@ -506,41 +466,38 @@ EOF public function IsDisplayed() { - if ($this->oParentForm == null) - { + if ($this->oParentForm == null) { return $this->bDisplayed; - } - else - { + } else { return ($this->bDisplayed && $this->oParentForm->IsDisplayed()); } } - + public function AddScript($sScript) { $this->sScript .= $sScript; } - + public function AddReadyScript($sScript) { $this->sReadyScript .= $sScript; } - + public function GetFieldId($sCode) { return $this->GetPrefix().'attr_'.utils::GetSafeId($sCode.$this->GetSuffix()); } - + public function GetFieldName($sCode) { return 'attr_'.$sCode.$this->GetSuffix(); } - + public function GetParamName($sCode) { return 'attr_'.$sCode.$this->GetSuffix(); } - + public function GetValidationArea($sId, $sContent = '') { return "$sContent"; @@ -549,31 +506,33 @@ EOF { return $this->sAsyncActionClass; } - + public function FindField($sFieldCode) { $oFoundField = false; - foreach($this->aFieldSets as $sLabel => $aFields) - { - foreach($aFields as $oField) - { + foreach ($this->aFieldSets as $sLabel => $aFields) { + foreach ($aFields as $oField) { $oFoundField = $oField->FindField($sFieldCode); - if ($oFoundField !== false) break; + if ($oFoundField !== false) { + break; + } + } + if ($oFoundField !== false) { + break; } - if ($oFoundField !== false) break; } - return $oFoundField; + return $oFoundField; } } class DesignerTabularForm extends DesignerForm { protected $aTable; - + public function __construct() { parent::__construct(); - $this->aTable = array(); + $this->aTable = []; } public function AddRow($aRow) { @@ -584,50 +543,37 @@ class DesignerTabularForm extends DesignerForm { return $this->Render($oP, $bReturnHTML); } - + public function Render($oP, $bReturnHTML = false) { $sReturn = ''; - if ($this->oParentForm == null) - { + if ($this->oParentForm == null) { $sFormId = $this->sFormId; $sReturn = '
'; - } - else - { + } else { $sFormId = $this->oParentForm->sFormId; } $sHiddenFields = ''; $sReturn .= ''; - foreach($this->aTable as $aRow) - { + foreach ($this->aTable as $aRow) { $sReturn .= ''; - foreach($aRow as $field) - { - if (!is_object($field)) - { + foreach ($aRow as $field) { + if (!is_object($field)) { // Shortcut: pass a string for a cell containing just a label $sReturn .= ''; - } - else - { + } else { $field->SetForm($this); $aFieldData = $field->Render($oP, $sFormId); - if ($field->IsVisible()) - { + if ($field->IsVisible()) { // put the label and value separated by a non-breaking space if needed - $aData = array(); - foreach(array('label', 'value') as $sCode ) - { - if ($aFieldData[$sCode] != '') - { + $aData = []; + foreach (['label', 'value'] as $sCode) { + if ($aFieldData[$sCode] != '') { $aData[] = $aFieldData[$sCode]; - } + } } $sReturn .= ''; - } - else - { + } else { $sHiddenFields .= $aRow['value']; } } @@ -635,35 +581,27 @@ class DesignerTabularForm extends DesignerForm $sReturn .= ''; } $sReturn .= '
'.$field.''.implode(' ', $aData).'
'; - + $sReturn .= $sHiddenFields; - - if($this->sScript != '') - { + + if ($this->sScript != '') { $oP->add_script($this->sScript); } - if($this->sReadyScript != '') - { + if ($this->sReadyScript != '') { $oP->add_ready_script($this->sReadyScript); } - if ($bReturnHTML) - { + if ($bReturnHTML) { return $sReturn; - } - else - { + } else { $oP->add($sReturn); } } - - public function ReadParams(&$aValues = array()) + + public function ReadParams(&$aValues = []) { - foreach($this->aTable as $aRow) - { - foreach($aRow as $field) - { - if (is_object($field)) - { + foreach ($this->aTable as $aRow) { + foreach ($aRow as $field) { + if (is_object($field)) { $field->SetForm($this); $field->ReadParam($aValues); } @@ -716,7 +654,7 @@ class DesignerFormField $this->aCSSClasses[] = 'ibo-input'; } $this->bDisplayed = true; - $this->aWidgetExtraParams = array(); + $this->aWidgetExtraParams = []; } /** @@ -740,9 +678,9 @@ class DesignerFormField return $this->sCode; } - /** - * @param \DesignerForm $oForm - */ + /** + * @param \DesignerForm $oForm + */ public function SetForm(DesignerForm $oForm) { $this->oForm = $oForm; @@ -835,12 +773,12 @@ class DesignerFormField * * @return array */ - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); - return array('label' => $this->sLabel, 'value' => "defaultValue)."\">"); + return ['label' => $this->sLabel, 'value' => "defaultValue)."\">"]; } /** @@ -848,26 +786,17 @@ class DesignerFormField */ public function ReadParam(&$aValues) { - if ($this->IsReadOnly()) - { + if ($this->IsReadOnly()) { $aValues[$this->sCode] = $this->defaultValue; - } - else - { - if ($this->oForm->GetParamsContainer() != '') - { - $aParams = utils::ReadParam($this->oForm->GetParamsContainer(), array(), false, 'raw_data'); - if (array_key_exists($this->oForm->GetParamName($this->sCode), $aParams)) - { + } else { + if ($this->oForm->GetParamsContainer() != '') { + $aParams = utils::ReadParam($this->oForm->GetParamsContainer(), [], false, 'raw_data'); + if (array_key_exists($this->oForm->GetParamName($this->sCode), $aParams)) { $aValues[$this->sCode] = $aParams[$this->oForm->GetParamName($this->sCode)]; - } - else - { + } else { $aValues[$this->sCode] = $this->defaultValue; } - } - else - { + } else { $aValues[$this->sCode] = utils::ReadParam($this->oForm->GetParamName($this->sCode), $this->defaultValue, false, 'raw_data'); } } @@ -888,7 +817,7 @@ class DesignerFormField { $this->aCSSClasses[] = $sCSSClass; } - + /** * A way to set/change the default value after constructing the field * @@ -896,8 +825,7 @@ class DesignerFormField */ public function SetDefaultValueFrom($aAllDefaultValue) { - if (array_key_exists($this->GetCode(), $aAllDefaultValue)) - { + if (array_key_exists($this->GetCode(), $aAllDefaultValue)) { $this->defaultValue = $aAllDefaultValue[$this->GetCode()]; } } @@ -909,8 +837,7 @@ class DesignerFormField */ public function FindField($sFieldCode) { - if ($this->sCode == $sFieldCode) - { + if ($this->sCode == $sFieldCode) { return $this; } return false; @@ -948,18 +875,18 @@ class DesignerLabelField extends DesignerFormField // Increase counter static::$iCount++; - parent::__construct('label_number_' . static::$iCount, $sLabel, ''); + parent::__construct('label_number_'.static::$iCount, $sLabel, ''); $this->sDescription = $sDescription; } /** * @inheritdoc */ - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); - return array('label' => $this->sLabel, 'value' => $this->sDescription); + return ['label' => $this->sLabel, 'value' => $this->sDescription]; } /** @@ -986,9 +913,9 @@ class DesignerTextField extends DesignerFormField { parent::__construct($sCode, $sLabel, $defaultValue); $this->sValidationPattern = ''; - $this->aForbiddenValues = array(); + $this->aForbiddenValues = []; } - + public function SetValidationPattern($sValidationPattern) { $this->sValidationPattern = $sValidationPattern; @@ -997,40 +924,34 @@ class DesignerTextField extends DesignerFormField public function SetForbiddenValues($aValues, $sExplain, $bCaseSensitive = true) { $aForbiddenValues = $aValues; - + $iDefaultKey = array_search($this->defaultValue, $aForbiddenValues); - if ($iDefaultKey !== false) - { + if ($iDefaultKey !== false) { // The default (current) value is always allowed... unset($aForbiddenValues[$iDefaultKey]); - + } - - $this->aForbiddenValues[] = array('values' => $aForbiddenValues, 'message' => $sExplain, 'case_sensitive' => $bCaseSensitive); + + $this->aForbiddenValues[] = ['values' => $aForbiddenValues, 'message' => $sExplain, 'case_sensitive' => $bCaseSensitive]; } - - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); - + $sName = $this->oForm->GetFieldName($this->sCode); if ($this->IsReadOnly()) { $sHtmlValue = "".utils::EscapeHtml($this->defaultValue)."defaultValue)."\"/>"; - } - else - { + } else { $sPattern = addslashes($this->sValidationPattern); - if (is_array($this->aForbiddenValues)) - { + if (is_array($this->aForbiddenValues)) { $sForbiddenValues = json_encode($this->aForbiddenValues); - } - else - { + } else { $sForbiddenValues = '[]'; //Empty JS array } - $sMandatory = $this->bMandatory ? 'true' : 'false'; + $sMandatory = $this->bMandatory ? 'true' : 'false'; $oP->add_ready_script( -<<defaultValue)."\">"; } - return array('label' => $this->sLabel, 'value' => $sHtmlValue); + return ['label' => $this->sLabel, 'value' => $sHtmlValue]; } public function ReadParam(&$aValues) { parent::ReadParam($aValues); $sPattern = '/'.str_replace('/', '\/', $this->sValidationPattern).'/'; // Escape the forward slashes since they are used as delimiters for preg_match - if (($this->sValidationPattern != '') && (!preg_match($sPattern, $aValues[$this->sCode])) ) - { + if (($this->sValidationPattern != '') && (!preg_match($sPattern, $aValues[$this->sCode]))) { $aValues[$this->sCode] = $this->defaultValue; - } - else if(($this->aForbiddenValues != null) && in_array($aValues[$this->sCode], $this->aForbiddenValues)) - { + } elseif (($this->aForbiddenValues != null) && in_array($aValues[$this->sCode], $this->aForbiddenValues)) { // Reject the value... $aValues[$this->sCode] = $this->defaultValue; } @@ -1082,23 +1000,19 @@ class DesignerLongTextField extends DesignerTextField return cmdbAbstractObject::ENUM_INPUT_TYPE_TEXTAREA; } - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); $sPattern = addslashes($this->sValidationPattern); - if (is_array($this->aForbiddenValues)) - { + if (is_array($this->aForbiddenValues)) { $sForbiddenValues = json_encode($this->aForbiddenValues); - } - else - { + } else { $sForbiddenValues = '[]'; //Empty JS array } - $sMandatory = $this->bMandatory ? 'true' : 'false'; + $sMandatory = $this->bMandatory ? 'true' : 'false'; $sCSSClasses = ''; - if (count($this->aCSSClasses) > 0) - { + if (count($this->aCSSClasses) > 0) { $sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"'; } if (!$this->IsReadOnly()) { @@ -1112,11 +1026,10 @@ $('#$sId').on('change keyup validate', function() { ValidateWithPattern('$sId', EOF ); $sValue = ""; - } - else { + } else { $sValue = "
".$this->PrepareValueForRendering()."
"; } - return array('label' => $this->sLabel, 'value' => $sValue); + return ['label' => $this->sLabel, 'value' => $sValue]; } /** @@ -1165,22 +1078,20 @@ class DesignerIntegerField extends DesignerFormField $this->iMin = $iMin; $this->iMax = $iMax; } - - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); - + $sName = $this->oForm->GetFieldName($this->sCode); if ($this->IsReadOnly()) { $sHtmlValue = "".utils::EscapeHtml($this->defaultValue)."defaultValue)."\"/>"; - } - else - { + } else { $sMin = json_encode($this->iMin); $sMax = json_encode($this->iMax); - $sMandatory = $this->bMandatory ? 'true' : 'false'; + $sMandatory = $this->bMandatory ? 'true' : 'false'; $oP->add_ready_script( -<<defaultValue)."\">"; } - return array('label' => $this->sLabel, 'value' => $sHtmlValue); + return ['label' => $this->sLabel, 'value' => $sHtmlValue]; } public function ReadParam(&$aValues) { parent::ReadParam($aValues); - if (!is_null($this->iMin) && ($aValues[$this->sCode] < $this->iMin)) - { + if (!is_null($this->iMin) && ($aValues[$this->sCode] < $this->iMin)) { // Reject the value... $aValues[$this->sCode] = $this->defaultValue; } - if (!is_null($this->iMax) && ($aValues[$this->sCode] > $this->iMax)) - { + if (!is_null($this->iMax) && ($aValues[$this->sCode] > $this->iMax)) { // Reject the value... $aValues[$this->sCode] = $this->defaultValue; } @@ -1221,11 +1130,11 @@ class DesignerComboField extends DesignerFormField protected $bOtherChoices; protected $sNullLabel; protected $bSorted; - + public function __construct($sCode, $sLabel = '', $defaultValue = '') { parent::__construct($sCode, $sLabel, $defaultValue); - $this->aAllowedValues = array(); + $this->aAllowedValues = []; $this->bMultipleSelection = false; $this->bOtherChoices = false; $this->sNullLabel = Dict::S('UI:SelectOne'); @@ -1245,8 +1154,7 @@ class DesignerComboField extends DesignerFormField { if ($this->bMultipleSelection) { return cmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_MULTIPLE_CHOICES; - } - else { + } else { return cmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_RAW; } } @@ -1260,12 +1168,12 @@ class DesignerComboField extends DesignerFormField $this->aAllowedValues = $aAllowedValues; } - + public function MultipleSelection($bMultipleSelection = true) { $this->bMultipleSelection = $bMultipleSelection; } - + public function OtherChoices($bOtherChoices = true) { $this->bOtherChoices = $bOtherChoices; @@ -1273,47 +1181,42 @@ class DesignerComboField extends DesignerFormField /** * An empty label will disable the default empty value - */ + */ public function SetNullLabel($sLabel) { $this->sNullLabel = $sLabel; } - + public function IsSorted() { return $this->bSorted; } - + public function SetSorted($bSorted) { $this->bSorted = $bSorted; } - - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); $sChecked = $this->defaultValue ? 'checked' : ''; - $sMandatory = $this->bMandatory ? 'true' : 'false'; - $sReadOnly = $this->IsReadOnly() ? 'disabled="disabled"' : ''; - if ($this->IsSorted() ) - { + $sMandatory = $this->bMandatory ? 'true' : 'false'; + $sReadOnly = $this->IsReadOnly() ? 'disabled="disabled"' : ''; + if ($this->IsSorted()) { asort($this->aAllowedValues); } $sCSSClasses = ''; - if (count($this->aCSSClasses) > 0) - { + if (count($this->aCSSClasses) > 0) { $sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"'; } - if ($this->IsReadOnly()) - { - $aSelected = array(); - $aHiddenValues = array(); - foreach($this->aAllowedValues as $sKey => $sDisplayValue) - { - if ($this->bMultipleSelection) - { - if(in_array($sKey, $this->defaultValue)) { + if ($this->IsReadOnly()) { + $aSelected = []; + $aHiddenValues = []; + foreach ($this->aAllowedValues as $sKey => $sDisplayValue) { + if ($this->bMultipleSelection) { + if (in_array($sKey, $this->defaultValue)) { $aSelected[] = $sDisplayValue; $aHiddenValues[] = ""; } @@ -1325,19 +1228,13 @@ class DesignerComboField extends DesignerFormField } } $sHtml = "".utils::EscapeHtml(implode(', ', $aSelected)).implode($aHiddenValues).""; - } - else - { - if ($this->bMultipleSelection) - { + } else { + if ($this->bMultipleSelection) { $iSize = max(1, min(8, count($this->aAllowedValues))); $sHtml = ""; - if ($this->sNullLabel != '') - { + if ($this->sNullLabel != '') { $sHtml .= ""; } } @@ -1352,26 +1249,24 @@ class DesignerComboField extends DesignerFormField $sHtml .= ""; } $sHtml .= ""; - if ($this->bOtherChoices) - { - $sHtml .= '
 '; + if ($this->bOtherChoices) { + $sHtml .= '
 '; } $oP->add_ready_script( -<< $this->sLabel, 'value' => $sHtml); + return ['label' => $this->sLabel, 'value' => $sHtml]; } public function ReadParam(&$aValues) { parent::ReadParam($aValues); - if ($aValues[$this->sCode] == 'null') - { - $aValues[$this->sCode] = array(); + if ($aValues[$this->sCode] == 'null') { + $aValues[$this->sCode] = []; } } } @@ -1394,8 +1289,8 @@ class DesignerBooleanField extends DesignerFormField { return cmdbAbstractObject::ENUM_INPUT_TYPE_CHECKBOX; } - - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); @@ -1403,42 +1298,30 @@ class DesignerBooleanField extends DesignerFormField if ($this->IsReadOnly()) { $sLabel = $this->defaultValue ? Dict::S('UI:UserManagement:ActionAllowed:Yes') : Dict::S('UI:UserManagement:ActionAllowed:No'); //TODO use our own yes/no translations $sHtmlValue = "".utils::EscapeHtml($sLabel)."defaultValue)."\"/>"; - } - else - { + } else { $sCSSClasses = ''; - if (count($this->aCSSClasses) > 0) - { + if (count($this->aCSSClasses) > 0) { $sCSSClasses = 'class="'.implode(' ', $this->aCSSClasses).'"'; } $sHtmlValue = ""; } - return array('label' => $this->sLabel, 'value' => $sHtmlValue); + return ['label' => $this->sLabel, 'value' => $sHtmlValue]; } - + public function ReadParam(&$aValues) { - if ($this->IsReadOnly()) - { + if ($this->IsReadOnly()) { $aValues[$this->sCode] = $this->defaultValue; - } - else - { + } else { $sParamsContainer = $this->oForm->GetParamsContainer(); - if ($sParamsContainer != '') - { - $aParams = utils::ReadParam($sParamsContainer, array(), false, 'raw_data'); - if (array_key_exists($this->oForm->GetParamName($this->sCode), $aParams)) - { + if ($sParamsContainer != '') { + $aParams = utils::ReadParam($sParamsContainer, [], false, 'raw_data'); + if (array_key_exists($this->oForm->GetParamName($this->sCode), $aParams)) { $sValue = $aParams[$this->oForm->GetParamName($this->sCode)]; - } - else - { + } else { $sValue = 'false'; } - } - else - { + } else { $sValue = utils::ReadParam($this->oForm->GetParamName($this->sCode), 'false', false, 'raw_data'); } $aValues[$this->sCode] = ($sValue == 'true'); @@ -1460,27 +1343,26 @@ class DesignerHiddenField extends DesignerFormField { return null; } - + public function IsVisible() { return false; } - - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); - return array('label' => '', 'value' => "defaultValue)."\">"); + return ['label' => '', 'value' => "defaultValue)."\">"]; } } - class DesignerIconSelectionField extends DesignerFormField { protected $sUploadUrl; protected $aAllowedValues; - + public function __construct($sCode, $sLabel = '', $defaultValue = '') { parent::__construct($sCode, $sLabel, $defaultValue); @@ -1495,7 +1377,7 @@ class DesignerIconSelectionField extends DesignerFormField { return cmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_DECORATED; } - + public function SetAllowedValues($aAllowedValues) { $this->aAllowedValues = $aAllowedValues; @@ -1511,7 +1393,7 @@ class DesignerIconSelectionField extends DesignerFormField $this->sUploadUrl = $sIconUploadUrl; } - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); @@ -1546,14 +1428,14 @@ EOF $sValue = ' '.utils::EscapeHtml($this->aAllowedValues[$idx]['label']).''; } $sReadOnly = $this->IsReadOnly() ? 'disabled' : ''; - return array('label' => $this->sLabel, 'value' => $sValue); + return ['label' => $this->sLabel, 'value' => $sValue]; } } class RunTimeIconSelectionField extends DesignerIconSelectionField { - static $aAllIcons = array(); - + public static $aAllIcons = []; + public function __construct($sCode, $sLabel = '', $defaultValue = '') { parent::__construct($sCode, $sLabel, $defaultValue); @@ -1567,30 +1449,27 @@ class RunTimeIconSelectionField extends DesignerIconSelectionField ksort($aIcons); foreach ($aIcons as $sFilePath) { - self::$aAllIcons[] = array('value' => $sFilePath, 'label' => basename($sFilePath), 'icon' => $sUrlPrefix.$sFilePath); + self::$aAllIcons[] = ['value' => $sFilePath, 'label' => basename($sFilePath), 'icon' => $sUrlPrefix.$sFilePath]; } } } $this->SetAllowedValues(self::$aAllIcons); } - static protected function FindIconsOnDisk($sBaseDir, $sDir = '') + protected static function FindIconsOnDisk($sBaseDir, $sDir = '') { $aFiles = null; $sKey = $sBaseDir.'/'.$sDir; $sShortKey = abs(crc32($sKey)); $sCacheFile = utils::GetCachePath().'available-icons-'.$sShortKey.'.php'; $sCacheClass = 'AvailableIcons_'.$sShortKey; - if (file_exists($sCacheFile)) - { + if (file_exists($sCacheFile)) { require_once($sCacheFile); - if ($sCacheClass::$sKey === $sKey) // crc32 collision detection - { + if ($sCacheClass::$sKey === $sKey) { // crc32 collision detection $aFiles = $sCacheClass::$aIconFiles; } } - if ($aFiles === null) - { + if ($aFiles === null) { $aFiles = self::_FindIconsOnDisk($sBaseDir, $sDir); $sAvailableIcons = 'aAllowedValues = array(); + $this->aAllowedValues = []; } /** @@ -1678,20 +1554,19 @@ class DesignerSortableField extends DesignerFormField { return null; } - + public function SetAllowedValues($aAllowedValues) { $this->aAllowedValues = $aAllowedValues; } - - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $bOpen = false; $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); $sReadOnly = $this->IsReadOnly() ? 'readonly="readonly"' : ''; - $aResult = array('label' => $this->sLabel, 'value' => "defaultValue)."\">"); - + $aResult = ['label' => $this->sLabel, 'value' => "defaultValue)."\">"]; $sJSFields = json_encode(array_keys($this->aAllowedValues)); $oP->add_ready_script( @@ -1707,12 +1582,12 @@ class DesignerFormSelectorField extends DesignerFormField protected $aSubForms; protected $defaultRealValue; // What's stored as default value is actually the index protected $bSorted; - + public function __construct($sCode, $sLabel = '', $defaultValue = '') { parent::__construct($sCode, $sLabel, 0); $this->defaultRealValue = $defaultValue; - $this->aSubForms = array(); + $this->aSubForms = []; $this->bSorted = true; if (ContextTag::Check(ContextTag::TAG_CONSOLE)) { $this->aCSSClasses[] = 'ibo-input-select'; @@ -1731,39 +1606,38 @@ class DesignerFormSelectorField extends DesignerFormField { return $this->bSorted; } - + public function SetSorted($bSorted) { $this->bSorted = $bSorted; } - + /** * Callback for sorting an array of $aFormData based ont he labels of the subforms * @param unknown $aItem1 * @param unknown $aItem2 * @return number */ - static function SortOnFormLabel($aItem1, $aItem2) + public static function SortOnFormLabel($aItem1, $aItem2) { return strcasecmp($aItem1['label'], $aItem2['label']); } - + public function GetWidgetClass() { return 'selector_property_field'; } - + public function AddSubForm($oSubForm, $sLabel, $sValue) { - $this->aSubForms[] = array('form' => $oSubForm, 'label' => $sLabel, 'value' => $sValue); - if ($sValue == $this->defaultRealValue) - { + $this->aSubForms[] = ['form' => $oSubForm, 'label' => $sLabel, 'value' => $sValue]; + if ($sValue == $this->defaultRealValue) { // Store the index of the selected/default form $this->defaultValue = count($this->aSubForms) - 1; } } - - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $sId = $this->oForm->GetFieldId($this->sCode); $sName = $this->oForm->GetFieldName($this->sCode); @@ -1777,15 +1651,14 @@ class DesignerFormSelectorField extends DesignerFormField } if ($this->IsSorted()) { - uasort($this->aSubForms, array(get_class($this), 'SortOnFormLabel')); + uasort($this->aSubForms, [get_class($this), 'SortOnFormLabel']); } if ($this->IsReadOnly()) { $sDisplayValue = ''; $sHiddenValue = ''; foreach ($this->aSubForms as $iKey => $aFormData) { - if ($iKey == $this->defaultValue) // Default value is actually the index - { + if ($iKey == $this->defaultValue) { // Default value is actually the index $sDisplayValue = utils::EscapeHtml($aFormData['label']); $sHiddenValue = ""; break; @@ -1830,29 +1703,24 @@ class DesignerFormSelectorField extends DesignerFormField $oSubForm->SetDisplayed($sKey == $this->defaultValue); $sHtml .= $oSubForm->RenderAsPropertySheet($oP, true); - } - else - { + } else { $sHtml .= "
"; $sHtml .= $oSubForm->Render($oP, true); $sHtml .= "
"; } } - if ($sRenderMode == 'property') - { + if ($sRenderMode == 'property') { $sSelector = $this->oForm->GetHierarchyPath().'/'.$this->sCode.$this->oForm->GetSuffix(); $this->aWidgetExtraParams['data_selector'] = $sSelector; - } - else - { + } else { $oP->add_ready_script( -<< $this->sLabel, 'value' => $sHtml); + return ['label' => $this->sLabel, 'value' => $sHtml]; } public function ReadParam(&$aValues) @@ -1860,42 +1728,36 @@ EOF parent::ReadParam($aValues); $sKey = $aValues[$this->sCode]; $aValues[$this->sCode] = $this->aSubForms[$sKey]['value']; - + $this->aSubForms[$sKey]['form']->SetPrefix($this->oForm->GetPrefix().$sKey.'_'); $this->aSubForms[$sKey]['form']->SetParentForm($this->oForm); $this->aSubForms[$sKey]['form']->ReadParams($aValues); } - + public function SetDefaultValueFrom($aAllDefaultValues) { - if (array_key_exists($this->GetCode(), $aAllDefaultValues)) - { + if (array_key_exists($this->GetCode(), $aAllDefaultValues)) { $selectedValue = $aAllDefaultValues[$this->GetCode()]; - foreach($this->aSubForms as $iKey => $aFormData) - { + foreach ($this->aSubForms as $iKey => $aFormData) { $sId = $this->oForm->GetFieldId($this->sCode); - if ($selectedValue == $aFormData['value']) - { - $this->defaultValue =$iKey; + if ($selectedValue == $aFormData['value']) { + $this->defaultValue = $iKey; $oSubForm = $aFormData['form']; $oSubForm->SetDefaultValues($aAllDefaultValues); } - } + } } } - + public function FindField($sFieldCode) { $oField = parent::FindField($sFieldCode); - if ($oField === false) - { + if ($oField === false) { // Look in the subforms - foreach($this->aSubForms as $sKey => $aFormData) - { + foreach ($this->aSubForms as $sKey => $aFormData) { $oSubForm = $aFormData['form']; $oField = $oSubForm->FindField($sFieldCode); - if ($oField !== false) - { + if ($oField !== false) { break; } } @@ -1920,34 +1782,30 @@ class DesignerSubFormField extends DesignerFormField { return null; } - - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { $this->oSubForm->SetParentForm($this->oForm); $this->oSubForm->CopySubmitParams($this->oForm); - - if ($sRenderMode == 'property') - { + + if ($sRenderMode == 'property') { $sHtml = $this->oSubForm->RenderAsPropertySheet($oP, true); - } - else - { + } else { $sHtml = $this->oSubForm->Render($oP, true); } - return array('label' => $this->sLabel, 'value' => $sHtml); + return ['label' => $this->sLabel, 'value' => $sHtml]; } public function ReadParam(&$aValues) - { + { $this->oSubForm->SetParentForm($this->oForm); $this->oSubForm->ReadParams($aValues); } - + public function FindField($sFieldCode) { $oField = parent::FindField($sFieldCode); - if ($oField === false) - { + if ($oField === false) { // Look in the subform $oField = $this->oSubForm->FindField($sFieldCode); } @@ -1955,8 +1813,6 @@ class DesignerSubFormField extends DesignerFormField } } - - class DesignerStaticTextField extends DesignerFormField { public function __construct($sCode, $sLabel = '', $defaultValue = '') @@ -1972,9 +1828,8 @@ class DesignerStaticTextField extends DesignerFormField return null; } - public function Render(WebPage $oP, $sFormId, $sRenderMode='dialog') + public function Render(WebPage $oP, $sFormId, $sRenderMode = 'dialog') { - return array('label' => $this->sLabel, 'value' => $this->defaultValue); + return ['label' => $this->sLabel, 'value' => $this->defaultValue]; } } - diff --git a/application/loginbasic.class.inc.php b/application/loginbasic.class.inc.php index 1ee64ee77..f0b88b510 100644 --- a/application/loginbasic.class.inc.php +++ b/application/loginbasic.class.inc.php @@ -18,23 +18,17 @@ class LoginBasic extends AbstractLoginFSMExtension */ public function ListSupportedLoginModes() { - return array('basic'); + return ['basic']; } protected function OnModeDetection(&$iErrorCode) { - if (!Session::IsSet('login_mode')) - { - if (isset($_SERVER['HTTP_AUTHORIZATION']) && !empty($_SERVER['HTTP_AUTHORIZATION'])) - { + if (!Session::IsSet('login_mode')) { + if (isset($_SERVER['HTTP_AUTHORIZATION']) && !empty($_SERVER['HTTP_AUTHORIZATION'])) { Session::Set('login_mode', 'basic'); - } - elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && !empty($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) - { + } elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && !empty($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { Session::Set('login_mode', 'basic'); - } - elseif (isset($_SERVER['PHP_AUTH_USER'])) - { + } elseif (isset($_SERVER['PHP_AUTH_USER'])) { Session::Set('login_mode', 'basic'); } } @@ -43,22 +37,18 @@ class LoginBasic extends AbstractLoginFSMExtension protected function OnReadCredentials(&$iErrorCode) { - if (!Session::IsSet('login_mode') || Session::Get('login_mode') == 'basic') - { + if (!Session::IsSet('login_mode') || Session::Get('login_mode') == 'basic') { list($sAuthUser) = $this->GetAuthUserAndPassword(); Session::Set('login_temp_auth_user', $sAuthUser); } return LoginWebPage::LOGIN_FSM_CONTINUE; } - protected function OnCheckCredentials(&$iErrorCode) { - if (Session::Get('login_mode') == 'basic') - { + if (Session::Get('login_mode') == 'basic') { list($sAuthUser, $sAuthPwd) = $this->GetAuthUserAndPassword(); - if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, Session::Get('login_mode'), 'internal')) - { + if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, Session::Get('login_mode'), 'internal')) { $iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS; return LoginWebPage::LOGIN_FSM_ERROR; } @@ -69,8 +59,7 @@ class LoginBasic extends AbstractLoginFSMExtension protected function OnCredentialsOK(&$iErrorCode) { - if (Session::Get('login_mode') == 'basic') - { + if (Session::Get('login_mode') == 'basic') { LoginWebPage::OnLoginSuccess(Session::Get('auth_user'), 'internal', Session::Get('login_mode')); } return LoginWebPage::LOGIN_FSM_CONTINUE; @@ -78,13 +67,11 @@ class LoginBasic extends AbstractLoginFSMExtension protected function OnError(&$iErrorCode) { - if (Session::Get('login_mode') == 'basic') - { - $iOnExit = LoginWebPage::getIOnExit(); - if ($iOnExit === LoginWebPage::EXIT_RETURN) - { - return LoginWebPage::LOGIN_FSM_RETURN; // Error, exit FSM - } + if (Session::Get('login_mode') == 'basic') { + $iOnExit = LoginWebPage::getIOnExit(); + if ($iOnExit === LoginWebPage::EXIT_RETURN) { + return LoginWebPage::LOGIN_FSM_RETURN; // Error, exit FSM + } LoginWebPage::HTTP401Error(); } return LoginWebPage::LOGIN_FSM_CONTINUE; @@ -92,8 +79,7 @@ class LoginBasic extends AbstractLoginFSMExtension protected function OnConnected(&$iErrorCode) { - if (Session::Get('login_mode') == 'basic') - { + if (Session::Get('login_mode') == 'basic') { Session::Set('can_logoff', true); return LoginWebPage::CheckLoggedUser($iErrorCode); } @@ -105,42 +91,33 @@ class LoginBasic extends AbstractLoginFSMExtension $sAuthUser = ''; $sAuthPwd = null; $sAuthorization = ''; - if (isset($_SERVER['HTTP_AUTHORIZATION']) && !empty($_SERVER['HTTP_AUTHORIZATION'])) - { + if (isset($_SERVER['HTTP_AUTHORIZATION']) && !empty($_SERVER['HTTP_AUTHORIZATION'])) { $sAuthorization = $_SERVER['HTTP_AUTHORIZATION']; - } - elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && !empty($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) - { + } elseif (isset($_SERVER['REDIRECT_HTTP_AUTHORIZATION']) && !empty($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) { $sAuthorization = $_SERVER['REDIRECT_HTTP_AUTHORIZATION']; } - if (!empty($sAuthorization)) - { + if (!empty($sAuthorization)) { list($sAuthUser, $sAuthPwd) = explode(':', base64_decode(substr($sAuthorization, 6))); - } - else - { - if (isset($_SERVER['PHP_AUTH_USER'])) - { + } else { + if (isset($_SERVER['PHP_AUTH_USER'])) { $sAuthUser = $_SERVER['PHP_AUTH_USER']; // Unfortunately, the RFC is not clear about the encoding... // IE and FF supply the user and password encoded in ISO-8859-1 whereas Chrome provides them encoded in UTF-8 // So let's try to guess if it's an UTF-8 string or not... fortunately all encodings share the same ASCII base - if (!LoginWebPage::LooksLikeUTF8($sAuthUser)) - { + if (!LoginWebPage::LooksLikeUTF8($sAuthUser)) { // Does not look like and UTF-8 string, try to convert it from iso-8859-1 to UTF-8 // Supposed to be harmless in case of a plain ASCII string... $sAuthUser = iconv('iso-8859-1', 'utf-8', $sAuthUser); } $sAuthPwd = $_SERVER['PHP_AUTH_PW']; - if (!LoginWebPage::LooksLikeUTF8($sAuthPwd)) - { + if (!LoginWebPage::LooksLikeUTF8($sAuthPwd)) { // Does not look like and UTF-8 string, try to convert it from iso-8859-1 to UTF-8 // Supposed to be harmless in case of a plain ASCII string... $sAuthPwd = iconv('iso-8859-1', 'utf-8', $sAuthPwd); } } } - return array($sAuthUser, $sAuthPwd); + return [$sAuthUser, $sAuthPwd]; } } diff --git a/application/logindefault.class.inc.php b/application/logindefault.class.inc.php index c0bd7dc95..24b0ec24e 100644 --- a/application/logindefault.class.inc.php +++ b/application/logindefault.class.inc.php @@ -1,4 +1,5 @@ GetAllowedLoginTypes(); $sProposedLoginMode = utils::ReadParam('login_mode', ''); $index = array_search($sProposedLoginMode, $aAllowedLoginTypes); - if ($index !== false) - { + if ($index !== false) { // Force login mode Session::Set('login_mode', $sProposedLoginMode); - } - else - { + } else { Session::Unset('login_mode'); } return LoginWebPage::LOGIN_FSM_CONTINUE; @@ -49,8 +47,7 @@ class LoginDefaultBefore extends AbstractLoginFSMExtension $aAllowedLoginTypes = MetaModel::GetConfig()->GetAllowedLoginTypes(); $sProposedLoginMode = utils::ReadParam('login_mode', ''); $index = array_search($sProposedLoginMode, $aAllowedLoginTypes); - if ($index !== false) - { + if ($index !== false) { // Force login mode LoginWebPage::SetLoginModeAndReload($sProposedLoginMode); } else { @@ -69,8 +66,6 @@ class LoginDefaultBefore extends AbstractLoginFSMExtension */ class LoginDefaultAfter extends AbstractLoginFSMExtension implements iLogoutExtension { - - /** * Must be executed after the other login plugins * @@ -78,19 +73,16 @@ class LoginDefaultAfter extends AbstractLoginFSMExtension implements iLogoutExte */ public function ListSupportedLoginModes() { - return array('after'); + return ['after']; } protected function OnError(&$iErrorCode) { self::ResetLoginSession(); $iOnExit = LoginWebPage::getIOnExit(); - if ($iOnExit === LoginWebPage::EXIT_RETURN) - { + if ($iOnExit === LoginWebPage::EXIT_RETURN) { return LoginWebPage::LOGIN_FSM_RETURN; // Error, exit FSM - } - elseif ($iOnExit == LoginWebPage::EXIT_HTTP_401) - { + } elseif ($iOnExit == LoginWebPage::EXIT_HTTP_401) { LoginWebPage::HTTP401Error(); // Error, exit } // LoginWebPage::EXIT_PROMPT @@ -99,13 +91,12 @@ class LoginDefaultAfter extends AbstractLoginFSMExtension implements iLogoutExte protected function OnCredentialsOk(&$iErrorCode) { - if (!Session::IsSet('login_mode')) - { - // N°6358 - if EXIT_RETURN was asked, send an error - if (LoginWebPage::getIOnExit() === LoginWebPage::EXIT_RETURN) { - $iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS; - return LoginWebPage::LOGIN_FSM_ERROR; - } + if (!Session::IsSet('login_mode')) { + // N°6358 - if EXIT_RETURN was asked, send an error + if (LoginWebPage::getIOnExit() === LoginWebPage::EXIT_RETURN) { + $iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS; + return LoginWebPage::LOGIN_FSM_ERROR; + } // If no plugin validated the user, exit self::ResetLoginSession(); @@ -125,7 +116,7 @@ class LoginDefaultAfter extends AbstractLoginFSMExtension implements iLogoutExte protected function OnConnected(&$iErrorCode) { Session::Unset('login_temp_auth_user'); - if (is_null(UserRights::GetUserObject())){ + if (is_null(UserRights::GetUserObject())) { //N°7085 avoid infinite loop IssueLog::Error("No user logged in. exit"); exit(-1); @@ -137,10 +128,8 @@ class LoginDefaultAfter extends AbstractLoginFSMExtension implements iLogoutExte private static function ResetLoginSession() { LoginWebPage::ResetSession(); - foreach (Session::ListVariables() as $sKey) - { - if (utils::StartsWith($sKey, 'login_')) - { + foreach (Session::ListVariables() as $sKey) { + if (utils::StartsWith($sKey, 'login_')) { Session::Unset($sKey); } } diff --git a/application/loginexternal.class.inc.php b/application/loginexternal.class.inc.php index e4d1d2d03..d07869595 100644 --- a/application/loginexternal.class.inc.php +++ b/application/loginexternal.class.inc.php @@ -11,7 +11,6 @@ use Combodo\iTop\Application\Helper\Session; class LoginExternal extends AbstractLoginFSMExtension { - /** * Return the list of supported login modes for this plugin * @@ -19,16 +18,14 @@ class LoginExternal extends AbstractLoginFSMExtension */ public function ListSupportedLoginModes() { - return array('external'); + return ['external']; } protected function OnModeDetection(&$iErrorCode) { - if (!Session::IsSet('login_mode')) - { + if (!Session::IsSet('login_mode')) { $sAuthUser = $this->GetAuthUser(); - if ($sAuthUser && (strlen($sAuthUser) > 0)) - { + if ($sAuthUser && (strlen($sAuthUser) > 0)) { Session::Set('login_mode', 'external'); } } @@ -37,11 +34,9 @@ class LoginExternal extends AbstractLoginFSMExtension protected function OnCheckCredentials(&$iErrorCode) { - if (Session::Get('login_mode') == 'external') - { + if (Session::Get('login_mode') == 'external') { $sAuthUser = $this->GetAuthUser(); - if (!UserRights::CheckCredentials($sAuthUser, '', Session::Get('login_mode'), 'external')) - { + if (!UserRights::CheckCredentials($sAuthUser, '', Session::Get('login_mode'), 'external')) { $iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS; return LoginWebPage::LOGIN_FSM_ERROR; } @@ -52,8 +47,7 @@ class LoginExternal extends AbstractLoginFSMExtension protected function OnCredentialsOK(&$iErrorCode) { - if (Session::Get('login_mode') == 'external') - { + if (Session::Get('login_mode') == 'external') { LoginWebPage::OnLoginSuccess(Session::Get('auth_user'), 'external', Session::Get('login_mode')); } return LoginWebPage::LOGIN_FSM_CONTINUE; @@ -61,8 +55,7 @@ class LoginExternal extends AbstractLoginFSMExtension protected function OnConnected(&$iErrorCode) { - if (Session::Get('login_mode') == 'external') - { + if (Session::Get('login_mode') == 'external') { Session::Set('can_logoff', false); return LoginWebPage::CheckLoggedUser($iErrorCode); } @@ -71,13 +64,11 @@ class LoginExternal extends AbstractLoginFSMExtension protected function OnError(&$iErrorCode) { - if (Session::Get('login_mode') == 'external') - { - $iOnExit = LoginWebPage::getIOnExit(); - if ($iOnExit === LoginWebPage::EXIT_RETURN) - { - return LoginWebPage::LOGIN_FSM_RETURN; // Error, exit FSM - } + if (Session::Get('login_mode') == 'external') { + $iOnExit = LoginWebPage::getIOnExit(); + if ($iOnExit === LoginWebPage::EXIT_RETURN) { + return LoginWebPage::LOGIN_FSM_RETURN; // Error, exit FSM + } LoginWebPage::HTTP401Error(); } return LoginWebPage::LOGIN_FSM_CONTINUE; diff --git a/application/loginform.class.inc.php b/application/loginform.class.inc.php index e10a97af4..5fa94c0e7 100644 --- a/application/loginform.class.inc.php +++ b/application/loginform.class.inc.php @@ -23,7 +23,7 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension */ public function ListSupportedLoginModes() { - return array('form'); + return ['form']; } /** @@ -34,19 +34,17 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension if (!Session::IsSet('login_mode') || Session::Get('login_mode') == 'form') { $sAuthUser = utils::ReadPostedParam('auth_user', '', 'raw_data'); $sAuthPwd = utils::ReadPostedParam('auth_pwd', null, 'raw_data'); - if ($this->bForceFormOnError || empty($sAuthUser) || empty($sAuthPwd)) - { - if (array_key_exists('HTTP_X_COMBODO_AJAX', $_SERVER)) - { + if ($this->bForceFormOnError || empty($sAuthUser) || empty($sAuthPwd)) { + if (array_key_exists('HTTP_X_COMBODO_AJAX', $_SERVER)) { // X-Combodo-Ajax is a special header automatically added to all ajax requests // Let's reply that we're currently logged-out header('HTTP/1.0 401 Unauthorized'); exit; } - if (LoginWebPage::getIOnExit() === LoginWebPage::EXIT_RETURN) { - return LoginWebPage::LOGIN_FSM_CONTINUE; - } + if (LoginWebPage::getIOnExit() === LoginWebPage::EXIT_RETURN) { + return LoginWebPage::LOGIN_FSM_CONTINUE; + } // No credentials yet, display the form $oPage = LoginWebPage::NewLoginWebPage(); @@ -66,12 +64,10 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension */ protected function OnCheckCredentials(&$iErrorCode) { - if (Session::Get('login_mode') == 'form') - { + if (Session::Get('login_mode') == 'form') { $sAuthUser = utils::ReadPostedParam('auth_user', '', 'raw_data'); $sAuthPwd = utils::ReadPostedParam('auth_pwd', null, 'raw_data'); - if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, Session::Get('login_mode'), 'internal')) - { + if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, Session::Get('login_mode'), 'internal')) { $iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS; return LoginWebPage::LOGIN_FSM_ERROR; } @@ -85,8 +81,7 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension */ protected function OnCredentialsOK(&$iErrorCode) { - if (Session::Get('login_mode') == 'form') - { + if (Session::Get('login_mode') == 'form') { // Store 'auth_user' in session for further use LoginWebPage::OnLoginSuccess(Session::Get('auth_user'), 'internal', Session::Get('login_mode')); } @@ -98,8 +93,7 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension */ protected function OnError(&$iErrorCode) { - if (Session::Get('login_mode') == 'form') - { + if (Session::Get('login_mode') == 'form') { $this->bForceFormOnError = true; } return LoginWebPage::LOGIN_FSM_CONTINUE; @@ -110,8 +104,7 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension */ protected function OnConnected(&$iErrorCode) { - if (Session::Get('login_mode') == 'form') - { + if (Session::Get('login_mode') == 'form') { Session::Set('can_logoff', true); return LoginWebPage::CheckLoggedUser($iErrorCode); } @@ -131,24 +124,23 @@ class LoginForm extends AbstractLoginFSMExtension implements iLoginUIExtension $sAuthUser = utils::ReadParam('auth_user', '', true, 'raw_data'); $sAuthPwd = utils::ReadParam('suggest_pwd', '', true, 'raw_data'); - $aData = array( + $aData = [ 'sAuthUser' => $sAuthUser, 'sAuthPwd' => $sAuthPwd, - ); + ]; $oLoginContext->AddBlockExtension('login_input', new LoginBlockExtension('extensionblock/loginforminput.html.twig', $aData)); $oLoginContext->AddBlockExtension('login_submit', new LoginBlockExtension('extensionblock/loginformsubmit.html.twig')); $oLoginContext->AddBlockExtension('login_form_footer', new LoginBlockExtension('extensionblock/loginformfooter.html.twig')); $bEnableResetPassword = MetaModel::GetConfig()->Get('forgot_password'); $sResetPasswordUrl = MetaModel::GetConfig()->Get('forgot_password.url'); - if ($sResetPasswordUrl == '') - { - $sResetPasswordUrl = utils::GetAbsoluteUrlAppRoot() . 'pages/UI.php?loginop=forgot_pwd'; + if ($sResetPasswordUrl == '') { + $sResetPasswordUrl = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?loginop=forgot_pwd'; } - $aData = array( + $aData = [ 'bEnableResetPassword' => $bEnableResetPassword, 'sResetPasswordUrl' => $sResetPasswordUrl, - ); + ]; $oLoginContext->AddBlockExtension('login_links', new LoginBlockExtension('extensionblock/loginformlinks.html.twig', $aData)); return $oLoginContext; diff --git a/application/logintwig.class.inc.php b/application/logintwig.class.inc.php index a172501dd..da111eb8e 100644 --- a/application/logintwig.class.inc.php +++ b/application/logintwig.class.inc.php @@ -6,7 +6,6 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - use Combodo\iTop\Application\Branding; use Combodo\iTop\Application\TwigBase\Twig\Extension; use Combodo\iTop\Application\WebPage\NiceWebPage; @@ -41,11 +40,11 @@ class LoginTwigContext */ public function __construct() { - $this->aBlockExtension = array(); - $this->aPostedVars = array(); + $this->aBlockExtension = []; + $this->aPostedVars = []; $this->sTwigLoaderPath = null; - $this->aCSSFiles = array(); - $this->aJsFiles = array(); + $this->aCSSFiles = []; + $this->aJsFiles = []; $this->sTwigNameSpace = null; } @@ -179,7 +178,7 @@ class LoginBlockExtension * @param array $aData Data given to the twig template (into the variable {{ aData }}) * @api */ - public function __construct($sTwig, $aData = array()) + public function __construct($sTwig, $aData = []) { $this->sTwig = $sTwig; $this->aData = $aData; @@ -210,21 +209,18 @@ class LoginTwigRenderer public function __construct() { $this->aLoginPluginList = LoginWebPage::GetLoginPluginList('iLoginUIExtension', false); - $this->aPluginFormData = array(); - $aTwigLoaders = array(); - $this->aPostedVars = array(); - foreach ($this->aLoginPluginList as $oLoginPlugin) - { + $this->aPluginFormData = []; + $aTwigLoaders = []; + $this->aPostedVars = []; + foreach ($this->aLoginPluginList as $oLoginPlugin) { /** @var \iLoginUIExtension $oLoginPlugin */ $oLoginContext = $oLoginPlugin->GetTwigContext(); - if (is_null($oLoginContext)) - { + if (is_null($oLoginContext)) { continue; } $this->aPluginFormData[] = $oLoginContext; $sTwigLoaderPath = $oLoginContext->GetTwigLoaderPath(); - if ($sTwigLoaderPath != null) - { + if ($sTwigLoaderPath != null) { $oExtensionLoader = new FilesystemLoader(); $oExtensionLoader->setPaths($sTwigLoaderPath); $aTwigLoaders[] = $oExtensionLoader; @@ -232,8 +228,8 @@ class LoginTwigRenderer $this->aPostedVars = array_merge($this->aPostedVars, $oLoginContext->GetPostedVars()); } - $oCoreLoader = new FilesystemLoader(array(), APPROOT.'templates'); - $aCoreTemplatesPaths = array('pages/login', 'pages/login/password'); + $oCoreLoader = new FilesystemLoader([], APPROOT.'templates'); + $aCoreTemplatesPaths = ['pages/login', 'pages/login/password']; // Having this path declared after the plugins let the plugins replace the core templates $oCoreLoader->setPaths($aCoreTemplatesPaths); // Having the core templates accessible within a different namespace offer the possibility to extend them while replacing them @@ -251,19 +247,19 @@ class LoginTwigRenderer $sIconUrl = Utils::GetConfig()->Get('app_icon_url'); $sDisplayIcon = Branding::GetLoginLogoAbsoluteUrl(); - $aVars = array( + $aVars = [ 'sAppRootUrl' => utils::GetAbsoluteUrlAppRoot(), 'aPluginFormData' => $this->GetPluginFormData(), 'sItopVersion' => ITOP_VERSION, 'sVersionShort' => $sVersionShort, 'sIconUrl' => $sIconUrl, 'sDisplayIcon' => $sDisplayIcon, - ); + ]; return $aVars; } - public function Render(NiceWebPage $oPage, $sTwigFile, $aVars = array()) + public function Render(NiceWebPage $oPage, $sTwigFile, $aVars = []) { $oTemplate = $this->GetTwig()->load($sTwigFile); $oPage->add($oTemplate->renderBlock('body', $aVars)); @@ -272,17 +268,14 @@ class LoginTwigRenderer $oPage->add_style($oTemplate->renderBlock('css', $aVars)); // Render CSS links - foreach ($this->aPluginFormData as $oFormData) - { + foreach ($this->aPluginFormData as $oFormData) { /** @var \LoginTwigContext $oFormData */ $aCSSFiles = $oFormData->GetCSSFiles(); - foreach ($aCSSFiles as $sCSSFile) - { + foreach ($aCSSFiles as $sCSSFile) { $oPage->LinkStylesheetFromURI($sCSSFile); } $aJsFiles = $oFormData->GetJsFiles(); - foreach ($aJsFiles as $sJsFile) - { + foreach ($aJsFiles as $sJsFile) { $oPage->LinkScriptFromURI($sJsFile); } diff --git a/application/loginurl.class.inc.php b/application/loginurl.class.inc.php index 616f88af4..8e4f66d53 100644 --- a/application/loginurl.class.inc.php +++ b/application/loginurl.class.inc.php @@ -23,17 +23,15 @@ class LoginURL extends AbstractLoginFSMExtension */ public function ListSupportedLoginModes() { - return array('url'); + return ['url']; } protected function OnModeDetection(&$iErrorCode) { - if (!Session::IsSet('login_mode') && !$this->bErrorOccurred) - { + if (!Session::IsSet('login_mode') && !$this->bErrorOccurred) { $sAuthUser = utils::ReadParam('auth_user', '', false, 'raw_data'); $sAuthPwd = utils::ReadParam('auth_pwd', null, false, 'raw_data'); - if (!empty($sAuthUser) && !empty($sAuthPwd)) - { + if (!empty($sAuthUser) && !empty($sAuthPwd)) { Session::Set('login_mode', 'url'); } } @@ -42,8 +40,7 @@ class LoginURL extends AbstractLoginFSMExtension protected function OnReadCredentials(&$iErrorCode) { - if (Session::Get('login_mode') == 'url') - { + if (Session::Get('login_mode') == 'url') { Session::Set('login_temp_auth_user', utils::ReadParam('auth_user', '', false, 'raw_data')); } return LoginWebPage::LOGIN_FSM_CONTINUE; @@ -51,12 +48,10 @@ class LoginURL extends AbstractLoginFSMExtension protected function OnCheckCredentials(&$iErrorCode) { - if (Session::Get('login_mode') == 'url') - { + if (Session::Get('login_mode') == 'url') { $sAuthUser = utils::ReadParam('auth_user', '', false, 'raw_data'); $sAuthPwd = utils::ReadParam('auth_pwd', null, false, 'raw_data'); - if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, Session::Get('login_mode'), 'internal')) - { + if (!UserRights::CheckCredentials($sAuthUser, $sAuthPwd, Session::Get('login_mode'), 'internal')) { $iErrorCode = LoginWebPage::EXIT_CODE_WRONGCREDENTIALS; return LoginWebPage::LOGIN_FSM_ERROR; } @@ -67,8 +62,7 @@ class LoginURL extends AbstractLoginFSMExtension protected function OnCredentialsOK(&$iErrorCode) { - if (Session::Get('login_mode') == 'url') - { + if (Session::Get('login_mode') == 'url') { LoginWebPage::OnLoginSuccess(Session::Get('auth_user'), 'internal', Session::Get('login_mode')); } return LoginWebPage::LOGIN_FSM_CONTINUE; @@ -76,8 +70,7 @@ class LoginURL extends AbstractLoginFSMExtension protected function OnError(&$iErrorCode) { - if (Session::Get('login_mode') == 'url') - { + if (Session::Get('login_mode') == 'url') { $this->bErrorOccurred = true; } return LoginWebPage::LOGIN_FSM_CONTINUE; @@ -85,8 +78,7 @@ class LoginURL extends AbstractLoginFSMExtension protected function OnConnected(&$iErrorCode) { - if (Session::Get('login_mode') == 'url') - { + if (Session::Get('login_mode') == 'url') { Session::Set('can_logoff', true); return LoginWebPage::CheckLoggedUser($iErrorCode); } diff --git a/application/loginwebpage.class.inc.php b/application/loginwebpage.class.inc.php index e047cf761..d5cf26b31 100644 --- a/application/loginwebpage.class.inc.php +++ b/application/loginwebpage.class.inc.php @@ -1,9 +1,10 @@ - /** * Class LoginWebPage * @@ -37,33 +37,33 @@ use Combodo\iTop\Service\Events\EventService; class LoginWebPage extends NiceWebPage { - const EXIT_PROMPT = 0; - const EXIT_HTTP_401 = 1; - const EXIT_RETURN = 2; - - const EXIT_CODE_OK = 0; - const EXIT_CODE_MISSINGLOGIN = 1; - const EXIT_CODE_MISSINGPASSWORD = 2; - const EXIT_CODE_WRONGCREDENTIALS = 3; - const EXIT_CODE_MUSTBEADMIN = 4; - const EXIT_CODE_PORTALUSERNOTAUTHORIZED = 5; - const EXIT_CODE_NOTAUTHORIZED = 6; + public const EXIT_PROMPT = 0; + public const EXIT_HTTP_401 = 1; + public const EXIT_RETURN = 2; + + public const EXIT_CODE_OK = 0; + public const EXIT_CODE_MISSINGLOGIN = 1; + public const EXIT_CODE_MISSINGPASSWORD = 2; + public const EXIT_CODE_WRONGCREDENTIALS = 3; + public const EXIT_CODE_MUSTBEADMIN = 4; + public const EXIT_CODE_PORTALUSERNOTAUTHORIZED = 5; + public const EXIT_CODE_NOTAUTHORIZED = 6; // Login FSM States - const LOGIN_STATE_START = 'start'; // Entry state - const LOGIN_STATE_MODE_DETECTION = 'login mode detection'; // Detect which login plugin to use - const LOGIN_STATE_READ_CREDENTIALS = 'read credentials'; // Read the credentials - const LOGIN_STATE_CHECK_CREDENTIALS = 'check credentials'; // Check if the credentials are valid - const LOGIN_STATE_CREDENTIALS_OK = 'credentials ok'; // User provisioning - const LOGIN_STATE_USER_OK = 'user ok'; // Additional check (2FA) - const LOGIN_STATE_CONNECTED = 'connected'; // User connected - const LOGIN_STATE_SET_ERROR = 'prepare for error'; // Internal state to trigger ERROR state - const LOGIN_STATE_ERROR = 'error'; // An error occurred, next state will be NONE + public const LOGIN_STATE_START = 'start'; // Entry state + public const LOGIN_STATE_MODE_DETECTION = 'login mode detection'; // Detect which login plugin to use + public const LOGIN_STATE_READ_CREDENTIALS = 'read credentials'; // Read the credentials + public const LOGIN_STATE_CHECK_CREDENTIALS = 'check credentials'; // Check if the credentials are valid + public const LOGIN_STATE_CREDENTIALS_OK = 'credentials ok'; // User provisioning + public const LOGIN_STATE_USER_OK = 'user ok'; // Additional check (2FA) + public const LOGIN_STATE_CONNECTED = 'connected'; // User connected + public const LOGIN_STATE_SET_ERROR = 'prepare for error'; // Internal state to trigger ERROR state + public const LOGIN_STATE_ERROR = 'error'; // An error occurred, next state will be NONE // Login FSM Returns - const LOGIN_FSM_RETURN = 0; // End the FSM OK (connected) - const LOGIN_FSM_ERROR = 1; // Error signaled - const LOGIN_FSM_CONTINUE = 2; // Continue FSM + public const LOGIN_FSM_RETURN = 0; // End the FSM OK (connected) + public const LOGIN_FSM_ERROR = 1; // Error signaled + public const LOGIN_FSM_CONTINUE = 2; // Continue FSM protected static $sHandlerClass = __class__; private static $iOnExit; @@ -78,7 +78,7 @@ class LoginWebPage extends NiceWebPage */ public static function NewLoginWebPage() { - return new self::$sHandlerClass; + return new self::$sHandlerClass(); } protected static $m_sLoginFailedMessage = ''; @@ -94,7 +94,7 @@ class LoginWebPage extends NiceWebPage $this->no_cache(); $this->add_http_headers(); } - + public function SetStyleSheet() { $this->LinkStylesheetFromAppRoot('css/login.css'); @@ -128,23 +128,18 @@ class LoginWebPage extends NiceWebPage $oProfilesSet = $oUser->Get('profile_list'); //delete old profiles $aExistingProfiles = []; - while ($oProfile = $oProfilesSet->Fetch()) - { + while ($oProfile = $oProfilesSet->Fetch()) { array_push($aExistingProfiles, $oProfile->Get('profileid')); $iArrayKey = array_search($oProfile->Get('profileid'), $aProfiles); - if (!$iArrayKey) - { + if (!$iArrayKey) { $oProfilesSet->RemoveItem($oProfile->Get('profileid')); - } - else - { + } else { unset($aProfiles[$iArrayKey]); } } //add profiles not already linked with user - foreach ($aProfiles as $iProfileId) - { - $oProfilesSet->AddItem(MetaModel::NewObject('URP_UserProfile', array('profileid' => $iProfileId, 'reason' => $sOrigin))); + foreach ($aProfiles as $iProfileId) { + $oProfilesSet->AddItem(MetaModel::NewObject('URP_UserProfile', ['profileid' => $iProfileId, 'reason' => $sOrigin])); } $oUser->Set('profile_list', $oProfilesSet); } @@ -154,56 +149,49 @@ class LoginWebPage extends NiceWebPage $sVersionShort = Dict::Format('UI:iTopVersion:Short', ITOP_APPLICATION, ITOP_VERSION); $sIconUrl = Utils::GetConfig()->Get('app_icon_url'); $sDisplayIcon = Branding::GetLoginLogoAbsoluteUrl(); - $this->add("
\n"); + $this->add("
\n"); } public function DisplayLoginForm($bFailedLogin = false) { $oTwigContext = new LoginTwigRenderer(); - $aPostedVars = array_merge(array('login_mode', 'loginop'), $oTwigContext->GetPostedVars()); + $aPostedVars = array_merge(['login_mode', 'loginop'], $oTwigContext->GetPostedVars()); $sMessage = Dict::S('UI:Login:IdentifyYourself'); // Error message - if ($bFailedLogin) - { - if (self::$m_sLoginFailedMessage != '') - { + if ($bFailedLogin) { + if (self::$m_sLoginFailedMessage != '') { $sMessage = self::$m_sLoginFailedMessage; - } - else - { + } else { $sMessage = Dict::S('UI:Login:IncorrectLoginPassword'); } } // Keep the OTHER parameters posted - $aPreviousPostedVars = array(); - foreach($_POST as $sPostedKey => $postedValue) - { - if (!in_array($sPostedKey, $aPostedVars)) - { - if (is_array($postedValue)) - { - foreach($postedValue as $sKey => $sValue) - { + $aPreviousPostedVars = []; + foreach ($_POST as $sPostedKey => $postedValue) { + if (!in_array($sPostedKey, $aPostedVars)) { + if (is_array($postedValue)) { + foreach ($postedValue as $sKey => $sValue) { $sName = "{$sPostedKey}[{$sKey}]"; $aPreviousPostedVars[$sName] = $sValue; } - } - else - { + } else { $aPreviousPostedVars[$sPostedKey] = $postedValue; } } } - $aVars = array( + $aVars = [ 'bFailedLogin' => $bFailedLogin, 'sMessage' => $sMessage, 'aPreviousPostedVars' => $aPreviousPostedVars, - ); + ]; $aVars = array_merge($aVars, $oTwigContext->GetDefaultVars()); $oTwigContext->Render($this, 'login.html.twig', $aVars); @@ -226,26 +214,21 @@ class LoginWebPage extends NiceWebPage { $sAuthUser = utils::ReadParam('auth_user', '', true, 'raw_data'); - try - { + try { UserRights::Login($sAuthUser); // Set the user's language (if possible!) - /** @var UserInternal $oUser */ - $oUser = UserRights::GetUserObject(); + /** @var UserInternal $oUser */ + $oUser = UserRights::GetUserObject(); - if ($oUser != null) - { - if (!MetaModel::IsValidAttCode(get_class($oUser), 'reset_pwd_token')) - { + if ($oUser != null) { + if (!MetaModel::IsValidAttCode(get_class($oUser), 'reset_pwd_token')) { throw new Exception(Dict::S('UI:ResetPwd-Error-NotPossible')); } - if (!$oUser->CanChangePassword()) - { + if (!$oUser->CanChangePassword()) { throw new Exception(Dict::S('UI:ResetPwd-Error-FixedPwd')); } $sTo = $oUser->GetResetPasswordEmail(); // throws Exceptions if not allowed - if ($sTo == '') - { + if ($sTo == '') { throw new Exception(Dict::S('UI:ResetPwd-Error-NoEmail')); } @@ -265,8 +248,7 @@ class LoginWebPage extends NiceWebPage $sResetUrl = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?loginop=reset_pwd&auth_user='.urlencode($oUser->Get('login')).'&token='.urlencode($sToken); $oEmail->SetBody(Dict::Format('UI:ResetPwd-EmailBody', $sResetUrl, $oUser->Get('login'))); $iRes = $oEmail->Send($aIssues, true /* force synchronous exec */); - switch ($iRes) - { + switch ($iRes) { //case EMAIL_SEND_PENDING: case EMAIL_SEND_OK: break; @@ -278,13 +260,10 @@ class LoginWebPage extends NiceWebPage } } - $oTwigContext = new LoginTwigRenderer(); $aVars = $oTwigContext->GetDefaultVars(); $oTwigContext->Render($this, 'forgotpwdsent.html.twig', $aVars); - } - catch(Exception $e) - { + } catch (Exception $e) { $this->DisplayForgotPwdForm(true, $e->getMessage()); } } @@ -304,22 +283,16 @@ class LoginWebPage extends NiceWebPage $aVars['sToken'] = $sToken; $aVars['sErrorMessage'] = $sErrorMessage; - if (($oUser == null)) - { + if (($oUser == null)) { $aVars['bNoUser'] = true; - } - else - { + } else { $aVars['bNoUser'] = false; $aVars['sUserName'] = $oUser->GetFriendlyName(); $oEncryptedToken = $oUser->Get('reset_pwd_token'); - if (!$oEncryptedToken->CheckPassword($sToken)) - { + if (!$oEncryptedToken->CheckPassword($sToken)) { $aVars['bBadToken'] = true; - } - else - { + } else { $aVars['bBadToken'] = false; } } @@ -342,21 +315,15 @@ class LoginWebPage extends NiceWebPage $aVars['sAuthUser'] = $sAuthUser; $aVars['sToken'] = $sToken; - if (($oUser == null)) - { + if (($oUser == null)) { $aVars['bNoUser'] = true; - } - else - { + } else { $aVars['bNoUser'] = false; $oEncryptedToken = $oUser->Get('reset_pwd_token'); - if (!$oEncryptedToken->CheckPassword($sToken)) - { + if (!$oEncryptedToken->CheckPassword($sToken)) { $aVars['bBadToken'] = true; - } - else - { + } else { $aVars['bBadToken'] = false; // Trash the token and change the password $oUser->Set('reset_pwd_token', new ormPassword()); @@ -413,7 +380,7 @@ class LoginWebPage extends NiceWebPage // Note: This will destroy the session, and not just the session data! } - static function SecureConnectionRequired() + public static function SecureConnectionRequired() { return MetaModel::GetConfig()->GetSecureConnectionRequired(); } @@ -423,7 +390,7 @@ class LoginWebPage extends NiceWebPage * @param string $sString * @return bool True if the string contains some typical UTF-8 multi-byte sequences */ - static function LooksLikeUTF8($sString) + public static function LooksLikeUTF8($sString) { return preg_match('%(?: [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte @@ -446,22 +413,19 @@ class LoginWebPage extends NiceWebPage protected static function Login($iOnExit) { self::$iOnExit = $iOnExit; - if (self::SecureConnectionRequired() && !utils::IsConnectionSecure()) - { + if (self::SecureConnectionRequired() && !utils::IsConnectionSecure()) { // Non secured URL... request for a secure connection throw new Exception('Secure connection required!'); } $bLoginDebug = MetaModel::GetConfig()->Get('login_debug'); - if (Session::Get('login_state') == self::LOGIN_STATE_ERROR) - { + if (Session::Get('login_state') == self::LOGIN_STATE_ERROR) { Session::Set('login_state', self::LOGIN_STATE_START); } $sLoginState = Session::Get('login_state'); $sSessionLog = ''; - if ($bLoginDebug) - { + if ($bLoginDebug) { IssueLog::Info("---------------------------------"); IssueLog::Info($_SERVER['REQUEST_URI']); IssueLog::Info("--> Entering Login FSM with state: [$sLoginState]"); @@ -472,38 +436,30 @@ class LoginWebPage extends NiceWebPage $iErrorCode = self::EXIT_CODE_OK; // Finite state machine loop - while (true) - { - try - { + while (true) { + try { $aLoginPlugins = self::GetLoginPluginList(); - if (empty($aLoginPlugins)) - { + if (empty($aLoginPlugins)) { throw new Exception("Missing login classes"); } /** @var iLoginFSMExtension $oLoginFSMExtensionInstance */ - foreach ($aLoginPlugins as $oLoginFSMExtensionInstance) - { - if ($bLoginDebug) - { + foreach ($aLoginPlugins as $oLoginFSMExtensionInstance) { + if ($bLoginDebug) { $sCurrSessionLog = session_id().' '.utils::GetSessionLog(); - if ($sCurrSessionLog != $sSessionLog) - { + if ($sCurrSessionLog != $sSessionLog) { $sSessionLog = $sCurrSessionLog; IssueLog::Info("SESSION: $sSessionLog"); } IssueLog::Info("Login: state: [$sLoginState] call: ".get_class($oLoginFSMExtensionInstance)); } $iResponse = $oLoginFSMExtensionInstance->LoginAction($sLoginState, $iErrorCode); - if ($iResponse == self::LOGIN_FSM_RETURN) - { + if ($iResponse == self::LOGIN_FSM_RETURN) { EventService::FireEvent(new EventData(EVENT_LOGIN, null, ['code' => $iErrorCode, 'state' => $sLoginState])); Session::WriteClose(); return $iErrorCode; // Asked to exit FSM, generally login OK } - if ($iResponse == self::LOGIN_FSM_ERROR) - { + if ($iResponse == self::LOGIN_FSM_ERROR) { EventService::FireEvent(new EventData(EVENT_LOGIN, null, ['code' => $iErrorCode, 'state' => $sLoginState])); $sLoginState = self::LOGIN_STATE_SET_ERROR; // Next state will be error // An error was detected, skip the other plugins turn @@ -515,9 +471,7 @@ class LoginWebPage extends NiceWebPage // Every plugin has nothing else to do in this state, go forward $sLoginState = self::AdvanceLoginFSMState($sLoginState); Session::Set('login_state', $sLoginState); - } - catch (Exception $e) - { + } catch (Exception $e) { EventService::FireEvent(new EventData(EVENT_LOGIN, null, ['state' => $_SESSION['login_state']])); IssueLog::Error($e->getTraceAsString()); static::ResetSession(); @@ -537,30 +491,23 @@ class LoginWebPage extends NiceWebPage */ public static function GetLoginPluginList($sInterface = 'iLoginFSMExtension', $bFilterWithMode = true) { - $aAllPlugins = array(); + $aAllPlugins = []; - if ($bFilterWithMode) - { + if ($bFilterWithMode) { $sCurrentLoginMode = Session::Get('login_mode', ''); - } - else - { + } else { $sCurrentLoginMode = ''; } /** @var iLoginExtension $oLoginExtensionInstance */ - foreach (MetaModel::EnumPlugins($sInterface) as $oLoginExtensionInstance) - { + foreach (MetaModel::EnumPlugins($sInterface) as $oLoginExtensionInstance) { $aLoginModes = $oLoginExtensionInstance->ListSupportedLoginModes(); - $aLoginModes = (is_array($aLoginModes) ? $aLoginModes : array()); - foreach ($aLoginModes as $sLoginMode) - { + $aLoginModes = (is_array($aLoginModes) ? $aLoginModes : []); + foreach ($aLoginModes as $sLoginMode) { // Keep only the plugins for the current login mode + before + after - if (empty($sCurrentLoginMode) || ($sLoginMode == $sCurrentLoginMode) || ($sLoginMode == 'before') || ($sLoginMode == 'after')) - { - if (!isset($aAllPlugins[$sLoginMode])) - { - $aAllPlugins[$sLoginMode] = array(); + if (empty($sCurrentLoginMode) || ($sLoginMode == $sCurrentLoginMode) || ($sLoginMode == 'before') || ($sLoginMode == 'after')) { + if (!isset($aAllPlugins[$sLoginMode])) { + $aAllPlugins[$sLoginMode] = []; } $aAllPlugins[$sLoginMode][] = $oLoginExtensionInstance; break; // Stop here to avoid registering a plugin twice @@ -569,12 +516,10 @@ class LoginWebPage extends NiceWebPage } // Order and filter by the config list of allowed types (allowed_login_types) - $aAllowedLoginModes = array_merge(array('before'), MetaModel::GetConfig()->GetAllowedLoginTypes(), array('after')); - $aPlugins = array(); - foreach ($aAllowedLoginModes as $sAllowedMode) - { - if (isset($aAllPlugins[$sAllowedMode])) - { + $aAllowedLoginModes = array_merge(['before'], MetaModel::GetConfig()->GetAllowedLoginTypes(), ['after']); + $aPlugins = []; + foreach ($aAllowedLoginModes as $sAllowedMode) { + if (isset($aAllPlugins[$sAllowedMode])) { $aPlugins = array_merge($aPlugins, $aAllPlugins[$sAllowedMode]); } } @@ -590,8 +535,7 @@ class LoginWebPage extends NiceWebPage */ private static function AdvanceLoginFSMState($sLoginState) { - switch ($sLoginState) - { + switch ($sLoginState) { case self::LOGIN_STATE_START: return self::LOGIN_STATE_MODE_DETECTION; @@ -638,8 +582,7 @@ class LoginWebPage extends NiceWebPage public static function CheckUser($sAuthUser, $sAuthPassword = '', $sAuthentication = 'external') { $oUser = self::FindUser($sAuthUser, true, ucfirst(strtolower($sAuthentication))); - if (is_null($oUser)) - { + if (is_null($oUser)) { return false; } @@ -668,8 +611,7 @@ class LoginWebPage extends NiceWebPage { // User is Ok, let's save it in the session and proceed with normal login $bLoginSuccess = UserRights::Login($sAuthUser, $sAuthentication); // Login & set the user's language - if (!$bLoginSuccess) - { + if (!$bLoginSuccess) { throw new Exception("Bad user"); } if (MetaModel::GetConfig()->Get('log_usage')) { @@ -696,12 +638,10 @@ class LoginWebPage extends NiceWebPage */ public static function CheckLoggedUser(&$iErrorCode) { - if (Session::IsSet('auth_user')) - { + if (Session::IsSet('auth_user')) { // Already authenticated $bRet = UserRights::Login(Session::Get('auth_user')); // Login & set the user's language - if ($bRet) - { + if ($bRet) { $iErrorCode = self::EXIT_CODE_OK; return self::LOGIN_FSM_RETURN; } @@ -727,8 +667,7 @@ class LoginWebPage extends NiceWebPage public static function SetLoginModeAndReload($sNewLoginMode) { - if (Session::Get('login_mode') == $sNewLoginMode) - { + if (Session::Get('login_mode') == $sNewLoginMode) { return; } Session::Set('login_mode', $sNewLoginMode); @@ -738,8 +677,7 @@ class LoginWebPage extends NiceWebPage public static function HTTPReload() { $sOriginURL = utils::GetCurrentAbsoluteUrl(); - if (!utils::StartsWith($sOriginURL, utils::GetAbsoluteUrlAppRoot())) - { + if (!utils::StartsWith($sOriginURL, utils::GetAbsoluteUrlAppRoot())) { // If the found URL does not start with the configured AppRoot URL $sOriginURL = utils::GetAbsoluteUrlAppRoot().'pages/UI.php'; } @@ -753,7 +691,6 @@ class LoginWebPage extends NiceWebPage exit; } - /** * Provisioning API: Find a User * @@ -767,33 +704,28 @@ class LoginWebPage extends NiceWebPage */ public static function FindUser($sAuthUser, $bMustBeValid = true, $sType = 'External') { - try - { - $aArgs = array('login' => $sAuthUser); + try { + $aArgs = ['login' => $sAuthUser]; $sUserClass = "User$sType"; $oSearch = DBObjectSearch::FromOQL("SELECT $sUserClass WHERE login = :login"); - if ($bMustBeValid) - { + if ($bMustBeValid) { $oSearch->AddCondition('status', 'enabled'); } - $oSet = new DBObjectSet($oSearch, array(), $aArgs); - if ($oSet->CountExceeds(0)) - { + $oSet = new DBObjectSet($oSearch, [], $aArgs); + if ($oSet->CountExceeds(0)) { /** @var User $oUser */ $oUser = $oSet->Fetch(); return $oUser; } - } - catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error($e->getMessage()); } return null; } /** - * Provisioning API: Find a Person by email + * Provisioning API: Find a Person by email * * @api * @@ -805,19 +737,15 @@ class LoginWebPage extends NiceWebPage { /** @var \Person $oPerson */ $oPerson = null; - try - { + try { $oSearch = new DBObjectSearch('Person'); $oSearch->AddCondition('email', $sEmail); $oSet = new DBObjectSet($oSearch); - if ($oSet->CountExceeds(1)) - { + if ($oSet->CountExceeds(1)) { throw new Exception(Dict::S('UI:Login:Error:MultipleContactsHaveSameEmail')); } $oPerson = $oSet->Fetch(); - } - catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error($e->getMessage()); } return $oPerson; @@ -836,16 +764,14 @@ class LoginWebPage extends NiceWebPage * * @return \Person */ - public static function ProvisionPerson($sFirstName, $sLastName, $sEmail, $sOrganization, $aAdditionalParams = array()) + public static function ProvisionPerson($sFirstName, $sLastName, $sEmail, $sOrganization, $aAdditionalParams = []) { /** @var Person $oPerson */ $oPerson = null; - try - { + try { CMDBObject::SetTrackOrigin('custom-extension'); $sInfo = 'External User provisioning'; - if (Session::IsSet('login_mode')) - { + if (Session::IsSet('login_mode')) { $sInfo .= " (".Session::Get('login_mode').")"; } CMDBObject::SetTrackInfo($sInfo); @@ -855,19 +781,15 @@ class LoginWebPage extends NiceWebPage $oPerson->Set('name', $sLastName); $oPerson->Set('email', $sEmail); $oOrg = MetaModel::GetObjectByName('Organization', $sOrganization, false); - if (is_null($oOrg)) - { + if (is_null($oOrg)) { throw new Exception(Dict::S('UI:Login:Error:WrongOrganizationName')); } $oPerson->Set('org_id', $oOrg->GetKey()); - foreach ($aAdditionalParams as $sAttCode => $sValue) - { + foreach ($aAdditionalParams as $sAttCode => $sValue) { $oPerson->Set($sAttCode, $sValue); } $oPerson->DBInsert(); - } - catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error($e->getMessage()); } return $oPerson; @@ -886,27 +808,23 @@ class LoginWebPage extends NiceWebPage */ public static function ProvisionUser($sAuthUser, $oPerson, $aRequestedProfiles) { - if (!MetaModel::IsValidClass('URP_Profiles')) - { + if (!MetaModel::IsValidClass('URP_Profiles')) { IssueLog::Error("URP_Profiles is not a valid class. Automatic creation of Users is not supported in this context, sorry."); return null; } /** @var UserExternal $oUser */ $oUser = null; - try - { + try { CMDBObject::SetTrackOrigin('custom-extension'); $sInfo = 'External User provisioning'; - if (Session::IsSet('login_mode')) - { + if (Session::IsSet('login_mode')) { $sInfo .= " (".Session::Get('login_mode').")"; } CMDBObject::SetTrackInfo($sInfo); $oUser = MetaModel::GetObjectByName('UserExternal', $sAuthUser, false); - if (is_null($oUser)) - { + if (is_null($oUser)) { $oUser = MetaModel::NewObject('UserExternal'); $oUser->Set('login', $sAuthUser); $oUser->Set('contactid', $oPerson->GetKey()); @@ -916,41 +834,33 @@ class LoginWebPage extends NiceWebPage // read all the existing profiles $oProfilesSearch = new DBObjectSearch('URP_Profiles'); $oProfilesSet = new DBObjectSet($oProfilesSearch); - $aAllProfiles = array(); - while ($oProfile = $oProfilesSet->Fetch()) - { + $aAllProfiles = []; + while ($oProfile = $oProfilesSet->Fetch()) { $aAllProfiles[mb_strtolower($oProfile->GetName())] = $oProfile->GetKey(); } - $aProfiles = array(); - foreach ($aRequestedProfiles as $sRequestedProfile) - { + $aProfiles = []; + foreach ($aRequestedProfiles as $sRequestedProfile) { $sRequestedProfile = mb_strtolower($sRequestedProfile); - if (isset($aAllProfiles[$sRequestedProfile])) - { + if (isset($aAllProfiles[$sRequestedProfile])) { $aProfiles[] = $aAllProfiles[$sRequestedProfile]; } } - if (empty($aProfiles)) - { + if (empty($aProfiles)) { throw new Exception(Dict::S('UI:Login:Error:NoValidProfiles')); } // Now synchronize the profiles $sOrigin = 'External User provisioning'; - if (Session::IsSet('login_mode')) - { + if (Session::IsSet('login_mode')) { $sOrigin .= " (".Session::Get('login_mode').")"; } $aExistingProfiles = self::SynchronizeProfiles($oUser, $aProfiles, $sOrigin); - if ($oUser->IsModified()) - { + if ($oUser->IsModified()) { $oUser->DBWrite(); } - } - catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error($e->getMessage()); } @@ -961,26 +871,18 @@ class LoginWebPage extends NiceWebPage * Overridable: depending on the user, head toward a dedicated portal * @param string|null $sRequestedPortalId * @param int $iOnExit How to complete the call: redirect or return a code - */ + */ protected static function ChangeLocation($sRequestedPortalId = null, $iOnExit = self::EXIT_PROMPT) { - $ret = call_user_func(array(self::$sHandlerClass, 'Dispatch'), $sRequestedPortalId); - if ($ret === true) - { + $ret = call_user_func([self::$sHandlerClass, 'Dispatch'], $sRequestedPortalId); + if ($ret === true) { return self::EXIT_CODE_OK; - } - else if($ret === false) - { + } elseif ($ret === false) { throw new Exception('Nowhere to go: Your combination of user Profiles denies you access to any '.ITOP_APPLICATION_SHORT.' portal. Please contact your administrator'); - } - else - { - if ($iOnExit == self::EXIT_RETURN) - { + } else { + if ($iOnExit == self::EXIT_RETURN) { return self::EXIT_CODE_PORTALUSERNOTAUTHORIZED; - } - else - { + } else { // No rights to be here, redirect to the portal header('Location: '.$ret); die(); @@ -1002,7 +904,7 @@ class LoginWebPage extends NiceWebPage * @return int|mixed|string * @throws \Exception */ - static function DoLogin($bMustBeAdmin = false, $bIsAllowedToPortalUsers = false, $iOnExit = self::EXIT_PROMPT) + public static function DoLogin($bMustBeAdmin = false, $bIsAllowedToPortalUsers = false, $iOnExit = self::EXIT_PROMPT) { $sRequestedPortalId = $bIsAllowedToPortalUsers ? 'legacy_portal' : 'backoffice'; return self::DoLoginEx($sRequestedPortalId, $bMustBeAdmin, $iOnExit); @@ -1019,23 +921,18 @@ class LoginWebPage extends NiceWebPage * @return int|mixed|string * @throws \Exception */ - static function DoLoginEx($sRequestedPortalId = null, $bMustBeAdmin = false, $iOnExit = self::EXIT_PROMPT) + public static function DoLoginEx($sRequestedPortalId = null, $bMustBeAdmin = false, $iOnExit = self::EXIT_PROMPT) { $operation = utils::ReadParam('loginop', ''); - + $sMessage = self::HandleOperations($operation); // May exit directly - + $iRet = self::Login($iOnExit); - if ($iRet == self::EXIT_CODE_OK) - { - if ($bMustBeAdmin && !UserRights::IsAdministrator()) - { - if ($iOnExit == self::EXIT_RETURN) - { + if ($iRet == self::EXIT_CODE_OK) { + if ($bMustBeAdmin && !UserRights::IsAdministrator()) { + if ($iOnExit == self::EXIT_RETURN) { return self::EXIT_CODE_MUSTBEADMIN; - } - else - { + } else { require_once(APPROOT.'/setup/setuppage.class.inc.php'); $oP = new ErrorPage(Dict::S('UI:PageTitle:FatalError')); $oP->add("

".Dict::S('UI:Login:Error:AccessAdmin')."

\n"); @@ -1044,69 +941,52 @@ class LoginWebPage extends NiceWebPage exit; } } - $iRet = call_user_func(array(self::$sHandlerClass, 'ChangeLocation'), $sRequestedPortalId, $iOnExit); + $iRet = call_user_func([self::$sHandlerClass, 'ChangeLocation'], $sRequestedPortalId, $iOnExit); } - if ($iOnExit == self::EXIT_RETURN) - { + if ($iOnExit == self::EXIT_RETURN) { return $iRet; - } - else - { + } else { return $sMessage; } - } + } protected static function HandleOperations($operation) { $sMessage = ''; // most of the operations never return, but some can return a message to be displayed - if ($operation == 'logoff') - { + if ($operation == 'logoff') { self::ResetSession(); $oPage = self::NewLoginWebPage(); $oPage->DisplayLoginForm(false /* not a failed attempt */); $oPage->output(); exit; - } - else if ($operation == 'forgot_pwd') - { + } elseif ($operation == 'forgot_pwd') { $oPage = self::NewLoginWebPage(); $oPage->DisplayForgotPwdForm(); $oPage->output(); exit; - } - else if ($operation == 'forgot_pwd_go') - { + } elseif ($operation == 'forgot_pwd_go') { $oPage = self::NewLoginWebPage(); $oPage->ForgotPwdGo(); $oPage->output(); exit; - } - else if ($operation == 'reset_pwd') - { + } elseif ($operation == 'reset_pwd') { $oPage = self::NewLoginWebPage(); $oPage->DisplayResetPwdForm(); $oPage->output(); exit; - } - else if ($operation == 'do_reset_pwd') - { + } elseif ($operation == 'do_reset_pwd') { try { $oPage = self::NewLoginWebPage(); $oPage->DoResetPassword(); - } - catch (CoreCannotSaveObjectException $e) - { + } catch (CoreCannotSaveObjectException $e) { $oPage = self::NewLoginWebPage(); $oPage->DisplayResetPwdForm($e->getIssue()); } $oPage->output(); exit; - } - else if ($operation == 'change_pwd') - { - if (Session::IsSet('auth_user')) - { + } elseif ($operation == 'change_pwd') { + if (Session::IsSet('auth_user')) { $sAuthUser = Session::Get('auth_user'); $sIssue = Session::Get('pwd_issue'); Session::Unset('pwd_issue'); @@ -1118,16 +998,13 @@ class LoginWebPage extends NiceWebPage $oPage->output(); exit; } - } - else if ($operation == 'check_pwd_policy') - { + } elseif ($operation == 'check_pwd_policy') { $sAuthUser = Session::Get('auth_user'); UserRights::Login($sAuthUser); // Set the user's language - $aPwdMap = array(); + $aPwdMap = []; - foreach (array('new_pwd', 'retype_new_pwd') as $postedPwd) - { + foreach (['new_pwd', 'retype_new_pwd'] as $postedPwd) { $oUser = new UserLocal(); $oUser->ValidatePassword($_POST[$postedPwd]); @@ -1137,27 +1014,21 @@ class LoginWebPage extends NiceWebPage echo json_encode($aPwdMap); die(); } - if ($operation == 'do_change_pwd') - { - if (Session::IsSet('auth_user')) - { + if ($operation == 'do_change_pwd') { + if (Session::IsSet('auth_user')) { $sAuthUser = Session::Get('auth_user'); UserRights::Login($sAuthUser); // Set the user's language $sOldPwd = utils::ReadPostedParam('old_pwd', '', 'raw_data'); $sNewPwd = utils::ReadPostedParam('new_pwd', '', 'raw_data'); - try - { - if (UserRights::CanChangePassword() && ((!UserRights::CheckCredentials($sAuthUser, $sOldPwd)) || (!UserRights::ChangePassword($sOldPwd, $sNewPwd)))) - { + try { + if (UserRights::CanChangePassword() && ((!UserRights::CheckCredentials($sAuthUser, $sOldPwd)) || (!UserRights::ChangePassword($sOldPwd, $sNewPwd)))) { $oPage = self::NewLoginWebPage(); $oPage->DisplayChangePwdForm(true); // old pwd was wrong $oPage->output(); exit; } - } - catch (CoreCannotSaveObjectException $e) - { + } catch (CoreCannotSaveObjectException $e) { $oPage = self::NewLoginWebPage(); $oPage->DisplayChangePwdForm(true, $e->getIssue()); // password policy was not met. $oPage->output(); @@ -1168,26 +1039,27 @@ class LoginWebPage extends NiceWebPage } return $sMessage; } - + protected static function Dispatch($sRequestedPortalId) { - if ($sRequestedPortalId === null) return true; // allowed to any portal => return true - + if ($sRequestedPortalId === null) { + return true; + } // allowed to any portal => return true + $aPortalsConf = PortalDispatcherData::GetData(); - $aDispatchers = array(); - foreach($aPortalsConf as $sPortalId => $aConf) - { + $aDispatchers = []; + foreach ($aPortalsConf as $sPortalId => $aConf) { $sHandlerClass = $aConf['handler']; $aDispatchers[$sPortalId] = new $sHandlerClass($sPortalId); } - - if (array_key_exists($sRequestedPortalId, $aDispatchers) && $aDispatchers[$sRequestedPortalId]->IsUserAllowed()) - { + + if (array_key_exists($sRequestedPortalId, $aDispatchers) && $aDispatchers[$sRequestedPortalId]->IsUserAllowed()) { return true; } - foreach($aDispatchers as $sPortalId => $oDispatcher) - { - if ($oDispatcher->IsUserAllowed()) return $oDispatcher->GetUrl(); + foreach ($aDispatchers as $sPortalId => $oDispatcher) { + if ($oDispatcher->IsUserAllowed()) { + return $oDispatcher->GetUrl(); + } } return false; // nothing matched !! } diff --git a/application/maintenancemsg.php b/application/maintenancemsg.php index 022e56acf..186eea8df 100644 --- a/application/maintenancemsg.php +++ b/application/maintenancemsg.php @@ -1,4 +1,5 @@ p("

$sMessage

"); $oP->add_ready_script( -<<output(); - } - else - { + } else { _MaintenanceTextMessage($sMessage); } } @@ -78,14 +74,13 @@ function _MaintenanceHtmlMessage($sMessage) */ function _MaintenanceJsonMessage($sTitle, $sMessage) { - if (class_exists('JsonPage')) - { + if (class_exists('JsonPage')) { $oP = new JsonPage($sTitle); $oP->add_header('Access-Control-Allow-Origin: *'); $aMessage = [ 'code' => 100, - 'message' =>$sMessage + 'message' => $sMessage, ]; $oP->AddData($aMessage); diff --git a/application/newsroomprovider.class.inc.php b/application/newsroomprovider.class.inc.php index 8d5ae669d..dcdbf8b54 100644 --- a/application/newsroomprovider.class.inc.php +++ b/application/newsroomprovider.class.inc.php @@ -1,4 +1,5 @@ value to be replaced in URL of the messages * Example: '%itop_root%' => utils::GetAbsoluteUrlAppRoot(); * @return string[] */ public function GetPlaceholders(); - + /** * The duration between to refreshes of the cache (in seconds) * @return int @@ -90,19 +91,19 @@ abstract class NewsroomProviderBase implements iNewsroomProvider * @var Config */ protected $oConfig; - + public function __construct() { $this->oConfig = null; } - + /** * {@inheritDoc} * @see iNewsroomProvider::SetConfig() */ public function SetConfig(Config $oConfig) { - $this->oConfig = $oConfig; + $this->oConfig = $oConfig; } /** @@ -118,42 +119,42 @@ abstract class NewsroomProviderBase implements iNewsroomProvider * {@inheritDoc} * @see iNewsroomProvider::GetLabel() */ - public abstract function GetLabel(); - + abstract public function GetLabel(); + /** * {@inheritDoc} * @see iNewsroomProvider::GetFetchURL() */ - public abstract function GetFetchURL(); + abstract public function GetFetchURL(); /** * {@inheritDoc} * @see iNewsroomProvider::GetMarkAllURL() */ - public abstract function GetMarkAllAsReadURL(); + abstract public function GetMarkAllAsReadURL(); /** * {@inheritDoc} * @see iNewsroomProvider::GetViewAllURL() */ - public abstract function GetViewAllURL(); + abstract public function GetViewAllURL(); public function IsApplicable(User $oUser = null) { return false; } - + /** * {@inheritDoc} * @see iNewsroomProvider::GetPlaceholders() */ public function GetPlaceholders() { - return array(); // By default, empty set of placeholders + return []; // By default, empty set of placeholders } - + public function GetTTL() { - return 10*60; // Refresh every 10 minutes + return 10 * 60; // Refresh every 10 minutes } } diff --git a/application/portaldispatcher.class.inc.php b/application/portaldispatcher.class.inc.php index 432091717..99da26041 100644 --- a/application/portaldispatcher.class.inc.php +++ b/application/portaldispatcher.class.inc.php @@ -1,9 +1,10 @@ sPortalid = $sPortalId; @@ -20,53 +21,45 @@ class PortalDispatcher { $bRet = true; $aProfiles = UserRights::ListProfiles($oUser); - - foreach($this->aData['deny'] as $sDeniedProfile) - { + + foreach ($this->aData['deny'] as $sDeniedProfile) { // If one denied profile is present, it's enough => return false - if (in_array($sDeniedProfile, $aProfiles)) - { + if (in_array($sDeniedProfile, $aProfiles)) { return false; } } // If there are some "allow" profiles, then by default the result is false // since the user must have at least one of the profiles to be allowed - if (count($this->aData['allow']) > 0) - { + if (count($this->aData['allow']) > 0) { $bRet = false; } - foreach($this->aData['allow'] as $sAllowProfile) - { + foreach ($this->aData['allow'] as $sAllowProfile) { // If one "allow" profile is present, it's enough => return true - if (in_array($sAllowProfile, $aProfiles)) - { + if (in_array($sAllowProfile, $aProfiles)) { return true; } } return $bRet; } - + public function GetURL() { $aOverloads = MetaModel::GetConfig()->Get('portal_dispatch_urls'); - if (array_key_exists($this->sPortalid, $aOverloads)) - { + if (array_key_exists($this->sPortalid, $aOverloads)) { $sRet = $aOverloads[$this->sPortalid]; - } - else - { + } else { $sRet = utils::GetAbsoluteUrlAppRoot().$this->aData['url']; } return $sRet; } - + public function GetLabel() { return Dict::S('portal:'.$this->sPortalid); } - + public function GetRank() { return $this->aData['rank']; } -} \ No newline at end of file +} diff --git a/application/shortcut.class.inc.php b/application/shortcut.class.inc.php index a213cb8cd..7867b5d59 100644 --- a/application/shortcut.class.inc.php +++ b/application/shortcut.class.inc.php @@ -1,9 +1,10 @@ "gui,view_in_gui", "key_type" => "autoincrement", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_shortcut", "db_key_field" => "id", "db_finalclass_field" => "realclass", - ); + ]; MetaModel::Init_Params($aParams); //MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", array("targetclass"=>"User", "allowed_values"=>null, "sql"=>"user_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeText("context", array("allowed_values"=>null, "sql"=>"context", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", ["targetclass" => "User", "allowed_values" => null, "sql" => "user_id", "is_null_allowed" => true, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("name", ["allowed_values" => null, "sql" => "name", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeText("context", ["allowed_values" => null, "sql" => "context", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('name', 'context')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('name')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['name', 'context']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['name']); // Attributes to be displayed for a list // Search criteria -// MetaModel::Init_SetZListItems('standard_search', array('name')); // Criteria of the std search form -// MetaModel::Init_SetZListItems('advanced_search', array('name')); // Criteria of the advanced search form + // MetaModel::Init_SetZListItems('standard_search', array('name')); // Criteria of the std search form + // MetaModel::Init_SetZListItems('advanced_search', array('name')); // Criteria of the advanced search form } - abstract public function RenderContent(WebPage $oPage, $aExtraParams = array()); + abstract public function RenderContent(WebPage $oPage, $aExtraParams = []); protected function OnInsert() { @@ -74,14 +74,14 @@ abstract class Shortcut extends DBObject implements iDisplay $oForm->AddField($oField); $oForm->Render($oPage); $oPage->add(''); - + $sDialogTitle = Dict::S('UI:ShortcutRenameDlg:Title'); $sOkButtonLabel = Dict::S('UI:Button:Ok'); $sCancelButtonLabel = Dict::S('UI:Button:Cancel'); $iShortcut = $this->GetKey(); - + $oPage->add_ready_script( -<< "gui,view_in_gui", "key_type" => "autoincrement", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_shortcut_oql", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeOQL("oql", array("allowed_values"=>null, "sql"=>"oql", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeEnum("auto_reload", array("allowed_values"=>new ValueSetEnum('none,custom'), "sql"=>"auto_reload", "default_value"=>"none", "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeInteger("auto_reload_sec", array("allowed_values"=>null, "sql"=>"auto_reload_sec", "default_value"=>60, "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeOQL("oql", ["allowed_values" => null, "sql" => "oql", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeEnum("auto_reload", ["allowed_values" => new ValueSetEnum('none,custom'), "sql" => "auto_reload", "default_value" => "none", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeInteger("auto_reload_sec", ["allowed_values" => null, "sql" => "auto_reload_sec", "default_value" => 60, "is_null_allowed" => false, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('name', 'context', 'oql')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('name')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['name', 'context', 'oql']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['name']); // Attributes to be displayed for a list // Search criteria -// MetaModel::Init_SetZListItems('standard_search', array('name')); // Criteria of the std search form -// MetaModel::Init_SetZListItems('advanced_search', array('name')); // Criteria of the advanced search form + // MetaModel::Init_SetZListItems('standard_search', array('name')); // Criteria of the std search form + // MetaModel::Init_SetZListItems('advanced_search', array('name')); // Criteria of the advanced search form } - public function RenderContent(WebPage $oPage, $aExtraParams = array()) + public function RenderContent(WebPage $oPage, $aExtraParams = []) { $oPage->set_title($this->Get('name')); - switch($this->Get('auto_reload')) - { - case 'custom': - $iRate = (int)$this->Get('auto_reload_sec'); - if ($iRate > 0) - { - // Must a string otherwise it can be evaluated to 'true' and defaults to "standard" refresh rate! - $aExtraParams['auto_reload'] = (string)$iRate; - } - break; + switch ($this->Get('auto_reload')) { + case 'custom': + $iRate = (int)$this->Get('auto_reload_sec'); + if ($iRate > 0) { + // Must a string otherwise it can be evaluated to 'true' and defaults to "standard" refresh rate! + $aExtraParams['auto_reload'] = (string)$iRate; + } + break; - default: - case 'none': + default: + case 'none': } $bSearchPane = true; $bSearchOpen = true; - try - { + try { OQLMenuNode::RenderOQLSearch($this->Get('oql'), $this->Get('name'), 'shortcut_'.$this->GetKey(), $bSearchPane, $bSearchOpen, $oPage, $aExtraParams, true); - } - catch (Exception $e) - { + } catch (Exception $e) { throw new Exception("The OQL shortcut '".$this->Get('name')."' (id: ".$this->GetKey().") could not be displayed: ".$e->getMessage()); } - + } public function CloneTableSettings($sTableSettings) @@ -226,17 +221,14 @@ class ShortcutOQL extends Shortcut // Find a unique default name // -> The class of the query + an index if necessary - if ($sOQL == null) - { + if ($sOQL == null) { $sDefault = ''; - } - else - { + } else { $oBMSearch = new DBObjectSearch('Shortcut'); $oBMSearch->AddCondition('user_id', UserRights::GetUserId(), '='); $oBMSet = new DBObjectSet($oBMSearch); $aNames = $oBMSet->GetColumnAsArray('name'); - $oSearch = DBObjectSearch::FromOQL($sOQL); + $oSearch = DBObjectSearch::FromOQL($sOQL); $sDefault = utils::MakeUniqueName($oSearch->GetClass(), $aNames); } @@ -276,18 +268,18 @@ class ShortcutOQL extends Shortcut $oForm->Render($oPage); $oPage->add(''); - + $sDialogTitle = Dict::S('UI:ShortcutListDlg:Title'); $sOkButtonLabel = Dict::S('UI:Button:Ok'); $sCancelButtonLabel = Dict::S('UI:Button:Cancel'); - + $oAppContext = new ApplicationContext(); $sContext = $oAppContext->GetForLink(); $sRateTitle = addslashes(Dict::Format('Class:ShortcutOQL/Attribute:auto_reload_sec/tip', MetaModel::GetConfig()->Get('min_reload_interval'))); $oPage->add_ready_script( -<<ComputeAndReport("Session Start"); $sSwitchEnv = utils::ReadParam('switch_env', null); $bAllowCache = true; -if (($sSwitchEnv != null) && file_exists(APPCONF.$sSwitchEnv.'/'.ITOP_CONFIG_FILE) &&( Session::Get('itop_env') !== $sSwitchEnv)) -{ +if (($sSwitchEnv != null) && file_exists(APPCONF.$sSwitchEnv.'/'.ITOP_CONFIG_FILE) && (Session::Get('itop_env') !== $sSwitchEnv)) { Session::Set('itop_env', $sSwitchEnv); $sEnv = $sSwitchEnv; - $bAllowCache = false; - // Reset the opcache since otherwise the PHP "model" files may still be cached !! - if (function_exists('opcache_reset')) - { - // Zend opcode cache - opcache_reset(); - } - if (function_exists('apc_clear_cache')) - { - // APC(u) cache - apc_clear_cache(); - } + $bAllowCache = false; + // Reset the opcache since otherwise the PHP "model" files may still be cached !! + if (function_exists('opcache_reset')) { + // Zend opcode cache + opcache_reset(); + } + if (function_exists('apc_clear_cache')) { + // APC(u) cache + apc_clear_cache(); + } // TODO: reset the credentials as well ?? -} -else if (Session::IsSet('itop_env')) -{ +} elseif (Session::IsSet('itop_env')) { $sEnv = Session::Get('itop_env'); -} -else -{ +} else { $sEnv = ITOP_DEFAULT_ENV; Session::Set('itop_env', ITOP_DEFAULT_ENV); } $sConfigFile = APPCONF.$sEnv.'/'.ITOP_CONFIG_FILE; try { - MetaModel::Startup($sConfigFile, false /* $bModelOnly */, $bAllowCache, false /* $bTraceSourceFiles */, $sEnv); + MetaModel::Startup($sConfigFile, false /* $bModelOnly */, $bAllowCache, false /* $bTraceSourceFiles */, $sEnv); +} catch (MySQLException $e) { + IssueLog::Debug($e->getMessage()); + throw new MySQLException('Could not connect to the DB server', []); } -catch (MySQLException $e) { - IssueLog::Debug($e->getMessage()); - throw new MySQLException('Could not connect to the DB server', []); -} \ No newline at end of file diff --git a/application/themehandler.class.inc.php b/application/themehandler.class.inc.php index 933e736c5..436417ccb 100644 --- a/application/themehandler.class.inc.php +++ b/application/themehandler.class.inc.php @@ -1,4 +1,5 @@ [], 'stylesheets' => [ 'main' => '../css/backoffice/main.scss', - ] + ], ], ]; } @@ -63,8 +64,7 @@ class ThemeHandler { try { $sThemeId = utils::GetConfig()->Get('backoffice_default_theme'); - } - catch (CoreException $oCompileException) { + } catch (CoreException $oCompileException) { // Fallback on our default theme in case the config. is not available yet $aDefaultTheme = ThemeHandler::GetDefaultThemeInformation(); $sThemeId = $aDefaultTheme['name']; @@ -85,8 +85,7 @@ class ThemeHandler if (true === utils::GetConfig()->Get('user_preferences.allow_backoffice_theme_override')) { $sThemeId = appUserPreferences::GetPref('backoffice_theme', null); } - } - catch (Exception $oException) { + } catch (Exception $oException) { // Do nothing, already handled by $sThemeId null by default } @@ -201,8 +200,7 @@ class ThemeHandler if (static::ShouldThemeSignatureCheckBeForced($sThemeId)) { static::CompileTheme($sThemeId); } - } - catch (CoreException $oCompileException) { + } catch (CoreException $oCompileException) { // Fallback on our default theme (should always be compilable) in case the previous theme doesn't exists $aDefaultTheme = ThemeHandler::GetDefaultThemeInformation(); $sThemeId = $aDefaultTheme['name']; @@ -258,13 +256,16 @@ class ThemeHandler * @throws \CoreException * @return boolean: indicate whether theme compilation occured */ - public static function CompileTheme($sThemeId, $bSetup=false, $sSetupCompilationTimestamp="", $aThemeParameters = null, $aImportsPaths = null, $sWorkingPath = null) { + public static function CompileTheme($sThemeId, $bSetup = false, $sSetupCompilationTimestamp = "", $aThemeParameters = null, $aImportsPaths = null, $sWorkingPath = null) + { if ($sSetupCompilationTimestamp === "") { $sSetupCompilationTimestamp = microtime(true); } - $sSetupCompilationTimestampInSecunds = (strpos($sSetupCompilationTimestamp, '.') !== false) ? explode('.', - $sSetupCompilationTimestamp)[0] : $sSetupCompilationTimestamp; + $sSetupCompilationTimestampInSecunds = (strpos($sSetupCompilationTimestamp, '.') !== false) ? explode( + '.', + $sSetupCompilationTimestamp + )[0] : $sSetupCompilationTimestamp; $sEnv = APPROOT.'env-'.utils::GetCurrentEnvironment().'/'; @@ -317,7 +318,7 @@ class ThemeHandler } } - foreach ($oFindStylesheetObject->GetStylesheetFileURIs() as $sStylesheet){ + foreach ($oFindStylesheetObject->GetStylesheetFileURIs() as $sStylesheet) { $sTmpThemeScssContent .= '@import "'.$sStylesheet.'";'."\n"; } @@ -329,11 +330,9 @@ class ThemeHandler $iStyleLastModified = $oFindStylesheetObject->GetLastModified(); - $aIncludedImages=static::GetIncludedImages($aThemeParametersWithVersion, $oFindStylesheetObject->GetAllStylesheetPaths(), $sThemeId); - foreach ($aIncludedImages as $sImage) - { - if (is_file($sImage)) - { + $aIncludedImages = static::GetIncludedImages($aThemeParametersWithVersion, $oFindStylesheetObject->GetAllStylesheetPaths(), $sThemeId); + foreach ($aIncludedImages as $sImage) { + if (is_file($sImage)) { $iStylesheetLastModified = @filemtime($sImage); $iStyleLastModified = $iStyleLastModified < $iStylesheetLastModified ? $iStylesheetLastModified : $iStyleLastModified; } @@ -342,34 +341,28 @@ class ThemeHandler // Checking if our compiled css is outdated $iFilemetime = @filemtime($sThemeCssPath); $bFileExists = file_exists($sThemeCssPath); - $bVarSignatureChanged=false; - if ($bFileExists && $bSetup) - { + $bVarSignatureChanged = false; + if ($bFileExists && $bSetup) { $sPrecompiledSignature = static::GetSignature($sThemeCssPath); //check variable signature has changed which is independant from any file modification - if (!empty($sPrecompiledSignature)){ + if (!empty($sPrecompiledSignature)) { $sPreviousVariableSignature = static::GetVarSignature($sPrecompiledSignature); $sCurrentVariableSignature = md5(json_encode($aThemeParameters['variables'])); - $bVarSignatureChanged= ($sPreviousVariableSignature!==$sCurrentVariableSignature); + $bVarSignatureChanged = ($sPreviousVariableSignature !== $sCurrentVariableSignature); } } - if (!$bFileExists || $bVarSignatureChanged || (is_writable($sThemeFolderPath) && ($iFilemetime < $iStyleLastModified))) - { + if (!$bFileExists || $bVarSignatureChanged || (is_writable($sThemeFolderPath) && ($iFilemetime < $iStyleLastModified))) { // Dates don't match. Second chance: check if the already compiled stylesheet exists and is consistent based on its signature $sActualSignature = static::ComputeSignature($aThemeParameters, $aImportsPaths, $aIncludedImages); - if ($bFileExists && !$bSetup) - { + if ($bFileExists && !$bSetup) { $sPrecompiledSignature = static::GetSignature($sThemeCssPath); } - if (!empty($sPrecompiledSignature) && $sActualSignature == $sPrecompiledSignature) - { + if (!empty($sPrecompiledSignature) && $sActualSignature == $sPrecompiledSignature) { touch($sThemeCssPath); // Stylesheet is up to date, mark it as more recent to speedup next time - } - else - { + } else { // Alas, we really need to recompile // Add the signature to the generated CSS file so that the file can be used as a precompiled stylesheet if needed $sSignatureComment = @@ -381,14 +374,16 @@ $sActualSignature */ CSS; - if (!static::$oCompileCSSService) - { + if (!static::$oCompileCSSService) { static::$oCompileCSSService = new CompileCSSService(); } //store it again to change $version with latest compiled time SetupLog::Info("Compiling theme $sThemeId..."); - $sTmpThemeCssContent = static::$oCompileCSSService->CompileCSSFromSASS($sTmpThemeScssContent, $aImportsPaths, - $aThemeParametersWithVersion); + $sTmpThemeCssContent = static::$oCompileCSSService->CompileCSSFromSASS( + $sTmpThemeScssContent, + $aImportsPaths, + $aThemeParametersWithVersion + ); SetupLog::Info("$sThemeId theme compilation done."); file_put_contents($sThemeFolderPath.'/theme-parameters.json', json_encode($aThemeParameters)); file_put_contents($sThemeCssPath, $sSignatureComment.$sTmpThemeCssContent); @@ -413,13 +408,14 @@ CSS; * @return string * @throws \Exception */ - public static function ComputeSignature($aThemeParameters, $aImportsPaths, $aIncludedImages) { + public static function ComputeSignature($aThemeParameters, $aImportsPaths, $aIncludedImages) + { $aSignature = [ 'variables' => md5(json_encode($aThemeParameters['variables'])), 'stylesheets' => [], 'variable_imports' => [], 'images' => [], - 'utility_imports' => [] + 'utility_imports' => [], ]; $oFindStylesheetObject = new FindStylesheetObject(); @@ -461,8 +457,7 @@ CSS; } } - foreach ($aIncludedImages as $sImage) - { + foreach ($aIncludedImages as $sImage) { if (is_file($sImage)) { $sUri = str_replace(self::GetAppRootWithSlashes(), '', $sImage); $aSignature['images'][$sUri] = md5_file($sImage); @@ -489,7 +484,7 @@ CSS; $aCompleteUrls = []; $aToCompleteUrls = []; $aMissingVariables = []; - $aFoundVariables = ['version'=>'']; + $aFoundVariables = ['version' => '']; $aMap = [ 'aCompleteUrls' => $aCompleteUrls, 'aToCompleteUrls' => $aToCompleteUrls, @@ -497,14 +492,11 @@ CSS; 'aFoundVariables' => $aFoundVariables, ]; - foreach ($aStylesheetFiles as $sStylesheetFile) - { + foreach ($aStylesheetFiles as $sStylesheetFile) { $aRes = static::GetAllUrlFromScss($aThemeParametersVariables, $sStylesheetFile); /** @var array $aVal */ - foreach($aMap as $key => $aVal) - { - if (array_key_exists($key, $aMap)) - { + foreach ($aMap as $key => $aVal) { + if (array_key_exists($key, $aMap)) { $aMap[$key] = array_merge($aVal, $aRes[$key]); } } @@ -513,17 +505,14 @@ CSS; $aMap = static::ResolveUncompleteUrlsFromScss($aMap, $aThemeParametersVariables, $aStylesheetFiles); $aImages = []; - foreach ($aMap ['aCompleteUrls'] as $sUri => $sUrl) - { + foreach ($aMap ['aCompleteUrls'] as $sUri => $sUrl) { $sImg = $sUrl; - if (preg_match("/(.*)\?/", $sUrl, $aMatches)) - { - $sImg=$aMatches[1]; + if (preg_match("/(.*)\?/", $sUrl, $aMatches)) { + $sImg = $aMatches[1]; } if (static::HasImageExtension($sImg) - && ! array_key_exists($sImg, $aImages)) - { + && ! array_key_exists($sImg, $aImages)) { $sFilePath = utils::RealPath($sImg, APPROOT); if ($sFilePath !== false) { $sFilePathWithSlashes = str_replace('\\', '/', $sFilePath); @@ -554,8 +543,8 @@ CSS; */ public static function CanonicalizePath($path) { - $path = explode('/', str_replace('//','/', $path)); - $stack = array(); + $path = explode('/', str_replace('//', '/', $path)); + $stack = []; foreach ($path as $seg) { if ($seg == '..') { // Ignore this segment, remove last segment from stack @@ -585,25 +574,23 @@ CSS; */ public static function ResolveUncompleteUrlsFromScss($aMap, $aThemeParametersVariables, $aStylesheetFile) { - $sContent=""; - foreach ($aStylesheetFile as $sStylesheetFile) - { - if (is_file($sStylesheetFile)) - { - $sContent .= '\n' . file_get_contents($sStylesheetFile); + $sContent = ""; + foreach ($aStylesheetFile as $sStylesheetFile) { + if (is_file($sStylesheetFile)) { + $sContent .= '\n'.file_get_contents($sStylesheetFile); } } - $aMissingVariables=$aMap['aMissingVariables']; - $aFoundVariables=$aMap['aFoundVariables']; - $aToCompleteUrls=$aMap['aToCompleteUrls']; - $aCompleteUrls=$aMap['aCompleteUrls']; + $aMissingVariables = $aMap['aMissingVariables']; + $aFoundVariables = $aMap['aFoundVariables']; + $aToCompleteUrls = $aMap['aToCompleteUrls']; + $aCompleteUrls = $aMap['aCompleteUrls']; list($aMissingVariables, $aFoundVariables) = static::FindMissingVariables($aThemeParametersVariables, $aMissingVariables, $aFoundVariables, $sContent, true); list($aToCompleteUrls, $aCompleteUrls) = static::ResolveUrls($aFoundVariables, $aToCompleteUrls, $aCompleteUrls); - $aMap['aMissingVariables']=$aMissingVariables; - $aMap['aFoundVariables']=$aFoundVariables; - $aMap['aToCompleteUrls']=$aToCompleteUrls; - $aMap['aCompleteUrls']=$aCompleteUrls; + $aMap['aMissingVariables'] = $aMissingVariables; + $aMap['aFoundVariables'] = $aFoundVariables; + $aMap['aToCompleteUrls'] = $aToCompleteUrls; + $aMap['aCompleteUrls'] = $aCompleteUrls; return $aMap; } @@ -619,43 +606,29 @@ CSS; * * @return array */ - public static function FindMissingVariables($aThemeParametersVariables, $aMissingVariables, $aFoundVariables, $sContent, $bForceEmptyValueWhenNotFound=false) + public static function FindMissingVariables($aThemeParametersVariables, $aMissingVariables, $aFoundVariables, $sContent, $bForceEmptyValueWhenNotFound = false) { $aNewMissingVars = []; - if (!empty($aMissingVariables)) - { - foreach ($aMissingVariables as $var) - { - if (array_key_exists($var, $aThemeParametersVariables)) - { + if (!empty($aMissingVariables)) { + foreach ($aMissingVariables as $var) { + if (array_key_exists($var, $aThemeParametersVariables)) { $aFoundVariables[$var] = $aThemeParametersVariables[$var]; - } - else - { - if (preg_match_all("/\\\$$var\s*:\s*[\"']{0,1}(.*)[\"']{0,1};/", $sContent, $aValues)) - { + } else { + if (preg_match_all("/\\\$$var\s*:\s*[\"']{0,1}(.*)[\"']{0,1};/", $sContent, $aValues)) { $sValue = $aValues[1][0]; - if (preg_match_all("/([^!]+)!/", $sValue, $aSubValues)) - { + if (preg_match_all("/([^!]+)!/", $sValue, $aSubValues)) { $sValue = trim($aSubValues[1][0], ' "\''); } - if (strpos($sValue, '$') === false) - { + if (strpos($sValue, '$') === false) { $aFoundVariables[$var] = $sValue; - } - else{ + } else { $aNewMissingVars[] = $var; } - } - else - { - if ($bForceEmptyValueWhenNotFound) - { + } else { + if ($bForceEmptyValueWhenNotFound) { $aFoundVariables[$var] = ''; - } - else - { + } else { $aNewMissingVars[] = $var; } } @@ -676,32 +649,23 @@ CSS; */ public static function ResolveUrls($aFoundVariables, array $aToCompleteUrls, array $aCompleteUrls) { - if (!empty($aFoundVariables)) - { + if (!empty($aFoundVariables)) { $aFoundVariablesWithEmptyValue = []; - foreach ($aFoundVariables as $aFoundVariable => $sValue) - { + foreach ($aFoundVariables as $aFoundVariable => $sValue) { $aFoundVariablesWithEmptyValue[$aFoundVariable] = ''; } - foreach ($aToCompleteUrls as $sUrlTemplate) - { + foreach ($aToCompleteUrls as $sUrlTemplate) { unset($aToCompleteUrls[$sUrlTemplate]); $sResolvedUrl = static::ResolveUrl($sUrlTemplate, $aFoundVariables); - if ($sResolvedUrl == false) - { + if ($sResolvedUrl == false) { $aToCompleteUrls[$sUrlTemplate] = $sUrlTemplate; - } - else - { + } else { $sUri = static::ResolveUrl($sUrlTemplate, $aFoundVariablesWithEmptyValue); $aExplodedUri = explode('?', $sUri); - if (empty($aExplodedUri)) - { + if (empty($aExplodedUri)) { $aCompleteUrls[$sUri] = $sResolvedUrl; - } - else - { + } else { $aCompleteUrls[$aExplodedUri[0]] = $sResolvedUrl; } } @@ -726,41 +690,31 @@ CSS; $aMissingVariables = []; $aFoundVariables = []; - if (is_file($sStylesheetFile)) - { + if (is_file($sStylesheetFile)) { $sContent = file_get_contents($sStylesheetFile); - if (preg_match_all("/url\s*\((.*)\)/", $sContent, $aMatches)) - { - foreach ($aMatches[1] as $path) - { + if (preg_match_all("/url\s*\((.*)\)/", $sContent, $aMatches)) { + foreach ($aMatches[1] as $path) { $iRemainingClosingParenthesisPos = strpos($path, ')'); - if ($iRemainingClosingParenthesisPos !== false){ + if ($iRemainingClosingParenthesisPos !== false) { $path = substr($path, 0, $iRemainingClosingParenthesisPos); } if (!array_key_exists($path, $aCompleteUrls) - && !array_key_exists($path, $aToCompleteUrls)) - { - if (preg_match_all("/\\$([\w\-_]+)/", $path, $aCurrentVars)) - { + && !array_key_exists($path, $aToCompleteUrls)) { + if (preg_match_all("/\\$([\w\-_]+)/", $path, $aCurrentVars)) { /** @var string $aCurrentVars */ - foreach ($aCurrentVars[1] as $var) - { - if (!array_key_exists($var, $aMissingVariables)) - { + foreach ($aCurrentVars[1] as $var) { + if (!array_key_exists($var, $aMissingVariables)) { $aMissingVariables[$var] = $var; } } $aToCompleteUrls[$path] = $path; - } - else - { + } else { $aCompleteUrls[$path] = trim($path, "\"'"); } } } } - if (!empty($aMissingVariables)) - { + if (!empty($aMissingVariables)) { list($aMissingVariables, $aFoundVariables) = static::FindMissingVariables($aThemeParametersVariables, $aMissingVariables, $aFoundVariables, $sContent); list($aToCompleteUrls, $aCompleteUrls) = static::ResolveUrls($aFoundVariables, $aToCompleteUrls, $aCompleteUrls); } @@ -770,7 +724,7 @@ CSS; 'aCompleteUrls' => $aCompleteUrls, 'aToCompleteUrls' => $aToCompleteUrls, 'aMissingVariables' => $aMissingVariables, - 'aFoundVariables' => $aFoundVariables + 'aFoundVariables' => $aFoundVariables, ]; } @@ -784,23 +738,21 @@ CSS; */ public static function ResolveUrl($sUrlTemplate, $aFoundVariables) { - $aPattern= []; - $aReplacement= []; - foreach ($aFoundVariables as $aFoundVariable => $aFoundVariableValue) - { + $aPattern = []; + $aReplacement = []; + foreach ($aFoundVariables as $aFoundVariable => $aFoundVariableValue) { //XX + $key + YY - $aPattern[]="/['\"]\s*\+\s*\\\$" . $aFoundVariable . "[\s\+]+\s*['\"]/"; - $aReplacement[]=$aFoundVariableValue; + $aPattern[] = "/['\"]\s*\+\s*\\\$".$aFoundVariable."[\s\+]+\s*['\"]/"; + $aReplacement[] = $aFoundVariableValue; //$key + YY - $aPattern[]="/\\\$" . $aFoundVariable. "[\s\+]+\s*['\"]/"; - $aReplacement[]=$aFoundVariableValue; + $aPattern[] = "/\\\$".$aFoundVariable."[\s\+]+\s*['\"]/"; + $aReplacement[] = $aFoundVariableValue; //XX + $key - $aPattern[]="/['\"]\s*[\+\s]+\\\$" . $aFoundVariable . "$/"; - $aReplacement[]=$aFoundVariableValue; + $aPattern[] = "/['\"]\s*[\+\s]+\\\$".$aFoundVariable."$/"; + $aReplacement[] = $aFoundVariableValue; } - $sResolvedUrl=preg_replace($aPattern, $aReplacement, $sUrlTemplate); - if (strpos($sResolvedUrl, "+")!==false) - { + $sResolvedUrl = preg_replace($aPattern, $aReplacement, $sUrlTemplate); + if (strpos($sResolvedUrl, "+") !== false) { return false; } return trim($sResolvedUrl, "\"'"); @@ -814,17 +766,14 @@ CSS; */ private static function HasImageExtension($path) { - foreach (static::IMAGE_EXTENSIONS as $sExt) - { - if (endsWith($path, $sExt)) - { + foreach (static::IMAGE_EXTENSIONS as $sExt) { + if (endsWith($path, $sExt)) { return true; } } return false; } - /** * @since 3.0.0 N°2982 * Extract the signature for a generated CSS file. @@ -843,16 +792,13 @@ CSS; $iCount = 0; $sPreviousLine = ''; $hFile = @fopen($sFilepath, "r"); - if ($hFile !== false) - { + if ($hFile !== false) { $sLine = ''; - do - { + do { $iCount++; $sPreviousLine = $sLine; $sLine = rtrim(fgets($hFile)); // Remove the trailing \n - } - while (($sLine !== false) && ($sLine != '=== SIGNATURE END ===') && ($iCount <= 100)); + } while (($sLine !== false) && ($sLine != '=== SIGNATURE END ===') && ($iCount <= 100)); fclose($hFile); } return $sPreviousLine; @@ -867,8 +813,7 @@ CSS; public static function GetVarSignature($JsonSignature) { $aJsonArray = json_decode($JsonSignature, true); - if (array_key_exists('variables', $aJsonArray)) - { + if (array_key_exists('variables', $aJsonArray)) { return $aJsonArray['variables']; } return false; @@ -892,23 +837,22 @@ CSS; $oFindStylesheetObject->ResetLastStyleSheet(); } - foreach($aImportsPaths as $sPath) - { + foreach ($aImportsPaths as $sPath) { $sAlterableFileURI = $sFileURI; $sFilePath = $sPath.'/'.$sAlterableFileURI; $sImportedFile = realpath($sFilePath); - if ($sImportedFile === false){ + if ($sImportedFile === false) { // Handle shortcut syntax : @import "typo" ; // file matched: typo.scss $sFilePath2 = "$sFilePath.scss"; $sImportedFile = realpath($sFilePath2); - if ($sImportedFile){ + if ($sImportedFile) { self::FindStylesheetFile("$sAlterableFileURI.scss", [ $sPath ], $oFindStylesheetObject, $bImports); $sImportedFile = false; } } - if ($sImportedFile === false){ + if ($sImportedFile === false) { // Handle shortcut syntax : @import "typo" ; // file matched: _typo.scss $sShortCut = substr($sFilePath, strrpos($sFilePath, '/') + 1); @@ -918,11 +862,10 @@ CSS; } if ((file_exists($sImportedFile)) - && (!$oFindStylesheetObject->AlreadyFetched($sImportedFile))) - { - if ($bImports){ + && (!$oFindStylesheetObject->AlreadyFetched($sImportedFile))) { + if ($bImports) { $oFindStylesheetObject->AddImport($sAlterableFileURI, $sImportedFile); - }else{ + } else { $oFindStylesheetObject->AddStylesheet($sAlterableFileURI, $sImportedFile); } $oFindStylesheetObject->UpdateLastModified($sImportedFile); @@ -930,8 +873,8 @@ CSS; //Regexp matching on all included scss files : @import 'XXX.scss'; $sDirUri = dirname($sAlterableFileURI); preg_match_all('/@import \s*[\"\']([^\"\']*)\s*[\"\']\s*;/', file_get_contents($sImportedFile), $aMatches); - if ( (is_array($aMatches)) && (count($aMatches)!==0) ){ - foreach ($aMatches[1] as $sImportedFile){ + if ((is_array($aMatches)) && (count($aMatches) !== 0)) { + foreach ($aMatches[1] as $sImportedFile) { self::FindStylesheetFile("$sDirUri/$sImportedFile", [ $sPath ], $oFindStylesheetObject, true); } } @@ -952,8 +895,7 @@ CSS; { $iPos = strrpos($sSubject, $sSearch); - if($iPos !== false) - { + if ($iPos !== false) { $sSubject = substr_replace($sSubject, $sReplace, $iPos, strlen($sSearch)); } @@ -982,18 +924,14 @@ CSS; public static function CloneThemeParameterAndIncludeVersion($aThemeParameters, $bSetupCompilationTimestamp, $aImportsPaths) { $aThemeParametersVariable = []; - if (array_key_exists('variables', $aThemeParameters)) - { - if (is_array($aThemeParameters['variables'])) - { + if (array_key_exists('variables', $aThemeParameters)) { + if (is_array($aThemeParameters['variables'])) { $aThemeParametersVariable = array_merge([], $aThemeParameters['variables']); } } - if (array_key_exists('variable_imports', $aThemeParameters)) - { - if (is_array($aThemeParameters['variable_imports'])) - { + if (array_key_exists('variable_imports', $aThemeParameters)) { + if (is_array($aThemeParameters['variable_imports'])) { $aThemeParametersVariable = array_merge($aThemeParametersVariable, static::GetVariablesFromFile($aThemeParameters['variable_imports'], $aImportsPaths)); } } @@ -1009,11 +947,11 @@ CSS; * @return array * @since 3.0.0 N°3593 */ - public static function GetVariablesFromFile($aVariableFiles, $aImportsPaths){ + public static function GetVariablesFromFile($aVariableFiles, $aImportsPaths) + { $aVariablesResults = []; - foreach ($aVariableFiles as $sVariableFile) - { - foreach($aImportsPaths as $sPath) { + foreach ($aVariableFiles as $sVariableFile) { + foreach ($aImportsPaths as $sPath) { $sFilePath = $sPath.'/'.$sVariableFile; $sImportedFile = realpath($sFilePath); if ($sImportedFile !== false) { @@ -1029,9 +967,8 @@ CSS; } } } - array_map( function($sVariableValue) { return ltrim($sVariableValue); }, $aVariablesResults ); + array_map(function ($sVariableValue) { return ltrim($sVariableValue); }, $aVariablesResults); return $aVariablesResults; } } - diff --git a/application/themehandlerservice.class.inc.php b/application/themehandlerservice.class.inc.php index cc06c93fe..837c176c3 100644 --- a/application/themehandlerservice.class.inc.php +++ b/application/themehandlerservice.class.inc.php @@ -1,4 +1,5 @@ GetTargetClass(); $iMaxComboLength = $oAttDef->GetMaximumComboLength(); @@ -102,8 +113,7 @@ class UIExtKeyWidget } $oWidget = new UIExtKeyWidget($sTargetClass, $iInputId, $sAttCode, $bSearchMode); if (!$bSearchMode) { - switch ($sDisplayStyle) - { + switch ($sDisplayStyle) { case 'radio': case 'radio_horizontal': case 'radio_vertical': @@ -114,12 +124,38 @@ class UIExtKeyWidget case 'select': case 'list': default: - return $oWidget->DisplaySelect($oPage, $iMaxComboLength, $bAllowTargetCreation, $sTitle, $oAllowedValues, $value, - $bMandatory, $sFieldName, $sFormPrefix, $aArgs, $sInputType); + return $oWidget->DisplaySelect( + $oPage, + $iMaxComboLength, + $bAllowTargetCreation, + $sTitle, + $oAllowedValues, + $value, + $bMandatory, + $sFieldName, + $sFormPrefix, + $aArgs, + $sInputType + ); } } else { - return $oWidget->Display($oPage, $iMaxComboLength, $bAllowTargetCreation, $sTitle, $oAllowedValues, $value, $iInputId, - $bMandatory, $sFieldName, $sFormPrefix, $aArgs, null, $sDisplayStyle, true, $sInputType); + return $oWidget->Display( + $oPage, + $iMaxComboLength, + $bAllowTargetCreation, + $sTitle, + $oAllowedValues, + $value, + $iInputId, + $bMandatory, + $sFieldName, + $sFormPrefix, + $aArgs, + null, + $sDisplayStyle, + true, + $sInputType + ); } } @@ -158,7 +194,7 @@ class UIExtKeyWidget * @since 3.0.0 N°2508 - Include Obsolescence icon within list and autocomplete * @since 3.0.0 N°3750 new $sInputType parameter */ - public function DisplaySelect(WebPage $oPage, $iMaxComboLength, $bAllowTargetCreation, $sTitle, DBObjectset $oAllowedValues, $value, $bMandatory, $sFieldName, $sFormPrefix = '', $aArgs = array(), &$sInputType = '') + public function DisplaySelect(WebPage $oPage, $iMaxComboLength, $bAllowTargetCreation, $sTitle, DBObjectset $oAllowedValues, $value, $bMandatory, $sFieldName, $sFormPrefix = '', $aArgs = [], &$sInputType = '') { $sTitle = addslashes($sTitle); $oPage->LinkScriptFromAppRoot('js/extkeywidget.js'); @@ -194,7 +230,7 @@ class UIExtKeyWidget $bIsAutocomplete = $oAllowedValues->CountExceeds($iMaxComboLength); $sWrapperCssClass = $bIsAutocomplete ? 'ibo-input-select-autocomplete-wrapper' : 'ibo-input-select-wrapper'; $sHTMLValue = "
sAttCode."\" data-validation=\"untouched\" data-accessibility-selectize-label=\"$sTitle\">"; - + // We just need to compare the number of entries with MaxComboLength, so no need to get the real count. if (!$bIsAutocomplete) { // Discrete list of values, use a SELECT or RADIO buttons depending on the config @@ -281,21 +317,17 @@ EOF $oPage->add_ready_script("$('#$this->iId').one('validate', function() { $(this).trigger('change'); } );"); } $sHTMLValue .= "
"; - } - else - { + } else { // Too many choices, use an autocomplete // Check that the given value is allowed $oSearch = $oAllowedValues->GetFilter(); $oSearch->AddCondition('id', $value); $oSet = new DBObjectSet($oSearch); - if ($oSet->Count() == 0) - { + if ($oSet->Count() == 0) { $value = null; } - if (is_null($value) || ($value == 0)) // Null values are displayed as '' - { + if (is_null($value) || ($value == 0)) { // Null values are displayed as '' $sDisplayValue = isset($aArgs['sDefaultValue']) ? $aArgs['sDefaultValue'] : ''; } else { $sDisplayValue = $this->GetObjectName($value); @@ -376,36 +408,30 @@ JS $sHTMLValue = "
"; - if (is_null($oAllowedValues)) - { + if (is_null($oAllowedValues)) { throw new Exception('Implementation: null value for allowed values definition'); } $oAllowedValues->SetShowObsoleteData(utils::ShowObsoleteData()); // We just need to compare the number of entries with MaxComboLength, so no need to get the real count. - if (!$oAllowedValues->CountExceeds($iMaxComboLength)) - { + if (!$oAllowedValues->CountExceeds($iMaxComboLength)) { // Discrete list of values, use a SELECT or RADIO buttons depending on the config $sValidationField = null; $bVertical = ($sDisplayStyle != 'radio_horizontal'); $bExtensions = false; $oAllowedValues->Rewind(); - $aAllowedValues = array(); - while($oObj = $oAllowedValues->Fetch()) - { + $aAllowedValues = []; + while ($oObj = $oAllowedValues->Fetch()) { $aAllowedValues[$oObj->GetKey()] = $oObj->GetName(); } $sHTMLValue .= $oPage->GetRadioButtons($aAllowedValues, $value, $this->iId, "{$sAttrFieldPrefix}{$sFieldName}", false /* $bMandatory will be placed manually */, $bVertical, $sValidationField); - $aEventsList[] ='change'; - } - else - { + $aEventsList[] = 'change'; + } else { $sHTMLValue .= "unable to display. Too much values"; } $sHTMLValue .= '
'; - if ($bExtensions && MetaModel::IsHierarchicalClass($this->sTargetClass) !== false) - { + if ($bExtensions && MetaModel::IsHierarchicalClass($this->sTargetClass) !== false) { $sHTMLValue .= "
iId}\" onClick=\"oACWidget_{$this->iId}.HKDisplay();\">
"; $oPage->add_ready_script( <<sTargetClass)) ? 'SelectObjectClass' : 'CreateObject'; $sHTMLValue .= "
iId}\" onClick=\"oACWidget_{$this->iId}.{$sCallbackName}();\">
"; @@ -471,7 +496,7 @@ JS * * @since 3.0.0 N°3750 new $sInputType parameter */ - public function Display(WebPage $oPage, $iMaxComboLength, $bAllowTargetCreation, $sTitle, DBObjectset $oAllowedValues, $value, $iInputId, $bMandatory, $sFieldName, $sFormPrefix = '', $aArgs = array(), $bSearchMode = null, $sDisplayStyle = 'select', $bSearchMultiple = true, &$sInputType = '') + public function Display(WebPage $oPage, $iMaxComboLength, $bAllowTargetCreation, $sTitle, DBObjectset $oAllowedValues, $value, $iInputId, $bMandatory, $sFieldName, $sFormPrefix = '', $aArgs = [], $bSearchMode = null, $sDisplayStyle = 'select', $bSearchMultiple = true, &$sInputType = '') { if (!is_null($bSearchMode)) { $this->bSearchMode = $bSearchMode; @@ -521,7 +546,7 @@ JS $bVertical = ($sDisplayStyle != 'radio_horizontal'); $bExtensions = false; $oAllowedValues->Rewind(); - $aAllowedValues = array(); + $aAllowedValues = []; while ($oObj = $oAllowedValues->Fetch()) { $aAllowedValues[$oObj->GetKey()] = $oObj->GetName(); } @@ -568,22 +593,22 @@ EOF } $sHTMLValue .= "\n"; } - $sHTMLValue .= "\n"; - $sHTMLValue .= "
\n"; + $sHTMLValue .= "\n"; + $sHTMLValue .= "
\n"; - $sInputType = CmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_RAW; - if (($this->bSearchMode) && $bSearchMultiple) { - $sInputType = CmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_MULTIPLE_CHOICES; - $aOptions = array( - 'header' => true, - 'checkAllText' => Dict::S('UI:SearchValue:CheckAll'), - 'uncheckAllText' => Dict::S('UI:SearchValue:UncheckAll'), - 'noneSelectedText' => Dict::S('UI:SearchValue:Any'), - 'selectedText' => Dict::S('UI:SearchValue:NbSelected'), - 'selectedList' => 1, - ); - $sJSOptions = json_encode($aOptions); - $oPage->add_ready_script("$('.multiselect').multiselect($sJSOptions);"); + $sInputType = CmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_RAW; + if (($this->bSearchMode) && $bSearchMultiple) { + $sInputType = CmdbAbstractObject::ENUM_INPUT_TYPE_DROPDOWN_MULTIPLE_CHOICES; + $aOptions = [ + 'header' => true, + 'checkAllText' => Dict::S('UI:SearchValue:CheckAll'), + 'uncheckAllText' => Dict::S('UI:SearchValue:UncheckAll'), + 'noneSelectedText' => Dict::S('UI:SearchValue:Any'), + 'selectedText' => Dict::S('UI:SearchValue:NbSelected'), + 'selectedList' => 1, + ]; + $sJSOptions = json_encode($aOptions); + $oPage->add_ready_script("$('.multiselect').multiselect($sJSOptions);"); } $oPage->add_ready_script( <<GetObjectName($value); @@ -673,20 +697,22 @@ JS $oAttDef = MetaModel::GetAttributeDef(get_class($oCurrObject), $this->sAttCode); /** @var \DBObject $oCurrObject */ $aArgs = $oCurrObject->ToArgsForQuery(); - $aParams = array('query_params' => $aArgs); + $aParams = ['query_params' => $aArgs]; $oSet = $oAttDef->GetAllowedValuesAsObjectSet($aArgs); $oFilter = $oSet->GetFilter(); - } else if (!empty($this->sFilter)) { - $aParams = array(); + } elseif (!empty($this->sFilter)) { + $aParams = []; $oFilter = DBObjectSearch::FromOQL($this->sFilter); } else { - $aParams = array(); + $aParams = []; $oFilter = new DBObjectSearch($this->sTargetClass); } $oFilter->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', $this->bSearchMode); $oBlock = new DisplayBlock($oFilter, 'search', false, $aParams); - $oPage->AddUiBlock($oBlock->GetDisplay($oPage, 'dtc_'.$this->iId, - array( + $oPage->AddUiBlock($oBlock->GetDisplay( + $oPage, + 'dtc_'.$this->iId, + [ 'menu' => false, 'currentId' => $this->iId, 'table_id' => "dr_{$this->iId}", @@ -694,12 +720,13 @@ JS 'selection_mode' => true, 'selection_type' => 'single', 'cssCount' => '#count_'.$this->iId.'_results', - ) + ] )); $sCancel = Dict::S('UI:Button:Cancel'); $sOK = Dict::S('UI:Button:Ok'); $sEmptyList = Dict::S('UI:Message:EmptyList:UseSearchForm'); - $oPage->add(<<add( + <<

{$sEmptyList}

@@ -711,7 +738,8 @@ HTML ); $sDialogTitleSanitized = addslashes(utils::HtmlToText($sTitle)); - $oPage->add_ready_script(<<add_ready_script( + <<iId}').dialog({ width: $(window).width()*0.8, height: $(window).height()*0.8, @@ -751,14 +779,12 @@ JS */ public function SearchObjectsToSelect(WebPage $oP, $sFilter, $sRemoteClass = '', $oObj = null) { - if (is_null($sFilter)) - { + if (is_null($sFilter)) { throw new Exception('Implementation: null value for allowed values definition'); } $oFilter = DBObjectSearch::FromOQL($sFilter); - if (strlen($sRemoteClass) > 0) - { + if (strlen($sRemoteClass) > 0) { $oFilter->ChangeClass($sRemoteClass); } $oFilter->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', $this->bSearchMode); @@ -766,26 +792,26 @@ JS // Current extkey value, so we can display event if it is not available anymore (eg. archived). $iCurrentExtKeyId = (is_null($oObj)) ? 0 : $oObj->Get($this->sAttCode); - $oBlock = new DisplayBlock($oFilter, 'list_search', false, array('query_params' => array('this' => $oObj, 'current_extkey_id' => $iCurrentExtKeyId))); - $oBlock->Display($oP, $this->iId.'_results', array('this' => $oObj, 'cssCount'=> '#count_'.$this->iId.'_results', 'menu' => false, 'selection_mode' => true, 'selection_type' => 'single', 'table_id' => 'select_'.$this->sAttCode)); // Don't display the 'Actions' menu on the results + $oBlock = new DisplayBlock($oFilter, 'list_search', false, ['query_params' => ['this' => $oObj, 'current_extkey_id' => $iCurrentExtKeyId]]); + $oBlock->Display($oP, $this->iId.'_results', ['this' => $oObj, 'cssCount' => '#count_'.$this->iId.'_results', 'menu' => false, 'selection_mode' => true, 'selection_type' => 'single', 'table_id' => 'select_'.$this->sAttCode]); // Don't display the 'Actions' menu on the results } - /** - * Search for objects to be selected - * - * @param WebPage $oP The page used for the output (usually an AjaxWebPage) - * @param string $sFilter The OQL expression used to define/limit limit the scope of possible values - * @param DBObject $oObj The current object for the OQL context - * @param string $sContains The text of the autocomplete to filter the results - * @param string $sOutputFormat - * @param null $sOperation for the values @see ValueSetObjects->LoadValues() not used since 3.0.0 - * - * @throws CoreException - * @throws OQLException - * - * @since 2.7.7 3.0.1 3.1.0 N°3129 Remove default value for $oObj for PHP 8.0 compatibility - */ - public function AutoComplete(WebPage $oP, $sFilter, $oObj, $sContains, $sOutputFormat = self::ENUM_OUTPUT_FORMAT_CSV, $sOperation = null ) + /** + * Search for objects to be selected + * + * @param WebPage $oP The page used for the output (usually an AjaxWebPage) + * @param string $sFilter The OQL expression used to define/limit limit the scope of possible values + * @param DBObject $oObj The current object for the OQL context + * @param string $sContains The text of the autocomplete to filter the results + * @param string $sOutputFormat + * @param null $sOperation for the values @see ValueSetObjects->LoadValues() not used since 3.0.0 + * + * @throws CoreException + * @throws OQLException + * + * @since 2.7.7 3.0.1 3.1.0 N°3129 Remove default value for $oObj for PHP 8.0 compatibility + */ + public function AutoComplete(WebPage $oP, $sFilter, $oObj, $sContains, $sOutputFormat = self::ENUM_OUTPUT_FORMAT_CSV, $sOperation = null) { if (is_null($sFilter)) { throw new Exception('Implementation: null value for allowed values definition'); @@ -799,38 +825,32 @@ JS $oValuesSet->SetSort(false); $oValuesSet->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', $this->bSearchMode); $oValuesSet->SetLimit($iMax); - $aValuesStartWith = $oValuesSet->GetValuesForAutocomplete(array('this' => $oObj, 'current_extkey_id' => $iCurrentExtKeyId), $sContains, 'start_with'); + $aValuesStartWith = $oValuesSet->GetValuesForAutocomplete(['this' => $oObj, 'current_extkey_id' => $iCurrentExtKeyId], $sContains, 'start_with'); asort($aValuesStartWith); $aValues = $aValuesStartWith; if (sizeof($aValues) < $iMax) { - $aValuesContains = $oValuesSet->GetValuesForAutocomplete(array('this' => $oObj, 'current_extkey_id' => $iCurrentExtKeyId), $sContains, 'contains'); + $aValuesContains = $oValuesSet->GetValuesForAutocomplete(['this' => $oObj, 'current_extkey_id' => $iCurrentExtKeyId], $sContains, 'contains'); asort($aValuesContains); $iSize = sizeof($aValues); - foreach ($aValuesContains as $sKey => $sFriendlyName) - { - if (!isset($aValues[$sKey])) - { + foreach ($aValuesContains as $sKey => $sFriendlyName) { + if (!isset($aValues[$sKey])) { $aValues[$sKey] = $sFriendlyName; - if (++$iSize >= $iMax) - { + if (++$iSize >= $iMax) { break; } } } - } - elseif (!in_array($sContains, $aValues)) - { - $aValuesEquals = $oValuesSet->GetValuesForAutocomplete(array('this' => $oObj, 'current_extkey_id' => $iCurrentExtKeyId), $sContains, 'equals'); + } elseif (!in_array($sContains, $aValues)) { + $aValuesEquals = $oValuesSet->GetValuesForAutocomplete(['this' => $oObj, 'current_extkey_id' => $iCurrentExtKeyId], $sContains, 'equals'); // Note: Here we cannot use array_merge as it would reindex the numeric keys starting from 0 when keys are actually the objects ID. // As a workaround we use array_replace as it does preserve numeric keys. It's ok if some values from $aValuesEquals are replaced with values from $aValues as they contain the same data. $aValues = array_replace($aValuesEquals, $aValues); } - switch($sOutputFormat) - { + switch ($sOutputFormat) { case static::ENUM_OUTPUT_FORMAT_JSON: - $aJsonMap = array(); + $aJsonMap = []; foreach ($aValues as $sKey => $aValue) { $aElt = ['value' => $sKey, 'label' => utils::EscapeHtml($aValue['label']), 'obsolescence_flag' => $aValue['obsolescence_flag']]; if ($aValue['additional_field'] != '') { @@ -851,8 +871,7 @@ JS break; case static::ENUM_OUTPUT_FORMAT_CSV: - foreach($aValues as $sKey => $aValue) - { + foreach ($aValues as $sKey => $aValue) { $oP->add(trim($aValue['label'])."\t".$sKey."\n"); } break; @@ -874,7 +893,7 @@ JS */ public function GetObjectName($iObjId, $sFormAttCode = null) { - $aModifierProps = array(); + $aModifierProps = []; $aModifierProps['UserRightsGetSelectFilter']['bSearchMode'] = $this->bSearchMode; $oObj = MetaModel::GetObject($this->sTargetClass, $iObjId, false, false, $aModifierProps); @@ -884,9 +903,7 @@ JS } else { return $oObj->Get($sFormAttCode); } - } - else - { + } else { return ''; } } @@ -902,30 +919,29 @@ JS */ public function GetClassSelectionForm(WebPage $oPage) { - // For security reasons: check that the "proposed" class is actually a subclass of the linked class - // and that the current user is allowed to create objects of this class - $aSubClasses = MetaModel::EnumChildClasses($this->sTargetClass, ENUM_CHILD_CLASSES_ALL); - $aPossibleClasses = array(); - foreach($aSubClasses as $sCandidateClass) - { - if (!MetaModel::IsAbstract($sCandidateClass) && (UserRights::IsActionAllowed($sCandidateClass, UR_ACTION_MODIFY) == UR_ALLOWED_YES)) - { - $aPossibleClasses[$sCandidateClass] = MetaModel::GetName($sCandidateClass); - } - } + // For security reasons: check that the "proposed" class is actually a subclass of the linked class + // and that the current user is allowed to create objects of this class + $aSubClasses = MetaModel::EnumChildClasses($this->sTargetClass, ENUM_CHILD_CLASSES_ALL); + $aPossibleClasses = []; + foreach ($aSubClasses as $sCandidateClass) { + if (!MetaModel::IsAbstract($sCandidateClass) && (UserRights::IsActionAllowed($sCandidateClass, UR_ACTION_MODIFY) == UR_ALLOWED_YES)) { + $aPossibleClasses[$sCandidateClass] = MetaModel::GetName($sCandidateClass); + } + } $sClassLabel = MetaModel::GetName($this->sTargetClass); - $sDialogTitle = Dict::Format('UI:CreationTitle_Class', $sClassLabel);; - $oBlock = UIContentBlockUIBlockFactory::MakeStandard('ac_create_'.$this->iId,['ibo-is-visible']); + $sDialogTitle = Dict::Format('UI:CreationTitle_Class', $sClassLabel); + ; + $oBlock = UIContentBlockUIBlockFactory::MakeStandard('ac_create_'.$this->iId, ['ibo-is-visible']); $oPage->AddSubBlock($oBlock); $oClassForm = FormUIBlockFactory::MakeStandard(); $oBlock->AddSubBlock($oClassForm); - $oClassForm->AddSubBlock(cmdbAbstractObject::DisplayBlockSelectClassToCreate( $sClassLabel, $this->sTargetClass, $aPossibleClasses)); + $oClassForm->AddSubBlock(cmdbAbstractObject::DisplayBlockSelectClassToCreate($sClassLabel, $this->sTargetClass, $aPossibleClasses)); $sDialogTitleEscaped = addslashes($sDialogTitle); - $oPage->add_ready_script("$('#ac_create_$this->iId').dialog({ width: 'auto', height: 'auto', maxHeight: $(window).height() - 50, autoOpen: false, modal: true, title: '$sDialogTitleEscaped'});\n"); - $oPage->add_ready_script("$('#ac_create_{$this->iId} form').removeAttr('onsubmit');"); - $oPage->add_ready_script("$('#ac_create_{$this->iId} form').find('select').attr('id', 'ac_create_{$this->iId}_select');"); - $oPage->add_ready_script("$('#ac_create_{$this->iId} form').on('submit.uilinksWizard', oACWidget_{$this->iId}.DoSelectObjectClass);"); + $oPage->add_ready_script("$('#ac_create_$this->iId').dialog({ width: 'auto', height: 'auto', maxHeight: $(window).height() - 50, autoOpen: false, modal: true, title: '$sDialogTitleEscaped'});\n"); + $oPage->add_ready_script("$('#ac_create_{$this->iId} form').removeAttr('onsubmit');"); + $oPage->add_ready_script("$('#ac_create_{$this->iId} form').find('select').attr('id', 'ac_create_{$this->iId}_select');"); + $oPage->add_ready_script("$('#ac_create_{$this->iId} form').on('submit.uilinksWizard', oACWidget_{$this->iId}.DoSelectObjectClass);"); } /** @@ -941,16 +957,14 @@ JS $oAppContext->InitObjectFromContext($oNewObj); $oNewObj->PrefillForm('creation_from_extkey', $aPrefillFormParam); // 2nd set the default values from the constraint on the external key... if any - if ( ($oCurrObject != null) && ($this->sAttCode != '')) - { + if (($oCurrObject != null) && ($this->sAttCode != '')) { $oAttDef = MetaModel::GetAttributeDef(get_class($oCurrObject), $this->sAttCode); - $aParams = array('this' => $oCurrObject); + $aParams = ['this' => $oCurrObject]; $oSet = $oAttDef->GetAllowedValuesAsObjectSet($aParams); $aConsts = $oSet->ListConstantFields(); $sClassAlias = $oSet->GetFilter()->GetClassAlias(); - if (isset($aConsts[$sClassAlias])) - { - foreach($aConsts[$sClassAlias] as $sAttCode => $value) { + if (isset($aConsts[$sClassAlias])) { + foreach ($aConsts[$sClassAlias] as $sAttCode => $value) { $oNewObj->Set($sAttCode, $value); } } @@ -962,32 +976,35 @@ JS $sClassLabel = MetaModel::GetName($this->sTargetClass); $sHeaderTitleEscaped = utils::EscapeHtml(Dict::Format('UI:CreationTitle_Class', $sClassLabel)); - $oPage->add(<<add( + <<
HTML ); - $aFormExtraParams = array( + $aFormExtraParams = [ 'formPrefix' => $this->iId, 'noRelations' => true, - ); + ]; // Remove blob edition from creation form @see N°5863 to allow blob edition in modal context FormHelper::DisableAttributeBlobInputs($this->sTargetClass, $aFormExtraParams); - if(FormHelper::HasMandatoryAttributeBlobInputs($oNewObj)){ + if (FormHelper::HasMandatoryAttributeBlobInputs($oNewObj)) { $oPage->AddUiBlock(FormHelper::GetAlertForMandatoryAttributeBlobInputsInModal(FormHelper::ENUM_MANDATORY_BLOB_MODE_CREATE)); } - - cmdbAbstractObject::DisplayCreationForm($oPage, $this->sTargetClass, $oNewObj, array(), $aFormExtraParams); - $oPage->add(<<sTargetClass, $oNewObj, [], $aFormExtraParams); + $oPage->add( + <<
HTML ); - $oPage->add_ready_script(<<add_ready_script( + <<iId}').dialog({ width: $(window).width() * 0.6, height: 'auto', maxHeight: $(window).height() - 50, autoOpen: false, modal: true}); $('#dcr_{$this->iId} form').removeAttr('onsubmit'); $('#dcr_{$this->iId} form').find('button[type="submit"]').on('click', oACWidget_{$this->iId}.DoCreateObject); @@ -1003,14 +1020,13 @@ JS $sDialogTitle = addslashes(Dict::Format('UI:HierarchyOf_Class', MetaModel::GetName($this->sTargetClass))); $oPage->add('
'); $oPage->add('
'); - if (is_null($sFilter)) - { + if (is_null($sFilter)) { throw new Exception('Implementation: null value for allowed values definition'); } - $oFilter = DBObjectSearch::FromOQL($sFilter); + $oFilter = DBObjectSearch::FromOQL($sFilter); $oFilter->SetModifierProperty('UserRightsGetSelectFilter', 'bSearchMode', $this->bSearchMode); - $oSet = new DBObjectSet($oFilter, array(), array('this' => $oObj, 'current_extkey_id' => $currValue)); + $oSet = new DBObjectSet($oFilter, [], ['this' => $oObj, 'current_extkey_id' => $currValue]); $oSet->SetShowObsoleteData(utils::ShowObsoleteData()); @@ -1020,17 +1036,17 @@ JS $oPage->add('
'); $oPage->add('
'); - if ($bHasChildLeafs) - { + if ($bHasChildLeafs) { $oPage->add(''.Dict::S("UI:Treeview:CollapseAll").''.Dict::S("UI:Treeview:ExpandAll").''); } - + $oPage->add('
'); - + $sOkButtonLabel = Dict::S('UI:Button:Ok'); $sCancelButtonLabel = Dict::S('UI:Button:Cancel'); $oPage->add_ready_script("\$('#tree_$this->iId ul').treeview({ control: '#treecontrolid', persist: 'false'});\n"); - $oPage->add_ready_script(<<add_ready_script( + <<iId').dialog({ width: 'auto', height: 'auto', @@ -1069,8 +1085,7 @@ JS */ public function DoCreateObject($oPage) { - try - { + try { $oObj = MetaModel::NewObject($this->sTargetClass); $aErrors = $oObj->UpdateObjectFromPostedForm($this->iId); if (count($aErrors) == 0) { @@ -1088,13 +1103,12 @@ JS ]); $oObj->DBInsertNoReload(); - return array('name' => $oObj->GetName(), 'id' => $oObj->GetKey()); + return ['name' => $oObj->GetName(), 'id' => $oObj->GetKey()]; } else { - return array('error' => implode(' ', $aErrors), 'id' => 0); + return ['error' => implode(' ', $aErrors), 'id' => 0]; } - } - catch (Exception $e) { - return array('error' => $e->getMessage(), 'id' => 0); + } catch (Exception $e) { + return ['error' => $e->getMessage(), 'id' => 0]; } } @@ -1110,32 +1124,27 @@ JS * @throws \CoreUnexpectedValue * @throws \MySQLException */ - function DumpTree($oP, $oSet, $sParentAttCode, $currValue) + public function DumpTree($oP, $oSet, $sParentAttCode, $currValue) { - $aTree = array(); - $aNodes = array(); - while($oObj = $oSet->Fetch()) - { + $aTree = []; + $aNodes = []; + while ($oObj = $oSet->Fetch()) { $iParentId = $oObj->Get($sParentAttCode); - if (!isset($aTree[$iParentId])) - { - $aTree[$iParentId] = array(); + if (!isset($aTree[$iParentId])) { + $aTree[$iParentId] = []; } $aTree[$iParentId][$oObj->GetKey()] = $oObj->GetName(); $aNodes[$oObj->GetKey()] = $oObj; } $aParents = array_keys($aTree); - $aRoots = array(); - foreach($aParents as $id) - { - if (!array_key_exists($id, $aNodes)) - { + $aRoots = []; + foreach ($aParents as $id) { + if (!array_key_exists($id, $aNodes)) { $aRoots[] = $id; } } - foreach($aRoots as $iRootId) - { + foreach ($aRoots as $iRootId) { $this->DumpNodes($oP, $iRootId, $aTree, $aNodes, $currValue); } @@ -1143,28 +1152,22 @@ JS return !$bHasOnlyRootNodes; } - function DumpNodes($oP, $iRootId, $aTree, $aNodes, $currValue) + public function DumpNodes($oP, $iRootId, $aTree, $aNodes, $currValue) { $bSelect = true; $bMultiple = false; $sSelect = ''; - if (array_key_exists($iRootId, $aTree)) - { + if (array_key_exists($iRootId, $aTree)) { $aSortedRoots = $aTree[$iRootId]; asort($aSortedRoots); $oP->add("
    \n"); $fUniqueId = microtime(true); - foreach($aSortedRoots as $id => $sName) - { - if ($bSelect) - { + foreach ($aSortedRoots as $id => $sName) { + if ($bSelect) { $sChecked = ($aNodes[$id]->GetKey() == $currValue) ? 'checked' : ''; - if ($bMultiple) - { + if ($bMultiple) { $sSelect = ' '; - } - else - { + } else { $sSelect = ' '; } } diff --git a/application/ui.htmleditorwidget.class.inc.php b/application/ui.htmleditorwidget.class.inc.php index 898a82968..1d336cf24 100644 --- a/application/ui.htmleditorwidget.class.inc.php +++ b/application/ui.htmleditorwidget.class.inc.php @@ -1,9 +1,10 @@ m_iId = $iInputId; @@ -54,7 +55,7 @@ class UIHTMLEditorWidget $this->m_sMandatory = $sMandatory; $this->m_sFieldPrefix = $sFieldPrefix; } - + /** * Get the HTML fragment corresponding to the HTML editor widget * @@ -63,7 +64,7 @@ class UIHTMLEditorWidget * * @return string The HTML fragment to be inserted into the page */ - public function Display(WebPage $oPage, array $aArgs = array()) : string + public function Display(WebPage $oPage, array $aArgs = []): string { $iId = $this->m_iId; $sCode = $this->m_sAttCode.$this->m_sNameSuffix; diff --git a/application/ui.linksdirectwidget.class.inc.php b/application/ui.linksdirectwidget.class.inc.php index 4f7cafd99..aebb5d710 100644 --- a/application/ui.linksdirectwidget.class.inc.php +++ b/application/ui.linksdirectwidget.class.inc.php @@ -1,4 +1,5 @@ sAttCode = $sAttCode; $this->sInputid = $sInputId; $this->sNameSuffix = $sNameSuffix; - $this->aZlist = array(); + $this->aZlist = []; $this->sLinkedClass = ''; - + // Compute the list of attributes visible from the given objet: // All the attributes from the "list" Zlist of the Link class except // the ExternalKey that points to the current object and its related external fields $oLinksetDef = MetaModel::GetAttributeDef($sClass, $sAttCode); $this->sLinkedClass = $oLinksetDef->GetLinkedClass(); $sExtKeyToMe = $oLinksetDef->GetExtKeyToMe(); - switch($oLinksetDef->GetEditMode()) - { + switch ($oLinksetDef->GetEditMode()) { case LINKSET_EDITMODE_INPLACE: // The whole linkset can be edited 'in-place' - $aZList = MetaModel::FlattenZList(MetaModel::GetZListItems($this->sLinkedClass, 'details')); - break; - + $aZList = MetaModel::FlattenZList(MetaModel::GetZListItems($this->sLinkedClass, 'details')); + break; + default: - $aZList = MetaModel::FlattenZList(MetaModel::GetZListItems($this->sLinkedClass, 'list')); - array_unshift($aZList, 'friendlyname'); + $aZList = MetaModel::FlattenZList(MetaModel::GetZListItems($this->sLinkedClass, 'list')); + array_unshift($aZList, 'friendlyname'); } - foreach($aZList as $sLinkedAttCode) - { - if ($sLinkedAttCode != $sExtKeyToMe) - { + foreach ($aZList as $sLinkedAttCode) { + if ($sLinkedAttCode != $sExtKeyToMe) { $oAttDef = MetaModel::GetAttributeDef($this->sLinkedClass, $sLinkedAttCode); - + if ((!$oAttDef->IsExternalField() || ($oAttDef->GetKeyAttCode() != $sExtKeyToMe)) && - (!$oAttDef->IsLinkSet()) ) - { + (!$oAttDef->IsLinkSet())) { $this->aZlist[] = $sLinkedAttCode; } } } - + } /** @@ -101,21 +98,17 @@ class UILinksWidgetDirect $sRealClass = ''; //$oPage->add('
    '); $aSubClasses = MetaModel::EnumChildClasses($this->sLinkedClass, ENUM_CHILD_CLASSES_ALL); // Including the specified class itself - $aPossibleClasses = array(); - foreach($aSubClasses as $sCandidateClass) - { - if (!MetaModel::IsAbstract($sCandidateClass) && (UserRights::IsActionAllowed($sCandidateClass, UR_ACTION_MODIFY) == UR_ALLOWED_YES)) - { - if ($sCandidateClass == $sProposedRealClass) - { + $aPossibleClasses = []; + foreach ($aSubClasses as $sCandidateClass) { + if (!MetaModel::IsAbstract($sCandidateClass) && (UserRights::IsActionAllowed($sCandidateClass, UR_ACTION_MODIFY) == UR_ALLOWED_YES)) { + if ($sCandidateClass == $sProposedRealClass) { $sRealClass = $sProposedRealClass; } $aPossibleClasses[$sCandidateClass] = MetaModel::GetName($sCandidateClass); } } // Only one of the subclasses can be instantiated... - if (count($aPossibleClasses) == 1) - { + if (count($aPossibleClasses) == 1) { $aKeys = array_keys($aPossibleClasses); $sRealClass = $aKeys[0]; } @@ -123,11 +116,11 @@ class UILinksWidgetDirect if ($sRealClass != '') { $oLinksetDef = MetaModel::GetAttributeDef($this->sClass, $this->sAttCode); $sExtKeyToMe = $oLinksetDef->GetExtKeyToMe(); - $aFieldsFlags = array($sExtKeyToMe => OPT_ATT_HIDDEN); + $aFieldsFlags = [$sExtKeyToMe => OPT_ATT_HIDDEN]; $oObj = DBObject::MakeDefaultInstance($sRealClass); - $aPrefillParam = array('source_obj' => $oSourceObj); + $aPrefillParam = ['source_obj' => $oSourceObj]; $oObj->PrefillForm('creation_from_editinplace', $aPrefillParam); - $aFormExtraParams = array( + $aFormExtraParams = [ 'formPrefix' => $this->sInputid, 'noRelations' => true, 'fieldsFlags' => $aFieldsFlags, @@ -140,25 +133,22 @@ class UILinksWidgetDirect JS , ], - ); + ]; // Remove blob edition from creation form @see N°5863 to allow blob edition in modal context FormHelper::DisableAttributeBlobInputs($sRealClass, $aFormExtraParams); - - if(FormHelper::HasMandatoryAttributeBlobInputs($oObj)){ + + if (FormHelper::HasMandatoryAttributeBlobInputs($oObj)) { $oPage->AddUiBlock(FormHelper::GetAlertForMandatoryAttributeBlobInputsInModal(FormHelper::ENUM_MANDATORY_BLOB_MODE_CREATE)); } - cmdbAbstractObject::DisplayCreationForm($oPage, $sRealClass, $oObj, array(), $aFormExtraParams); - } - else - { + cmdbAbstractObject::DisplayCreationForm($oPage, $sRealClass, $oObj, [], $aFormExtraParams); + } else { $sClassLabel = MetaModel::GetName($this->sLinkedClass); $oPage->add('

    '.Dict::Format('UI:SelectTheTypeOf_Class_ToCreate', $sClassLabel)); $oPage->add(''); @@ -178,7 +168,7 @@ JS * @throws \MissingQueryArgument * @throws \OQLException */ - public function GetObjectsSelectionDlg($oPage, $oCurrentObj, $aAlreadyLinked, $aPrefillFormParam = array()) + public function GetObjectsSelectionDlg($oPage, $oCurrentObj, $aAlreadyLinked, $aPrefillFormParam = []) { //$oPage->add("

    \n"); @@ -199,8 +189,7 @@ JS $oLinkSetDef = MetaModel::GetAttributeDef($this->sClass, $this->sAttCode); $valuesDef = $oLinkSetDef->GetValuesDef(); - if ($valuesDef === null) - { + if ($valuesDef === null) { $oFilter = new DBObjectSearch($this->sLinkedClass); } else { if (!$valuesDef instanceof ValueSetObjects) { @@ -218,8 +207,10 @@ JS $oCurrentObj->PrefillForm('search', $aPrefillFormParam); } $oBlock = new DisplayBlock($oFilter, 'search', false); - $oPage->AddUiBlock($oBlock->GetDisplay($oPage, "SearchFormToAdd_{$this->sInputid}", - array( + $oPage->AddUiBlock($oBlock->GetDisplay( + $oPage, + "SearchFormToAdd_{$this->sInputid}", + [ 'result_list_outer_selector' => "SearchResultsToAdd_{$this->sInputid}", 'table_id' => "add_{$this->sInputid}", 'table_inner_id' => "ResultsToAdd_{$this->sInputid}", @@ -227,13 +218,14 @@ JS 'cssCount' => "#count_{$this->sInputid}", 'query_params' => $oFilter->GetInternalParams(), 'hidden_criteria' => $sHiddenCriteria, - ) + ] )); $sEmptyList = Dict::S('UI:Message:EmptyList:UseSearchForm'); $sCancel = Dict::S('UI:Button:Cancel'); $sAdd = Dict::S('UI:Button:Add'); - $oPage->add(<<add( + <<

    {$sEmptyList}

    @@ -256,52 +248,43 @@ HTML * @throws \CoreException * @throws \OQLException */ - public function SearchObjectsToAdd(WebPage $oP, $sRemoteClass = '', $aAlreadyLinked = array(), $oCurrentObj = null, $aPrefillFormParam = array()) + public function SearchObjectsToAdd(WebPage $oP, $sRemoteClass = '', $aAlreadyLinked = [], $oCurrentObj = null, $aPrefillFormParam = []) { - if ($sRemoteClass == '') - { + if ($sRemoteClass == '') { $sRemoteClass = $this->sLinkedClass; } $oLinkSetDef = MetaModel::GetAttributeDef($this->sClass, $this->sAttCode); $valuesDef = $oLinkSetDef->GetValuesDef(); - if ($valuesDef === null) - { + if ($valuesDef === null) { $oFilter = new DBObjectSearch($sRemoteClass); - } - else - { - if (!$valuesDef instanceof ValueSetObjects) - { + } else { + if (!$valuesDef instanceof ValueSetObjects) { throw new Exception('Error: only ValueSetObjects are supported for "allowed_values" in AttributeLinkedSet ('.$this->sClass.'/'.$this->sAttCode.').'); } $oFilter = DBObjectSearch::FromOQL($valuesDef->GetFilterExpression()); } - - if (($oCurrentObj != null) && MetaModel::IsSameFamilyBranch($sRemoteClass, $this->sClass)) - { + + if (($oCurrentObj != null) && MetaModel::IsSameFamilyBranch($sRemoteClass, $this->sClass)) { // Prevent linking to self if the linked object is of the same family // and already present in the database - if (!$oCurrentObj->IsNew()) - { + if (!$oCurrentObj->IsNew()) { $oFilter->AddCondition('id', $oCurrentObj->GetKey(), '!='); } } - if ($oCurrentObj != null) - { + if ($oCurrentObj != null) { $this->SetSearchDefaultFromContext($oCurrentObj, $oFilter); $aArgs = array_merge($oCurrentObj->ToArgs('this'), $oFilter->GetInternalParams()); $oFilter->SetInternalParams($aArgs); - + $aPrefillFormParam['filter'] = $oFilter; $oCurrentObj->PrefillForm('search', $aPrefillFormParam); } - if (count($aAlreadyLinked) > 0) - { + if (count($aAlreadyLinked) > 0) { $oFilter->AddCondition('id', $aAlreadyLinked, 'NOTIN'); } $oBlock = new DisplayBlock($oFilter, 'list', false); - $oBlock->Display($oP, "ResultsToAdd_{$this->sInputid}", array('menu' => false, 'cssCount'=> '#count_'.$this->sInputid , 'selection_mode' => true, 'table_id' => 'add_'.$this->sInputid)); // Don't display the 'Actions' menu on the results + $oBlock->Display($oP, "ResultsToAdd_{$this->sInputid}", ['menu' => false, 'cssCount' => '#count_'.$this->sInputid , 'selection_mode' => true, 'table_id' => 'add_'.$this->sInputid]); // Don't display the 'Actions' menu on the results } /** @@ -311,29 +294,28 @@ HTML public function DoAddObjects(WebPage $oP, $oFullSetFilter) { $aLinkedObjectIds = utils::ReadMultipleSelection($oFullSetFilter); - foreach($aLinkedObjectIds as $iObjectId) - { + foreach ($aLinkedObjectIds as $iObjectId) { $oLinkObj = MetaModel::GetObject($this->sLinkedClass, $iObjectId); $oP->add($this->GetObjectRow($oP, $oLinkObj, $oLinkObj->GetKey())); } } - + public function GetObjectModificationDlg() { - + } public function GetTableConfig() { - $aAttribs = array(); - $aAttribs['form::select'] = array( + $aAttribs = []; + $aAttribs['form::select'] = [ 'label' => "sInputid}:not(:disabled)', this.checked);oWidget".$this->sInputid.".directlinks('instance')._onSelectChange();\" class=\"checkAll\">", 'description' => Dict::S('UI:SelectAllToggle+'), - ); + ]; foreach ($this->aZlist as $sLinkedAttCode) { $oAttDef = MetaModel::GetAttributeDef($this->sLinkedClass, $sLinkedAttCode); - $aAttribs[$sLinkedAttCode] = array('label' => MetaModel::GetLabel($this->sLinkedClass, $sLinkedAttCode), 'description' => $oAttDef->GetOrderByHint()); + $aAttribs[$sLinkedAttCode] = ['label' => MetaModel::GetLabel($this->sLinkedClass, $sLinkedAttCode), 'description' => $oAttDef->GetOrderByHint()]; } return $aAttribs; @@ -348,13 +330,12 @@ HTML */ public function GetRow($oPage, $sRealClass, $aValues, $iTempId) { - if ($sRealClass == '') - { + if ($sRealClass == '') { $sRealClass = $this->sLinkedClass; } $oLinkObj = new $sRealClass(); $oLinkObj->UpdateObjectFromPostedForm($this->sInputid); - + return $this->GetObjectRow($oPage, $oLinkObj, $iTempId); } @@ -367,13 +348,12 @@ HTML protected function GetObjectRow($oPage, $oLinkObj, $iTempId) { $aAttribs = $this->GetTableConfig(); - $aRow = array(); + $aRow = []; $aRow['form::select'] = ''; - foreach($this->aZlist as $sLinkedAttCode) - { + foreach ($this->aZlist as $sLinkedAttCode) { $aRow[$sLinkedAttCode] = $oLinkObj->GetAsHTML($sLinkedAttCode); } - return $oPage->GetTableRow($aRow, $aAttribs); + return $oPage->GetTableRow($aRow, $aAttribs); } /** @@ -386,23 +366,21 @@ HTML */ public function GetFormRow($oPage, $sRealClass, $aValues, $iTempId) { - if ($sRealClass == '') - { + if ($sRealClass == '') { $sRealClass = $this->sLinkedClass; } $oLinkObj = new $sRealClass(); $oLinkObj->UpdateObjectFromPostedForm($this->sInputid); $aAttribs = $this->GetTableConfig(); - $aRow = array(); + $aRow = []; $aRow[] = ''; - foreach($this->aZlist as $sLinkedAttCode) - { + foreach ($this->aZlist as $sLinkedAttCode) { $aRow[] = $oLinkObj->GetAsHTML($sLinkedAttCode); } return $aRow; } - + /** * Initializes the default search parameters based on 1) a 'current' object and 2) the silos defined by the context * @param DBObject $oSourceObj @@ -413,27 +391,23 @@ HTML $oAppContext = new ApplicationContext(); $sSrcClass = get_class($oSourceObj); $sDestClass = $oSearch->GetClass(); - foreach($oAppContext->GetNames() as $key) - { + foreach ($oAppContext->GetNames() as $key) { // Find the value of the object corresponding to each 'context' parameter - $aCallSpec = array($sSrcClass, 'MapContextParam'); + $aCallSpec = [$sSrcClass, 'MapContextParam']; $sAttCode = ''; - if (is_callable($aCallSpec)) - { - $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter + if (is_callable($aCallSpec)) { + $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter } - if (MetaModel::IsValidAttCode($sSrcClass, $sAttCode)) - { + if (MetaModel::IsValidAttCode($sSrcClass, $sAttCode)) { $defaultValue = $oSourceObj->Get($sAttCode); // Find the attcode for the same 'context' parameter in the destination class // and sets its value as the default value for the search condition - $aCallSpec = array($sDestClass, 'MapContextParam'); + $aCallSpec = [$sDestClass, 'MapContextParam']; $sAttCode = ''; - if (is_callable($aCallSpec)) - { - $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter + if (is_callable($aCallSpec)) { + $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter } if (MetaModel::IsValidAttCode($sDestClass, $sAttCode) && !empty($defaultValue)) { @@ -443,7 +417,6 @@ HTML } } - public function GetClass(): string { return $this->sClass; diff --git a/application/ui.linkswidget.class.inc.php b/application/ui.linkswidget.class.inc.php index 0f754b84e..33e4c8eca 100644 --- a/application/ui.linkswidget.class.inc.php +++ b/application/ui.linkswidget.class.inc.php @@ -1,4 +1,5 @@ m_sNameSuffix = $sNameSuffix; $this->m_bDuplicatesAllowed = $bDuplicatesAllowed; - $this->m_aEditableFields = array(); + $this->m_aEditableFields = []; /** @var AttributeLinkedSetIndirect $oAttDef */ $oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $this->m_sAttCode); @@ -67,34 +68,33 @@ class UILinksWidget $oLinkingAttDef = MetaModel::GetAttributeDef($this->m_sLinkedClass, $this->m_sExtKeyToRemote); $this->m_sRemoteClass = $oLinkingAttDef->GetTargetClass(); - $this->m_aEditableFields = array(); - $this->m_aTableConfig = array(); - $this->m_aTableConfig['form::checkbox'] = array( + $this->m_aEditableFields = []; + $this->m_aTableConfig = []; + $this->m_aTableConfig['form::checkbox'] = [ 'label' => "m_sAttCode}{$this->m_sNameSuffix} .selection', this.checked); oWidget".$this->m_sInputId.".OnSelectChange();\">", 'description' => Dict::S('UI:SelectAllToggle+'), - ); + ]; $aLnkAttDefsToDisplay = MetaModel::GetZListAttDefsFilteredForIndirectLinkClass($sClass, $sAttCode); - foreach ($aLnkAttDefsToDisplay as $oLnkAttDef) - { + foreach ($aLnkAttDefsToDisplay as $oLnkAttDef) { $sLnkAttCode = $oLnkAttDef->GetCode(); $this->m_aEditableFields[] = $sLnkAttCode; - $this->m_aTableConfig[$sLnkAttCode] = array('label' => $oLnkAttDef->GetLabel(), 'description' => $oLnkAttDef->GetDescription()); + $this->m_aTableConfig[$sLnkAttCode] = ['label' => $oLnkAttDef->GetLabel(), 'description' => $oLnkAttDef->GetDescription()]; } - $this->m_aTableConfig['static::key'] = array( + $this->m_aTableConfig['static::key'] = [ 'label' => MetaModel::GetName($this->m_sRemoteClass), 'description' => MetaModel::GetClassDescription($this->m_sRemoteClass), - ); + ]; $this->m_aEditableFields[] = $this->m_sExtKeyToRemote; $aRemoteAttDefsToDisplay = MetaModel::GetZListAttDefsFilteredForIndirectRemoteClass($this->m_sRemoteClass); foreach ($aRemoteAttDefsToDisplay as $oRemoteAttDef) { $sRemoteAttCode = $oRemoteAttDef->GetCode(); - $this->m_aTableConfig['static::'.$sRemoteAttCode] = array( + $this->m_aTableConfig['static::'.$sRemoteAttCode] = [ 'label' => $oRemoteAttDef->GetLabel(), 'description' => $oRemoteAttDef->GetDescription(), - ); + ]; } } @@ -105,7 +105,6 @@ class UILinksWidget return ($bSafe) ? utils::GetSafeId($sFieldId) : $sFieldId; } - /** * Display the table with the form for editing all the links at once * @@ -119,7 +118,6 @@ class UILinksWidget return DataTableUIBlockFactory::MakeForForm("{$this->m_sAttCode}{$this->m_sNameSuffix}", $aConfig, $aData); } - /** * Get the HTML fragment corresponding to the linkset editing widget * @@ -157,7 +155,7 @@ class UILinksWidget * @throws DictExceptionMissingString * @throws Exception */ - public function GetObjectPickerDialog($oPage, $oCurrentObj, $sJson, $aAlreadyLinkedIds = array(), $aPrefillFormParam = array()) + public function GetObjectPickerDialog($oPage, $oCurrentObj, $sJson, $aAlreadyLinkedIds = [], $aPrefillFormParam = []) { $oAlreadyLinkedFilter = new DBObjectSearch($this->m_sRemoteClass); if (!$this->m_bDuplicatesAllowed && count($aAlreadyLinkedIds) > 0) { @@ -183,7 +181,9 @@ class UILinksWidget $sLinkedSetId = $oBlock->oUILinksWidget->GetLinkedSetId(); $oDisplayBlock = new DisplayBlock($oFilter, 'search', false); - $oBlock->AddSubBlock($oDisplayBlock->GetDisplay($oPage, "SearchFormToAdd_{$sLinkedSetId}", + $oBlock->AddSubBlock($oDisplayBlock->GetDisplay( + $oPage, + "SearchFormToAdd_{$sLinkedSetId}", [ 'menu' => false, 'result_list_outer_selector' => "SearchResultsToAdd_{$sLinkedSetId}", @@ -195,7 +195,8 @@ class UILinksWidget 'query_params' => $oFilter->GetInternalParams(), 'hidden_criteria' => $sAlreadyLinkedExpression, 'submit_on_load' => false, - ])); + ] + )); $oBlock->AddForm(); } @@ -212,25 +213,21 @@ class UILinksWidget * @throws \CoreException * @throws \Exception */ - public function SearchObjectsToAdd(WebPage $oP, $sRemoteClass = '', $aAlreadyLinkedIds = array(), $oCurrentObj = null) + public function SearchObjectsToAdd(WebPage $oP, $sRemoteClass = '', $aAlreadyLinkedIds = [], $oCurrentObj = null) { - if ($sRemoteClass != '') - { + if ($sRemoteClass != '') { // assert(MetaModel::IsParentClass($this->m_sRemoteClass, $sRemoteClass)); $oFilter = new DBObjectSearch($sRemoteClass); - } - else - { + } else { // No remote class specified use the one defined in the linkedset - $oFilter = new DBObjectSearch($this->m_sRemoteClass); + $oFilter = new DBObjectSearch($this->m_sRemoteClass); } - if (!$this->m_bDuplicatesAllowed && count($aAlreadyLinkedIds) > 0) - { + if (!$this->m_bDuplicatesAllowed && count($aAlreadyLinkedIds) > 0) { $oFilter->AddCondition('id', $aAlreadyLinkedIds, 'NOTIN'); } $this->SetSearchDefaultFromContext($oCurrentObj, $oFilter); $oBlock = new DisplayBlock($oFilter, 'list', false); - $oBlock->Display($oP, "ResultsToAdd_{$this->m_sAttCode}", array('menu' => false, 'cssCount'=> '#count_'.$this->m_sAttCode.$this->m_sNameSuffix , 'selection_mode' => true, 'table_id' => 'add_'.$this->m_sAttCode)); // Don't display the 'Actions' menu on the results + $oBlock->Display($oP, "ResultsToAdd_{$this->m_sAttCode}", ['menu' => false, 'cssCount' => '#count_'.$this->m_sAttCode.$this->m_sNameSuffix , 'selection_mode' => true, 'table_id' => 'add_'.$this->m_sAttCode]); // Don't display the 'Actions' menu on the results } /** @@ -251,7 +248,7 @@ class UILinksWidget $oLinkedObj = MetaModel::GetObject($this->m_sRemoteClass, $iObjectId, false); if (is_object($oLinkedObj)) { $oBlock = new BlockIndirectLinkSetEditTable($this); - $aRow = $oBlock->GetFormRow($oP, $oLinkedObj, $iObjectId, array(), $oCurrentObj, $iAdditionId); // Not yet created link get negative Ids + $aRow = $oBlock->GetFormRow($oP, $oLinkedObj, $iObjectId, [], $oCurrentObj, $iAdditionId); // Not yet created link get negative Ids $oRow = new FormTableRow("{$this->m_sAttCode}{$this->m_sNameSuffix}", $this->m_aTableConfig, $aRow, -$iAdditionId); $oP->AddUiBlock($oRow); $iAdditionId++; @@ -280,7 +277,7 @@ class UILinksWidget $oLinkedObj = MetaModel::GetObject($this->m_sRemoteClass, $iObjectId, false); if (is_object($oLinkedObj)) { $oBlock = new BlockIndirectLinkSetEditTable($this); - $aRow = $oBlock->GetFormRow($oP, $oLinkedObj, $iObjectId, array(), $oCurrentObj, $iAdditionId, false /* Default value */, $bAllowRemoteExtKeyEdit); // Not yet created link get negative Ids + $aRow = $oBlock->GetFormRow($oP, $oLinkedObj, $iObjectId, [], $oCurrentObj, $iAdditionId, false /* Default value */, $bAllowRemoteExtKeyEdit); // Not yet created link get negative Ids $aData = []; foreach ($aRow as $item) { $aData[] = $item; @@ -307,37 +304,30 @@ class UILinksWidget $oAppContext = new ApplicationContext(); $sSrcClass = get_class($oSourceObj); $sDestClass = $oSearch->GetClass(); - foreach($oAppContext->GetNames() as $key) - { + foreach ($oAppContext->GetNames() as $key) { // Find the value of the object corresponding to each 'context' parameter - $aCallSpec = array($sSrcClass, 'MapContextParam'); + $aCallSpec = [$sSrcClass, 'MapContextParam']; $sAttCode = ''; - if (is_callable($aCallSpec)) - { - $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter + if (is_callable($aCallSpec)) { + $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter } - if (MetaModel::IsValidAttCode($sSrcClass, $sAttCode)) - { + if (MetaModel::IsValidAttCode($sSrcClass, $sAttCode)) { $defaultValue = $oSourceObj->Get($sAttCode); // Find the attcode for the same 'context' parameter in the destination class // and sets its value as the default value for the search condition - $aCallSpec = array($sDestClass, 'MapContextParam'); + $aCallSpec = [$sDestClass, 'MapContextParam']; $sAttCode = ''; - if (is_callable($aCallSpec)) - { - $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter + if (is_callable($aCallSpec)) { + $sAttCode = call_user_func($aCallSpec, $key); // Returns null when there is no mapping for this parameter } - - if (MetaModel::IsValidAttCode($sDestClass, $sAttCode) && !empty($defaultValue)) - { + + if (MetaModel::IsValidAttCode($sDestClass, $sAttCode) && !empty($defaultValue)) { // Add Hierarchical condition if hierarchical key $oAttDef = MetaModel::GetAttributeDef($sDestClass, $sAttCode); - if (isset($oAttDef) && ($oAttDef->IsExternalKey())) - { - try - { + if (isset($oAttDef) && ($oAttDef->IsExternalKey())) { + try { /** @var AttributeExternalKey $oAttDef */ $sTargetClass = $oAttDef->GetTargetClass(); $sHierarchicalKeyCode = MetaModel::IsHierarchicalClass($sTargetClass); @@ -348,8 +338,7 @@ class UILinksWidget $oHKFilter->AddCondition_PointingTo($oFilter, $sHierarchicalKeyCode, TREE_OPERATOR_BELOW); $oSearch->AddCondition_PointingTo($oHKFilter, $sAttCode); } - } - catch (Exception $e) { + } catch (Exception $e) { } } else { $oSearch->AddCondition($sAttCode, $defaultValue); diff --git a/application/ui.passwordwidget.class.inc.php b/application/ui.passwordwidget.class.inc.php index 29315b069..138627bd0 100644 --- a/application/ui.passwordwidget.class.inc.php +++ b/application/ui.passwordwidget.class.inc.php @@ -1,9 +1,10 @@ sNameSuffix = $sNameSuffix; $this->iId = $iInputId; } - + /** * Get the HTML fragment corresponding to the linkset editing widget * @param WebPage $oP The web page used for all the output * @param Hash $aArgs Extra context arguments * @return string The HTML fragment to be inserted into the page */ - public function Display(WebPage $oPage, $aArgs = array()) + public function Display(WebPage $oPage, $aArgs = []) { $oPage->add_dict_entry('UI:Component:Input:Password:DoesNotMatch'); @@ -94,4 +95,3 @@ class UIPasswordWidget return $sHtmlValue; } } -?> diff --git a/application/ui.searchformforeignkeys.class.inc.php b/application/ui.searchformforeignkeys.class.inc.php index 1c140b3f8..4be179c3e 100644 --- a/application/ui.searchformforeignkeys.class.inc.php +++ b/application/ui.searchformforeignkeys.class.inc.php @@ -1,4 +1,5 @@ m_sRemoteClass); $oBlock = new DisplayBlock($oFilter, 'search', false); - $oPage->AddUiBlock($oBlock->GetDisplay($oPage, "SearchFormToAdd_{$this->m_iInputId}", - array( + $oPage->AddUiBlock($oBlock->GetDisplay( + $oPage, + "SearchFormToAdd_{$this->m_iInputId}", + [ 'menu' => false, 'result_list_outer_selector' => "SearchResultsToAdd_{$this->m_iInputId}", 'table_id' => "add_{$this->m_iInputId}", @@ -55,12 +57,14 @@ class UISearchFormForeignKeys 'selection_mode' => true, 'cssCount' => "#count_{$this->m_iInputId}", 'query_params' => $oFilter->GetInternalParams(), - ))); + ] + )); $sEmptyList = Dict::S('UI:Message:EmptyList:UseSearchForm'); $sCancel = Dict::S('UI:Button:Cancel'); $sAdd = Dict::S('UI:Button:Add'); - $oPage->add(<<add( + <<

    {$sEmptyList}

    @@ -101,20 +105,17 @@ $('#dlg_{$this->m_iInputId}').dialog('option', {title:'$sTitle'}); $('#SearchFormToAdd_{$this->m_iInputId} form').on('submit.uilinksWizard', oForeignKeysWidget{$this->m_iInputId}.SearchObjectsToAdd); $('#SearchFormToAdd_{$this->m_iInputId}').on('resize', oForeignKeysWidget{$this->m_iInputId}.UpdateSizes); JS -); + ); } public function GetFullListForeignKeysFromSelection($oPage, $oFullSetFilter) { - try - { + try { $aLinkedObjects = utils::ReadMultipleSelectionWithFriendlyname($oFullSetFilter); $oPage->add(json_encode($aLinkedObjects)); - } - catch (CoreException $e) - { + } catch (CoreException $e) { http_response_code(500); - $oPage->add(json_encode(array('error' => $e->GetMessage()))); + $oPage->add(json_encode(['error' => $e->GetMessage()])); IssueLog::Error($e->getMessage()."\nDebug trace:\n".$e->getTraceAsString()); } } @@ -129,20 +130,20 @@ JS */ public function ListResultsSearchForeignKeys(WebPage $oP, $sRemoteClass = '') { - if ($sRemoteClass != '') - { + if ($sRemoteClass != '') { // assert(MetaModel::IsParentClass($this->m_sRemoteClass, $sRemoteClass)); $oFilter = new DBObjectSearch($sRemoteClass); - } - else - { + } else { // No remote class specified use the one defined in the linkedset $oFilter = new DBObjectSearch($this->m_sRemoteClass); } $oBlock = new DisplayBlock($oFilter, 'list', false); - $oBlock->Display($oP, "ResultsToAdd_{$this->m_iInputId}", - array('menu' => false, 'cssCount' => "#count_{$this->m_iInputId}", 'selection_mode' => true, 'table_id' => "add_{$this->m_iInputId}")); + $oBlock->Display( + $oP, + "ResultsToAdd_{$this->m_iInputId}", + ['menu' => false, 'cssCount' => "#count_{$this->m_iInputId}", 'selection_mode' => true, 'table_id' => "add_{$this->m_iInputId}"] + ); } } diff --git a/application/uiwizard.class.inc.php b/application/uiwizard.class.inc.php index 47472643a..a5ba088f9 100644 --- a/application/uiwizard.class.inc.php +++ b/application/uiwizard.class.inc.php @@ -1,9 +1,10 @@ use Combodo\iTop\Application\WebPage\iTopWebPage; - /** * Class UIWizard * @@ -31,74 +31,73 @@ class UIWizard protected $m_sClass; protected $m_sTargetState; protected $m_aWizardSteps; - + public function __construct($oPage, $sClass, $sTargetState = '') { $this->m_oPage = $oPage; $this->m_sClass = $sClass; - if (empty($sTargetState)) - { + if (empty($sTargetState)) { $sTargetState = MetaModel::GetDefaultState($sClass); } $this->m_sTargetState = $sTargetState; $this->m_aWizardSteps = $this->ComputeWizardStructure(); } - - public function GetObjectClass() { return $this->m_sClass; } - public function GetTargetState() { return $this->m_sTargetState; } - public function GetWizardStructure() { return $this->m_aWizardSteps; } - + + public function GetObjectClass() + { + return $this->m_sClass; + } + public function GetTargetState() + { + return $this->m_sTargetState; + } + public function GetWizardStructure() + { + return $this->m_aWizardSteps; + } + /** * Displays one step of the wizard - */ - public function DisplayWizardStep($aStep, $iStepIndex, &$iMaxInputId, &$aFieldsMap, $bFinishEnabled = false, $aArgs = array()) + */ + public function DisplayWizardStep($aStep, $iStepIndex, &$iMaxInputId, &$aFieldsMap, $bFinishEnabled = false, $aArgs = []) { - if ($iStepIndex == 1) // one big form that contains everything, to make sure that the uploaded files are posted too - { + if ($iStepIndex == 1) { // one big form that contains everything, to make sure that the uploaded files are posted too $this->m_oPage->add("\n"); } $this->m_oPage->add("
    \n"); $this->m_oPage->add("\n"); $aStates = MetaModel::EnumStates($this->m_sClass); - $aDetails = array(); + $aDetails = []; $sJSHandlerCode = ''; // Javascript code to be executed each time this step of the wizard is entered - foreach($aStep as $sAttCode) - { + foreach ($aStep as $sAttCode) { $oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $sAttCode); - if ($oAttDef->IsWritable()) - { + if ($oAttDef->IsWritable()) { $sAttLabel = $oAttDef->GetLabel(); $iOptions = isset($aStates[$this->m_sTargetState]['attribute_list'][$sAttCode]) ? $aStates[$this->m_sTargetState]['attribute_list'][$sAttCode] : 0; - + $aPrerequisites = $oAttDef->GetPrerequisiteAttributes(); - if ($iOptions & (OPT_ATT_MANDATORY | OPT_ATT_MUSTCHANGE | OPT_ATT_MUSTPROMPT)) - { - $aFields[$sAttCode] = array(); - foreach($aPrerequisites as $sCode) - { + if ($iOptions & (OPT_ATT_MANDATORY | OPT_ATT_MUSTCHANGE | OPT_ATT_MUSTPROMPT)) { + $aFields[$sAttCode] = []; + foreach ($aPrerequisites as $sCode) { $aFields[$sAttCode][$sCode] = ''; } } - if (count($aPrerequisites) > 0) - { + if (count($aPrerequisites) > 0) { $aOptions[] = 'Prerequisites: '.implode(', ', $aPrerequisites); } - - $sFieldFlag = (($iOptions & (OPT_ATT_MANDATORY | OPT_ATT_MUSTCHANGE)) || (!$oAttDef->IsNullAllowed()) )? ' *' : ''; + + $sFieldFlag = (($iOptions & (OPT_ATT_MANDATORY | OPT_ATT_MUSTCHANGE)) || (!$oAttDef->IsNullAllowed())) ? ' *' : ''; $oDefaultValuesSet = $oAttDef->GetDefaultValue(/* $oObject->ToArgs() */); // @@@ TO DO: get the object's current value if the object exists $sHTMLValue = cmdbAbstractObject::GetFormElementForField($this->m_oPage, $this->m_sClass, $sAttCode, $oAttDef, $oDefaultValuesSet, '', "att_$iMaxInputId", '', $iOptions, $aArgs); $aFieldsMap["att_$iMaxInputId"] = $sAttCode; - $aDetails[] = array('label' => ''.$oAttDef->GetLabel().$sFieldFlag.'', 'value' => "$sHTMLValue"); - if ($oAttDef->GetValuesDef() != null) - { + $aDetails[] = ['label' => ''.$oAttDef->GetLabel().$sFieldFlag.'', 'value' => "$sHTMLValue"]; + if ($oAttDef->GetValuesDef() != null) { $sJSHandlerCode .= "\toWizardHelper.RequestAllowedValues('$sAttCode');\n"; } - if ($oAttDef->GetDefaultValue() != null) - { + if ($oAttDef->GetDefaultValue() != null) { $sJSHandlerCode .= "\toWizardHelper.RequestDefaultValue('$sAttCode');\n"; } - if ($oAttDef->IsLinkSet()) - { + if ($oAttDef->IsLinkSet()) { $sJSHandlerCode .= "\toLinkWidgetatt_$iMaxInputId.Init();"; } $iMaxInputId++; @@ -126,11 +125,11 @@ $sJSHandlerCode } "); $this->m_oPage->add("
    \n\n"); - } + } /** * Display the final step of the wizard: a confirmation screen - */ + */ public function DisplayFinalStep($iStepIndex, $aFieldsMap) { $oAppContext = new ApplicationContext(); @@ -141,136 +140,116 @@ $sJSHandlerCode $this->m_oPage->add("\n"); $this->m_oPage->add("\n"); $sScript = "function OnEnterStep$iStepIndex() {\n"; - foreach($aFieldsMap as $iInputId => $sAttCode) - { - $sScript .= "\toWizardHelper.UpdateCurrentValue('$sAttCode');\n"; + foreach ($aFieldsMap as $iInputId => $sAttCode) { + $sScript .= "\toWizardHelper.UpdateCurrentValue('$sAttCode');\n"; } - $sScript .= "\toWizardHelper.Preview('object_preview');\n"; - $sScript .= "\t$('#wizard_json_obj').val(oWizardHelper.ToJSON());\n"; + $sScript .= "\toWizardHelper.Preview('object_preview');\n"; + $sScript .= "\t$('#wizard_json_obj').val(oWizardHelper.ToJSON());\n"; $sScript .= "}\n"; $this->m_oPage->add_script($sScript); $this->m_oPage->add("
    \n"); $this->m_oPage->add("
    \n"); - $this->m_oPage->add($oAppContext->GetForForm()); + $this->m_oPage->add($oAppContext->GetForForm()); $this->m_oPage->add(""); $this->m_oPage->add("m_sClass)."\" />\n"); $this->m_oPage->add("
    \n"); $this->m_oPage->add("\n"); - } + } /** * Compute the order of the fields & pages in the wizard - * @param $oPage iTopWebPage The current page (used to display error messages) + * @param $oPage iTopWebPage The current page (used to display error messages) * @param $sClass string Name of the class * @param $sStateCode string Code of the target state of the object - * @return hash Two dimensional array: each element represents the list of fields for a given page + * @return hash Two dimensional array: each element represents the list of fields for a given page */ protected function ComputeWizardStructure() { - $aWizardSteps = array( 'mandatory' => array(), 'optional' => array()); - $aFieldsDone = array(); // Store all the fields that are already covered by a previous step of the wizard - + $aWizardSteps = [ 'mandatory' => [], 'optional' => []]; + $aFieldsDone = []; // Store all the fields that are already covered by a previous step of the wizard + $aStates = MetaModel::EnumStates($this->m_sClass); $sStateAttCode = MetaModel::GetStateAttributeCode($this->m_sClass); - - $aMandatoryAttributes = array(); - // Some attributes are always mandatory independently of the state machine (if any) - foreach(MetaModel::GetAttributesList($this->m_sClass) as $sAttCode) - { - $oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $sAttCode); - if (!$oAttDef->IsExternalField() && !$oAttDef->IsNullAllowed() && - $oAttDef->IsWritable() && ($sAttCode != $sStateAttCode) ) - { - $aMandatoryAttributes[$sAttCode] = OPT_ATT_MANDATORY; - } - } - // Now check the attributes that are mandatory in the specified state - if ( (!empty($this->m_sTargetState)) && (count($aStates[$this->m_sTargetState]['attribute_list']) > 0) ) - { + $aMandatoryAttributes = []; + // Some attributes are always mandatory independently of the state machine (if any) + foreach (MetaModel::GetAttributesList($this->m_sClass) as $sAttCode) { + $oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $sAttCode); + if (!$oAttDef->IsExternalField() && !$oAttDef->IsNullAllowed() && + $oAttDef->IsWritable() && ($sAttCode != $sStateAttCode)) { + $aMandatoryAttributes[$sAttCode] = OPT_ATT_MANDATORY; + } + } + + // Now check the attributes that are mandatory in the specified state + if ((!empty($this->m_sTargetState)) && (count($aStates[$this->m_sTargetState]['attribute_list']) > 0)) { // Check all the fields that *must* be included in the wizard for this // particular target state - $aFields = array(); - foreach($aStates[$this->m_sTargetState]['attribute_list'] as $sAttCode => $iOptions) - { - if ( (isset($aMandatoryAttributes[$sAttCode])) && - ($aMandatoryAttributes[$sAttCode] & (OPT_ATT_MANDATORY | OPT_ATT_MUSTCHANGE | OPT_ATT_MUSTPROMPT)) ) - { + $aFields = []; + foreach ($aStates[$this->m_sTargetState]['attribute_list'] as $sAttCode => $iOptions) { + if ((isset($aMandatoryAttributes[$sAttCode])) && + ($aMandatoryAttributes[$sAttCode] & (OPT_ATT_MANDATORY | OPT_ATT_MUSTCHANGE | OPT_ATT_MUSTPROMPT))) { $aMandatoryAttributes[$sAttCode] |= $iOptions; - } - else - { + } else { $aMandatoryAttributes[$sAttCode] = $iOptions; } } } - + // Check all the fields that *must* be included in the wizard // i.e. all mandatory, must-change or must-prompt fields that are // not also read-only or hidden. // Some fields may be required (null not allowed) from the database - // perspective, but hidden or read-only from the user interface perspective - $aFields = array(); - foreach($aMandatoryAttributes as $sAttCode => $iOptions) - { - if ( ($iOptions & (OPT_ATT_MANDATORY | OPT_ATT_MUSTCHANGE | OPT_ATT_MUSTPROMPT)) && - !($iOptions & (OPT_ATT_READONLY | OPT_ATT_HIDDEN)) ) - { + // perspective, but hidden or read-only from the user interface perspective + $aFields = []; + foreach ($aMandatoryAttributes as $sAttCode => $iOptions) { + if (($iOptions & (OPT_ATT_MANDATORY | OPT_ATT_MUSTCHANGE | OPT_ATT_MUSTPROMPT)) && + !($iOptions & (OPT_ATT_READONLY | OPT_ATT_HIDDEN))) { $oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $sAttCode); $aPrerequisites = $oAttDef->GetPrerequisiteAttributes(); - $aFields[$sAttCode] = array(); - foreach($aPrerequisites as $sCode) - { + $aFields[$sAttCode] = []; + foreach ($aPrerequisites as $sCode) { $aFields[$sAttCode][$sCode] = ''; } } } - + // Now use the dependencies between the fields to order them // Start from the order of the 'details' $aList = MetaModel::FlattenZlist(MetaModel::GetZListItems($this->m_sClass, 'details')); $index = 0; - $aOrder = array(); - foreach($aFields as $sAttCode => $void) - { - $aOrder[$sAttCode] = 999; // At the end of the list... + $aOrder = []; + foreach ($aFields as $sAttCode => $void) { + $aOrder[$sAttCode] = 999; // At the end of the list... } - foreach($aList as $sAttCode) - { - if (array_key_exists($sAttCode, $aFields)) - { + foreach ($aList as $sAttCode) { + if (array_key_exists($sAttCode, $aFields)) { $aOrder[$sAttCode] = $index; } $index++; } - foreach($aFields as $sAttCode => $aDependencies) - { + foreach ($aFields as $sAttCode => $aDependencies) { // All fields with no remaining dependencies can be entered at this // step of the wizard - if (count($aDependencies) > 0) - { + if (count($aDependencies) > 0) { $iMaxPos = 0; // Remove this field from the dependencies of the other fields - foreach($aDependencies as $sDependentAttCode => $void) - { + foreach ($aDependencies as $sDependentAttCode => $void) { // position the current field after the ones it depends on - $iMaxPos = max($iMaxPos, 1+$aOrder[$sDependentAttCode]); + $iMaxPos = max($iMaxPos, 1 + $aOrder[$sDependentAttCode]); } } } asort($aOrder); - $aCurrentStep = array(); - foreach($aOrder as $sAttCode => $rank) - { + $aCurrentStep = []; + foreach ($aOrder as $sAttCode => $rank) { $aCurrentStep[] = $sAttCode; $aFieldsDone[$sAttCode] = ''; } $aWizardSteps['mandatory'][] = $aCurrentStep; - // Now computes the steps to fill the optional fields - $aFields = array(); // reset - foreach(MetaModel::ListAttributeDefs($this->m_sClass) as $sAttCode=>$oAttDef) - { + $aFields = []; // reset + foreach (MetaModel::ListAttributeDefs($this->m_sClass) as $sAttCode => $oAttDef) { $iOptions = (isset($aStates[$this->m_sTargetState]['attribute_list'][$sAttCode])) ? $aStates[$this->m_sTargetState]['attribute_list'][$sAttCode] : 0; if (($sStateAttCode != $sAttCode) && (!$oAttDef->IsExternalField()) && @@ -282,7 +261,7 @@ $sJSHandlerCode // are removed from the 'optional' part of the wizard $oAttDef = MetaModel::GetAttributeDef($this->m_sClass, $sAttCode); $aPrerequisites = $oAttDef->GetPrerequisiteAttributes(); - $aFields[$sAttCode] = array(); + $aFields[$sAttCode] = []; foreach ($aPrerequisites as $sCode) { if (!isset($aFieldsDone[$sCode])) { // retain only the dependencies that were not covered @@ -293,28 +272,23 @@ $sJSHandlerCode } } // Now use the dependencies between the fields to order them - while(count($aFields) > 0) - { - $aCurrentStep = array(); - foreach($aFields as $sAttCode => $aDependencies) - { + while (count($aFields) > 0) { + $aCurrentStep = []; + foreach ($aFields as $sAttCode => $aDependencies) { // All fields with no remaining dependencies can be entered at this // step of the wizard - if (count($aDependencies) == 0) - { + if (count($aDependencies) == 0) { $aCurrentStep[] = $sAttCode; $aFieldsDone[$sAttCode] = ''; unset($aFields[$sAttCode]); // Remove this field from the dependencies of the other fields - foreach($aFields as $sUpdatedCode => $aDummy) - { + foreach ($aFields as $sUpdatedCode => $aDummy) { // remove the dependency unset($aFields[$sUpdatedCode][$sAttCode]); } } } - if (count($aCurrentStep) == 0) - { + if (count($aCurrentStep) == 0) { // This step of the wizard would contain NO field ! $this->m_oPage->add(Dict::S('UI:Error:WizardCircularReferenceInDependencies')); print_r($aFields); @@ -323,7 +297,6 @@ $sJSHandlerCode $aWizardSteps['optional'][] = $aCurrentStep; } return $aWizardSteps; - - } + + } } -?> diff --git a/application/user.dashboard.class.inc.php b/application/user.dashboard.class.inc.php index 1ccc98c6e..ab3178040 100644 --- a/application/user.dashboard.class.inc.php +++ b/application/user.dashboard.class.inc.php @@ -1,9 +1,10 @@ "gui", "key_type" => "autoincrement", - "name_attcode" => array('user_id', 'menu_code'), + "name_attcode" => ['user_id', 'menu_code'], "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_app_dashboards", "db_key_field" => "id", "db_finalclass_field" => "", - ); - - MetaModel::Init_Params($aParams); - MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", array("targetclass"=>"User", "allowed_values"=>null, "sql"=>"user_id", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("menu_code", array("allowed_values"=>null, "sql"=>"menu_code", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeText("contents", array("allowed_values"=>null, "sql"=>"contents", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); + ]; - MetaModel::Init_SetZListItems('default_search', array ( + MetaModel::Init_Params($aParams); + MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", ["targetclass" => "User", "allowed_values" => null, "sql" => "user_id", "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("menu_code", ["allowed_values" => null, "sql" => "menu_code", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeText("contents", ["allowed_values" => null, "sql" => "contents", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + + MetaModel::Init_SetZListItems('default_search', [ 0 => 'user_id', 1 => 'menu_code', - )); - MetaModel::Init_SetZListItems('list', array ( + ]); + MetaModel::Init_SetZListItems('list', [ 0 => 'user_id', 1 => 'menu_code', - )); + ]); } /** * Overloading this function here to secure a fix done right before the release - * The real fix should be to implement this verb in DBObject + * The real fix should be to implement this verb in DBObject */ public function DBDeleteTracked(CMDBChange $oChange, $bSkipStrongSecurity = null, &$oDeletionPlan = null) { $this->DBDelete($oDeletionPlan); } } -?> diff --git a/application/user.preferences.class.inc.php b/application/user.preferences.class.inc.php index dd1c8f322..40cc48876 100644 --- a/application/user.preferences.class.inc.php +++ b/application/user.preferences.class.inc.php @@ -1,9 +1,10 @@ Set('userid', $sUserId); - $oObj->Set('preferences', array()); // Default preferences: an empty array + $oObj->Set('preferences', []); // Default preferences: an empty array try { utils::PushArchiveMode(false); $oObj->DBInsert(); utils::PopArchiveMode(); - } - catch (Exception $e) { + } catch (Exception $e) { // Ignore errors } } @@ -245,25 +245,25 @@ class appUserPreferences extends DBObject */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "gui", "key_type" => "autoincrement", "name_attcode" => "login", "state_attcode" => "", - "reconc_keys" => array("userid","login"), + "reconc_keys" => ["userid","login"], "db_table" => "priv_app_preferences", "db_key_field" => "id", "db_finalclass_field" => "", - ); - + ]; + MetaModel::Init_Params($aParams); - MetaModel::Init_AddAttribute(new AttributeExternalKey("userid", array("targetclass"=>"User", "allowed_values"=>null, "sql"=>"userid", "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributePropertySet("preferences", array("allowed_values"=>null, "sql"=>"preferences", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalField("org_id", array("allowed_values" => null, "extkey_attcode" => 'userid', "target_attcode" => "org_id"))); - MetaModel::Init_AddAttribute(new AttributeExternalField("login", array("allowed_values" => null, "extkey_attcode" => 'userid', "target_attcode" => "login"))); - MetaModel::Init_SetZListItems('list', array('org_id','preferences')); - MetaModel::Init_SetZListItems('default_search', array('userid','login','org_id')); + MetaModel::Init_AddAttribute(new AttributeExternalKey("userid", ["targetclass" => "User", "allowed_values" => null, "sql" => "userid", "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributePropertySet("preferences", ["allowed_values" => null, "sql" => "preferences", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalField("org_id", ["allowed_values" => null, "extkey_attcode" => 'userid', "target_attcode" => "org_id"])); + MetaModel::Init_AddAttribute(new AttributeExternalField("login", ["allowed_values" => null, "extkey_attcode" => 'userid', "target_attcode" => "login"])); + MetaModel::Init_SetZListItems('list', ['org_id','preferences']); + MetaModel::Init_SetZListItems('default_search', ['userid','login','org_id']); } /** diff --git a/application/xlsxwriter.class.php b/application/xlsxwriter.class.php index 853adc1a0..528d61d4f 100644 --- a/application/xlsxwriter.class.php +++ b/application/xlsxwriter.class.php @@ -1,43 +1,51 @@ author=$author; } + public function __construct() + { + } + public function setAuthor($author = '') + { + $this->author = $author; + } public function __destruct() { if (!empty($this->temp_files)) { - foreach($this->temp_files as $temp_file) { + foreach ($this->temp_files as $temp_file) { @unlink($temp_file); } } } - + public function setDateFormat($date_format) { $this->date_format = $date_format; } - + public function setDateTimeFormat($date_time_format) { $this->date_time_format = $date_time_format; } - + protected function tempFilename() { $filename = tempnam(SetupUtils::GettmpDir(), 'xlsx_writer_'); @@ -64,120 +72,123 @@ Class XLSXWriter { @unlink($filename);//if the zip already exists, overwrite it $zip = new ZipArchive(); - if (empty($this->sheets_meta)) { self::log("Error in ".__CLASS__."::".__FUNCTION__.", no worksheets defined."); return; } - if (!$zip->open($filename, ZipArchive::CREATE)) { self::log("Error in ".__CLASS__."::".__FUNCTION__.", unable to create zip."); return; } - + if (empty($this->sheets_meta)) { + self::log("Error in ".__CLASS__."::".__FUNCTION__.", no worksheets defined."); + return; + } + if (!$zip->open($filename, ZipArchive::CREATE)) { + self::log("Error in ".__CLASS__."::".__FUNCTION__.", unable to create zip."); + return; + } + $zip->addEmptyDir("docProps/"); - $zip->addFromString("docProps/app.xml" , self::buildAppXML() ); + $zip->addFromString("docProps/app.xml", self::buildAppXML()); $zip->addFromString("docProps/core.xml", self::buildCoreXML()); $zip->addEmptyDir("_rels/"); $zip->addFromString("_rels/.rels", self::buildRelationshipsXML()); $zip->addEmptyDir("xl/worksheets/"); - foreach($this->sheets_meta as $sheet_meta) { - $zip->addFile($sheet_meta['filename'], "xl/worksheets/".$sheet_meta['xmlname'] ); + foreach ($this->sheets_meta as $sheet_meta) { + $zip->addFile($sheet_meta['filename'], "xl/worksheets/".$sheet_meta['xmlname']); } if (!empty($this->shared_strings)) { - $zip->addFile($this->writeSharedStringsXML(), "xl/sharedStrings.xml" ); //$zip->addFromString("xl/sharedStrings.xml", self::buildSharedStringsXML() ); + $zip->addFile($this->writeSharedStringsXML(), "xl/sharedStrings.xml"); //$zip->addFromString("xl/sharedStrings.xml", self::buildSharedStringsXML() ); } - $zip->addFromString("xl/workbook.xml" , self::buildWorkbookXML() ); - $zip->addFile($this->writeStylesXML(), "xl/styles.xml" ); //$zip->addFromString("xl/styles.xml" , self::buildStylesXML() ); - $zip->addFromString("[Content_Types].xml" , self::buildContentTypesXML() ); + $zip->addFromString("xl/workbook.xml", self::buildWorkbookXML()); + $zip->addFile($this->writeStylesXML(), "xl/styles.xml"); //$zip->addFromString("xl/styles.xml" , self::buildStylesXML() ); + $zip->addFromString("[Content_Types].xml", self::buildContentTypesXML()); $zip->addEmptyDir("xl/_rels/"); - $zip->addFromString("xl/_rels/workbook.xml.rels", self::buildWorkbookRelsXML() ); + $zip->addFromString("xl/_rels/workbook.xml.rels", self::buildWorkbookRelsXML()); $zip->close(); } - - public function writeSheet(array $data, $sheet_name='', array $header_types=array(), array $header_row=array() ) + public function writeSheet(array $data, $sheet_name = '', array $header_types = [], array $header_row = []) { - $data = empty($data) ? array( array('') ) : $data; - + $data = empty($data) ? [ [''] ] : $data; + $sheet_filename = $this->tempFilename(); - $sheet_default = 'Sheet'.(count($this->sheets_meta)+1); + $sheet_default = 'Sheet'.(count($this->sheets_meta) + 1); $sheet_name = !empty($sheet_name) ? $sheet_name : $sheet_default; - $this->sheets_meta[] = array('filename'=>$sheet_filename, 'sheetname'=>$sheet_name ,'xmlname'=>strtolower($sheet_default).".xml" ); + $this->sheets_meta[] = ['filename' => $sheet_filename, 'sheetname' => $sheet_name ,'xmlname' => strtolower($sheet_default).".xml" ]; $header_offset = empty($header_types) ? 0 : 1; $row_count = count($data) + $header_offset; $column_count = count($data[self::array_first_key($data)]); - $max_cell = self::xlsCell( $row_count-1, $column_count-1 ); + $max_cell = self::xlsCell($row_count - 1, $column_count - 1); - $tabselected = count($this->sheets_meta)==1 ? 'true' : 'false';//only first sheet is selected + $tabselected = count($this->sheets_meta) == 1 ? 'true' : 'false';//only first sheet is selected $cell_formats_arr = empty($header_types) ? array_fill(0, $column_count, 'string') : array_values($header_types); - if (empty($header_row) && !empty($header_types)) - { - $header_row = empty($header_types) ? array() : array_keys($header_types); + if (empty($header_row) && !empty($header_types)) { + $header_row = empty($header_types) ? [] : array_keys($header_types); } $fd = fopen($sheet_filename, "w+"); - if ($fd===false) { self::log("write failed in ".__CLASS__."::".__FUNCTION__."."); return; } - - fwrite($fd,''."\n"); - fwrite($fd,''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - if (!empty($header_row)) - { + if ($fd === false) { + self::log("write failed in ".__CLASS__."::".__FUNCTION__."."); + return; + } + + fwrite($fd, ''."\n"); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + if (!empty($header_row)) { fwrite($fd, ''); } - foreach($data as $i=>$row) - { - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, '&C&"Times New Roman,Regular"&12&A'); - fwrite($fd, '&C&"Times New Roman,Regular"&12Page &P'); - fwrite($fd, ''); - fwrite($fd,''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, '&C&"Times New Roman,Regular"&12&A'); + fwrite($fd, '&C&"Times New Roman,Regular"&12Page &P'); + fwrite($fd, ''); + fwrite($fd, ''); fclose($fd); } protected function writeCell($fd, $row_number, $column_number, $value, $cell_format) { - static $styles = array('money'=>1,'dollar'=>1,'datetime'=>2,'date'=>3,'string'=>0); + static $styles = ['money' => 1,'dollar' => 1,'datetime' => 2,'date' => 3,'string' => 0]; $cell = self::xlsCell($row_number, $column_number); $s = isset($styles[$cell_format]) && ($value !== '') ? $styles[$cell_format] : '0'; - + if (is_int($value) || is_float($value)) { - fwrite($fd,''.($value*1).'');//int,float, etc - } else if (($cell_format=='date') && ($value != '')) { - fwrite($fd,''.intval(self::convert_date_time($value)).''); - } else if (($cell_format=='datetime') && ($value != '')) { - fwrite($fd,''.self::convert_date_time($value).''); - } else if ($value==''){ - fwrite($fd,''); - } else if ($value[0]=='='){ - fwrite($fd,''.self::xmlspecialchars($value).''); - } else if ($value!==''){ - fwrite($fd,''.self::xmlspecialchars($this->setSharedString($value)).''); + fwrite($fd, ''.($value * 1).'');//int,float, etc + } elseif (($cell_format == 'date') && ($value != '')) { + fwrite($fd, ''.intval(self::convert_date_time($value)).''); + } elseif (($cell_format == 'datetime') && ($value != '')) { + fwrite($fd, ''.self::convert_date_time($value).''); + } elseif ($value == '') { + fwrite($fd, ''); + } elseif ($value[0] == '=') { + fwrite($fd, ''.self::xmlspecialchars($value).''); + } elseif ($value !== '') { + fwrite($fd, ''.self::xmlspecialchars($this->setSharedString($value)).''); } } @@ -185,62 +196,65 @@ Class XLSXWriter { $tempfile = $this->tempFilename(); $fd = fopen($tempfile, "w+"); - if ($fd===false) { self::log("write failed in ".__CLASS__."::".__FUNCTION__."."); return; } + if ($fd === false) { + self::log("write failed in ".__CLASS__."::".__FUNCTION__."."); + return; + } fwrite($fd, ''."\n"); fwrite($fd, ''); fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); fwrite($fd, ''); fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); fwrite($fd, ''); fwrite($fd, ''); fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); //fwrite($fd, ''); //fwrite($fd, ''); //fwrite($fd, ''); //fwrite($fd, ''); //fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); - fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); + fwrite($fd, ''); //fwrite($fd, ''); //fwrite($fd, ''); //fwrite($fd, ''); //fwrite($fd, ''); //fwrite($fd, ''); - fwrite($fd, ''); + fwrite($fd, ''); fwrite($fd, ''); fclose($fd); return $tempfile; @@ -250,12 +264,9 @@ Class XLSXWriter { // Strip control characters which Excel does not seem to like... $v = preg_replace('/[\x00-\x09\x0B\x0C\x0E-\x1F]/u', '', $v); - if (isset($this->shared_strings[$v])) - { + if (isset($this->shared_strings[$v])) { $string_value = $this->shared_strings[$v]; - } - else - { + } else { $string_value = count($this->shared_strings); $this->shared_strings[$v] = $string_value; } @@ -267,13 +278,15 @@ Class XLSXWriter { $tempfile = $this->tempFilename(); $fd = fopen($tempfile, "w+"); - if ($fd===false) { self::log("write failed in ".__CLASS__."::".__FUNCTION__."."); return; } - - fwrite($fd,''."\n"); - fwrite($fd,''); - foreach($this->shared_strings as $s=>$c) - { - fwrite($fd,''.self::xmlspecialchars($s).''); + if ($fd === false) { + self::log("write failed in ".__CLASS__."::".__FUNCTION__."."); + return; + } + + fwrite($fd, ''."\n"); + fwrite($fd, ''); + foreach ($this->shared_strings as $s => $c) { + fwrite($fd, ''.self::xmlspecialchars($s).''); } fwrite($fd, ''); fclose($fd); @@ -282,89 +295,89 @@ Class XLSXWriter protected function buildAppXML() { - $app_xml=""; - $app_xml.=''."\n"; - $app_xml.='0'; + $app_xml = ""; + $app_xml .= ''."\n"; + $app_xml .= '0'; return $app_xml; } protected function buildCoreXML() { - $core_xml=""; - $core_xml.=''."\n"; - $core_xml.=''; - $core_xml.=''.date("Y-m-d\TH:i:s.00\Z").'';//$date_time = '2013-07-25T15:54:37.00Z'; - $core_xml.=''.self::xmlspecialchars($this->author).''; - $core_xml.='0'; - $core_xml.=''; + $core_xml = ""; + $core_xml .= ''."\n"; + $core_xml .= ''; + $core_xml .= ''.date("Y-m-d\TH:i:s.00\Z").'';//$date_time = '2013-07-25T15:54:37.00Z'; + $core_xml .= ''.self::xmlspecialchars($this->author).''; + $core_xml .= '0'; + $core_xml .= ''; return $core_xml; } protected function buildRelationshipsXML() { - $rels_xml=""; - $rels_xml.=''."\n"; - $rels_xml.=''; - $rels_xml.=''; - $rels_xml.=''; - $rels_xml.=''; - $rels_xml.="\n"; - $rels_xml.=''; + $rels_xml = ""; + $rels_xml .= ''."\n"; + $rels_xml .= ''; + $rels_xml .= ''; + $rels_xml .= ''; + $rels_xml .= ''; + $rels_xml .= "\n"; + $rels_xml .= ''; return $rels_xml; } protected function buildWorkbookXML() { - $workbook_xml=""; - $workbook_xml.=''."\n"; - $workbook_xml.=''; - $workbook_xml.=''; - $workbook_xml.=''; - $workbook_xml.=''; - foreach($this->sheets_meta as $i=>$sheet_meta) { - $workbook_xml.=''; + $workbook_xml = ""; + $workbook_xml .= ''."\n"; + $workbook_xml .= ''; + $workbook_xml .= ''; + $workbook_xml .= ''; + $workbook_xml .= ''; + foreach ($this->sheets_meta as $i => $sheet_meta) { + $workbook_xml .= ''; } - $workbook_xml.=''; - $workbook_xml.=''; + $workbook_xml .= ''; + $workbook_xml .= ''; return $workbook_xml; } protected function buildWorkbookRelsXML() { - $wkbkrels_xml=""; - $wkbkrels_xml.=''."\n"; - $wkbkrels_xml.=''; - $wkbkrels_xml.=''; - foreach($this->sheets_meta as $i=>$sheet_meta) { - $wkbkrels_xml.=''; + $wkbkrels_xml = ""; + $wkbkrels_xml .= ''."\n"; + $wkbkrels_xml .= ''; + $wkbkrels_xml .= ''; + foreach ($this->sheets_meta as $i => $sheet_meta) { + $wkbkrels_xml .= ''; } if (!empty($this->shared_strings)) { - $wkbkrels_xml.=''; + $wkbkrels_xml .= ''; } - $wkbkrels_xml.="\n"; - $wkbkrels_xml.=''; + $wkbkrels_xml .= "\n"; + $wkbkrels_xml .= ''; return $wkbkrels_xml; } protected function buildContentTypesXML() { - $content_types_xml=""; - $content_types_xml.=''."\n"; - $content_types_xml.=''; - $content_types_xml.=''; - $content_types_xml.=''; - foreach($this->sheets_meta as $i=>$sheet_meta) { - $content_types_xml.=''; + $content_types_xml = ""; + $content_types_xml .= ''."\n"; + $content_types_xml .= ''; + $content_types_xml .= ''; + $content_types_xml .= ''; + foreach ($this->sheets_meta as $i => $sheet_meta) { + $content_types_xml .= ''; } if (!empty($this->shared_strings)) { - $content_types_xml.=''; + $content_types_xml .= ''; } - $content_types_xml.=''; - $content_types_xml.=''; - $content_types_xml.=''; - $content_types_xml.=''; - $content_types_xml.="\n"; - $content_types_xml.=''; + $content_types_xml .= ''; + $content_types_xml .= ''; + $content_types_xml .= ''; + $content_types_xml .= ''; + $content_types_xml .= "\n"; + $content_types_xml .= ''; return $content_types_xml; } @@ -377,10 +390,10 @@ Class XLSXWriter public static function xlsCell($row_number, $column_number) { $n = $column_number; - for($r = ""; $n >= 0; $n = intval($n / 26) - 1) { - $r = chr($n%26 + 0x41) . $r; + for ($r = ""; $n >= 0; $n = intval($n / 26) - 1) { + $r = chr($n % 26 + 0x41).$r; } - return $r . ($row_number+1); + return $r.($row_number + 1); } //------------------------------------------------------------------ public static function log($string) @@ -404,26 +417,30 @@ Class XLSXWriter { $days = 0; # Number of days since epoch $seconds = 0; # Time expressed as fraction of 24h hours in seconds - $year=$month=$day=0; - $hour=$min =$sec=0; + $year = $month = $day = 0; + $hour = $min = $sec = 0; $date_time = $date_input; - if (preg_match("/(\d{4})\-(\d{2})\-(\d{2})/", $date_time, $matches)) - { - list($junk,$year,$month,$day) = $matches; + if (preg_match("/(\d{4})\-(\d{2})\-(\d{2})/", $date_time, $matches)) { + list($junk, $year, $month, $day) = $matches; } - if (preg_match("/(\d{2}):(\d{2}):(\d{2})/", $date_time, $matches)) - { - list($junk,$hour,$min,$sec) = $matches; - $seconds = ( $hour * 60 * 60 + $min * 60 + $sec ) / ( 24 * 60 * 60 ); + if (preg_match("/(\d{2}):(\d{2}):(\d{2})/", $date_time, $matches)) { + list($junk, $hour, $min, $sec) = $matches; + $seconds = ($hour * 60 * 60 + $min * 60 + $sec) / (24 * 60 * 60); } //using 1900 as epoch, not 1904, ignoring 1904 special case - + # Special cases for Excel. - if ("$year-$month-$day"=='1899-12-31') return $seconds ; # Excel 1900 epoch - if ("$year-$month-$day"=='1900-01-00') return $seconds ; # Excel 1900 epoch - if ("$year-$month-$day"=='1900-02-29') return 60 + $seconds ; # Excel false leapday + if ("$year-$month-$day" == '1899-12-31') { + return $seconds ; + } # Excel 1900 epoch + if ("$year-$month-$day" == '1900-01-00') { + return $seconds ; + } # Excel 1900 epoch + if ("$year-$month-$day" == '1900-02-29') { + return 60 + $seconds ; + } # Excel false leapday # We calculate the date by calculating the number of days since the epoch # and adjust for the number of leap days. We calculate the number of leap @@ -435,33 +452,35 @@ Class XLSXWriter $range = $year - $epoch; # Set month days and check for leap year. - $leap = (($year % 400 == 0) || (($year % 4 == 0) && ($year % 100)) ) ? 1 : 0; - $mdays = array( 31, ($leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ); + $leap = (($year % 400 == 0) || (($year % 4 == 0) && ($year % 100))) ? 1 : 0; + $mdays = [ 31, ($leap ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; # Some boundary checks - if($year < $epoch || $year > 9999) return 0; - if($month < 1 || $month > 12) return 0; - if($day < 1 || $day > $mdays[ $month - 1 ]) return 0; + if ($year < $epoch || $year > 9999) { + return 0; + } + if ($month < 1 || $month > 12) { + return 0; + } + if ($day < 1 || $day > $mdays[ $month - 1 ]) { + return 0; + } # Accumulate the number of days since the epoch. $days = $day; # Add days for current month - $days += array_sum( array_slice($mdays, 0, $month-1 ) ); # Add days for past months + $days += array_sum(array_slice($mdays, 0, $month - 1)); # Add days for past months $days += $range * 365; # Add days for past years - $days += intval( ( $range ) / 4 ); # Add leapdays - $days -= intval( ( $range + $offset ) / 100 ); # Subtract 100 year leapdays - $days += intval( ( $range + $offset + $norm ) / 400 ); # Add 400 year leapdays + $days += intval(($range) / 4); # Add leapdays + $days -= intval(($range + $offset) / 100); # Subtract 100 year leapdays + $days += intval(($range + $offset + $norm) / 400); # Add 400 year leapdays $days -= $leap; # Already counted above # Adjust for Excel erroneously treating 1900 as a leap year. - if ($days > 59) { $days++;} + if ($days > 59) { + $days++; + } return $days + $seconds; } //------------------------------------------------------------------ } - - - - - - diff --git a/bootstrap.inc.php b/bootstrap.inc.php index 8e64d8163..29dacb113 100644 --- a/bootstrap.inc.php +++ b/bootstrap.inc.php @@ -18,7 +18,6 @@ * You should have received a copy of the GNU Affero General Public License */ - /** * Checks PHP version * @@ -39,7 +38,6 @@ if (PHP_MAJOR_VERSION >= 7) { exit(-1); } - define('ITOP_DEFAULT_ENV', 'production'); define('MAINTENANCE_MODE_FILE', APPROOT.'data/.maintenance'); define('READONLY_MODE_FILE', APPROOT.'data/.readonly'); @@ -60,8 +58,7 @@ if (!isset($bBypassMaintenance)) { $bBypassMaintenance = isset($_REQUEST['maintenance']) ? boolval($_REQUEST['maintenance']) : false; } -if (file_exists(MAINTENANCE_MODE_FILE) && !$bBypassMaintenance) -{ +if (file_exists(MAINTENANCE_MODE_FILE) && !$bBypassMaintenance) { $sTitle = 'Maintenance'; $sMessage = 'This application is currently under maintenance.'; @@ -70,8 +67,7 @@ if (file_exists(MAINTENANCE_MODE_FILE) && !$bBypassMaintenance) include(APPROOT.'application/maintenancemsg.php'); $sSAPIName = strtoupper(trim(PHP_SAPI)); - switch (true) - { + switch (true) { case isset($_SERVER['REQUEST_URI']) && EndsWith($_SERVER['REQUEST_URI'], '/pages/ajax.searchform.php'): _MaintenanceHtmlMessage($sMessage); break; @@ -102,6 +98,7 @@ if (file_exists(MAINTENANCE_MODE_FILE) && !$bBypassMaintenance) * * @return bool */ -function EndsWith($haystack, $needle) { +function EndsWith($haystack, $needle) +{ return substr_compare($haystack, $needle, -strlen($needle)) === 0; } diff --git a/conf/index.php b/conf/index.php index 112807643..fcb6f20af 100644 --- a/conf/index.php +++ b/conf/index.php @@ -1,2 +1,3 @@ - /** * Various dev/debug helpers * TODO: cleanup or at least re-organize @@ -25,7 +25,6 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - /** * MyHelpers * @@ -35,28 +34,23 @@ class MyHelpers { public static function CheckValueInArray($sDescription, $value, $aData) { - if (!in_array($value, $aData)) - { + if (!in_array($value, $aData)) { self::HandleWrongValue($sDescription, $value, $aData); } } public static function CheckKeyInArray($sDescription, $key, $aData) { - if (!array_key_exists($key, $aData)) - { + if (!array_key_exists($key, $aData)) { self::HandleWrongValue($sDescription, $key, array_keys($aData)); } } public static function HandleWrongValue($sDescription, $value, $aData) { - if (count($aData) == 0) - { + if (count($aData) == 0) { $sArrayDesc = "{}"; - } - else - { + } else { $sArrayDesc = "{".implode(", ", $aData)."}"; } // exit! @@ -64,7 +58,7 @@ class MyHelpers } // getmicrotime() - // format sss.mmmuuupppnnn + // format sss.mmmuuupppnnn public static function getmicrotime() { return microtime(true); @@ -74,14 +68,15 @@ class MyHelpers * MakeSQLComment * converts hash into text comment which we can use in a (mySQL) query */ - public static function MakeSQLComment ($aHash) + public static function MakeSQLComment($aHash) { - if (empty($aHash)) return ""; + if (empty($aHash)) { + return ""; + } $sComment = ""; { - foreach($aHash as $sKey=>$sValue) - { - $sComment .= "\n-- ". $sKey ."=>" . $sValue; + foreach ($aHash as $sKey => $sValue) { + $sComment .= "\n-- ".$sKey."=>".$sValue; } } return $sComment; @@ -90,12 +85,9 @@ class MyHelpers public static function var_dump_html($aWords, $bFullDisplay = false) { echo "
    \n";
    -		if ($bFullDisplay)
    -		{
    +		if ($bFullDisplay) {
     			print_r($aWords); // full dump!
    -		}
    -		else
    -		{
    +		} else {
     			var_dump($aWords); // truncate things when they are too big
     		}
     		echo "\n
    \n"; @@ -123,9 +115,10 @@ class MyHelpers { $aLines1 = explode("\n", $s1); $aLines2 = explode("\n", $s2); - for ($i = 0 ; $i < min(count($aLines1), count($aLines2)) ; $i++) - { - if ($aLines1[$i] != $aLines2[$i]) return $i; + for ($i = 0 ; $i < min(count($aLines1), count($aLines2)) ; $i++) { + if ($aLines1[$i] != $aLines2[$i]) { + return $i; + } } return false; } @@ -142,9 +135,10 @@ class MyHelpers // do not work fine with multiline strings $iLen1 = strlen($s1); $iLen2 = strlen($s2); - for ($i = 0 ; $i < min($iLen1, $iLen2) ; $i++) - { - if ($s1[$i] !== $s2[$i]) return $i; + for ($i = 0 ; $i < min($iLen1, $iLen2) ; $i++) { + if ($s1[$i] !== $s2[$i]) { + return $i; + } } return false; } @@ -154,9 +148,10 @@ class MyHelpers // do not work fine with multiline strings $iLen1 = strlen($s1); $iLen2 = strlen($s2); - for ($i = 0 ; $i < min(strlen($s1), strlen($s2)) ; $i++) - { - if ($s1[$iLen1 - $i - 1] !== $s2[$iLen2 - $i - 1]) return array($iLen1 - $i, $iLen2 - $i); + for ($i = 0 ; $i < min(strlen($s1), strlen($s2)) ; $i++) { + if ($s1[$iLen1 - $i - 1] !== $s2[$iLen2 - $i - 1]) { + return [$iLen1 - $i, $iLen2 - $i]; + } } return false; } @@ -177,8 +172,7 @@ class MyHelpers protected static function string_cmp_html($s1, $s2, $sHighlight) { $iDiffPos = self::first_diff($s1, $s2); - if ($iDiffPos === false) - { + if ($iDiffPos === false) { echo "strings are identical"; return; } @@ -189,7 +183,7 @@ class MyHelpers $sMiddle1 = substr($s1, $iDiffPos, $aLastDiff[0] - $iDiffPos); $sMiddle2 = substr($s2, $iDiffPos, $aLastDiff[1] - $iDiffPos); - + echo "

    $sStart$sMiddle1$sEnd

    \n"; echo "

    $sStart$sMiddle2$sEnd

    \n"; } @@ -203,40 +197,34 @@ class MyHelpers public static function var_cmp_html($var1, $var2, $sHighlight = 'color:red; font-weight:bold;') { - if (is_object($var1)) - { + if (is_object($var1)) { return self::object_cmp_html($var1, $var2, $sHighlight); - } - else if (count(explode("\n", $var1)) > 1) - { + } elseif (count(explode("\n", $var1)) > 1) { // multiline string return self::text_cmp_html($var1, $var2, $sHighlight); - } - else - { + } else { return self::string_cmp_html($var1, $var2, $sHighlight); } } public static function get_callstack($iLevelsToIgnore = 0, $aCallStack = null) { - if ($aCallStack == null) $aCallStack = debug_backtrace(); - + if ($aCallStack == null) { + $aCallStack = debug_backtrace(); + } + $aCallStack = array_slice($aCallStack, $iLevelsToIgnore); - - $aDigestCallStack = array(); - $bFirstLine = true; - foreach ($aCallStack as $aCallInfo) - { + + $aDigestCallStack = []; + $bFirstLine = true; + foreach ($aCallStack as $aCallInfo) { $sLine = empty($aCallInfo['line']) ? "" : $aCallInfo['line']; $sFile = empty($aCallInfo['file']) ? "" : $aCallInfo['file']; - if ($sFile != '') - { + if ($sFile != '') { $sFile = str_replace('\\', '/', $sFile); $sAppRoot = str_replace('\\', '/', APPROOT); $iPos = strpos($sFile, $sAppRoot); - if ($iPos !== false) - { + if ($iPos !== false) { $sFile = substr($sFile, strlen($sAppRoot)); } } @@ -244,55 +232,51 @@ class MyHelpers $sType = empty($aCallInfo['type']) ? "" : $aCallInfo['type']; $sFunction = empty($aCallInfo['function']) ? "" : $aCallInfo['function']; - if ($bFirstLine) - { + if ($bFirstLine) { $bFirstLine = false; // For this line do not display the "function name" because // that will be the name of our error handler for sure ! $sFunctionInfo = "N/A"; - } - else - { + } else { $args = ''; - if (empty($aCallInfo['args'])) $aCallInfo['args'] = array(); - foreach ($aCallInfo['args'] as $a) - { - if (!empty($args)) - { + if (empty($aCallInfo['args'])) { + $aCallInfo['args'] = []; + } + foreach ($aCallInfo['args'] as $a) { + if (!empty($args)) { $args .= ', '; } - switch (gettype($a)) - { + switch (gettype($a)) { case 'integer': case 'double': - $args .= $a; - break; + $args .= $a; + break; case 'string': - $a = Str::pure2html(self::beautifulstr($a, 64, true, false)); - $args .= "\"$a\""; - break; - case 'array': - $args .= 'array('.count($a).')'; - break; - case 'object': - $args .= 'Object('.get_class($a).')'; - break; - case 'resource': - $args .= 'Resource('.strstr($a, '#').')'; - break; - case 'boolean': - $args .= $a ? 'true' : 'false'; - break; - case 'NULL': - $args .= 'null'; - break; - default: - $args .= 'Unknown'; + $a = Str::pure2html(self::beautifulstr($a, 64, true, false)); + $args .= "\"$a\""; + break; + case 'array': + $args .= 'array('.count($a).')'; + break; + case 'object': + $args .= 'Object('.get_class($a).')'; + break; + case 'resource': + $args .= 'Resource('.strstr($a, '#').')'; + break; + case 'boolean': + $args .= $a ? 'true' : 'false'; + break; + case 'NULL': + $args .= 'null'; + break; + default: + $args .= 'Unknown'; } } $sFunctionInfo = "$sClass$sType$sFunction($args)"; } - $aDigestCallStack[] = array('File'=>$sFile, 'Line'=>$sLine, 'Function'=>$sFunctionInfo); + $aDigestCallStack[] = ['File' => $sFile, 'Line' => $sLine, 'Function' => $sFunctionInfo]; } return $aDigestCallStack; } @@ -311,9 +295,8 @@ class MyHelpers public static function get_callstack_text($iLevelsToIgnore = 0, $aCallStack = null) { $aDigestCallStack = self::get_callstack($iLevelsToIgnore, $aCallStack); - $aRes = array(); - foreach ($aDigestCallStack as $aCall) - { + $aRes = []; + foreach ($aDigestCallStack as $aCall) { $aRes[] = $aCall['File'].' at '.$aCall['Line'].', '.$aCall['Function']; } return implode("\n", $aRes); @@ -325,21 +308,27 @@ class MyHelpers /////////////////////////////////////////////////////////////////////////////// public static function make_table_from_assoc_array(&$aData) { - if (!is_array($aData)) throw new CoreException("make_table_from_assoc_array: Error - the passed argument is not an array"); + if (!is_array($aData)) { + throw new CoreException("make_table_from_assoc_array: Error - the passed argument is not an array"); + } $aFirstRow = reset($aData); - if (count($aData) == 0) return ''; - if (!is_array($aFirstRow)) throw new CoreException("make_table_from_assoc_array: Error - the passed argument is not a bi-dimensional array"); + if (count($aData) == 0) { + return ''; + } + if (!is_array($aFirstRow)) { + throw new CoreException("make_table_from_assoc_array: Error - the passed argument is not a bi-dimensional array"); + } $sOutput = ""; $sOutput .= "\n"; - + // Table header // $sOutput .= " \n"; - foreach ($aFirstRow as $fieldname=>$trash) { + foreach ($aFirstRow as $fieldname => $trash) { $sOutput .= " \n"; } $sOutput .= " \n"; - + // Table contents // $iCount = 0; @@ -354,7 +343,7 @@ class MyHelpers } $sOutput .= " \n"; } - + $sOutput .= "
    ".$fieldname."
    \n"; return $sOutput; } @@ -368,7 +357,9 @@ class MyHelpers } public static function debug_breakpoint_notempty($arg) { - if (empty($arg)) return; + if (empty($arg)) { + return; + } echo "

    Debug breakpoint (triggered on non-empty value)

    \n"; MyHelpers::var_dump_html($arg); MyHelpers::dump_callstack(); @@ -381,7 +372,7 @@ class MyHelpers */ public static function xmlentities($string) { - return str_replace( array( '&', '"', "'", '<', '>' ), array ( '&' , '"', ''' , '<' , '>' ), $string ); + return str_replace([ '&', '"', "'", '<', '>' ], [ '&' , '"', ''' , '<' , '>' ], $string); } /** @@ -390,20 +381,24 @@ class MyHelpers */ public static function xmlencode($string) { - return xmlentities(iconv("UTF-8", "UTF-8//IGNORE",$string)); + return xmlentities(iconv("UTF-8", "UTF-8//IGNORE", $string)); } /////////////////////////////////////////////////////////////////////////////// // Source: New - format strings for output // Last modif: 2005/01/18 RQU /////////////////////////////////////////////////////////////////////////////// - public static function beautifulstr($sLongString, $iMaxLen, $bShowLen=false, $bShowTooltip=true) + public static function beautifulstr($sLongString, $iMaxLen, $bShowLen = false, $bShowTooltip = true) { - if (!is_string($sLongString)) throw new CoreException("beautifulstr: expect a string as 1st argument"); - + if (!is_string($sLongString)) { + throw new CoreException("beautifulstr: expect a string as 1st argument"); + } + // Nothing to do if the string is short - if (strlen($sLongString) <= $iMaxLen) return $sLongString; - + if (strlen($sLongString) <= $iMaxLen) { + return $sLongString; + } + // Truncate the string $sSuffix = "..."; if ($bShowLen) { @@ -411,7 +406,7 @@ class MyHelpers } $sOutput = substr($sLongString, 0, $iMaxLen - strlen($sSuffix)).$sSuffix; $sOutput = htmlspecialchars($sOutput); - + // Add tooltip if required //if ($bShowTooltip) { // $oTooltip = new gui_tooltip($sLongString); @@ -427,11 +422,11 @@ Utility class: static methods for cleaning & escaping untrusted (i.e. user-supplied) strings. Any string can (usually) be thought of as being in one of these 'modes': pure = what the user actually typed / what you want to see on the page / - what is actually stored in the DB + what is actually stored in the DB gpc = incoming GET, POST or COOKIE data sql = escaped for passing safely to RDBMS via SQL (also, data from DB - queries and file reads if you have magic_quotes_runtime on--which - is rare) + queries and file reads if you have magic_quotes_runtime on--which + is rare) html = safe for html display (htmlentities applied) Always knowing what mode your string is in--using these methods to convert between modes--will prevent SQL injection and cross-site scripting. @@ -456,8 +451,11 @@ class Str } public static function gpc2pure($gpc) { - if (ini_get('magic_quotes_sybase')) $pure = str_replace("''", "'", $gpc); - else $pure = $gpc; + if (ini_get('magic_quotes_sybase')) { + $pure = str_replace("''", "'", $gpc); + } else { + $pure = $gpc; + } return $pure; } public static function html2pure($html) @@ -477,7 +475,9 @@ class Str } public static function pure2sql($pure, $maxLength = false) { - if ($maxLength) $pure = substr($pure, 0, $maxLength); + if ($maxLength) { + $pure = substr($pure, 0, $maxLength); + } return (STR_SYBASE) ? str_replace("'", "''", $pure) : addslashes($pure); @@ -485,7 +485,9 @@ class Str public static function sql2html($sql, $maxLength = false) { $pure = self::sql2pure($sql); - if ($maxLength) $pure = substr($pure, 0, $maxLength); + if ($maxLength) { + $pure = substr($pure, 0, $maxLength); + } return self::pure2html($pure); } public static function sql2pure($sql) @@ -507,7 +509,7 @@ class Str protected static function xmlentities($string) { - return str_replace( array( '&', '"', "'", '<', '>' ), array ( '&' , '"', ''' , '<' , '>' ), $string ); + return str_replace([ '&', '"', "'", '<', '>' ], [ '&' , '"', ''' , '<' , '>' ], $string); } /** @@ -516,7 +518,7 @@ class Str */ protected static function xmlencode($string) { - return self::xmlentities(iconv("UTF-8", "UTF-8//IGNORE",$string)); + return self::xmlentities(iconv("UTF-8", "UTF-8//IGNORE", $string)); } public static function islowcase($sString) diff --git a/core/TemporaryObjectDescriptor.php b/core/TemporaryObjectDescriptor.php index 9631fe2e6..5a0fd3a48 100644 --- a/core/TemporaryObjectDescriptor.php +++ b/core/TemporaryObjectDescriptor.php @@ -1,4 +1,5 @@ 'core', 'key_type' => 'autoincrement', - 'name_attcode' => array('item_class', 'temp_id'), + 'name_attcode' => ['item_class', 'temp_id'], 'image_attcode' => '', 'state_attcode' => '', - 'reconc_keys' => array(''), + 'reconc_keys' => [''], 'db_table' => 'priv_temporary_object_descriptor', 'db_key_field' => 'id', 'db_finalclass_field' => '', 'style' => new ormStyle(null, null, null, null, null, null), - 'indexes' => array( + 'indexes' => [ 1 => - array( + [ 0 => 'temp_id', - ), + ], 2 => - array( + [ 0 => 'item_class', 1 => 'item_id', - ), - ), - ); + ], + ], + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeDateTime('expiration_date', array('sql' => 'expiration_date', 'is_null_allowed' => false, 'default_value' => '', 'allowed_values' => null, 'depends_on' => array(), 'always_load_in_tables' => false))); - MetaModel::Init_AddAttribute(new AttributeString('temp_id', array('sql' => 'temp_id', 'is_null_allowed' => true, 'default_value' => '', 'allowed_values' => null, 'depends_on' => array(), 'always_load_in_tables' => false))); - MetaModel::Init_AddAttribute(new AttributeString('item_class', array('sql' => 'item_class', 'is_null_allowed' => false, 'default_value' => '', 'allowed_values' => null, 'depends_on' => array(), 'always_load_in_tables' => false))); - MetaModel::Init_AddAttribute(new AttributeObjectKey('item_id', array('class_attcode' => 'item_class', 'sql' => 'item_id', 'is_null_allowed' => true, 'allowed_values' => null, 'depends_on' => array(), 'always_load_in_tables' => false))); - MetaModel::Init_AddAttribute(new AttributeDateTime('creation_date', array('sql' => 'creation_date', 'is_null_allowed' => true, 'default_value' => '', 'allowed_values' => null, 'depends_on' => array(), 'always_load_in_tables' => false))); - MetaModel::Init_AddAttribute(new AttributeString('host_class', array('sql' => 'host_class', 'is_null_allowed' => true, 'default_value' => '', 'allowed_values' => null, 'depends_on' => array(), 'always_load_in_tables' => false))); - MetaModel::Init_AddAttribute(new AttributeObjectKey('host_id', array('class_attcode' => 'host_class', 'sql' => 'host_id', 'is_null_allowed' => true, 'allowed_values' => null, 'depends_on' => array(), 'always_load_in_tables' => false))); - MetaModel::Init_AddAttribute(new AttributeString('host_att_code', array('sql' => 'host_att_code', 'is_null_allowed' => true, 'default_value' => '', 'allowed_values' => null, 'depends_on' => array(), 'always_load_in_tables' => false))); - MetaModel::Init_AddAttribute(new AttributeEnum("operation", array("allowed_values" => new ValueSetEnum('create,delete'), "sql" => "operation", "default_value" => "create", "is_null_allowed" => true, "depends_on" => array()))); + MetaModel::Init_AddAttribute(new AttributeDateTime('expiration_date', ['sql' => 'expiration_date', 'is_null_allowed' => false, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false])); + MetaModel::Init_AddAttribute(new AttributeString('temp_id', ['sql' => 'temp_id', 'is_null_allowed' => true, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false])); + MetaModel::Init_AddAttribute(new AttributeString('item_class', ['sql' => 'item_class', 'is_null_allowed' => false, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false])); + MetaModel::Init_AddAttribute(new AttributeObjectKey('item_id', ['class_attcode' => 'item_class', 'sql' => 'item_id', 'is_null_allowed' => true, 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false])); + MetaModel::Init_AddAttribute(new AttributeDateTime('creation_date', ['sql' => 'creation_date', 'is_null_allowed' => true, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false])); + MetaModel::Init_AddAttribute(new AttributeString('host_class', ['sql' => 'host_class', 'is_null_allowed' => true, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false])); + MetaModel::Init_AddAttribute(new AttributeObjectKey('host_id', ['class_attcode' => 'host_class', 'sql' => 'host_id', 'is_null_allowed' => true, 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false])); + MetaModel::Init_AddAttribute(new AttributeString('host_att_code', ['sql' => 'host_att_code', 'is_null_allowed' => true, 'default_value' => '', 'allowed_values' => null, 'depends_on' => [], 'always_load_in_tables' => false])); + MetaModel::Init_AddAttribute(new AttributeEnum("operation", ["allowed_values" => new ValueSetEnum('create,delete'), "sql" => "operation", "default_value" => "create", "is_null_allowed" => true, "depends_on" => []])); - MetaModel::Init_SetZListItems('details', array( + MetaModel::Init_SetZListItems('details', [ 0 => 'temp_id', 1 => 'item_class', 2 => 'item_id', 3 => 'creation_date', 4 => 'expiration_date', 5 => 'meta', - )); - MetaModel::Init_SetZListItems('standard_search', array( + ]); + MetaModel::Init_SetZListItems('standard_search', [ 0 => 'temp_id', 1 => 'item_class', 2 => 'item_id', - )); - MetaModel::Init_SetZListItems('list', array( + ]); + MetaModel::Init_SetZListItems('list', [ 0 => 'temp_id', 1 => 'item_class', 2 => 'item_id', 3 => 'creation_date', 4 => 'expiration_date', - ));; + ]); + ; } - public function DBInsertNoReload() { $this->SetCurrentDateIfNull('creation_date'); @@ -82,7 +83,6 @@ class TemporaryObjectDescriptor extends DBObject return parent::DBInsertNoReload(); } - /** * Set/Update all of the '_item' fields * diff --git a/core/action.class.inc.php b/core/action.class.inc.php index 62f2e8ad5..5931cc909 100644 --- a/core/action.class.inc.php +++ b/core/action.class.inc.php @@ -1,9 +1,10 @@ "grant_by_profile,core/cmdb", "key_type" => "autoincrement", "name_attcode" => "name", @@ -59,14 +59,14 @@ abstract class Action extends cmdbAbstractObject "db_key_field" => "id", "db_finalclass_field" => "realclass", "style" => new ormStyle("ibo-dm-class--Action", "ibo-dm-class-alt--Action", "var(--ibo-dm-class--Action--main-color)", "var(--ibo-dm-class--Action--complementary-color)", null, '../images/icons/icons8-in-transit.svg'), - ); + ]; MetaModel::Init_Params($aParams); //MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values" => null, "sql" => "name", "default_value" => null, "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values" => null, "sql" => "description", "default_value" => null, "is_null_allowed" => true, "depends_on" => array()))); + MetaModel::Init_AddAttribute(new AttributeString("name", ["allowed_values" => null, "sql" => "name", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeEnum("status", array( - "allowed_values" => new ValueSetEnum(array('test' => 'Being tested', 'enabled' => 'In production', 'disabled' => 'Inactive')), + MetaModel::Init_AddAttribute(new AttributeEnum("status", [ + "allowed_values" => new ValueSetEnum(['test' => 'Being tested', 'enabled' => 'In production', 'disabled' => 'Inactive']), "styled_values" => [ 'test' => new ormStyle('ibo-dm-enum--Action-status-test', 'ibo-dm-enum-alt--Action-status-test', 'var(--ibo-dm-enum--Action-status-test--main-color)', 'var(--ibo-dm-enum--Action-status-test--complementary-color)', null, null), 'enabled' => new ormStyle('ibo-dm-enum--Action-status-enabled', 'ibo-dm-enum-alt--Action-status-enabled', 'var(--ibo-dm-enum--Action-status-enabled--main-color)', 'var(--ibo-dm-enum--Action-status-enabled--complementary-color)', 'fas fa-check', null), @@ -76,21 +76,23 @@ abstract class Action extends cmdbAbstractObject "sql" => "status", "default_value" => "test", "is_null_allowed" => false, - "depends_on" => array(), - ))); + "depends_on" => [], + ])); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("trigger_list", - array("linked_class" => "lnkTriggerAction", "ext_key_to_me" => "action_id", "ext_key_to_remote" => "trigger_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => array(), "display_style" => 'property'))); - MetaModel::Init_AddAttribute(new AttributeEnum("asynchronous", array("allowed_values" => new ValueSetEnum(['use_global_setting' => 'Use global settings','yes' => 'Yes' ,'no' => 'No']), "sql" => "asynchronous", "default_value" => 'use_global_setting', "is_null_allowed" => false, "depends_on" => array()))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect( + "trigger_list", + ["linked_class" => "lnkTriggerAction", "ext_key_to_me" => "action_id", "ext_key_to_remote" => "trigger_id", "allowed_values" => null, "count_min" => 0, "count_max" => 0, "depends_on" => [], "display_style" => 'property'] + )); + MetaModel::Init_AddAttribute(new AttributeEnum("asynchronous", ["allowed_values" => new ValueSetEnum(['use_global_setting' => 'Use global settings','yes' => 'Yes' ,'no' => 'No']), "sql" => "asynchronous", "default_value" => 'use_global_setting', "is_null_allowed" => false, "depends_on" => []])); // Display lists // - Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('details', array('name', 'description', 'status', 'trigger_list')); + MetaModel::Init_SetZListItems('details', ['name', 'description', 'status', 'trigger_list']); // - Attributes to be displayed for a list - MetaModel::Init_SetZListItems('list', array('finalclass', 'name', 'description', 'status')); + MetaModel::Init_SetZListItems('list', ['finalclass', 'name', 'description', 'status']); // Search criteria // - Default criteria of the search form - MetaModel::Init_SetZListItems('default_search', array('name', 'description', 'status')); + MetaModel::Init_SetZListItems('default_search', ['name', 'description', 'status']); } @@ -111,8 +113,7 @@ abstract class Action extends cmdbAbstractObject */ public function IsActive() { - switch($this->Get('status')) - { + switch ($this->Get('status')) { case 'enabled': case 'test': return true; @@ -131,8 +132,7 @@ abstract class Action extends cmdbAbstractObject */ public function IsBeingTested() { - switch($this->Get('status')) - { + switch ($this->Get('status')) { case 'test': return true; @@ -220,7 +220,7 @@ abstract class Action extends cmdbAbstractObject $iLastExecutionDays = $oConfig->Get($sLastExecutionDaysConfigParamName); if ($iLastExecutionDays < 0) { - throw new InvalidConfigParamException("Invalid value for {$sLastExecutionDaysConfigParamName} config parameter. Param desc: " . $oConfig->GetDescription($sLastExecutionDaysConfigParamName)); + throw new InvalidConfigParamException("Invalid value for {$sLastExecutionDaysConfigParamName} config parameter. Param desc: ".$oConfig->GetDescription($sLastExecutionDaysConfigParamName)); } $sActionQueryOql = 'SELECT EventNotification WHERE action_id = :action_id'; @@ -250,7 +250,7 @@ abstract class Action extends cmdbAbstractObject */ public static function GetAsynchronousGlobalSetting(): bool { - return false; + return false; } /** @@ -270,7 +270,7 @@ abstract class Action extends cmdbAbstractObject } /** - * A notification + * A notification * * @package iTopORM */ @@ -282,8 +282,8 @@ abstract class ActionNotification extends Action */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "grant_by_profile,core/cmdb", "key_type" => "autoincrement", "name_attcode" => "name", @@ -293,22 +293,22 @@ abstract class ActionNotification extends Action "db_table" => "priv_action_notification", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); // Display lists // - Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('details', array('name', 'description', 'status', 'trigger_list')); + MetaModel::Init_SetZListItems('details', ['name', 'description', 'status', 'trigger_list']); // - Attributes to be displayed for a list - MetaModel::Init_SetZListItems('list', array('finalclass', 'description', 'status')); - MetaModel::Init_AddAttribute(new AttributeApplicationLanguage("language", array("sql"=>"language", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_SetZListItems('list', ['finalclass', 'description', 'status']); + MetaModel::Init_AddAttribute(new AttributeApplicationLanguage("language", ["sql" => "language", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); // Search criteria // - Criteria of the std search form -// MetaModel::Init_SetZListItems('standard_search', array('name')); + // MetaModel::Init_SetZListItems('standard_search', array('name')); // - Default criteria of the search form -// MetaModel::Init_SetZListItems('default_search', array('name')); + // MetaModel::Init_SetZListItems('default_search', array('name')); } /** @@ -321,7 +321,8 @@ abstract class ActionNotification extends Action * @throws \DictExceptionUnknownLanguage * @since 3.2.0 */ - public function SetNotificationLanguage($sLanguage = null, $sLanguageCode = null){ + public function SetNotificationLanguage($sLanguage = null, $sLanguageCode = null) + { $sPreviousLanguage = Dict::GetUserLanguage(); $aPreviousPluginProperties = ApplicationContext::GetPluginProperties('QueryLocalizerPlugin'); $sLanguage = $sLanguage ?? $this->Get('language'); @@ -338,7 +339,7 @@ abstract class ActionNotification extends Action } /** - * An email notification + * An email notification * * @package iTopORM */ @@ -348,69 +349,68 @@ class ActionEmail extends ActionNotification * @var string * @since 3.0.1 */ - const ENUM_HEADER_NAME_MESSAGE_ID = 'Message-ID'; + public const ENUM_HEADER_NAME_MESSAGE_ID = 'Message-ID'; /** * @var string * @since 3.0.1 */ - const ENUM_HEADER_NAME_REFERENCES = 'References'; + public const ENUM_HEADER_NAME_REFERENCES = 'References'; /** * @var string * @since 3.1.0 */ - const TEMPLATE_BODY_CONTENT = '$content$'; + public const TEMPLATE_BODY_CONTENT = '$content$'; /** * Wraps the 'body' of the message for previewing inside an IFRAME -- i.e. without any of the iTop stylesheets being applied * @var string * @since 3.1.0 */ - const CONTENT_HIGHLIGHT = '
    $content$
    %s
    '; + public const CONTENT_HIGHLIGHT = '
    $content$
    %s
    '; /** * Wraps a placeholder of the email's body for previewing inside an IFRAME -- i.e. without any of the iTop stylesheets being applied * @var string */ - const FIELD_HIGHLIGHT = '\\$$1\\$'; + public const FIELD_HIGHLIGHT = '\\$$1\\$'; /** * @inheritDoc */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "grant_by_profile,core/cmdb,application", "key_type" => "autoincrement", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array('name'), + "reconc_keys" => ['name'], "db_table" => "priv_action_email", "db_key_field" => "id", "db_finalclass_field" => "", 'style' => new ormStyle(null, null, null, null, null, '../images/icons/icons8-mailing.svg'), - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeEmailAddress("test_recipient", array("allowed_values" => null, "sql" => "test_recipient", "default_value" => "", "is_null_allowed" => true, "depends_on" => array()))); + MetaModel::Init_AddAttribute(new AttributeEmailAddress("test_recipient", ["allowed_values" => null, "sql" => "test_recipient", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeString("from", array("allowed_values" => null, "sql" => "from", "default_value" => null, "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeString("from_label", array("allowed_values" => null, "sql" => "from_label", "default_value" => null, "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeString("reply_to", array("allowed_values" => null, "sql" => "reply_to", "default_value" => null, "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeString("reply_to_label", array("allowed_values" => null, "sql" => "reply_to_label", "default_value" => null, "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeOQL("to", array("allowed_values" => null, "sql" => "to", "default_value" => null, "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeOQL("cc", array("allowed_values" => null, "sql" => "cc", "default_value" => null, "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeOQL("bcc", array("allowed_values" => null, "sql" => "bcc", "default_value" => null, "is_null_allowed" => true, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeTemplateString("subject", array("allowed_values" => null, "sql" => "subject", "default_value" => null, "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeTemplateHTML("body", array("allowed_values" => null, "sql" => "body", "default_value" => null, "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeEnum("importance", array("allowed_values" => new ValueSetEnum('low,normal,high'), "sql" => "importance", "default_value" => 'normal', "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeBlob("html_template", array("is_null_allowed"=>true, "depends_on"=>array(), "always_load_in_tables"=>false))); - MetaModel::Init_AddAttribute(new AttributeEnum("ignore_notify", array("allowed_values" => new ValueSetEnum('yes,no'), "sql" => "ignore_notify", "default_value" => 'yes', "is_null_allowed" => false, "depends_on" => array()))); - + MetaModel::Init_AddAttribute(new AttributeString("from", ["allowed_values" => null, "sql" => "from", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("from_label", ["allowed_values" => null, "sql" => "from_label", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("reply_to", ["allowed_values" => null, "sql" => "reply_to", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("reply_to_label", ["allowed_values" => null, "sql" => "reply_to_label", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeOQL("to", ["allowed_values" => null, "sql" => "to", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeOQL("cc", ["allowed_values" => null, "sql" => "cc", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeOQL("bcc", ["allowed_values" => null, "sql" => "bcc", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeTemplateString("subject", ["allowed_values" => null, "sql" => "subject", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeTemplateHTML("body", ["allowed_values" => null, "sql" => "body", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeEnum("importance", ["allowed_values" => new ValueSetEnum('low,normal,high'), "sql" => "importance", "default_value" => 'normal', "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeBlob("html_template", ["is_null_allowed" => true, "depends_on" => [], "always_load_in_tables" => false])); + MetaModel::Init_AddAttribute(new AttributeEnum("ignore_notify", ["allowed_values" => new ValueSetEnum('yes,no'), "sql" => "ignore_notify", "default_value" => 'yes', "is_null_allowed" => false, "depends_on" => []])); // Display lists // - Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('details', array( - 'col:col1' => array( - 'fieldset:ActionEmail:main' => array( + MetaModel::Init_SetZListItems('details', [ + 'col:col1' => [ + 'fieldset:ActionEmail:main' => [ 0 => 'name', 1 => 'description', 2 => 'status', @@ -419,14 +419,14 @@ class ActionEmail extends ActionNotification 5 => 'subject', 6 => 'body', // 5 => 'importance', not handled when sending the mail, better hide it then - ), - 'fieldset:ActionEmail:trigger' => array( + ], + 'fieldset:ActionEmail:trigger' => [ 0 => 'trigger_list', - 1 => 'asynchronous' - ), - ), - 'col:col2' => array( - 'fieldset:ActionEmail:recipients' => array( + 1 => 'asynchronous', + ], + ], + 'col:col2' => [ + 'fieldset:ActionEmail:recipients' => [ 0 => 'from', 1 => 'from_label', 2 => 'reply_to', @@ -436,17 +436,17 @@ class ActionEmail extends ActionNotification 6 => 'to', 7 => 'cc', 8 => 'bcc', - ), - ), - )); + ], + ], + ]); // - Attributes to be displayed for a list - MetaModel::Init_SetZListItems('list', array('status', 'to', 'subject', 'language')); + MetaModel::Init_SetZListItems('list', ['status', 'to', 'subject', 'language']); // Search criteria // - Standard criteria of the search - MetaModel::Init_SetZListItems('standard_search', array('name', 'description', 'status', 'subject', 'language')); + MetaModel::Init_SetZListItems('standard_search', ['name', 'description', 'status', 'subject', 'language']); // - Default criteria for the search - MetaModel::Init_SetZListItems('default_search', array('name', 'description', 'status', 'subject', 'language')); + MetaModel::Init_SetZListItems('default_search', ['name', 'description', 'status', 'subject', 'language']); } // count the recipients found @@ -477,10 +477,11 @@ class ActionEmail extends ActionNotification { $oTrigger = $aArgs['trigger->object()'] ?? null; $sOQL = $this->Get($sRecipAttCode); - if (utils::IsNullOrEmptyString($sOQL)) return ''; + if (utils::IsNullOrEmptyString($sOQL)) { + return ''; + } - try - { + try { $oSearch = DBObjectSearch::FromOQL($sOQL); if ($this->Get('ignore_notify') === 'no') { // In theory, it is possible to notify *any* kind of object, @@ -492,31 +493,26 @@ class ActionEmail extends ActionNotification } } $oSearch->AllowAllData(); - } - catch (OQLException $e) - { + } catch (OQLException $e) { $this->m_aMailErrors[] = "query syntax error for recipient '$sRecipAttCode'"; return $e->getMessage(); } $sClass = $oSearch->GetClass(); // Determine the email attribute (the first one will be our choice) - foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) - { - if ($oAttDef instanceof AttributeEmailAddress) - { + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { + if ($oAttDef instanceof AttributeEmailAddress) { $sEmailAttCode = $sAttCode; // we've got one, exit the loop break; } } - if (!isset($sEmailAttCode)) - { + if (!isset($sEmailAttCode)) { $this->m_aMailErrors[] = "wrong target for recipient '$sRecipAttCode'"; return "The objects of the class '$sClass' do not have any email attribute"; } - if($oTrigger !== null && in_array('Contact', MetaModel::EnumParentClasses($sClass, ENUM_CHILD_CLASSES_ALL), true)) { + if ($oTrigger !== null && in_array('Contact', MetaModel::EnumParentClasses($sClass, ENUM_CHILD_CLASSES_ALL), true)) { $aArgs['trigger_id'] = $oTrigger->GetKey(); $aArgs['action_id'] = $this->GetKey(); @@ -526,13 +522,11 @@ class ActionEmail extends ActionNotification $oSearch->AddConditionExpression(Expression::FromOQL("`$sAlias`.id NOT IN ($sSubscribedContactsOQL)")); } - $oSet = new DBObjectSet($oSearch, array() /* order */, $aArgs); - $aRecipients = array(); - while ($oObj = $oSet->Fetch()) - { + $oSet = new DBObjectSet($oSearch, [] /* order */, $aArgs); + $aRecipients = []; + while ($oObj = $oSet->Fetch()) { $sAddress = trim($oObj->Get($sEmailAttCode)); - if (utils::IsNotNullOrEmptyString($sAddress)) - { + if (utils::IsNotNullOrEmptyString($sAddress)) { $aRecipients[] = $sAddress; $this->m_iRecipients++; } @@ -551,15 +545,11 @@ class ActionEmail extends ActionNotification */ public function DoExecute($oTrigger, $aContextArgs) { - if (MetaModel::IsLogEnabledNotification()) - { + if (MetaModel::IsLogEnabledNotification()) { $oLog = new EventNotificationEmail(); - if ($this->IsBeingTested()) - { + if ($this->IsBeingTested()) { $oLog->Set('message', 'TEST - Notification sent ('.$this->Get('test_recipient').')'); - } - else - { + } else { $oLog->Set('message', 'Notification pending'); } $oLog->Set('userinfo', UserRights::GetUser()); @@ -570,49 +560,36 @@ class ActionEmail extends ActionNotification // Must be inserted now so that it gets a valid id that will make the link // between an eventual asynchronous task (queued) and the log $oLog->DBInsertNoReload(); - } - else - { + } else { $oLog = null; } - try - { + try { $sRes = $this->_DoExecute($oTrigger, $aContextArgs, $oLog); - if ($this->IsBeingTested()) - { + if ($this->IsBeingTested()) { $sPrefix = 'TEST ('.$this->Get('test_recipient').') - '; - } - else - { + } else { $sPrefix = ''; } - if ($oLog) - { - $oLog->Set('message', $sPrefix . $sRes); - $oLog->DBUpdate(); - } + if ($oLog) { + $oLog->Set('message', $sPrefix.$sRes); + $oLog->DBUpdate(); + } - } - catch (Exception $e) - { - if ($oLog) - { + } catch (Exception $e) { + if ($oLog) { $oLog->Set('message', 'Error: '.$e->getMessage()); - try - { - $oLog->DBUpdate(); - } - catch (Exception $eSecondTryUpdate) - { - IssueLog::Error("Failed to process email ".$oLog->GetKey()." - reason: ".$e->getMessage()."\nTrace:\n".$e->getTraceAsString()); + try { + $oLog->DBUpdate(); + } catch (Exception $eSecondTryUpdate) { + IssueLog::Error("Failed to process email ".$oLog->GetKey()." - reason: ".$e->getMessage()."\nTrace:\n".$e->getTraceAsString()); - $oLog->Set('message', 'Error: more details in the log for email "'.$oLog->GetKey().'"'); - $oLog->DBUpdate(); - } + $oLog->Set('message', 'Error: more details in the log for email "'.$oLog->GetKey().'"'); + $oLog->DBUpdate(); + } } } @@ -629,11 +606,11 @@ class ActionEmail extends ActionNotification */ protected function _DoExecute($oTrigger, $aContextArgs, &$oLog) { - $sStyles = file_get_contents(APPROOT . utils::GetCSSFromSASS("css/email.scss")); + $sStyles = file_get_contents(APPROOT.utils::GetCSSFromSASS("css/email.scss")); $sStyles .= MetaModel::GetConfig()->Get('email_css'); - + $oEmail = new EMail(); - + $aEmailContent = $this->PrepareMessageContent($aContextArgs, $oLog); $oEmail->SetSubject($aEmailContent['subject']); $oEmail->SetBody($aEmailContent['body'], 'text/html', $sStyles); @@ -645,23 +622,18 @@ class ActionEmail extends ActionNotification $oEmail->SetReferences($aEmailContent['references']); $oEmail->SetMessageId($aEmailContent['message_id']); $oEmail->SetInReplyTo($aEmailContent['in_reply_to']); - - foreach($aEmailContent['attachments'] as $aAttachment) { + + foreach ($aEmailContent['attachments'] as $aAttachment) { $oEmail->AddAttachment($aAttachment['data'], $aAttachment['filename'], $aAttachment['mime_type']); } - - if (empty($this->m_aMailErrors)) - { - if ($this->m_iRecipients == 0) - { + + if (empty($this->m_aMailErrors)) { + if ($this->m_iRecipients == 0) { return 'No recipient'; - } - else - { + } else { $aErrors = []; $iRes = $oEmail->Send($aErrors, $this->IsAsynchronous() ? Email::ENUM_SEND_FORCE_ASYNCHRONOUS : Email::ENUM_SEND_FORCE_SYNCHRONOUS, $oLog); - switch ($iRes) - { + switch ($iRes) { case EMAIL_SEND_OK: return "Sent"; @@ -721,39 +693,36 @@ class ActionEmail extends ActionNotification $sPreviousUrlMaker = ApplicationContext::SetUrlMakerClass(); [$sPreviousLanguage, $aPreviousPluginProperties] = $this->SetNotificationLanguage(); - try - { + try { $this->m_iRecipients = 0; - $this->m_aMailErrors = array(); - + $this->m_aMailErrors = []; + // Determine recipients // $aMessageContent['to'] = $this->FindRecipients('to', $aContextArgs); $aMessageContent['cc'] = $this->FindRecipients('cc', $aContextArgs); $aMessageContent['bcc'] = $this->FindRecipients('bcc', $aContextArgs); - + $aMessageContent['from'] = MetaModel::ApplyParams($this->Get('from'), $aContextArgs); $aMessageContent['from_label'] = MetaModel::ApplyParams($this->Get('from_label'), $aContextArgs); $aMessageContent['reply_to'] = MetaModel::ApplyParams($this->Get('reply_to'), $aContextArgs); $aMessageContent['reply_to_label'] = MetaModel::ApplyParams($this->Get('reply_to_label'), $aContextArgs); - + $aMessageContent['subject'] = MetaModel::ApplyParams($this->Get('subject'), $aContextArgs); $sBody = $this->BuildMessageBody(false); $aMessageContent['body'] = MetaModel::ApplyParams($sBody, $aContextArgs); - + $oObj = $aContextArgs['this->object()']; $aMessageContent['message_id'] = $this->GenerateIdentifierForHeaders($oObj, static::ENUM_HEADER_NAME_MESSAGE_ID); $aMessageContent['references'] = $this->GenerateIdentifierForHeaders($oObj, static::ENUM_HEADER_NAME_REFERENCES); - } - catch (Exception $e) { + } catch (Exception $e) { /** @noinspection PhpUnhandledExceptionInspection */ throw $e; - } - finally { + } finally { ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker); $this->SetNotificationLanguage($sPreviousLanguage, $aPreviousPluginProperties['language_code'] ?? null); } - + if (!is_null($oLog)) { // Note: we have to secure this because those values are calculated // inside the try statement, and we would like to keep track of as @@ -802,19 +771,17 @@ class ActionEmail extends ActionNotification } // Note: N°4849 We pass the "References" identifier instead of the "Message-ID" on purpose as we want notifications emails to group around the triggering iTop object, not just the users' replies to the notification $aMessageContent['in_reply_to'] = $aMessageContent['references']; - - if (isset($aContextArgs['attachments'])) - { - $aAttachmentReport = array(); + + if (isset($aContextArgs['attachments'])) { + $aAttachmentReport = []; /** @var \ormDocument $oDocument */ - foreach($aContextArgs['attachments'] as $oDocument) - { + foreach ($aContextArgs['attachments'] as $oDocument) { $aMessageContent['attachments'][] = ['data' => $oDocument->GetData(), 'filename' => $oDocument->GetFileName(), 'mime_type' => $oDocument->GetMimeType()]; - $aAttachmentReport[] = array($oDocument->GetFileName(), $oDocument->GetMimeType(), strlen($oDocument->GetData() ?? '')); + $aAttachmentReport[] = [$oDocument->GetFileName(), $oDocument->GetMimeType(), strlen($oDocument->GetData() ?? '')]; } $oLog->Set('attachments', $aAttachmentReport); } - + return $aMessageContent; } @@ -859,11 +826,11 @@ class ActionEmail extends ActionNotification ]); throw new Exception($sErrorMessage); } - + /** * Compose the body of the message from the 'body' attribute and the HTML template (if any) * @since 3.1.0 N°4849 - * @param bool $bHighlightPlaceholders If true add some extra HTML around placeholders to highlight them + * @param bool $bHighlightPlaceholders If true add some extra HTML around placeholders to highlight them * @return string */ protected function BuildMessageBody(bool $bHighlightPlaceholders = false): string @@ -889,13 +856,13 @@ HTML; $sBody = $oHtmlTemplate->GetData(); } } - if($bHighlightPlaceholders) { + if ($bHighlightPlaceholders) { // Highlight all placeholders $sBody = preg_replace('/\\$([^$]+)\\$/', static::FIELD_HIGHLIGHT, $sBody); } return $sBody; } - + /** * @since 3.1.0 N°4849 * @inheritDoc diff --git a/core/apc-compat.php b/core/apc-compat.php index 6412a2673..0e0488fc9 100644 --- a/core/apc-compat.php +++ b/core/apc-compat.php @@ -1,9 +1,10 @@ getNumberOfParameters() != 2) - { + if ($oFunction->getNumberOfParameters() != 2) { // Beware: APCu behaves slightly differently from APC !! // Worse: the compatibility layer integrated into APC differs from apcu-bc (testing the number of parameters is a must) // In CLI mode (PHP > 7) apc_cache_info returns null and outputs an error message. $aCacheUserData = @apc_cache_info(); - } - else - { + } else { $aCacheUserData = @apc_cache_info('user'); } return $aCacheUserData; } // Cache emulation -if (!function_exists('apc_store')) -{ +if (!function_exists('apc_store')) { require_once(APPROOT.'core/apc-emulation.php'); -} \ No newline at end of file +} diff --git a/core/apc-emulation.php b/core/apc-emulation.php index 33214a911..a1bcad7bb 100644 --- a/core/apc-emulation.php +++ b/core/apc-emulation.php @@ -1,4 +1,5 @@ $value) - { + if (is_array($key)) { + $aResult = []; + foreach ($key as $sKey => $value) { $aResult[] = apcFile::StoreOneFile($sKey, $value, $ttl); } return $aResult; @@ -89,8 +88,7 @@ function apc_clear_cache($cache_type = '') */ function apc_delete($key) { - if (empty($key)) - { + if (empty($key)) { return false; } $bRet1 = apcFile::DeleteEntry(apcFile::GetCacheFileName($key)); @@ -126,17 +124,17 @@ function apc_exists($keys) class apcFile { // Check only once per request - static public $aFilesByTime = null; - static public $iFileCount = 0; + public static $aFilesByTime = null; + public static $iFileCount = 0; /** Get the file name corresponding to the cache entry. * If an empty key is provided, the root of the cache is returned. * @param $sKey * @return string */ - static public function GetCacheFileName($sKey = '') + public static function GetCacheFileName($sKey = '') { - $sPath = str_replace(array(' ', '/', '\\', '.'), '-', $sKey ?? ''); + $sPath = str_replace([' ', '/', '\\', '.'], '-', $sKey ?? ''); return utils::GetCachePath().'apc-emul/'.$sPath; } @@ -144,26 +142,21 @@ class apcFile * @param $sEntry string starting folder. * @return array list of entries stored into array of key 'info' */ - static public function GetCacheEntries($sEntry) + public static function GetCacheEntries($sEntry) { - $aResult = array(); - if (is_dir($sEntry)) - { - $aFiles = array_diff(scandir($sEntry), array('.', '..')); - foreach($aFiles as $sFile) - { + $aResult = []; + if (is_dir($sEntry)) { + $aFiles = array_diff(scandir($sEntry), ['.', '..']); + foreach ($aFiles as $sFile) { $sSubFile = $sEntry.'/'.$sFile; $aResult = array_merge($aResult, self::GetCacheEntries($sSubFile)); } - } - else - { + } else { $sKey = basename($sEntry); - if (strpos($sKey, '-') === 0) - { + if (strpos($sKey, '-') === 0) { $sKey = substr($sKey, 1); } - $aResult[] = array('info' => $sKey); + $aResult[] = ['info' => $sKey]; } return $aResult; } @@ -172,35 +165,25 @@ class apcFile * @param $sCache * @return bool true if the entry was deleted false if error occurs (like entry did not exist). */ - static public function DeleteEntry($sCache) + public static function DeleteEntry($sCache) { - if (is_dir($sCache)) - { - $aFiles = array_diff(scandir($sCache), array('.', '..')); - foreach($aFiles as $sFile) - { + if (is_dir($sCache)) { + $aFiles = array_diff(scandir($sCache), ['.', '..']); + foreach ($aFiles as $sFile) { $sSubFile = $sCache.'/'.$sFile; - if (!self::DeleteEntry($sSubFile)) - { + if (!self::DeleteEntry($sSubFile)) { return false; } } - if (!@rmdir($sCache)) - { + if (!@rmdir($sCache)) { return false; } - } - else - { - if (is_file($sCache)) - { - if (!@unlink($sCache)) - { + } else { + if (is_file($sCache)) { + if (!@unlink($sCache)) { return false; } - } - else - { + } else { return false; } } @@ -215,23 +198,22 @@ class apcFile * @return bool * @since 3.2.0 N°7068 */ - static public function ExistsOneFile($sKey) { - return is_file(self::GetCacheFileName('-' . $sKey)) || is_file(self::GetCacheFileName($sKey)); + public static function ExistsOneFile($sKey) + { + return is_file(self::GetCacheFileName('-'.$sKey)) || is_file(self::GetCacheFileName($sKey)); } /** Get one cache entry content. * @param $sKey * @return bool|mixed */ - static public function FetchOneFile($sKey) + public static function FetchOneFile($sKey) { // Try the 'TTLed' version $sValue = self::ReadCacheLocked(self::GetCacheFileName('-'.$sKey)); - if ($sValue === false) - { + if ($sValue === false) { $sValue = self::ReadCacheLocked(self::GetCacheFileName($sKey)); - if ($sValue === false) - { + if ($sValue === false) { return false; } } @@ -245,7 +227,7 @@ class apcFile * @param int $iTTL time to live * @return bool */ - static public function StoreOneFile($sKey, $value, $iTTL) + public static function StoreOneFile($sKey, $value, $iTTL) { if (empty($sKey)) { return false; @@ -279,40 +261,31 @@ class apcFile * remove older files if the mamximum is reached. * @param $sNewFilename */ - static protected function AddFile($sNewFilename) + protected static function AddFile($sNewFilename) { - if (strpos(basename($sNewFilename), '-') !== 0) - { + if (strpos(basename($sNewFilename), '-') !== 0) { return; } $iMaxFiles = MetaModel::GetConfig()->Get('apc_cache_emulation.max_entries'); - if ($iMaxFiles == 0) - { + if ($iMaxFiles == 0) { return; } - if (!self::$aFilesByTime) - { + if (!self::$aFilesByTime) { self::ListFilesByTime(); self::$iFileCount = count(self::$aFilesByTime); - if ($iMaxFiles !== 0) - { + if ($iMaxFiles !== 0) { asort(self::$aFilesByTime); } - } - else - { + } else { self::$aFilesByTime[$sNewFilename] = time(); self::$iFileCount++; } - if (self::$iFileCount > $iMaxFiles) - { + if (self::$iFileCount > $iMaxFiles) { $iFileNbToRemove = self::$iFileCount - $iMaxFiles; - foreach(self::$aFilesByTime as $sFileToRemove => $iTime) - { + foreach (self::$aFilesByTime as $sFileToRemove => $iTime) { @unlink($sFileToRemove); - if (--$iFileNbToRemove === 0) - { + if (--$iFileNbToRemove === 0) { break; } } @@ -324,25 +297,19 @@ class apcFile /** Get the list of files with their associated access time * @param string $sCheck Directory to scan */ - static protected function ListFilesByTime($sCheck = null) + protected static function ListFilesByTime($sCheck = null) { - if (empty($sCheck)) - { + if (empty($sCheck)) { $sCheck = self::GetCacheFileName(); } // Garbage collection - $aFiles = array_diff(@scandir($sCheck), array('.', '..')); - foreach($aFiles as $sFile) - { + $aFiles = array_diff(@scandir($sCheck), ['.', '..']); + foreach ($aFiles as $sFile) { $sSubFile = $sCheck.'/'.$sFile; - if (is_dir($sSubFile)) - { + if (is_dir($sSubFile)) { self::ListFilesByTime($sSubFile); - } - else - { - if (strpos(basename($sSubFile), '-') === 0) - { + } else { + if (strpos(basename($sSubFile), '-') === 0) { self::$aFilesByTime[$sSubFile] = @fileatime($sSubFile); } } @@ -353,7 +320,7 @@ class apcFile * @param $sFilename * @return bool|string the content of the cache entry or false if error */ - static protected function ReadCacheLocked($sFilename) + protected static function ReadCacheLocked($sFilename) { $sContent = false; $file = @fopen($sFilename, 'r'); @@ -367,7 +334,7 @@ class apcFile return $sContent; } - static protected function ResetFileCount() + protected static function ResetFileCount() { self::$aFilesByTime = null; self::$iFileCount = 0; diff --git a/core/apc-service.class.inc.php b/core/apc-service.class.inc.php index ca541eb84..c7922f0d9 100644 --- a/core/apc-service.class.inc.php +++ b/core/apc-service.class.inc.php @@ -4,8 +4,10 @@ * Class ApcService * @since 2.7.6 N°4125 */ -class ApcService { - public function __construct() { +class ApcService +{ + public function __construct() + { } /** @@ -13,7 +15,8 @@ class ApcService { * @return bool * @see function_exists() */ - public function function_exists($function_name) { + public function function_exists($function_name) + { return function_exists($function_name); } @@ -22,7 +25,7 @@ class ApcService { * @return mixed * @see apc_fetch() */ - function apc_fetch($key) + public function apc_fetch($key) { return apc_fetch($key); } @@ -34,9 +37,8 @@ class ApcService { * @return array|bool * @see apc_store() */ - function apc_store($key, $var = NULL, $ttl = 0) + public function apc_store($key, $var = null, $ttl = 0) { return apc_store($key, $var, $ttl); } } -?> \ No newline at end of file diff --git a/core/asynctask.class.inc.php b/core/asynctask.class.inc.php index c8a3a417d..aaf55b0cf 100644 --- a/core/asynctask.class.inc.php +++ b/core/asynctask.class.inc.php @@ -1,9 +1,10 @@ use Combodo\iTop\Service\Notification\Event\EventNotificationNewsroomService; - /** * Persistent classes (internal): user defined actions * @@ -25,11 +25,10 @@ use Combodo\iTop\Service\Notification\Event\EventNotificationNewsroomService; * @license http://opensource.org/licenses/AGPL-3.0 */ - class ExecAsyncTask implements iBackgroundProcess { public function GetPeriodicity() - { + { return 2; // seconds } @@ -39,19 +38,16 @@ class ExecAsyncTask implements iBackgroundProcess // Criteria: planned, and expected to occur... ASAP or in the past $sOQL = "SELECT AsyncTask WHERE (status = 'planned') AND (ISNULL(planned) OR (planned < '$sNow'))"; $iProcessed = 0; - while (time() < $iTimeLimit) - { + while (time() < $iTimeLimit) { // Next one ? - $oSet = new CMDBObjectSet(DBObjectSearch::FromOQL($sOQL), array('created' => true) /* order by*/, array(), null, 1 /* limit count */); + $oSet = new CMDBObjectSet(DBObjectSearch::FromOQL($sOQL), ['created' => true] /* order by*/, [], null, 1 /* limit count */); $oTask = $oSet->Fetch(); - if (is_null($oTask)) - { + if (is_null($oTask)) { // Nothing to be done break; } $iProcessed++; - if ($oTask->Process()) - { + if ($oTask->Process()) { $oTask->DBDelete(); } } @@ -60,7 +56,7 @@ class ExecAsyncTask implements iBackgroundProcess } /** - * A + * A * * @package iTopORM */ @@ -72,79 +68,72 @@ abstract class AsyncTask extends DBObject */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb", "key_type" => "autoincrement", - "name_attcode" => array('created'), + "name_attcode" => ['created'], "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_async_task", "db_key_field" => "id", "db_finalclass_field" => "realclass", - ); + ]; MetaModel::Init_Params($aParams); // Null is allowed to ease the migration from iTop 2.0.2 and earlier, when the status did not exist, and because the default value is not taken into account in the SQL definition // The value is set from null to planned in the setup program - MetaModel::Init_AddAttribute(new AttributeEnum("status", array("allowed_values"=>new ValueSetEnum('planned,running,idle,error'), "sql"=>"status", "default_value"=>"planned", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeEnum("status", ["allowed_values" => new ValueSetEnum('planned,running,idle,error'), "sql" => "status", "default_value" => "planned", "is_null_allowed" => true, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeDateTime("created", array("allowed_values"=>null, "sql"=>"created", "default_value"=>"NOW()", "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDateTime("started", array("allowed_values"=>null, "sql"=>"started", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDateTime("planned", array("allowed_values"=>null, "sql"=>"planned", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalKey("event_id", array("targetclass"=>"Event", "jointype"=> "", "allowed_values"=>null, "sql"=>"event_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_SILENT, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeDateTime("created", ["allowed_values" => null, "sql" => "created", "default_value" => "NOW()", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDateTime("started", ["allowed_values" => null, "sql" => "started", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDateTime("planned", ["allowed_values" => null, "sql" => "planned", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalKey("event_id", ["targetclass" => "Event", "jointype" => "", "allowed_values" => null, "sql" => "event_id", "is_null_allowed" => true, "on_target_delete" => DEL_SILENT, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeInteger("remaining_retries", array("allowed_values"=>null, "sql"=>"remaining_retries", "default_value"=>0, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeInteger("last_error_code", array("allowed_values"=>null, "sql"=>"last_error_code", "default_value"=>0, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("last_error", array("allowed_values"=>null, "sql"=>"last_error", "default_value"=>'', "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDateTime("last_attempt", array("allowed_values"=>null, "sql"=>"last_attempt", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeInteger("remaining_retries", ["allowed_values" => null, "sql" => "remaining_retries", "default_value" => 0, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeInteger("last_error_code", ["allowed_values" => null, "sql" => "last_error_code", "default_value" => 0, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("last_error", ["allowed_values" => null, "sql" => "last_error", "default_value" => '', "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDateTime("last_attempt", ["allowed_values" => null, "sql" => "last_attempt", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); } /** * Every is fine */ - const OK = 0; + public const OK = 0; /** * The task no longer exists */ - const DELETED = 1; + public const DELETED = 1; /** * The task is already being executed */ - const ALREADY_RUNNING = 2; + public const ALREADY_RUNNING = 2; /** * The current process requests the ownership on the task. * In case the task can be accessed concurrently, this function can be overloaded to add a critical section. - * The function must not block the caller if another process is already owning the task - * - * @return integer A code among OK/DELETED/ALREADY_RUNNING. - */ + * The function must not block the caller if another process is already owning the task + * + * @return integer A code among OK/DELETED/ALREADY_RUNNING. + */ public function MarkAsRunning() { - try - { - if ($this->Get('status') == 'running') - { + try { + if ($this->Get('status') == 'running') { return self::ALREADY_RUNNING; - } - else - { + } else { $this->Set('status', 'running'); $this->Set('started', time()); $this->DBUpdate(); return self::OK; } - } - catch(Exception $e) - { + } catch (Exception $e) { // Corrupted task !! (for example: "Failed to reload object") IssueLog::Error('Failed to process async task #'.$this->GetKey().' - reason: '.$e->getMessage().' - fatal error, deleting the task.'); - if ($this->Get('event_id') != 0) - { - $oEventLog = MetaModel::GetObject('Event', $this->Get('event_id')); - $oEventLog->Set('message', 'Failed, corrupted data: '.$e->getMessage()); - $oEventLog->DBUpdate(); + if ($this->Get('event_id') != 0) { + $oEventLog = MetaModel::GetObject('Event', $this->Get('event_id')); + $oEventLog->Set('message', 'Failed, corrupted data: '.$e->getMessage()); + $oEventLog->DBUpdate(); } $this->DBDelete(); return self::DELETED; @@ -155,8 +144,7 @@ abstract class AsyncTask extends DBObject { $iRetryDelay = 600; $aRetries = MetaModel::GetConfig()->Get('async_task_retries'); - if (is_array($aRetries) && array_key_exists(get_class($this), $aRetries)) - { + if (is_array($aRetries) && array_key_exists(get_class($this), $aRetries)) { $aConfig = $aRetries[get_class($this)]; $iRetryDelay = $aConfig['retry_delay'] ?? $iRetryDelay; } @@ -167,8 +155,7 @@ abstract class AsyncTask extends DBObject { $iMaxRetries = 0; $aRetries = MetaModel::GetConfig()->Get('async_task_retries'); - if (is_array($aRetries) && array_key_exists(get_class($this), $aRetries)) - { + if (is_array($aRetries) && array_key_exists(get_class($this), $aRetries)) { $aConfig = $aRetries[get_class($this)]; $iMaxRetries = $aConfig['max_retries'] ?? $iMaxRetries; } @@ -177,40 +164,33 @@ abstract class AsyncTask extends DBObject public function IsRetryDelayExponential() { - $bExponential = false; - $aRetries = MetaModel::GetConfig()->Get('async_task_retries'); - if (is_array($aRetries) && array_key_exists(get_class($this), $aRetries)) - { - $aConfig = $aRetries[get_class($this)]; - $bExponential = (bool) ($aConfig['exponential_delay'] ?? $bExponential); - } - return $bExponential; + $bExponential = false; + $aRetries = MetaModel::GetConfig()->Get('async_task_retries'); + if (is_array($aRetries) && array_key_exists(get_class($this), $aRetries)) { + $aConfig = $aRetries[get_class($this)]; + $bExponential = (bool) ($aConfig['exponential_delay'] ?? $bExponential); + } + return $bExponential; } public static function CheckRetryConfig(Config $oConfig, $sAsyncTaskClass) { - $aMessages = []; - $aRetries = $oConfig->Get('async_task_retries'); - if (is_array($aRetries) && array_key_exists($sAsyncTaskClass, $aRetries)) - { - $aValidKeys = array("retry_delay", "max_retries", "exponential_delay"); - $aConfig = $aRetries[$sAsyncTaskClass]; - if (!is_array($aConfig)) - { - $aMessages[] = Dict::Format('Class:AsyncTask:InvalidConfig_Class_Keys', $sAsyncTaskClass, implode(', ', $aValidKeys)); - } - else - { - foreach($aConfig as $key => $value) - { - if (!in_array($key, $aValidKeys)) - { - $aMessages[] = Dict::Format('Class:AsyncTask:InvalidConfig_Class_InvalidKey_Keys', $sAsyncTaskClass, $key, implode(', ', $aValidKeys)); - } - } - } - } - return $aMessages; + $aMessages = []; + $aRetries = $oConfig->Get('async_task_retries'); + if (is_array($aRetries) && array_key_exists($sAsyncTaskClass, $aRetries)) { + $aValidKeys = ["retry_delay", "max_retries", "exponential_delay"]; + $aConfig = $aRetries[$sAsyncTaskClass]; + if (!is_array($aConfig)) { + $aMessages[] = Dict::Format('Class:AsyncTask:InvalidConfig_Class_Keys', $sAsyncTaskClass, implode(', ', $aValidKeys)); + } else { + foreach ($aConfig as $key => $value) { + if (!in_array($key, $aValidKeys)) { + $aMessages[] = Dict::Format('Class:AsyncTask:InvalidConfig_Class_InvalidKey_Keys', $sAsyncTaskClass, $key, implode(', ', $aValidKeys)); + } + } + } + } + return $aMessages; } /** @@ -223,16 +203,15 @@ abstract class AsyncTask extends DBObject */ public static function GetNextRetryDelay($bIsExponential, $iRetryDelay, $iMaxRetries, $iRemainingRetries) { - if ($bIsExponential) - { - $iExponent = $iMaxRetries - $iRemainingRetries; - if ($iExponent < 0) $iExponent = 0; // Safety net in case on configuration change in the middle of retries - return $iRetryDelay * (2 ** $iExponent); - } - else - { - return $iRetryDelay; - } + if ($bIsExponential) { + $iExponent = $iMaxRetries - $iRemainingRetries; + if ($iExponent < 0) { + $iExponent = 0; + } // Safety net in case on configuration change in the middle of retries + return $iRetryDelay * (2 ** $iExponent); + } else { + return $iRetryDelay; + } } /** @@ -242,14 +221,14 @@ abstract class AsyncTask extends DBObject { } - protected function OnInsert() + protected function OnInsert() { $this->Set('created', time()); } - /** - * @return boolean True if the task record can be deleted - */ + /** + * @return boolean True if the task record can be deleted + */ public function Process() { // By default: consider that the task is not completed @@ -257,25 +236,19 @@ abstract class AsyncTask extends DBObject // Attempt to take the ownership $iStatus = $this->MarkAsRunning(); - if ($iStatus == self::OK) - { - try - { + if ($iStatus == self::OK) { + try { $sStatus = $this->DoProcess(); - if ($this->Get('event_id') != 0) - { + if ($this->Get('event_id') != 0) { $oEventLog = MetaModel::GetObject('Event', $this->Get('event_id')); $oEventLog->Set('message', $sStatus); $oEventLog->DBUpdate(); } $bRet = true; - } catch (Exception $e) - { + } catch (Exception $e) { $this->HandleError($e->getMessage(), $e->getCode()); } - } - else - { + } else { // Already done or being handled by another process... skip... $bRet = false; } @@ -288,8 +261,7 @@ abstract class AsyncTask extends DBObject */ protected function HandleError($sErrorMessage, $iErrorCode) { - if ($this->Get('last_attempt') == '') - { + if ($this->Get('last_attempt') == '') { // First attempt $this->Set('remaining_retries', $this->GetMaxRetries($iErrorCode)); } @@ -299,45 +271,34 @@ abstract class AsyncTask extends DBObject $this->Set('last_attempt', time()); $iRemaining = $this->Get('remaining_retries'); - if ($iRemaining > 0) - { + if ($iRemaining > 0) { $iRetryDelay = $this->GetRetryDelay($iErrorCode); $iNextRetryDelay = static::GetNextRetryDelay($this->IsRetryDelayExponential(), $iRetryDelay, $this->GetMaxRetries($iErrorCode), $iRemaining); IssueLog::Info('Failed to process async task #'.$this->GetKey().' - reason: '.$sErrorMessage.' - remaining retries: '.$iRemaining.' - next retry in '.$iNextRetryDelay.'s'); - if ($this->Get('event_id') != 0) - { + if ($this->Get('event_id') != 0) { $oEventLog = MetaModel::GetObject('Event', $this->Get('event_id')); $oEventLog->Set('message', "$sErrorMessage\nFailed to process async task. Remaining retries: $iRemaining. Next retry in {$iNextRetryDelay}s"); - try - { - $oEventLog->DBUpdate(); - } - catch (Exception $e) - { - $oEventLog->Set('message', "Failed to process async task. Remaining retries: $iRemaining. Next retry in {$iNextRetryDelay}s, more details in the log"); - $oEventLog->DBUpdate(); - } + try { + $oEventLog->DBUpdate(); + } catch (Exception $e) { + $oEventLog->Set('message', "Failed to process async task. Remaining retries: $iRemaining. Next retry in {$iNextRetryDelay}s, more details in the log"); + $oEventLog->DBUpdate(); + } } $this->Set('remaining_retries', $iRemaining - 1); $this->Set('status', 'planned'); $this->Set('started', null); $this->Set('planned', time() + $iNextRetryDelay); - } - else - { + } else { IssueLog::Error('Failed to process async task #'.$this->GetKey().' - reason: '.$sErrorMessage); - if ($this->Get('event_id') != 0) - { + if ($this->Get('event_id') != 0) { $oEventLog = MetaModel::GetObject('Event', $this->Get('event_id')); $oEventLog->Set('message', "$sErrorMessage\nFailed to process async task."); - try - { - $oEventLog->DBUpdate(); - } - catch (Exception $e) - { - $oEventLog->Set('message', 'Failed to process async task, more details in the log'); - $oEventLog->DBUpdate(); + try { + $oEventLog->DBUpdate(); + } catch (Exception $e) { + $oEventLog->Set('message', 'Failed to process async task, more details in the log'); + $oEventLog->DBUpdate(); } } $this->Set('status', 'error'); @@ -352,20 +313,20 @@ abstract class AsyncTask extends DBObject * Throws an exception (message and code) * * @return string - */ + */ abstract public function DoProcess(); /** * Describes the error codes that DoProcess can return by the mean of exceptions - */ - static public function EnumErrorCodes() + */ + public static function EnumErrorCodes() { - return array(); + return []; } } /** - * An email notification + * An email notification * * @package iTopORM */ @@ -373,38 +334,37 @@ class AsyncSendEmail extends AsyncTask { public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb", "key_type" => "autoincrement", "name_attcode" => "created", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_async_send_email", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeInteger("version", array("allowed_values"=>null, "sql"=>"version", "default_value"=>Email::ORIGINAL_FORMAT, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeText("to", array("allowed_values"=>null, "sql"=>"to", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeText("subject", array("allowed_values"=>null, "sql"=>"subject", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeLongText("message", array("allowed_values"=>null, "sql"=>"message", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeInteger("version", ["allowed_values" => null, "sql" => "version", "default_value" => Email::ORIGINAL_FORMAT, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeText("to", ["allowed_values" => null, "sql" => "to", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeText("subject", ["allowed_values" => null, "sql" => "subject", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeLongText("message", ["allowed_values" => null, "sql" => "message", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); // Display lists -// MetaModel::Init_SetZListItems('details', array('name', 'description', 'status', 'test_recipient', 'from', 'reply_to', 'to', 'cc', 'bcc', 'subject', 'body', 'importance', 'trigger_list')); // Attributes to be displayed for the complete details -// MetaModel::Init_SetZListItems('list', array('name', 'status', 'to', 'subject')); // Attributes to be displayed for a list + // MetaModel::Init_SetZListItems('details', array('name', 'description', 'status', 'test_recipient', 'from', 'reply_to', 'to', 'cc', 'bcc', 'subject', 'body', 'importance', 'trigger_list')); // Attributes to be displayed for the complete details + // MetaModel::Init_SetZListItems('list', array('name', 'status', 'to', 'subject')); // Attributes to be displayed for a list // Search criteria -// MetaModel::Init_SetZListItems('standard_search', array('name')); // Criteria of the std search form -// MetaModel::Init_SetZListItems('advanced_search', array('name')); // Criteria of the advanced search form + // MetaModel::Init_SetZListItems('standard_search', array('name')); // Criteria of the std search form + // MetaModel::Init_SetZListItems('advanced_search', array('name')); // Criteria of the advanced search form } - static public function AddToQueue(EMail $oEMail, $oLog) + public static function AddToQueue(EMail $oEMail, $oLog) { $oNew = MetaModel::NewObject(__class__); - if ($oLog) - { + if ($oLog) { $oNew->Set('event_id', $oLog->GetKey()); } $oNew->Set('to', $oEMail->GetRecipientTO(true /* string */)); @@ -425,35 +385,33 @@ class AsyncSendEmail extends AsyncTask { $sMessage = $this->Get('message'); $iVersion = (int) $this->Get('version'); - switch($iVersion) - { + switch ($iVersion) { case Email::FORMAT_V2: - $oEMail = Email::UnSerializeV2($sMessage); - break; - + $oEMail = Email::UnSerializeV2($sMessage); + break; + case Email::ORIGINAL_FORMAT: - $oEMail = unserialize($sMessage); - break; - + $oEMail = unserialize($sMessage); + break; + default: - return 'Unknown version of the serialization format: '.$iVersion; + return 'Unknown version of the serialization format: '.$iVersion; } $iRes = $oEMail->Send($aIssues, true /* force synchro !!!!! */); - switch ($iRes) - { - case EMAIL_SEND_OK: - return "Sent"; + switch ($iRes) { + case EMAIL_SEND_OK: + return "Sent"; - case EMAIL_SEND_PENDING: - return "Bug - the email should be sent in synchronous mode"; + case EMAIL_SEND_PENDING: + return "Bug - the email should be sent in synchronous mode"; - case EMAIL_SEND_ERROR: - if (is_array($aIssues)) { - $sMessage = "Sending eMail failed: ".implode(', ', $aIssues); - } else { - $sMessage = "Sending eMail failed."; - } - throw new Exception($sMessage); + case EMAIL_SEND_ERROR: + if (is_array($aIssues)) { + $sMessage = "Sending eMail failed: ".implode(', ', $aIssues); + } else { + $sMessage = "Sending eMail failed."; + } + throw new Exception($sMessage); } return ''; } @@ -463,33 +421,33 @@ class AsyncSendEmail extends AsyncTask * An async notification to be sent to iTop users through the newsroom * @since 3.2.0 */ -class AsyncSendNewsroom extends AsyncTask { - +class AsyncSendNewsroom extends AsyncTask +{ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb", "key_type" => "autoincrement", "name_attcode" => "created", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_async_send_newsroom", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeText("recipients", array("allowed_values"=>null, "sql"=>"recipients", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalKey("action_id", array("targetclass"=>"Action", "allowed_values"=>null, "sql"=>"action_id", "default_value"=>null, "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalKey("trigger_id", array("targetclass"=>"Trigger", "allowed_values"=>null, "sql"=>"trigger_id", "default_value"=>null, "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeText("title", array("allowed_values"=>null, "sql"=>"title", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeText("message", array("allowed_values"=>null, "sql"=>"message", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeInteger("object_id", array("allowed_values"=>null, "sql"=>"object_id", "default_value"=>null, "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("object_class", array("allowed_values"=>null, "sql"=>"object_class", "default_value"=>null, "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeText("url", array("allowed_values"=>null, "sql"=>"url", "default_value"=>null, "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDateTime("date", array("allowed_values"=>null, "sql"=>"date", "default_value"=>'NOW()', "is_null_allowed"=>false, "on_target_delete"=>DEL_AUTO, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeText("recipients", ["allowed_values" => null, "sql" => "recipients", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalKey("action_id", ["targetclass" => "Action", "allowed_values" => null, "sql" => "action_id", "default_value" => null, "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalKey("trigger_id", ["targetclass" => "Trigger", "allowed_values" => null, "sql" => "trigger_id", "default_value" => null, "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeText("title", ["allowed_values" => null, "sql" => "title", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeText("message", ["allowed_values" => null, "sql" => "message", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeInteger("object_id", ["allowed_values" => null, "sql" => "object_id", "default_value" => null, "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("object_class", ["allowed_values" => null, "sql" => "object_class", "default_value" => null, "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeText("url", ["allowed_values" => null, "sql" => "url", "default_value" => null, "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDateTime("date", ["allowed_values" => null, "sql" => "date", "default_value" => 'NOW()', "is_null_allowed" => false, "on_target_delete" => DEL_AUTO, "depends_on" => []])); } @@ -514,7 +472,7 @@ class AsyncSendNewsroom extends AsyncTask { $oNew->Set('object_id', $iObjectId); $oNew->Set('object_class', $sObjectClass); $oNew->SetCurrentDate('date'); - + $oNew->DBInsert(); } @@ -532,13 +490,12 @@ class AsyncSendNewsroom extends AsyncTask { $iObjectId = $this->Get('object_id'); $sObjectClass = $this->Get('object_class'); $sDate = $this->Get('date'); - - foreach ($aRecipients as $iRecipientId) - { + + foreach ($aRecipients as $iRecipientId) { $oEvent = EventNotificationNewsroomService::MakeEventFromAction($oAction, $iRecipientId, $iTriggerId, $sMessage, $sTitle, $sUrl, $iObjectId, $sObjectClass, $sDate); $oEvent->DBInsertNoReload(); } - + return "Sent"; } -} \ No newline at end of file +} diff --git a/core/autoload.php b/core/autoload.php index f89eda208..83f4e972c 100644 --- a/core/autoload.php +++ b/core/autoload.php @@ -1,9 +1,10 @@ - /** * Tasks performed in the background * @@ -24,7 +24,6 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - class ObsolescenceDateUpdater implements iBackgroundProcess { public function GetPeriodicity() @@ -37,18 +36,17 @@ class ObsolescenceDateUpdater implements iBackgroundProcess $iCountSet = 0; $iCountReset = 0; $iClasses = 0; - foreach (MetaModel::EnumObsoletableClasses() as $sClass) - { + foreach (MetaModel::EnumObsoletableClasses() as $sClass) { $oObsoletedToday = new DBObjectSearch($sClass); $oObsoletedToday->AddCondition('obsolescence_flag', 1, '='); $oObsoletedToday->AddCondition('obsolescence_date', null, '='); $sToday = date(AttributeDate::GetSQLFormat()); - $iCountSet += MetaModel::BulkUpdate($oObsoletedToday, array('obsolescence_date' => $sToday)); + $iCountSet += MetaModel::BulkUpdate($oObsoletedToday, ['obsolescence_date' => $sToday]); $oObsoletedToday = new DBObjectSearch($sClass); $oObsoletedToday->AddCondition('obsolescence_flag', 1, '!='); $oObsoletedToday->AddCondition('obsolescence_date', null, '!='); - $iCountReset += MetaModel::BulkUpdate($oObsoletedToday, array('obsolescence_date' => null)); + $iCountReset += MetaModel::BulkUpdate($oObsoletedToday, ['obsolescence_date' => null]); } return "Obsolescence date updated (classes: $iClasses ; set: $iCountSet ; reset: $iCountReset)\n"; } diff --git a/core/backgroundprocess.inc.php b/core/backgroundprocess.inc.php index 46b4490f3..3e05348ed 100644 --- a/core/backgroundprocess.inc.php +++ b/core/backgroundprocess.inc.php @@ -1,4 +1,5 @@ oConfig)) - { + if (!isset($this->oConfig)) { $this->oConfig = MetaModel::GetConfig(); } return $this->oConfig; } - /** * Interpret current setting for the week days * @@ -128,7 +125,7 @@ abstract class AbstractWeeklyScheduledProcess implements iScheduledProcess */ public function InterpretWeekDays() { - static $aWEEKDAYTON = array( + static $aWEEKDAYTON = [ 'monday' => 1, 'tuesday' => 2, 'wednesday' => 3, @@ -136,32 +133,26 @@ abstract class AbstractWeeklyScheduledProcess implements iScheduledProcess 'friday' => 5, 'saturday' => 6, 'sunday' => 7, - ); - $aDays = array(); + ]; + $aDays = []; $sWeekDays = $this->getOConfig()->GetModuleSetting( $this->GetModuleName(), static::MODULE_SETTING_WEEKDAYS, static::DEFAULT_MODULE_SETTING_WEEKDAYS ); - if ($sWeekDays !== '') - { + if ($sWeekDays !== '') { $aWeekDaysRaw = explode(',', $sWeekDays); - foreach ($aWeekDaysRaw as $sWeekDay) - { + foreach ($aWeekDaysRaw as $sWeekDay) { $sWeekDay = strtolower(trim($sWeekDay)); - if (array_key_exists($sWeekDay, $aWEEKDAYTON)) - { + if (array_key_exists($sWeekDay, $aWEEKDAYTON)) { $aDays[] = $aWEEKDAYTON[$sWeekDay]; - } - else - { + } else { throw new ProcessInvalidConfigException($this->GetModuleName().": wrong format for setting '".static::MODULE_SETTING_WEEKDAYS."' (found '$sWeekDay')"); } } } - if (count($aDays) === 0) - { + if (count($aDays) === 0) { throw new ProcessInvalidConfigException($this->GetModuleName().': missing setting \''.static::MODULE_SETTING_WEEKDAYS.'\''); } $aDays = array_unique($aDays); @@ -185,8 +176,7 @@ abstract class AbstractWeeklyScheduledProcess implements iScheduledProcess static::DEFAULT_MODULE_SETTING_ENABLED ); - if (!$bEnabled) - { + if (!$bEnabled) { return new DateTime('3000-01-01'); } @@ -202,21 +192,17 @@ abstract class AbstractWeeklyScheduledProcess implements iScheduledProcess static::GetDefaultModuleSettingTime() ); $sProcessTime = trim($sProcessTime); - if (!preg_match('/[0-2]\d:[0-5]\d/', $sProcessTime)) - { + if (!preg_match('/[0-2]\d:[0-5]\d/', $sProcessTime)) { throw new ProcessInvalidConfigException($this->GetModuleName().": wrong format for setting '".static::MODULE_SETTING_TIME."' (found '$sProcessTime')"); } $oNow = new DateTime($sCurrentTime); $iNextPos = false; $sDay = $oNow->format('N'); - for ($iDay = (int) $sDay; $iDay <= 7; $iDay++) - { + for ($iDay = (int) $sDay; $iDay <= 7; $iDay++) { $iNextPos = array_search($iDay, $aDays, true); - if ($iNextPos !== false) - { - if (($iDay > $oNow->format('N')) || ($oNow->format('H:i') < $sProcessTime)) - { + if ($iNextPos !== false) { + if (($iDay > $oNow->format('N')) || ($oNow->format('H:i') < $sProcessTime)) { break; } $iNextPos = false; // necessary on sundays @@ -225,17 +211,14 @@ abstract class AbstractWeeklyScheduledProcess implements iScheduledProcess // 3rd - Compute the result // - if ($iNextPos === false) - { + if ($iNextPos === false) { // Jump to the first day within the next week $iFirstDayOfWeek = $aDays[0]; $iDayMove = $oNow->format('N') - $iFirstDayOfWeek; $oRet = clone $oNow; $oRet->modify(-$iDayMove.' days'); $oRet->modify('+1 weeks'); - } - else - { + } else { $iNextDayOfWeek = $aDays[$iNextPos]; $iMove = $iNextDayOfWeek - $oNow->format('N'); $oRet = clone $oNow; diff --git a/core/backgroundtask.class.inc.php b/core/backgroundtask.class.inc.php index 6c6736819..bfc843f98 100644 --- a/core/backgroundtask.class.inc.php +++ b/core/backgroundtask.class.inc.php @@ -1,9 +1,10 @@ - /** * Class BackgroundTask * A class to record information about the execution of background processes ({@link iProcess} impl) @@ -46,49 +46,47 @@ class BackgroundTask extends DBObject public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb", "key_type" => "autoincrement", "name_attcode" => "class_name", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_backgroundtask", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); - MetaModel::Init_AddAttribute(new AttributeString("class_name", array("allowed_values"=>null, "sql"=>"class_name", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDateTime("first_run_date", array("allowed_values"=>null, "sql"=>"first_run_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDateTime("latest_run_date", array("allowed_values"=>null, "sql"=>"latest_run_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDateTime("next_run_date", array("allowed_values"=>null, "sql"=>"next_run_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); - - MetaModel::Init_AddAttribute(new AttributeInteger("total_exec_count", array("allowed_values"=>null, "sql"=>"total_exec_count", "default_value"=>"0", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDecimal("latest_run_duration", array("allowed_values"=>null, "sql"=>"latest_run_duration", "digits"=> 8, "decimals"=> 3, "default_value"=>"0", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDecimal("min_run_duration", array("allowed_values"=>null, "sql"=>"min_run_duration", "digits"=> 8, "decimals"=> 3, "default_value"=>"0", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDecimal("max_run_duration", array("allowed_values"=>null, "sql"=>"max_run_duration", "digits"=> 8, "decimals"=> 3, "default_value"=>"0", "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDecimal("average_run_duration", array("allowed_values"=>null, "sql"=>"average_run_duration", "digits"=> 8, "decimals"=> 3, "default_value"=>"0", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeString("class_name", ["allowed_values" => null, "sql" => "class_name", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDateTime("first_run_date", ["allowed_values" => null, "sql" => "first_run_date", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDateTime("latest_run_date", ["allowed_values" => null, "sql" => "latest_run_date", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDateTime("next_run_date", ["allowed_values" => null, "sql" => "next_run_date", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeBoolean("running", array("allowed_values"=>null, "sql"=>"running", "default_value"=>false, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeEnum("status", array("allowed_values"=>new ValueSetEnum('active,paused,removed'), "sql"=>"status", "default_value"=>'active', "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("system_user", array("allowed_values"=>null, "sql"=>"system_user", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeInteger("total_exec_count", ["allowed_values" => null, "sql" => "total_exec_count", "default_value" => "0", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDecimal("latest_run_duration", ["allowed_values" => null, "sql" => "latest_run_duration", "digits" => 8, "decimals" => 3, "default_value" => "0", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDecimal("min_run_duration", ["allowed_values" => null, "sql" => "min_run_duration", "digits" => 8, "decimals" => 3, "default_value" => "0", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDecimal("max_run_duration", ["allowed_values" => null, "sql" => "max_run_duration", "digits" => 8, "decimals" => 3, "default_value" => "0", "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDecimal("average_run_duration", ["allowed_values" => null, "sql" => "average_run_duration", "digits" => 8, "decimals" => 3, "default_value" => "0", "is_null_allowed" => true, "depends_on" => []])); + + MetaModel::Init_AddAttribute(new AttributeBoolean("running", ["allowed_values" => null, "sql" => "running", "default_value" => false, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeEnum("status", ["allowed_values" => new ValueSetEnum('active,paused,removed'), "sql" => "status", "default_value" => 'active', "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("system_user", ["allowed_values" => null, "sql" => "system_user", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); } - + public function ComputeDurations($fLatestDuration) { $iTotalRun = $this->Get('total_exec_count'); - $fAverageDuration = ($this->Get('average_run_duration') * $iTotalRun + $fLatestDuration) / (1+$iTotalRun); - $this->Set('average_run_duration', sprintf('%.3f',$fAverageDuration)); - $this->Set('total_exec_count', 1+$iTotalRun); - if ($fLatestDuration < $this->Get('min_run_duration')) - { - $this->Set('min_run_duration', sprintf('%.3f',$fLatestDuration)); + $fAverageDuration = ($this->Get('average_run_duration') * $iTotalRun + $fLatestDuration) / (1 + $iTotalRun); + $this->Set('average_run_duration', sprintf('%.3f', $fAverageDuration)); + $this->Set('total_exec_count', 1 + $iTotalRun); + if ($fLatestDuration < $this->Get('min_run_duration')) { + $this->Set('min_run_duration', sprintf('%.3f', $fLatestDuration)); } - if ($fLatestDuration > $this->Get('max_run_duration')) - { - $this->Set('max_run_duration', sprintf('%.3f',$fLatestDuration)); + if ($fLatestDuration > $this->Get('max_run_duration')) { + $this->Set('max_run_duration', sprintf('%.3f', $fLatestDuration)); } - $this->Set('latest_run_duration', sprintf('%.3f',$fLatestDuration)); + $this->Set('latest_run_duration', sprintf('%.3f', $fLatestDuration)); } } diff --git a/core/cmdbchange.class.inc.php b/core/cmdbchange.class.inc.php index e69673e22..0ea64f595 100644 --- a/core/cmdbchange.class.inc.php +++ b/core/cmdbchange.class.inc.php @@ -1,4 +1,5 @@ "core/cmdb, grant_by_profile", "key_type" => "autoincrement", "name_attcode" => "date", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_change", "db_key_field" => "id", "db_finalclass_field" => "", - 'indexes' => array( - array('origin'), - ), - ); + 'indexes' => [ + ['origin'], + ], + ]; MetaModel::Init_Params($aParams); //MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeDateTime("date", array("allowed_values"=>null, "sql"=>"date", "default_value"=>"NOW()", "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("userinfo", array("allowed_values"=>null, "sql"=>"userinfo", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", array("allowed_values"=>null, "sql"=>"user_id", "targetclass"=>"User", "is_null_allowed"=>true, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeEnum("origin", array("allowed_values"=>new ValueSetEnum(implode(',', [CMDBChangeOrigin::INTERACTIVE, CMDBChangeOrigin::CSV_INTERACTIVE, CMDBChangeOrigin::CSV_IMPORT, CMDBChangeOrigin::WEBSERVICE_SOAP, CMDBChangeOrigin::WEBSERVICE_REST, CMDBChangeOrigin::SYNCHRO_DATA_SOURCE, CMDBChangeOrigin::EMAIL_PROCESSING, CMDBChangeOrigin::CUSTOM_EXTENSION])), "sql"=>"origin", "default_value"=>CMDBChangeOrigin::INTERACTIVE, "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeDateTime("date", ["allowed_values" => null, "sql" => "date", "default_value" => "NOW()", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("userinfo", ["allowed_values" => null, "sql" => "userinfo", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", ["allowed_values" => null, "sql" => "user_id", "targetclass" => "User", "is_null_allowed" => true, "on_target_delete" => DEL_MANUAL, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeEnum("origin", ["allowed_values" => new ValueSetEnum(implode(',', [CMDBChangeOrigin::INTERACTIVE, CMDBChangeOrigin::CSV_INTERACTIVE, CMDBChangeOrigin::CSV_IMPORT, CMDBChangeOrigin::WEBSERVICE_SOAP, CMDBChangeOrigin::WEBSERVICE_REST, CMDBChangeOrigin::SYNCHRO_DATA_SOURCE, CMDBChangeOrigin::EMAIL_PROCESSING, CMDBChangeOrigin::CUSTOM_EXTENSION])), "sql" => "origin", "default_value" => CMDBChangeOrigin::INTERACTIVE, "is_null_allowed" => true, "depends_on" => []])); } /** @@ -48,12 +49,9 @@ class CMDBChange extends DBObject */ public static function GetCurrentUserName() { - if (UserRights::IsImpersonated()) - { + if (UserRights::IsImpersonated()) { $sUserString = Dict::Format('UI:Archive_User_OnBehalfOf_User', UserRights::GetRealUserFriendlyName(), UserRights::GetUserFriendlyName()); - } - else - { + } else { $sUserString = UserRights::GetUserFriendlyName(); } return $sUserString; @@ -74,12 +72,9 @@ class CMDBChange extends DBObject public function GetUserName() { - if (preg_match('/^(.*)\\(CSV\\)$/i', $this->Get('userinfo'), $aMatches)) - { + if (preg_match('/^(.*)\\(CSV\\)$/i', $this->Get('userinfo'), $aMatches)) { $sUser = $aMatches[1]; - } - else - { + } else { $sUser = $this->Get('userinfo'); } return $sUser; diff --git a/core/cmdbchangeop.class.inc.php b/core/cmdbchangeop.class.inc.php index 26703dc62..c3add281e 100644 --- a/core/cmdbchangeop.class.inc.php +++ b/core/cmdbchangeop.class.inc.php @@ -1,9 +1,10 @@ - /** * Persistent classes (internal) : cmdbChangeOp and derived * @@ -24,9 +24,8 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - /** - * Various atomic change operations, to be tracked + * Various atomic change operations, to be tracked * * @package iTopORM */ @@ -50,31 +49,31 @@ class CMDBChangeOp extends DBObject implements iCMDBChangeOp { public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "autoincrement", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop", "db_key_field" => "id", "db_finalclass_field" => "optype", - 'indexes' => array( - array('objclass', 'objkey'), - ), - ); + 'indexes' => [ + ['objclass', 'objkey'], + ], + ]; MetaModel::Init_Params($aParams); //MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeExternalKey("change", array("allowed_values"=>null, "sql"=>"changeid", "targetclass"=>"CMDBChange", "is_null_allowed"=>false, "on_target_delete"=>DEL_MANUAL, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalField("date", array("allowed_values"=>null, "extkey_attcode"=>"change", "target_attcode"=>"date"))); - MetaModel::Init_AddAttribute(new AttributeExternalField("userinfo", array("allowed_values"=>null, "extkey_attcode"=>"change", "target_attcode"=>"userinfo"))); - MetaModel::Init_AddAttribute(new AttributeExternalField("user_id", array("allowed_values"=>null, "extkey_attcode"=>"change", "target_attcode"=>"user_id"))); - MetaModel::Init_AddAttribute(new AttributeString("objclass", array("allowed_values"=>null, "sql"=>"objclass", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeObjectKey("objkey", array("allowed_values"=>null, "class_attcode"=>"objclass", "sql"=>"objkey", "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("change", ["allowed_values" => null, "sql" => "changeid", "targetclass" => "CMDBChange", "is_null_allowed" => false, "on_target_delete" => DEL_MANUAL, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalField("date", ["allowed_values" => null, "extkey_attcode" => "change", "target_attcode" => "date"])); + MetaModel::Init_AddAttribute(new AttributeExternalField("userinfo", ["allowed_values" => null, "extkey_attcode" => "change", "target_attcode" => "userinfo"])); + MetaModel::Init_AddAttribute(new AttributeExternalField("user_id", ["allowed_values" => null, "extkey_attcode" => "change", "target_attcode" => "user_id"])); + MetaModel::Init_AddAttribute(new AttributeString("objclass", ["allowed_values" => null, "sql" => "objclass", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeObjectKey("objkey", ["allowed_values" => null, "class_attcode" => "objclass", "sql" => "objkey", "is_null_allowed" => false, "depends_on" => []])); - MetaModel::Init_SetZListItems('details', array('change', 'date', 'userinfo')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('change', 'date', 'userinfo')); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('details', ['change', 'date', 'userinfo']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['change', 'date', 'userinfo']); // Attributes to be displayed for the complete details } /** @@ -108,7 +107,7 @@ class CMDBChangeOp extends DBObject implements iCMDBChangeOp } /** - * Record the creation of an object + * Record the creation of an object * * @package iTopORM */ @@ -119,24 +118,24 @@ class CMDBChangeOpCreate extends CMDBChangeOp */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_create", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); } - + /** * @inheritDoc - */ + */ public function GetDescription() { return Dict::S('Change:ObjectCreated'); @@ -144,7 +143,7 @@ class CMDBChangeOpCreate extends CMDBChangeOp } /** - * Record the deletion of an object + * Record the deletion of an object * * @package iTopORM */ @@ -155,24 +154,24 @@ class CMDBChangeOpDelete extends CMDBChangeOp */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_delete", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); // Final class of the object (objclass must be set to the root class for efficiency purposes) - MetaModel::Init_AddAttribute(new AttributeString("fclass", array("allowed_values"=>null, "sql"=>"fclass", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeString("fclass", ["allowed_values" => null, "sql" => "fclass", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); // Last friendly name of the object - MetaModel::Init_AddAttribute(new AttributeString("fname", array("allowed_values"=>null, "sql"=>"fname", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeString("fname", ["allowed_values" => null, "sql" => "fname", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); } /** @@ -196,29 +195,29 @@ class CMDBChangeOpSetAttribute extends CMDBChangeOp */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeString("attcode", array("allowed_values"=>null, "sql"=>"attcode", "default_value"=>"", "is_null_allowed"=>false, "depends_on"=>array()))); - + MetaModel::Init_AddAttribute(new AttributeString("attcode", ["allowed_values" => null, "sql" => "attcode", "default_value" => "", "is_null_allowed" => false, "depends_on" => []])); + // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } } /** - * Record the modification of a scalar attribute + * Record the modification of a scalar attribute * * @package iTopORM */ @@ -229,25 +228,25 @@ class CMDBChangeOpSetAttributeScalar extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_scalar", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeString("oldvalue", array("allowed_values"=>null, "sql"=>"oldvalue", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("newvalue", array("allowed_values"=>null, "sql"=>"newvalue", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); - + MetaModel::Init_AddAttribute(new AttributeString("oldvalue", ["allowed_values" => null, "sql" => "oldvalue", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("newvalue", ["allowed_values" => null, "sql" => "newvalue", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode', 'oldvalue', 'newvalue')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode', 'oldvalue', 'newvalue')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode', 'oldvalue', 'newvalue']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode', 'oldvalue', 'newvalue']); // Attributes to be displayed for a list } /** @@ -262,9 +261,10 @@ class CMDBChangeOpSetAttributeScalar extends CMDBChangeOpSetAttribute $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) return ''; // Protects against renamed attributes... + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { + return ''; + } // Protects against renamed attributes... $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); @@ -287,57 +287,58 @@ class CMDBChangeOpSetAttributeTagSet extends CMDBChangeOpSetAttribute * @inheritDoc */ public static function Init() - { - $aParams = array - ( - "category" => "core/cmdb, grant_by_profile", - "key_type" => "", - "name_attcode" => "change", - "state_attcode" => "", - "reconc_keys" => array(), - "db_table" => "priv_changeop_setatt_tagset", - "db_key_field" => "id", - "db_finalclass_field" => "", - ); - MetaModel::Init_Params($aParams); - MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeText("oldvalue", array("allowed_values"=>null, "sql"=>"oldvalue", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeText("newvalue", array("allowed_values"=>null, "sql"=>"newvalue", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); + { + $aParams = + [ + "category" => "core/cmdb, grant_by_profile", + "key_type" => "", + "name_attcode" => "change", + "state_attcode" => "", + "reconc_keys" => [], + "db_table" => "priv_changeop_setatt_tagset", + "db_key_field" => "id", + "db_finalclass_field" => "", + ]; + MetaModel::Init_Params($aParams); + MetaModel::Init_InheritAttributes(); + MetaModel::Init_AddAttribute(new AttributeText("oldvalue", ["allowed_values" => null, "sql" => "oldvalue", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeText("newvalue", ["allowed_values" => null, "sql" => "newvalue", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); - // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode', 'oldvalue', 'newvalue')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode', 'oldvalue', 'newvalue')); // Attributes to be displayed for a list - } + // Display lists + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode', 'oldvalue', 'newvalue']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode', 'oldvalue', 'newvalue']); // Attributes to be displayed for a list + } /** * @inheritDoc */ public function GetDescription() - { - $sResult = ''; - $sTargetObjectClass = $this->Get('objclass'); - $oTargetObjectKey = $this->Get('objkey'); - $sAttCode = $this->Get('attcode'); - $oTargetSearch = new DBObjectSearch($sTargetObjectClass); - $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); + { + $sResult = ''; + $sTargetObjectClass = $this->Get('objclass'); + $oTargetObjectKey = $this->Get('objkey'); + $sAttCode = $this->Get('attcode'); + $oTargetSearch = new DBObjectSearch($sTargetObjectClass); + $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); - $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($sTargetObjectClass, $sAttCode, UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) return ''; // Protects against renamed attributes... + $oMonoObjectSet = new DBObjectSet($oTargetSearch); + if (UserRights::IsActionAllowedOnAttribute($sTargetObjectClass, $sAttCode, UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { + return ''; + } // Protects against renamed attributes... - $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); - $sAttName = $oAttDef->GetLabel(); - $sNewValue = $this->Get('newvalue'); - $sOldValue = $this->Get('oldvalue'); - $sResult = $oAttDef->DescribeChangeAsHTML($sOldValue, $sNewValue); - } - return $sResult; - } + $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); + $sAttName = $oAttDef->GetLabel(); + $sNewValue = $this->Get('newvalue'); + $sOldValue = $this->Get('oldvalue'); + $sResult = $oAttDef->DescribeChangeAsHTML($sOldValue, $sNewValue); + } + return $sResult; + } } /** - * Record the modification of an URL + * Record the modification of an URL * * @package iTopORM */ @@ -348,17 +349,17 @@ class CMDBChangeOpSetAttributeURL extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_url", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); @@ -371,12 +372,12 @@ class CMDBChangeOpSetAttributeURL extends CMDBChangeOpSetAttribute // 2. from the iTop config // 3. config parameter default value // see \AttributeURL::GetValidationPattern - MetaModel::Init_AddAttribute(new AttributeURL("oldvalue", array("allowed_values" => null, "sql" => "oldvalue", "target" => '_blank', "default_value" => null, "is_null_allowed" => true, "depends_on" => array(), "validation_pattern" => '.*'))); - MetaModel::Init_AddAttribute(new AttributeURL("newvalue", array("allowed_values" => null, "sql" => "newvalue", "target" => '_blank', "default_value" => null, "is_null_allowed" => true, "depends_on" => array(), "validation_pattern" => '.*'))); + MetaModel::Init_AddAttribute(new AttributeURL("oldvalue", ["allowed_values" => null, "sql" => "oldvalue", "target" => '_blank', "default_value" => null, "is_null_allowed" => true, "depends_on" => [], "validation_pattern" => '.*'])); + MetaModel::Init_AddAttribute(new AttributeURL("newvalue", ["allowed_values" => null, "sql" => "newvalue", "target" => '_blank', "default_value" => null, "is_null_allowed" => true, "depends_on" => [], "validation_pattern" => '.*'])); // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode', 'oldvalue', 'newvalue')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode', 'oldvalue', 'newvalue')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode', 'oldvalue', 'newvalue']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode', 'oldvalue', 'newvalue']); // Attributes to be displayed for a list } /** @@ -391,9 +392,10 @@ class CMDBChangeOpSetAttributeURL extends CMDBChangeOpSetAttribute $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) return ''; // Protects against renamed attributes... + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { + return ''; + } // Protects against renamed attributes... $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); @@ -417,24 +419,24 @@ class CMDBChangeOpSetAttributeBlob extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_data", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeBlob("prevdata", array("depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeBlob("prevdata", ["depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } /** @@ -444,7 +446,7 @@ class CMDBChangeOpSetAttributeBlob extends CMDBChangeOpSetAttribute { // Temporary, until we change the options of GetDescription() -needs a more global revision $bIsHtml = true; - + $sResult = ''; $oTargetObjectClass = $this->Get('objclass'); $oTargetObjectKey = $this->Get('objkey'); @@ -452,8 +454,7 @@ class CMDBChangeOpSetAttributeBlob extends CMDBChangeOpSetAttribute $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); @@ -496,24 +497,24 @@ class CMDBChangeOpSetAttributeOneWayPassword extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_pwd", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeOneWayPassword("prev_pwd", array("sql" => 'data', "default_value" => '', "is_null_allowed"=> true, "allowed_values" => null, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeOneWayPassword("prev_pwd", ["sql" => 'data', "default_value" => '', "is_null_allowed" => true, "allowed_values" => null, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } /** @@ -523,7 +524,7 @@ class CMDBChangeOpSetAttributeOneWayPassword extends CMDBChangeOpSetAttribute { // Temporary, until we change the options of GetDescription() -needs a more global revision $bIsHtml = true; - + $sResult = ''; $oTargetObjectClass = $this->Get('objclass'); $oTargetObjectKey = $this->Get('objkey'); @@ -531,15 +532,11 @@ class CMDBChangeOpSetAttributeOneWayPassword extends CMDBChangeOpSetAttribute $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) - { + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); - } - else - { + } else { // The attribute was renamed or removed from the object ? $sAttName = $this->Get('attcode'); } @@ -559,24 +556,24 @@ class CMDBChangeOpSetAttributeEncrypted extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_encrypted", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeEncryptedString("prevstring", array("sql" => 'data', "default_value" => '', "is_null_allowed"=> true, "allowed_values" => null, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeEncryptedString("prevstring", ["sql" => 'data', "default_value" => '', "is_null_allowed" => true, "allowed_values" => null, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } /** @@ -586,7 +583,7 @@ class CMDBChangeOpSetAttributeEncrypted extends CMDBChangeOpSetAttribute { // Temporary, until we change the options of GetDescription() -needs a more global revision $bIsHtml = true; - + $sResult = ''; $oTargetObjectClass = $this->Get('objclass'); $oTargetObjectKey = $this->Get('objkey'); @@ -594,15 +591,11 @@ class CMDBChangeOpSetAttributeEncrypted extends CMDBChangeOpSetAttribute $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) - { + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); - } - else - { + } else { // The attribute was renamed or removed from the object ? $sAttName = $this->Get('attcode'); } @@ -625,24 +618,24 @@ class CMDBChangeOpSetAttributeText extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_text", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeText("prevdata", array("allowed_values"=>null, "sql"=>"prevdata", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeText("prevdata", ["allowed_values" => null, "sql" => "prevdata", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } /** @@ -652,7 +645,7 @@ class CMDBChangeOpSetAttributeText extends CMDBChangeOpSetAttribute { // Temporary, until we change the options of GetDescription() -needs a more global revision $bIsHtml = true; - + $sResult = ''; $oTargetObjectClass = $this->Get('objclass'); $oTargetObjectKey = $this->Get('objkey'); @@ -660,15 +653,11 @@ class CMDBChangeOpSetAttributeText extends CMDBChangeOpSetAttribute $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) - { + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); - } - else - { + } else { // The attribute was renamed or removed from the object ? $sAttName = $this->Get('attcode'); } @@ -693,24 +682,24 @@ class CMDBChangeOpSetAttributeLongText extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_longtext", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeLongText("prevdata", array("allowed_values"=>null, "sql"=>"prevdata", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLongText("prevdata", ["allowed_values" => null, "sql" => "prevdata", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } /** @@ -725,15 +714,11 @@ class CMDBChangeOpSetAttributeLongText extends CMDBChangeOpSetAttribute $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) - { + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); - } - else - { + } else { // The attribute was renamed or removed from the object ? $sAttName = $this->Get('attcode'); } @@ -758,23 +743,23 @@ class CMDBChangeOpSetAttributeHTML extends CMDBChangeOpSetAttributeLongText */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_html", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - + // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } /** @@ -787,10 +772,9 @@ class CMDBChangeOpSetAttributeHTML extends CMDBChangeOpSetAttributeLongText $oTargetObjectKey = $this->Get('objkey'); $oTargetSearch = new DBObjectSearch($oTargetObjectClass); $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); - + $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); @@ -804,7 +788,7 @@ class CMDBChangeOpSetAttributeHTML extends CMDBChangeOpSetAttributeLongText $sResult = Dict::Format('Change:AttName_Changed_PreviousValue_OldValue', $sAttName, $sTextView); } return $sResult; - } + } } /** @@ -822,24 +806,24 @@ class CMDBChangeOpSetAttributeCaseLog extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_log", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeInteger("lastentry", array("allowed_values"=>null, "sql"=>"lastentry", "default_value"=>0, "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeInteger("lastentry", ["allowed_values" => null, "sql" => "lastentry", "default_value" => 0, "is_null_allowed" => true, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } /** @@ -849,7 +833,7 @@ class CMDBChangeOpSetAttributeCaseLog extends CMDBChangeOpSetAttribute { // Temporary, until we change the options of GetDescription() -needs a more global revision $bIsHtml = true; - + $sResult = ''; $oTargetObjectClass = $this->Get('objclass'); $oTargetObjectKey = $this->Get('objkey'); @@ -857,15 +841,11 @@ class CMDBChangeOpSetAttributeCaseLog extends CMDBChangeOpSetAttribute $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) - { + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); - } - else - { + } else { // The attribute was renamed or removed from the object ? $sAttName = $this->Get('attcode'); } @@ -885,12 +865,12 @@ class CMDBChangeOpSetAttributeCaseLog extends CMDBChangeOpSetAttribute */ protected function ToHtml($sRawText) { - return str_replace(array("\r\n", "\n", "\r"), "
    ", utils::EscapeHtml($sRawText)); + return str_replace(["\r\n", "\n", "\r"], "
    ", utils::EscapeHtml($sRawText)); } } /** - * Record an action made by a plug-in + * Record an action made by a plug-in * * @package iTopORM */ @@ -901,19 +881,19 @@ class CMDBChangeOpPlugin extends CMDBChangeOp */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_plugin", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); - MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>'', "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => '', "is_null_allowed" => false, "depends_on" => []])); /* May be used later when implementing an extension mechanism that will allow the plug-ins to store some extra information and still degrades gracefully when the plug-in is desinstalled MetaModel::Init_AddAttribute(new AttributeString("extension_class", array("allowed_values"=>null, "sql"=>"extension_class", "default_value"=>'', "is_null_allowed"=>false, "depends_on"=>array()))); MetaModel::Init_AddAttribute(new AttributeInteger("extension_id", array("allowed_values"=>null, "sql"=>"extension_id", "default_value"=>0, "is_null_allowed"=>false, "depends_on"=>array()))); @@ -931,7 +911,7 @@ class CMDBChangeOpPlugin extends CMDBChangeOp } /** - * Record added/removed objects from within a link set + * Record added/removed objects from within a link set * * @package iTopORM */ @@ -942,29 +922,29 @@ abstract class CMDBChangeOpSetAttributeLinks extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_links", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); // Note: item class/id points to the link class itself in case of a direct link set (e.g. Server::interface_list => Interface) // item class/id points to the remote class in case of a indirect link set (e.g. Server::contract_list => Contract) - MetaModel::Init_AddAttribute(new AttributeString("item_class", array("allowed_values"=>null, "sql"=>"item_class", "default_value"=>'', "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeInteger("item_id", array("allowed_values"=>null, "sql"=>"item_id", "default_value"=>0, "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeString("item_class", ["allowed_values" => null, "sql" => "item_class", "default_value" => '', "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeInteger("item_id", ["allowed_values" => null, "sql" => "item_id", "default_value" => 0, "is_null_allowed" => false, "depends_on" => []])); } } /** - * Record added/removed objects from within a link set + * Record added/removed objects from within a link set * * @package iTopORM */ @@ -975,21 +955,21 @@ class CMDBChangeOpSetAttributeLinksAddRemove extends CMDBChangeOpSetAttributeLin */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_links_addremove", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeEnum("type", array("allowed_values"=>new ValueSetEnum('added,removed'), "sql"=>"type", "default_value"=>"added", "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeEnum("type", ["allowed_values" => new ValueSetEnum('added,removed'), "sql" => "type", "default_value" => "added", "is_null_allowed" => false, "depends_on" => []])); } /** @@ -1004,9 +984,10 @@ class CMDBChangeOpSetAttributeLinksAddRemove extends CMDBChangeOpSetAttributeLin $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) return ''; // Protects against renamed attributes... + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { + return ''; + } // Protects against renamed attributes... $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); @@ -1014,15 +995,14 @@ class CMDBChangeOpSetAttributeLinksAddRemove extends CMDBChangeOpSetAttributeLin $sItemDesc = MetaModel::GetHyperLink($this->Get('item_class'), $this->Get('item_id')); $sResult = $sAttName.' - '; - switch ($this->Get('type')) - { - case 'added': - $sResult .= Dict::Format('Change:LinkSet:Added', $sItemDesc); - break; + switch ($this->Get('type')) { + case 'added': + $sResult .= Dict::Format('Change:LinkSet:Added', $sItemDesc); + break; - case 'removed': - $sResult .= Dict::Format('Change:LinkSet:Removed', $sItemDesc); - break; + case 'removed': + $sResult .= Dict::Format('Change:LinkSet:Removed', $sItemDesc); + break; } } return $sResult; @@ -1031,7 +1011,7 @@ class CMDBChangeOpSetAttributeLinksAddRemove extends CMDBChangeOpSetAttributeLin /** * Record attribute changes from within a link set - * A single record redirects to the modifications made within the same change + * A single record redirects to the modifications made within the same change * * @package iTopORM */ @@ -1042,21 +1022,21 @@ class CMDBChangeOpSetAttributeLinksTune extends CMDBChangeOpSetAttributeLinks */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_links_tune", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeInteger("link_id", array("allowed_values"=>null, "sql"=>"link_id", "default_value"=>0, "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeInteger("link_id", ["allowed_values" => null, "sql" => "link_id", "default_value" => 0, "is_null_allowed" => false, "depends_on" => []])); } /** @@ -1071,9 +1051,10 @@ class CMDBChangeOpSetAttributeLinksTune extends CMDBChangeOpSetAttributeLinks $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { - if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) return ''; // Protects against renamed attributes... + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { + if (!MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { + return ''; + } // Protects against renamed attributes... $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); @@ -1086,27 +1067,22 @@ class CMDBChangeOpSetAttributeLinksTune extends CMDBChangeOpSetAttributeLinks $oSearch = new DBObjectSearch('CMDBChangeOpSetAttribute'); $oSearch->AddCondition('change', $this->Get('change'), '='); $oSearch->AddCondition('objkey', $this->Get('link_id'), '='); - if (count($aLinkClasses) == 1) - { + if (count($aLinkClasses) == 1) { // Faster than the whole building of the expression below for just one value ?? $oSearch->AddCondition('objclass', $sLinkClass, '='); - } - else - { - $oField = new FieldExpression('objclass', $oSearch->GetClassAlias()); + } else { + $oField = new FieldExpression('objclass', $oSearch->GetClassAlias()); $sListExpr = '('.implode(', ', CMDBSource::Quote($aLinkClasses)).')'; $sOQLCondition = $oField->RenderExpression()." IN $sListExpr"; $oNewCondition = Expression::FromOQL($sOQLCondition); $oSearch->AddConditionExpression($oNewCondition); } $oSet = new DBObjectSet($oSearch); - $aChanges = array(); - while ($oChangeOp = $oSet->Fetch()) - { + $aChanges = []; + while ($oChangeOp = $oSet->Fetch()) { $aChanges[] = $oChangeOp->GetDescription(); } - if (count($aChanges) == 0) - { + if (count($aChanges) == 0) { return ''; } @@ -1132,24 +1108,24 @@ class CMDBChangeOpSetAttributeCustomFields extends CMDBChangeOpSetAttribute */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core/cmdb, grant_by_profile", "key_type" => "", "name_attcode" => "change", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_changeop_setatt_custfields", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeLongText("prevdata", array("allowed_values"=>null, "sql"=>"prevdata", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeLongText("prevdata", ["allowed_values" => null, "sql" => "prevdata", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('date', 'userinfo', 'attcode')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['date', 'userinfo', 'attcode']); // Attributes to be displayed for a list } /** @@ -1158,26 +1134,22 @@ class CMDBChangeOpSetAttributeCustomFields extends CMDBChangeOpSetAttribute public function GetDescription() { $sResult = ''; - if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) - { + if (MetaModel::IsValidAttCode($this->Get('objclass'), $this->Get('attcode'))) { $oTargetObjectClass = $this->Get('objclass'); $oTargetObjectKey = $this->Get('objkey'); $oTargetSearch = new DBObjectSearch($oTargetObjectClass); $oTargetSearch->AddCondition('id', $oTargetObjectKey, '='); $oMonoObjectSet = new DBObjectSet($oTargetSearch); - if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) - { + if (UserRights::IsActionAllowedOnAttribute($this->Get('objclass'), $this->Get('attcode'), UR_ACTION_READ, $oMonoObjectSet) == UR_ALLOWED_YES) { $aValues = json_decode($this->Get('prevdata'), true); $oAttDef = MetaModel::GetAttributeDef($this->Get('objclass'), $this->Get('attcode')); $sAttName = $oAttDef->GetLabel(); - try - { + try { $oHandler = $oAttDef->GetHandler($aValues); $sValueDesc = $oHandler->GetAsHTML($aValues); - } - catch (Exception $e) { + } catch (Exception $e) { $sValueDesc = 'Custom field error: '.utils::EscapeHtml($e->getMessage()); } $sTextView = '
    '.$sValueDesc.'
    '; diff --git a/core/computing.inc.php b/core/computing.inc.php index f183e737c..88283492c 100644 --- a/core/computing.inc.php +++ b/core/computing.inc.php @@ -1,4 +1,5 @@ */ - /** * Any extension to compute things like a stop watch deadline or working hours * @@ -29,7 +29,7 @@ /** * Metric computing for stop watches. * Can be used for AttributeStopWatch goal (iTop XML node xpath: /itop_design/classes/class/fields/field/goal) - */ + */ interface iMetricComputer { public static function GetDescription(); @@ -44,7 +44,7 @@ interface iMetricComputer /** * Working time computing for stop watches - */ + */ interface iWorkingTimeComputer { public static function GetDescription(); @@ -58,7 +58,7 @@ interface iWorkingTimeComputer * considering only the valid (open) hours for a specified object */ public function GetDeadline($oObject, $iDuration, DateTime $oStartDate); - + /** * @param DBObject $oObject The object for which to compute the duration * @param DateTime $oStartDate The starting point for the computation (default = now) @@ -87,7 +87,7 @@ class DefaultMetricComputer implements iMetricComputer /** * Default implementation of working time computing - */ + */ class DefaultWorkingTimeComputer implements iWorkingTimeComputer { public static function GetDescription() @@ -100,8 +100,7 @@ class DefaultWorkingTimeComputer implements iWorkingTimeComputer */ public function GetDeadline($oObject, $iDuration, DateTime $oStartDate) { - if (class_exists('WorkingTimeRecorder')) - { + if (class_exists('WorkingTimeRecorder')) { WorkingTimeRecorder::Trace(WorkingTimeRecorder::TRACE_DEBUG, __class__.'::'.__function__); } //echo "GetDeadline - default: ".$oStartDate->format('Y-m-d H:i:s')." + $iDuration
    \n"; @@ -109,26 +108,23 @@ class DefaultWorkingTimeComputer implements iWorkingTimeComputer // the specified duration to the given date/time $oResult = clone $oStartDate; $oResult->modify($iDuration.' seconds'); - if (class_exists('WorkingTimeRecorder')) - { + if (class_exists('WorkingTimeRecorder')) { WorkingTimeRecorder::SetValues($oStartDate->format('U'), $oResult->format('U'), $iDuration, WorkingTimeRecorder::COMPUTED_END); } return $oResult; } - + /** * @inheritDoc */ public function GetOpenDuration($oObject, DateTime $oStartDate, DateTime $oEndDate) { - if (class_exists('WorkingTimeRecorder')) - { + if (class_exists('WorkingTimeRecorder')) { WorkingTimeRecorder::Trace(WorkingTimeRecorder::TRACE_DEBUG, __class__.'::'.__function__); } //echo "GetOpenDuration - default: ".$oStartDate->format('Y-m-d H:i:s')." to ".$oEndDate->format('Y-m-d H:i:s')."
    \n"; $iDuration = abs($oEndDate->format('U') - $oStartDate->format('U')); - if (class_exists('WorkingTimeRecorder')) - { + if (class_exists('WorkingTimeRecorder')) { WorkingTimeRecorder::SetValues($oStartDate->format('U'), $oEndDate->format('U'), $iDuration, WorkingTimeRecorder::COMPUTED_DURATION); } return $iDuration; diff --git a/core/contexttag.class.inc.php b/core/contexttag.class.inc.php index 760df778c..698a21d00 100644 --- a/core/contexttag.class.inc.php +++ b/core/contexttag.class.inc.php @@ -1,4 +1,5 @@ - /** * Simple helper class for keeping track of the context inside the call stack * @@ -63,7 +63,7 @@ class ContextTag * @since 3.1.0 N°6047 */ public const TAG_IMPORT = 'Import'; - /** + /** * @since 3.1.0 N°6047 */ public const TAG_EXPORT = 'Export'; @@ -74,7 +74,7 @@ class ContextTag */ public const TAG_OBJECT_SEARCH = 'ObjectSearch'; - protected static $aStack = array(); + protected static $aStack = []; /** * Store a context tag on the stack @@ -124,33 +124,29 @@ class ContextTag */ public static function GetTags() { - $aRawTags = array( + $aRawTags = [ ContextTag::TAG_REST, ContextTag::TAG_SYNCHRO, ContextTag::TAG_SETUP, ContextTag::TAG_CONSOLE, ContextTag::TAG_CRON, - ContextTag::TAG_PORTAL); + ContextTag::TAG_PORTAL]; - $aTags = array(); + $aTags = []; - foreach ($aRawTags as $sRawTag) - { + foreach ($aRawTags as $sRawTag) { $aTags[$sRawTag] = Dict::S("Core:Context={$sRawTag}"); } $aPortalsConf = PortalDispatcherData::GetData(); - $aDispatchers = array(); - foreach ($aPortalsConf as $sPortalId => $aConf) - { + $aDispatchers = []; + foreach ($aPortalsConf as $sPortalId => $aConf) { $sHandlerClass = $aConf['handler']; $aDispatchers[$sPortalId] = new $sHandlerClass($sPortalId); } - foreach ($aDispatchers as $sPortalId => $oDispatcher) - { - if ($sPortalId != 'backoffice') - { + foreach ($aDispatchers as $sPortalId => $oDispatcher) { + if ($sPortalId != 'backoffice') { $aTags['Portal:'.$sPortalId] = $oDispatcher->GetLabel(); } } diff --git a/core/counter.class.inc.php b/core/counter.class.inc.php index 69ec0a2eb..ad53e03ca 100644 --- a/core/counter.class.inc.php +++ b/core/counter.class.inc.php @@ -1,4 +1,5 @@ Lock(); $bIsInsideTransaction = CMDBSource::IsInsideTransaction(); - if ($bIsInsideTransaction) - { + if ($bIsInsideTransaction) { // # Transaction isolation hack: // When inside a transaction, we need to open a new connection for the counter. // So it is visible immediately to the connections outside of the transaction. @@ -59,75 +57,61 @@ final class ItopCounter // we did not wanted this! As opening a short connection is less prone to starving than a long running one. // Plus it would trigger way more deadlocks! $hDBLink = self::InitMySQLSession(); - } - else - { + } else { $hDBLink = CMDBSource::GetMysqli(); } - try - { - $oFilter = DBObjectSearch::FromOQL('SELECT KeyValueStore WHERE key_name=:key_name AND namespace=:namespace', array( + try { + $oFilter = DBObjectSearch::FromOQL('SELECT KeyValueStore WHERE key_name=:key_name AND namespace=:namespace', [ 'key_name' => $sCounterName, 'namespace' => $sSelfClassName, - )); + ]); $oAttDef = MetaModel::GetAttributeDef(KeyValueStore::class, 'value'); - $aAttToLoad = array(KeyValueStore::class => array('value' => $oAttDef)); - $sSql = $oFilter->MakeSelectQuery(array(), array(), $aAttToLoad); + $aAttToLoad = [KeyValueStore::class => ['value' => $oAttDef]]; + $sSql = $oFilter->MakeSelectQuery([], [], $aAttToLoad); $hResult = mysqli_query($hDBLink, $sSql); $aCounter = mysqli_fetch_array($hResult, MYSQLI_NUM); mysqli_free_result($hResult); //Rebuild the filter, as the MakeSelectQuery polluted the orignal and it cannot be reused - $oFilter = DBObjectSearch::FromOQL('SELECT KeyValueStore WHERE key_name=:key_name AND namespace=:namespace', array( + $oFilter = DBObjectSearch::FromOQL('SELECT KeyValueStore WHERE key_name=:key_name AND namespace=:namespace', [ 'key_name' => $sCounterName, 'namespace' => $sSelfClassName, - )); + ]); - if (is_null($aCounter)) - { - if (null != $oNewObjectValueProvider) - { + if (is_null($aCounter)) { + if (null != $oNewObjectValueProvider) { $iComputedValue = $oNewObjectValueProvider(); - } - else - { + } else { $iComputedValue = 0; } $iCurrentValue = $iComputedValue + 1; - $aQueryParams = array( + $aQueryParams = [ 'key_name' => $sCounterName, 'value' => "$iCurrentValue", 'namespace' => $sSelfClassName, - ); + ]; $sSql = $oFilter->MakeInsertQuery($aQueryParams); - } - else - { + } else { $iCurrentValue = (int) $aCounter[1]; $iCurrentValue++; - $aQueryParams = array( + $aQueryParams = [ 'value' => "$iCurrentValue", - ); + ]; $sSql = $oFilter->MakeUpdateQuery($aQueryParams); } $hResult = mysqli_query($hDBLink, $sSql); - } - catch(Exception $e) - { + } catch (Exception $e) { IssueLog::Error($e->getMessage()); throw $e; - } - finally - { - if ($bIsInsideTransaction) - { + } finally { + if ($bIsInsideTransaction) { mysqli_close($hDBLink); } $oiTopMutex->Unlock(); @@ -157,8 +141,7 @@ final class ItopCounter { $sRootClass = MetaModel::GetRootClass($sLeafClass); - $oNewObjectCallback = function() use ($sRootClass) - { + $oNewObjectCallback = function () use ($sRootClass) { $sRootTable = MetaModel::DBGetTable($sRootClass); $sIdField = MetaModel::DBGetKey($sRootClass); @@ -186,17 +169,14 @@ final class ItopCounter $hDBLink = CMDBSource::GetMysqliInstance($sDBHost, $sDBUser, $sDBPwd, $sDBName, $bDBTlsEnabled, $sDBTlsCA, false); - if (!$hDBLink) - { - throw new MySQLException('Could not connect to the DB server '.mysqli_connect_error().' (mysql errno: '.mysqli_connect_errno(), array('host' => $sDBHost, 'user' => $sDBUser)); - } + if (!$hDBLink) { + throw new MySQLException('Could not connect to the DB server '.mysqli_connect_error().' (mysql errno: '.mysqli_connect_errno(), ['host' => $sDBHost, 'user' => $sDBUser]); + } return $hDBLink; } } - - /** * Persistent classes for a CMDB * @@ -208,44 +188,43 @@ class KeyValueStore extends DBObject { public static function Init() { - $aParams = array( + $aParams = [ 'category' => '', 'key_type' => 'autoincrement', - 'name_attcode' => array('key_name'), + 'name_attcode' => ['key_name'], 'state_attcode' => '', - 'reconc_keys' => array(''), + 'reconc_keys' => [''], 'db_table' => 'key_value_store', 'db_key_field' => 'id', 'db_finalclass_field' => '', - 'indexes' => array ( - array ( + 'indexes' => [ + [ 0 => 'key_name', 1 => 'namespace', - ), - ),); + ], + ],]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeString("namespace", array("allowed_values"=>null, "sql"=>'namespace', "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array(), "always_load_in_tables"=>false))); - MetaModel::Init_AddAttribute(new AttributeString("key_name", array("allowed_values"=>null, "sql"=>'key_name', "default_value"=>'', "is_null_allowed"=>false, "depends_on"=>array(), "always_load_in_tables"=>false))); - MetaModel::Init_AddAttribute(new AttributeString("value", array("allowed_values"=>null, "sql"=>'value', "default_value"=>'0', "is_null_allowed"=>false, "depends_on"=>array(), "always_load_in_tables"=>false))); + MetaModel::Init_AddAttribute(new AttributeString("namespace", ["allowed_values" => null, "sql" => 'namespace', "default_value" => null, "is_null_allowed" => true, "depends_on" => [], "always_load_in_tables" => false])); + MetaModel::Init_AddAttribute(new AttributeString("key_name", ["allowed_values" => null, "sql" => 'key_name', "default_value" => '', "is_null_allowed" => false, "depends_on" => [], "always_load_in_tables" => false])); + MetaModel::Init_AddAttribute(new AttributeString("value", ["allowed_values" => null, "sql" => 'value', "default_value" => '0', "is_null_allowed" => false, "depends_on" => [], "always_load_in_tables" => false])); - MetaModel::Init_SetZListItems('details', array ( + MetaModel::Init_SetZListItems('details', [ 0 => 'key_name', 1 => 'value', 2 => 'namespace', - )); - MetaModel::Init_SetZListItems('standard_search', array ( + ]); + MetaModel::Init_SetZListItems('standard_search', [ 0 => 'key_name', 1 => 'value', 2 => 'namespace', - )); - MetaModel::Init_SetZListItems('list', array ( + ]); + MetaModel::Init_SetZListItems('list', [ 0 => 'key_name', 1 => 'value', 2 => 'namespace', - )); + ]); ; } - -} \ No newline at end of file +} diff --git a/core/csvbulkexport.class.inc.php b/core/csvbulkexport.class.inc.php index 62d4e990b..bc0d957ac 100644 --- a/core/csvbulkexport.class.inc.php +++ b/core/csvbulkexport.class.inc.php @@ -1,4 +1,5 @@ aStatusInfo['separator'] = utils::ReadParam('separator', ',', true, 'raw_data'); - if (strtolower($this->aStatusInfo['separator']) == 'tab') - { + if (strtolower($this->aStatusInfo['separator']) == 'tab') { $this->aStatusInfo['separator'] = "\t"; - } - else if (strtolower($this->aStatusInfo['separator']) == 'other') - { + } elseif (strtolower($this->aStatusInfo['separator']) == 'other') { $this->aStatusInfo['separator'] = utils::ReadParam('other-separator', ',', true, 'raw_data'); } - + $this->aStatusInfo['text_qualifier'] = utils::ReadParam('text-qualifier', '"', true, 'raw_data'); - if (strtolower($this->aStatusInfo['text_qualifier']) == 'other') - { + if (strtolower($this->aStatusInfo['text_qualifier']) == 'other') { $this->aStatusInfo['text_qualifier'] = utils::ReadParam('other-text-qualifier', '"', true, 'raw_data'); } $this->aStatusInfo['charset'] = strtoupper(utils::ReadParam('charset', 'UTF-8', true, 'raw_data')); $this->aStatusInfo['formatted_text'] = (bool)utils::ReadParam('formatted_text', 0, true); - + $sDateFormatRadio = utils::ReadParam('csv_date_format_radio', ''); - switch($sDateFormatRadio) - { + switch ($sDateFormatRadio) { case 'default': - // Export from the UI => format = same as is the UI - $this->aStatusInfo['date_format'] = (string)AttributeDateTime::GetFormat(); - break; - + // Export from the UI => format = same as is the UI + $this->aStatusInfo['date_format'] = (string)AttributeDateTime::GetFormat(); + break; + case 'custom': - // Custom format specified from the UI - $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetFormat(), true, 'raw_data'); - break; - + // Custom format specified from the UI + $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetFormat(), true, 'raw_data'); + break; + default: - // Export from the command line (or scripted) => default format is SQL, as in previous versions of iTop, unless specified otherwise - $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetSQLFormat(), true, 'raw_data'); + // Export from the command line (or scripted) => default format is SQL, as in previous versions of iTop, unless specified otherwise + $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetSQLFormat(), true, 'raw_data'); } } - protected function SuggestField($sClass, $sAttCode) { - switch($sAttCode) - { + switch ($sAttCode) { case 'id': // replace 'id' by 'friendlyname' $sAttCode = 'friendlyname'; break; - + default: $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); - if ($oAttDef instanceof AttributeExternalKey) - { + if ($oAttDef instanceof AttributeExternalKey) { $sAttCode .= '_friendlyname'; } } @@ -99,7 +92,7 @@ class CSVBulkExport extends TabularBulkExport public function EnumFormParts() { - return array_merge(parent::EnumFormParts(), array('csv_options' => array('separator', 'charset', 'text-qualifier', 'no_localize', 'formatted_text'), 'interactive_fields_csv' => array('interactive_fields_csv'))); + return array_merge(parent::EnumFormParts(), ['csv_options' => ['separator', 'charset', 'text-qualifier', 'no_localize', 'formatted_text'], 'interactive_fields_csv' => ['interactive_fields_csv']]); } /** @@ -128,11 +121,11 @@ class CSVBulkExport extends TabularBulkExport $sRawSeparator = utils::ReadParam('separator', ',', true, 'raw_data'); $sCustomDateTimeFormat = utils::ReadParam('', ',', true, 'raw_data'); - $aSep = array( + $aSep = [ ';' => Dict::S('UI:CSVImport:SeparatorSemicolon+'), ',' => Dict::S('UI:CSVImport:SeparatorComma+'), 'tab' => Dict::S('UI:CSVImport:SeparatorTab+'), - ); + ]; $sOtherSeparator = ''; if (!array_key_exists($sRawSeparator, $aSep)) { $sOtherSeparator = $sRawSeparator; @@ -155,10 +148,10 @@ class CSVBulkExport extends TabularBulkExport $oMulticolumn->AddColumn(ColumnUIBlockFactory::MakeForBlock($oFieldSetTextQualifier)); $sRawQualifier = utils::ReadParam('text-qualifier', '"', true, 'raw_data'); - $aQualifiers = array( + $aQualifiers = [ '"' => Dict::S('UI:CSVImport:QualifierDoubleQuote+'), '\'' => Dict::S('UI:CSVImport:QualifierSimpleQuote+'), - ); + ]; $sOtherQualifier = ''; if (!array_key_exists($sRawQualifier, $aQualifiers)) { $sOtherQualifier = $sRawQualifier; @@ -230,7 +223,6 @@ class CSVBulkExport extends TabularBulkExport $oRadioCustom->GetInput()->AddCSSClass('ibo-input-checkbox'); $oFieldSetDate->AddSubBlock($oRadioCustom); - $oP->add_ready_script( <<'.utils::EscapeHtml($oAttDef->GetEditValue($oObj->Get($sAttCode), $oObj)).'
    '; @@ -266,14 +256,13 @@ EOF protected function GetValue($oObj, $sAttCode) { - switch($sAttCode) - { + switch ($sAttCode) { case 'id': $sRet = $oObj->GetKey(); break; - + default: - $sRet = trim($oObj->GetAsCSV($sAttCode), '"'); + $sRet = trim($oObj->GetAsCSV($sAttCode), '"'); } return $sRet; } @@ -285,20 +274,17 @@ EOF $this->aStatusInfo['position'] = 0; $this->aStatusInfo['total'] = $oSet->Count(); - $aData = array(); - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + $aData = []; + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $aData[] = $aFieldSpec['sColLabel']; } - $sFrom = array("\r\n", $this->aStatusInfo['text_qualifier']); - $sTo = array("\n", $this->aStatusInfo['text_qualifier'].$this->aStatusInfo['text_qualifier']); - foreach($aData as $idx => $sData) - { + $sFrom = ["\r\n", $this->aStatusInfo['text_qualifier']]; + $sTo = ["\n", $this->aStatusInfo['text_qualifier'].$this->aStatusInfo['text_qualifier']]; + foreach ($aData as $idx => $sData) { // Escape and encode (if needed) the headers $sEscaped = str_replace($sFrom, $sTo, (string)$sData); $aData[$idx] = $this->aStatusInfo['text_qualifier'].$sEscaped.$this->aStatusInfo['text_qualifier']; - if ($this->aStatusInfo['charset'] != 'UTF-8') - { + if ($this->aStatusInfo['charset'] != 'UTF-8') { // Note: due to bugs in the glibc library it's safer to call iconv on the smallest possible string // and thus to convert field by field and not the whole row or file at once (see ticket N°991) $aData[$idx] = @iconv('UTF-8', $this->aStatusInfo['charset'].'//IGNORE//TRANSLIT', $aData[$idx]); @@ -325,45 +311,37 @@ EOF $sExportDateTimeFormat = $this->aStatusInfo['date_format']; $oPrevDateTimeFormat = AttributeDateTime::GetFormat(); $oPrevDateFormat = AttributeDate::GetFormat(); - if ($sExportDateTimeFormat !== (string)$oPrevDateTimeFormat) - { + if ($sExportDateTimeFormat !== (string)$oPrevDateTimeFormat) { // Change date & time formats $oDateTimeFormat = new DateTimeFormat($sExportDateTimeFormat); $oDateFormat = new DateTimeFormat($oDateTimeFormat->ToDateFormat()); AttributeDateTime::SetFormat($oDateTimeFormat); AttributeDate::SetFormat($oDateFormat); } - while($aRow = $oSet->FetchAssoc()) - { + while ($aRow = $oSet->FetchAssoc()) { set_time_limit(intval($iLoopTimeLimit)); - $aData = array(); - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + $aData = []; + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $sAlias = $aFieldSpec['sAlias']; $sAttCode = $aFieldSpec['sAttCode']; $sField = ''; $oObj = $aRow[$sAlias]; - if ($oObj != null) - { - switch($sAttCode) - { + if ($oObj != null) { + switch ($sAttCode) { case 'id': $sField = $oObj->GetKey(); break; - + default: $sField = $oObj->GetAsCSV($sAttCode, $this->aStatusInfo['separator'], $this->aStatusInfo['text_qualifier'], $this->bLocalizeOutput, !$this->aStatusInfo['formatted_text']); } } - if ($this->aStatusInfo['charset'] != 'UTF-8') - { + if ($this->aStatusInfo['charset'] != 'UTF-8') { // Note: due to bugs in the glibc library it's safer to call iconv on the smallest possible string // and thus to convert field by field and not the whole row or file at once (see ticket N°991) $aData[] = @iconv('UTF-8', $this->aStatusInfo['charset'].'//IGNORE//TRANSLIT', $sField); - } - else - { + } else { $aData[] = $sField; } } @@ -375,27 +353,23 @@ EOF AttributeDate::SetFormat($oPrevDateFormat); set_time_limit(intval($iPreviousTimeLimit)); $this->aStatusInfo['position'] += $this->iChunkSize; - if ($this->aStatusInfo['total'] == 0) - { + if ($this->aStatusInfo['total'] == 0) { $iPercentage = 100; - } - else - { - $iPercentage = floor(min(100.0, 100.0*$this->aStatusInfo['position']/$this->aStatusInfo['total'])); + } else { + $iPercentage = floor(min(100.0, 100.0 * $this->aStatusInfo['position'] / $this->aStatusInfo['total'])); } - if ($iCount < $this->iChunkSize) - { + if ($iCount < $this->iChunkSize) { $sRetCode = 'done'; } - $aStatus = array('code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage); + $aStatus = ['code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage]; return $sData; } public function GetSupportedFormats() { - return array('csv' => Dict::S('Core:BulkExport:CSVFormat')); + return ['csv' => Dict::S('Core:BulkExport:CSVFormat')]; } public function GetMimeType() diff --git a/core/csvparser.class.inc.php b/core/csvparser.class.inc.php index 2ba7ac21a..0af23a685 100644 --- a/core/csvparser.class.inc.php +++ b/core/csvparser.class.inc.php @@ -1,10 +1,10 @@ '); - /** * CSVParser * @@ -41,9 +40,9 @@ class CSVParser } protected $m_sCurrCell = ''; - protected $m_aCurrRow = array(); + protected $m_aCurrRow = []; protected $m_iToSkip = 0; - protected $m_aDataSet = array(); + protected $m_aDataSet = []; protected function __AddChar($c) { @@ -55,27 +54,20 @@ class CSVParser } protected function __AddCell($c = null, $aFieldMap = null, $bTrimSpaces = false) { - if ($bTrimSpaces) - { + if ($bTrimSpaces) { $sCell = trim($this->m_sCurrCell); - } - else - { + } else { $sCell = $this->m_sCurrCell; } - if ($sCell == NULL_VALUE) - { + if ($sCell == NULL_VALUE) { $sCell = null; } - if (!is_null($aFieldMap)) - { + if (!is_null($aFieldMap)) { $iNextCol = count($this->m_aCurrRow); $iNextName = $aFieldMap[$iNextCol]; $this->m_aCurrRow[$iNextName] = $sCell; - } - else - { + } else { $this->m_aCurrRow[] = $sCell; } $this->m_sCurrCell = ''; @@ -84,33 +76,24 @@ class CSVParser { $this->__AddCell($c, $aFieldMap, $bTrimSpaces); - if ($this->m_iToSkip > 0) - { + if ($this->m_iToSkip > 0) { $this->m_iToSkip--; - } - elseif (count($this->m_aCurrRow) > 1) - { + } elseif (count($this->m_aCurrRow) > 1) { $this->m_aDataSet[] = $this->m_aCurrRow; - } - elseif (count($this->m_aCurrRow) == 1) - { + } elseif (count($this->m_aCurrRow) == 1) { // Get the unique value $aValues = array_values($this->m_aCurrRow); - $sValue = $aValues[0]; - if (strlen($sValue) > 0) - { + $sValue = $aValues[0]; + if (strlen($sValue) > 0) { $this->m_aDataSet[] = $this->m_aCurrRow; } - } - else - { + } else { // blank line, skip silently } - $this->m_aCurrRow = array(); - + $this->m_aCurrRow = []; + // More time for the next row - if ($this->m_iTimeLimitPerRow !== null) - { + if ($this->m_iTimeLimitPerRow !== null) { set_time_limit(intval($this->m_iTimeLimitPerRow)); } } @@ -124,87 +107,71 @@ class CSVParser $this->__AddRow($c, $aFieldMap, true); } - function ToArray($iToSkip = 1, $aFieldMap = null, $iMax = 0) + public function ToArray($iToSkip = 1, $aFieldMap = null, $iMax = 0) { - $aTransitions = array(); + $aTransitions = []; - $aTransitions[stSTARTING][evBLANK] = array('', stSTARTING); - $aTransitions[stSTARTING][evSEPARATOR] = array('__AddCell', stSTARTING); - $aTransitions[stSTARTING][evNEWLINE] = array('__AddRow', stSTARTING); - $aTransitions[stSTARTING][evTEXTQUAL] = array('', stQUALIFIED); - $aTransitions[stSTARTING][evOTHERCHAR] = array('__AddChar', stRAW); - $aTransitions[stSTARTING][evEND] = array('__AddRow', stSTARTING); + $aTransitions[stSTARTING][evBLANK] = ['', stSTARTING]; + $aTransitions[stSTARTING][evSEPARATOR] = ['__AddCell', stSTARTING]; + $aTransitions[stSTARTING][evNEWLINE] = ['__AddRow', stSTARTING]; + $aTransitions[stSTARTING][evTEXTQUAL] = ['', stQUALIFIED]; + $aTransitions[stSTARTING][evOTHERCHAR] = ['__AddChar', stRAW]; + $aTransitions[stSTARTING][evEND] = ['__AddRow', stSTARTING]; - $aTransitions[stRAW][evBLANK] = array('__AddChar', stRAW); - $aTransitions[stRAW][evSEPARATOR] = array('__AddCellTrimmed', stSTARTING); - $aTransitions[stRAW][evNEWLINE] = array('__AddRowTrimmed', stSTARTING); - $aTransitions[stRAW][evTEXTQUAL] = array('__AddChar', stRAW); - $aTransitions[stRAW][evOTHERCHAR] = array('__AddChar', stRAW); - $aTransitions[stRAW][evEND] = array('__AddRowTrimmed', stSTARTING); + $aTransitions[stRAW][evBLANK] = ['__AddChar', stRAW]; + $aTransitions[stRAW][evSEPARATOR] = ['__AddCellTrimmed', stSTARTING]; + $aTransitions[stRAW][evNEWLINE] = ['__AddRowTrimmed', stSTARTING]; + $aTransitions[stRAW][evTEXTQUAL] = ['__AddChar', stRAW]; + $aTransitions[stRAW][evOTHERCHAR] = ['__AddChar', stRAW]; + $aTransitions[stRAW][evEND] = ['__AddRowTrimmed', stSTARTING]; - $aTransitions[stQUALIFIED][evBLANK] = array('__AddChar', stQUALIFIED); - $aTransitions[stQUALIFIED][evSEPARATOR] = array('__AddChar', stQUALIFIED); - $aTransitions[stQUALIFIED][evNEWLINE] = array('__AddChar', stQUALIFIED); - $aTransitions[stQUALIFIED][evTEXTQUAL] = array('', stESCAPED); - $aTransitions[stQUALIFIED][evOTHERCHAR] = array('__AddChar', stQUALIFIED); - $aTransitions[stQUALIFIED][evEND] = array('__AddRow', stSTARTING); + $aTransitions[stQUALIFIED][evBLANK] = ['__AddChar', stQUALIFIED]; + $aTransitions[stQUALIFIED][evSEPARATOR] = ['__AddChar', stQUALIFIED]; + $aTransitions[stQUALIFIED][evNEWLINE] = ['__AddChar', stQUALIFIED]; + $aTransitions[stQUALIFIED][evTEXTQUAL] = ['', stESCAPED]; + $aTransitions[stQUALIFIED][evOTHERCHAR] = ['__AddChar', stQUALIFIED]; + $aTransitions[stQUALIFIED][evEND] = ['__AddRow', stSTARTING]; - $aTransitions[stESCAPED][evBLANK] = array('', stESCAPED); - $aTransitions[stESCAPED][evSEPARATOR] = array('__AddCell', stSTARTING); - $aTransitions[stESCAPED][evNEWLINE] = array('__AddRow', stSTARTING); - $aTransitions[stESCAPED][evTEXTQUAL] = array('__AddChar', stQUALIFIED); - $aTransitions[stESCAPED][evOTHERCHAR] = array('__AddChar', stSTARTING); - $aTransitions[stESCAPED][evEND] = array('__AddRow', stSTARTING); + $aTransitions[stESCAPED][evBLANK] = ['', stESCAPED]; + $aTransitions[stESCAPED][evSEPARATOR] = ['__AddCell', stSTARTING]; + $aTransitions[stESCAPED][evNEWLINE] = ['__AddRow', stSTARTING]; + $aTransitions[stESCAPED][evTEXTQUAL] = ['__AddChar', stQUALIFIED]; + $aTransitions[stESCAPED][evOTHERCHAR] = ['__AddChar', stSTARTING]; + $aTransitions[stESCAPED][evEND] = ['__AddRow', stSTARTING]; // Reset parser variables $this->m_sCurrCell = ''; - $this->m_aCurrRow = array(); + $this->m_aCurrRow = []; $this->m_iToSkip = $iToSkip; - $this->m_aDataSet = array(); + $this->m_aDataSet = []; $iDataLength = strlen($this->m_sCSVData); $iState = stSTARTING; $iTimeLimit = null; - if ($this->m_iTimeLimitPerRow !== null) - { + if ($this->m_iTimeLimitPerRow !== null) { // Give some time for the first row $iTimeLimit = ini_get('max_execution_time'); set_time_limit(intval($this->m_iTimeLimitPerRow)); } - for($i = 0; $i <= $iDataLength ; $i++) - { - if ($i == $iDataLength) - { + for ($i = 0; $i <= $iDataLength ; $i++) { + if ($i == $iDataLength) { $c = null; $iEvent = evEND; - } - else - { + } else { $c = $this->m_sCSVData[$i]; - if ($c == $this->m_sSep) - { + if ($c == $this->m_sSep) { $iEvent = evSEPARATOR; - } - elseif ($c == ' ') - { + } elseif ($c == ' ') { $iEvent = evBLANK; - } - elseif ($c == "\t") - { + } elseif ($c == "\t") { $iEvent = evBLANK; - } - elseif ($c == "\n") - { + } elseif ($c == "\n") { $iEvent = evNEWLINE; - } - elseif ($c == $this->m_sTextQualifier) - { + } elseif ($c == $this->m_sTextQualifier) { $iEvent = evTEXTQUAL; - } - else - { + } else { $iEvent = evOTHERCHAR; } } @@ -212,24 +179,21 @@ class CSVParser $sAction = $aTransitions[$iState][$iEvent][0]; $iState = $aTransitions[$iState][$iEvent][1]; - if (!empty($sAction)) - { - $aCallSpec = array($this, $sAction); - if (is_callable($aCallSpec)) - { + if (!empty($sAction)) { + $aCallSpec = [$this, $sAction]; + if (is_callable($aCallSpec)) { call_user_func($aCallSpec, $c, $aFieldMap); - } - else - { + } else { throw new CSVParserException("CSVParser: unknown verb '$sAction'"); } } $iLineCount = count($this->m_aDataSet); - if (($iMax > 0) && ($iLineCount >= $iMax)) break; + if (($iMax > 0) && ($iLineCount >= $iMax)) { + break; + } } - if ($iTimeLimit !== null) - { + if ($iTimeLimit !== null) { // Restore the previous time limit set_time_limit(intval($iTimeLimit)); } @@ -242,6 +206,3 @@ class CSVParser return $aHeader[0]; } } - - -?> diff --git a/core/customfieldshandler.class.inc.php b/core/customfieldshandler.class.inc.php index 6aa3a0033..10a14ad2a 100644 --- a/core/customfieldshandler.class.inc.php +++ b/core/customfieldshandler.class.inc.php @@ -1,4 +1,5 @@ sAttCode = $sAttCode; $this->aValues = null; } @@ -59,7 +62,8 @@ abstract class CustomFieldsHandler { * @throws \ApplicationException if {@link static::$oForm} attribute not initialized yet * @since 3.1.0 N°6322 N°1150 Add template_id checks */ - public function Validate(DBObject $oHostObject) { + public function Validate(DBObject $oHostObject) + { if (false === isset($this->oForm)) { throw new ApplicationException('oForm attribute not init yet. You must call BuildForm before this method !'); } @@ -68,9 +72,8 @@ abstract class CustomFieldsHandler { $this->oForm->Validate(); if ($this->oForm->GetValid()) { $ret = true; - } - else { - $aMessages = array(); + } else { + $aMessages = []; foreach ($this->oForm->GetErrorMessages() as $sFieldId => $aFieldMessages) { $aMessages[] = $sFieldId.': '.implode(', ', $aFieldMessages); } @@ -87,7 +90,8 @@ abstract class CustomFieldsHandler { * * @return \Combodo\iTop\Form\Form */ - public function GetForm() { + public function GetForm() + { return $this->oForm; } @@ -96,15 +100,17 @@ abstract class CustomFieldsHandler { $this->aValues = $aValues; } - public static function GetPrerequisiteAttributes($sClass = null) { - return array(); + public static function GetPrerequisiteAttributes($sClass = null) + { + return []; } /** * List the available verbs for 'GetForTemplate' */ - public static function EnumTemplateVerbs() { - return array(); + public static function EnumTemplateVerbs() + { + return []; } /** @@ -169,7 +175,6 @@ abstract class CustomFieldsHandler { return null; } - /** * @param DBObject $oHostObject * diff --git a/core/data.generator.class.inc.php b/core/data.generator.class.inc.php index 7883ac17e..7e1d56eaf 100644 --- a/core/data.generator.class.inc.php +++ b/core/data.generator.class.inc.php @@ -1,9 +1,10 @@ - /** * data generator - * helps the consultants in creating dummy data sets, for various test purposes (validation, usability, scalability) + * helps the consultants in creating dummy data sets, for various test purposes (validation, usability, scalability) * * @copyright Copyright (C) 2010-2024 Combodo SAS * @license http://opensource.org/licenses/AGPL-3.0 @@ -37,60 +37,50 @@ class cmdbDataGenerator protected $m_sOrganizationCode; protected $m_sOrganizationName; protected $m_OrganizationDomains; - + /** * Constructor */ public function __construct($sOrganizationId = "") { global $aCompanies, $aCompaniesCode; - if ($sOrganizationId == '') - { + if ($sOrganizationId == '') { // No organization provided, pick a random and unused one from our predefined list - $retries = 5*count($aCompanies); - while ( ($retries > 0) && !isset($this->m_sOrganizationCode)) // Stupid algorithm, but I'm too lazy to do something bulletproof tonight - { + $retries = 5 * count($aCompanies); + while (($retries > 0) && !isset($this->m_sOrganizationCode)) { // Stupid algorithm, but I'm too lazy to do something bulletproof tonight $index = rand(0, count($aCompanies) - 1); - if (!$this->OrganizationExists($aCompanies[$index]['code'])) - { + if (!$this->OrganizationExists($aCompanies[$index]['code'])) { $this->m_sOrganizationCode = $aCompanies[$index]['code']; $this->m_sOrganizationName = $aCompanies[$index]['name']; $this->m_OrganizationDomains = $aCompanies[$index]['domain']; } $retries--; } - } - else - { + } else { // A code has been provided, let's take the information we need from the organization itself $this->m_sOrganizationId = $sOrganizationId; $oOrg = $this->GetOrganization($sOrganizationId); - if ($oOrg == null) - { + if ($oOrg == null) { echo "Unable to find the organization '$sOrganisationCode' in the database... can not add objects into this organization.
    \n"; exit(); } $this->m_sOrganizationCode = $oOrg->Get('code'); $this->m_sOrganizationName = $oOrg->Get('name'); - if (!isset($aCompaniesCode[$this->m_sOrganizationCode]['domain'])) - { + if (!isset($aCompaniesCode[$this->m_sOrganizationCode]['domain'])) { // Generate some probable domain names for this organization - $this->m_OrganizationDomains = array(strtolower($this->m_sOrganizationCode).".com", strtolower($this->m_sOrganizationCode).".org", strtolower($this->m_sOrganizationCode)."corp.net",); - } - else - { + $this->m_OrganizationDomains = [strtolower($this->m_sOrganizationCode).".com", strtolower($this->m_sOrganizationCode).".org", strtolower($this->m_sOrganizationCode)."corp.net",]; + } else { // Pick the domain names for this organization from the predefined list $this->m_OrganizationDomains = $aCompaniesCode[$this->m_sOrganizationCode]['domain']; } } - - if (!isset($this->m_sOrganizationCode)) - { + + if (!isset($this->m_sOrganizationCode)) { echo "Unable to find an organization code which is not already used... can not create a new organization. Enhance the list of fake organizations (\$aCompanies in data_sample.inc.php).
    \n"; exit(); } } - + /** * Get the current organization id used by the generator * @@ -100,7 +90,7 @@ class cmdbDataGenerator { return $this->m_sOrganizationId; } - + /** * Get the current organization id used by the generator * @@ -111,7 +101,7 @@ class cmdbDataGenerator { $this->m_sOrganizationId = $sId; } - + /** * Get the current organization code used by the generator * @@ -127,69 +117,66 @@ class cmdbDataGenerator * * @return string The organization name */ - function GetOrganizationName() + public function GetOrganizationName() { return $this->m_sOrganizationName; } - + /** * Get a pseudo random first name taken from a (big) prefedined list * * @return string A random first name */ - function GenerateFirstName() + public function GenerateFirstName() { global $aFirstNames; return $aFirstNames[rand(0, count($aFirstNames) - 1)]; } - + /** * Get a pseudo random last name taken from a (big) prefedined list * * @return string A random last name */ - function GenerateLastName() + public function GenerateLastName() { global $aNames; return $aNames[rand(0, count($aNames) - 1)]; } - + /** * Get a pseudo random country name taken from a prefedined list * * @return string A random city name */ - function GenerateCountryName() + public function GenerateCountryName() { global $aCountries; return $aCountries[rand(0, count($aCountries) - 1)]; } - + /** * Get a pseudo random city name taken from a (big) prefedined list * * @return string A random city name */ - function GenerateCityName() + public function GenerateCityName() { global $aCities; return $aCities[rand(0, count($aCities) - 1)]; } - + /** * Get a pseudo random email address made of the first name, last name and organization's domain * * @return string A random email address */ - function GenerateEmail($sFirstName, $sLastName) + public function GenerateEmail($sFirstName, $sLastName) { - if (rand(1, 20) > 18) - { + if (rand(1, 20) > 18) { // some people (let's say 5~10%) have an irregular email address $sEmail = strtolower($this->CleanForEmail($sLastName))."@".strtolower($this->GenerateDomain()); - } - else - { + } else { $sEmail = strtolower($this->CleanForEmail($sFirstName)).".".strtolower($this->CleanForEmail($sLastName))."@".strtolower($this->GenerateDomain()); } return $sEmail; @@ -203,7 +190,7 @@ class cmdbDataGenerator * - domain() => returns a domain name for the current organization * - enum(aaa,bb,c,dddd) => returns randomly one of aaa,bb,c or dddd with the same * probability of occurence. If you want to change the probability you can repeat some values - * i.e enum(most probable,most probable,most probable,most probable,most probable,rare) + * i.e enum(most probable,most probable,most probable,most probable,most probable,rare) * - number(xxx-yyy) => a random number between xxx and yyy (bounds included) * note that if the first number (xxx) begins with a zero, then the result will zero padded * to the same number of digits as xxx. @@ -215,39 +202,28 @@ class cmdbDataGenerator * @param string $sTemplate The template used for generating the string * @return string The generated pseudo random the string */ - function GenerateString($sTemplate) + public function GenerateString($sTemplate) { $sResult = ""; $aParts = explode("\|", $sTemplate); - foreach($aParts as $sPart) - { - if (preg_match("/domain\(\)/", $sPart, $aMatches)) - { + foreach ($aParts as $sPart) { + if (preg_match("/domain\(\)/", $sPart, $aMatches)) { $sResult .= strtolower($this->GenerateDomain()); - } - elseif (preg_match("/enum\((.+)\)/", $sPart, $aMatches)) - { + } elseif (preg_match("/enum\((.+)\)/", $sPart, $aMatches)) { $sEnumValues = $aMatches[1]; $aEnumValues = explode(",", $sEnumValues); $sResult .= $aEnumValues[rand(0, count($aEnumValues) - 1)]; - } - elseif (preg_match("/number\((\d+)-(\d+)\)/", $sPart, $aMatches)) - { + } elseif (preg_match("/number\((\d+)-(\d+)\)/", $sPart, $aMatches)) { $sStartNumber = $aMatches[1]; - if ($sStartNumber[0] == '0') - { + if ($sStartNumber[0] == '0') { // number must be zero padded $sFormat = "%0".strlen($sStartNumber)."d"; - } - else - { + } else { $sFormat = "%d"; } $sEndNumber = $aMatches[2]; $sResult .= sprintf($sFormat, rand($sStartNumber, $sEndNumber)); - } - else - { + } else { $sResult .= $sPart; } } @@ -264,27 +240,22 @@ class cmdbDataGenerator * @param string $aFilterCriteria A hash array of filterCOde => FilterValue (the strict operator '=' is used ) * @return mixed The key to an object of the given class, or null if none are found */ - function GenerateKey($sClass, $aFilterCriteria) + public function GenerateKey($sClass, $aFilterCriteria) { $retKey = null; $oFilter = new DBObjectSearch($sClass); - foreach($aFilterCriteria as $sFilterCode => $filterValue) - { + foreach ($aFilterCriteria as $sFilterCode => $filterValue) { $oFilter->AddCondition($sFilterCode, $filterValue, '='); } $oSet = new CMDBObjectSet($oFilter); - if ($oSet->Count() > 0) - { + if ($oSet->Count() > 0) { $max_count = $index = rand(1, $oSet->Count()); - do - { + do { $oObj = $oSet->Fetch(); $index--; - } - while($index > 0); - - if (!is_object($oObj)) - { + } while ($index > 0); + + if (!is_object($oObj)) { echo "
    ";
     				echo "ERROR: non empty set, but invalid object picked! class='$sClass'\n";
     				echo "Index chosen: $max_count\n";
    @@ -292,9 +263,7 @@ class cmdbDataGenerator
     				echo "Filter criteria:\n";
     				print_r($aFilterCriteria);
     				echo "
    "; - } - else - { + } else { $retKey = $oObj->GetKey(); } } @@ -305,7 +274,7 @@ class cmdbDataGenerator // Protected methods // /////////////////////////////////////////////////////////////////////////////// - + /** * Generate a (random) domain name consistent with the organization name & code * @@ -316,17 +285,14 @@ class cmdbDataGenerator */ protected function GenerateDomain() { - if (is_array($this->m_OrganizationDomains)) - { - $sDomain = $this->m_OrganizationDomains[rand(0, count($this->m_OrganizationDomains)-1)]; - } - else - { + if (is_array($this->m_OrganizationDomains)) { + $sDomain = $this->m_OrganizationDomains[rand(0, count($this->m_OrganizationDomains) - 1)]; + } else { $sDomain = $this->m_OrganizationDomains; } return $sDomain; } - + /** * Strips accented characters from a string in order to produce a suitable email address * @@ -335,7 +301,7 @@ class cmdbDataGenerator */ protected function CleanForEmail($sText) { - return str_replace(array("'", "�", "�", "�", "�", "�", "�", "�", "�", "�"), array("", "e", "e", "e", "c", "a", "a", "n", "oe", "ae"), $sText); + return str_replace(["'", "�", "�", "�", "�", "�", "�", "�", "�", "�"], ["", "e", "e", "e", "c", "a", "a", "n", "oe", "ae"], $sText); } /** @@ -364,11 +330,9 @@ class cmdbDataGenerator $oFilter = new DBObjectSearch('Organization'); $oFilter->AddCondition('id', $sId, '='); $oSet = new CMDBObjectSet($oFilter); - if ($oSet->Count() > 0) - { + if ($oSet->Count() > 0) { $oOrg = $oSet->Fetch(); // Let's take the first one found } return $oOrg; } } -?> diff --git a/core/datetimeformat.class.inc.php b/core/datetimeformat.class.inc.php index bf8921723..f4e7f9215 100644 --- a/core/datetimeformat.class.inc.php +++ b/core/datetimeformat.class.inc.php @@ -1,9 +1,10 @@ - /** * Helper class to generate Date & Time formatting strings in the various conventions * from the PHP DateTime::createFromFormat convention. - * + * * Example: - * + * * $oFormat = new DateTimeFormat('m/d/Y H:i'); * $oFormat->ToExcel(); * >> 'MM/dd/YYYY HH:mm' - * + * * @author Denis Flaven * */ class DateTimeFormat { protected $sPHPFormat; - + /** * Constructs the DateTimeFormat object * @param string $sPHPFormat A format string using the PHP 'DateTime::createFromFormat' convention @@ -42,7 +42,7 @@ class DateTimeFormat { $this->sPHPFormat = (string)$sPHPFormat; } - + /** * @return string */ @@ -50,34 +50,34 @@ class DateTimeFormat { return $this->sPHPFormat; } - + /** * Return the mapping table for converting between various conventions for date/time formats */ protected static function GetFormatMapping() { - return array( + return [ // Days - 'd' => array('regexpr' => '(0[1-9]|[1-2][0-9]|3[0-1])', 'datepicker' => 'dd', 'excel' => 'dd', 'moment' => 'DD'), // Day of the month: 2 digits (with leading zero) - 'j' => array('regexpr' => '([1-9]|[1-2][0-9]|3[0-1])', 'datepicker' => 'd', 'excel' => 'd', 'moment' => 'D'), // Day of the month: 1 or 2 digits (without leading zero) + 'd' => ['regexpr' => '(0[1-9]|[1-2][0-9]|3[0-1])', 'datepicker' => 'dd', 'excel' => 'dd', 'moment' => 'DD'], // Day of the month: 2 digits (with leading zero) + 'j' => ['regexpr' => '([1-9]|[1-2][0-9]|3[0-1])', 'datepicker' => 'd', 'excel' => 'd', 'moment' => 'D'], // Day of the month: 1 or 2 digits (without leading zero) // Months - 'm' => array('regexpr' => '(0[1-9]|1[0-2])', 'datepicker' => 'mm', 'excel' => 'MM', 'moment' => 'MM' ), // Month on 2 digits i.e. 01-12 - 'n' => array('regexpr' => '([1-9]|1[0-2])', 'datepicker' => 'm', 'excel' => 'm', 'moment' => 'M'), // Month on 1 or 2 digits 1-12 + 'm' => ['regexpr' => '(0[1-9]|1[0-2])', 'datepicker' => 'mm', 'excel' => 'MM', 'moment' => 'MM' ], // Month on 2 digits i.e. 01-12 + 'n' => ['regexpr' => '([1-9]|1[0-2])', 'datepicker' => 'm', 'excel' => 'm', 'moment' => 'M'], // Month on 1 or 2 digits 1-12 // Years - 'Y' => array('regexpr' => '([0-9]{4})', 'datepicker' => 'yy', 'excel' => 'YYYY', 'moment' => 'YYYY'), // Year on 4 digits - 'y' => array('regexpr' => '([0-9]{2})', 'datepicker' => 'y', 'excel' => 'YY', 'moment' => 'YY'), // Year on 2 digits + 'Y' => ['regexpr' => '([0-9]{4})', 'datepicker' => 'yy', 'excel' => 'YYYY', 'moment' => 'YYYY'], // Year on 4 digits + 'y' => ['regexpr' => '([0-9]{2})', 'datepicker' => 'y', 'excel' => 'YY', 'moment' => 'YY'], // Year on 2 digits // Hours - 'H' => array('regexpr' => '([0-1][0-9]|2[0-3])', 'datepicker' => 'HH', 'excel' => 'HH', 'moment' => 'HH'), // Hour 00..23 - 'h' => array('regexpr' => '(0[1-9]|1[0-2])', 'datepicker' => 'hh', 'excel' => 'hh', 'moment' => 'hh'), // Hour 01..12 - 'G' => array('regexpr' => '([0-9]|1[0-9]|2[0-3])', 'datepicker' => 'H', 'excel' => 'H', 'moment' => 'H'), // Hour 0..23 - 'g' => array('regexpr' => '([1-9]|1[0-2])', 'datepicker' => 'h', 'excel' => 'h', 'moment' => 'h'), // Hour 1..12 - 'a' => array('regexpr' => '(am|pm)', 'datepicker' => 'tt', 'excel' => 'am/pm', 'moment' => 'a'), - 'A' => array('regexpr' => '(AM|PM)', 'datepicker' => 'TT', 'excel' => 'AM/PM', 'moment' => 'A'), + 'H' => ['regexpr' => '([0-1][0-9]|2[0-3])', 'datepicker' => 'HH', 'excel' => 'HH', 'moment' => 'HH'], // Hour 00..23 + 'h' => ['regexpr' => '(0[1-9]|1[0-2])', 'datepicker' => 'hh', 'excel' => 'hh', 'moment' => 'hh'], // Hour 01..12 + 'G' => ['regexpr' => '([0-9]|1[0-9]|2[0-3])', 'datepicker' => 'H', 'excel' => 'H', 'moment' => 'H'], // Hour 0..23 + 'g' => ['regexpr' => '([1-9]|1[0-2])', 'datepicker' => 'h', 'excel' => 'h', 'moment' => 'h'], // Hour 1..12 + 'a' => ['regexpr' => '(am|pm)', 'datepicker' => 'tt', 'excel' => 'am/pm', 'moment' => 'a'], + 'A' => ['regexpr' => '(AM|PM)', 'datepicker' => 'TT', 'excel' => 'AM/PM', 'moment' => 'A'], // Minutes - 'i' => array('regexpr' => '([0-5][0-9])', 'datepicker' => 'mm', 'excel' => 'mm', 'moment' => 'mm'), + 'i' => ['regexpr' => '([0-5][0-9])', 'datepicker' => 'mm', 'excel' => 'mm', 'moment' => 'mm'], // Seconds - 's' => array('regexpr' => '([0-5][0-9])', 'datepicker' => 'ss', 'excel' => 'ss', 'moment' => 'ss'), - ); + 's' => ['regexpr' => '([0-5][0-9])', 'datepicker' => 'ss', 'excel' => 'ss', 'moment' => 'ss'], + ]; } /** @@ -87,57 +87,44 @@ class DateTimeFormat * @param string $sEscapePattern The replacement string for escaping characters in the output string. %s is the source char. * @param string $bEscapeAll True to systematically escape all litteral characters * @param array $sSpecialChars A string containing the only characters to escape in the output - * @return string The string in the requested format + * @return string The string in the requested format */ protected function Transform($sOutputFormatCode, $sEscapePattern, $bEscapeAll = false, $sSpecialChars = '') { $aMappings = static::GetFormatMapping(); $sResult = ''; - + $bEscaping = false; - for($i=0; $i < strlen($this->sPHPFormat); $i++) - { - if (($this->sPHPFormat[$i] == '\\')) - { + for ($i = 0; $i < strlen($this->sPHPFormat); $i++) { + if (($this->sPHPFormat[$i] == '\\')) { $bEscaping = true; continue; } - - if ($bEscaping) - { - if (($sSpecialChars === '') || (strpos($sSpecialChars, $this->sPHPFormat[$i]) !== false)) - { + + if ($bEscaping) { + if (($sSpecialChars === '') || (strpos($sSpecialChars, $this->sPHPFormat[$i]) !== false)) { $sResult .= sprintf($sEscapePattern, $this->sPHPFormat[$i]); - } - else - { + } else { $sResult .= $this->sPHPFormat[$i]; } - + $bEscaping = false; - } - else if(array_key_exists($this->sPHPFormat[$i], $aMappings)) - { + } elseif (array_key_exists($this->sPHPFormat[$i], $aMappings)) { // Not a litteral value, must be replaced by its regular expression pattern $sResult .= $aMappings[$this->sPHPFormat[$i]][$sOutputFormatCode]; - } - else - { - if ($bEscapeAll || (strpos($sSpecialChars, $this->sPHPFormat[$i]) !== false)) - { + } else { + if ($bEscapeAll || (strpos($sSpecialChars, $this->sPHPFormat[$i]) !== false)) { $sResult .= sprintf($sEscapePattern, $this->sPHPFormat[$i]); - } - else - { + } else { // Normal char with no special meaning, no need to escape it $sResult .= $this->sPHPFormat[$i]; } } } - - return $sResult; - } - + + return $sResult; + } + /** * Format a date into the supplied format string * @param mixed $date An int, string, DateTime object or null !! @@ -146,38 +133,27 @@ class DateTimeFormat */ public function Format($date) { - if ($date == null) - { + if ($date == null) { $sDate = ''; - } - else if (($date === '0000-00-00') || ($date === '0000-00-00 00:00:00')) - { + } elseif (($date === '0000-00-00') || ($date === '0000-00-00 00:00:00')) { $sDate = ''; - } - else if ($date instanceof DateTime) - { + } elseif ($date instanceof DateTime) { // Parameter is a DateTime $sDate = $date->format($this->sPHPFormat); - } - else if (is_int($date)) - { + } elseif (is_int($date)) { // Parameter is a Unix timestamp $oDate = new DateTime(); $oDate->setTimestamp($date); $sDate = $oDate->format($this->sPHPFormat); - } - else if (is_string($date)) - { + } elseif (is_string($date)) { $oDate = new DateTime($date); $sDate = $oDate->format($this->sPHPFormat); - } - else - { + } else { throw new Exception(__CLASS__."::Format: Unexpected date value: ".print_r($date, true)); } return $sDate; } - + /** * Parse a date in the supplied format and return the date as a string in the internal format * @param string $sDate The string to parse @@ -187,22 +163,18 @@ class DateTimeFormat */ public function Parse($sDate) { - if (($sDate == null) || ($sDate == '0000-00-00 00:00:00') || ($sDate == '0000-00-00')) - { - return null; - } - else - { + if (($sDate == null) || ($sDate == '0000-00-00 00:00:00') || ($sDate == '0000-00-00')) { + return null; + } else { $sFormat = preg_replace('/\\?/', '', $this->sPHPFormat); // replace escaped characters by a wildcard for parsing $oDate = DateTime::createFromFormat($this->sPHPFormat, $sDate); - if ($oDate === false) - { + if ($oDate === false) { throw new Exception(__CLASS__."::Parse: Unable to parse the date: '$sDate' using the format: '{$this->sPHPFormat}'"); } return $oDate; } } - + /** * Get the date or datetime format string in the jQuery UI date picker format * @return string The format string using the date picker convention @@ -211,7 +183,7 @@ class DateTimeFormat { return $this->Transform('datepicker', "'%s'"); } - + /** * Get a date or datetime format string in the Excel format * @return string The format string using the Excel convention @@ -220,7 +192,7 @@ class DateTimeFormat { return $this->Transform('excel', "%s"); } - + /** * Get a date or datetime format string in the moment.js format * @return string The format string using the moment.js convention @@ -229,16 +201,15 @@ class DateTimeFormat { return $this->Transform('moment', "[%s]", true /* escape all */); } - + public static function GetJSSQLToCustomFormat() { - $aPHPToMoment = array(); - foreach(self::GetFormatMapping() as $sPHPCode => $aMapping) - { + $aPHPToMoment = []; + foreach (self::GetFormatMapping() as $sPHPCode => $aMapping) { $aPHPToMoment[$sPHPCode] = $aMapping['moment']; } $sJSMapping = json_encode($aPHPToMoment); - + $sFunction = <<sPHPFormat); $i++) - { - if (($this->sPHPFormat[$i] == '\\')) - { + for ($i = 0; $i < strlen($this->sPHPFormat); $i++) { + if (($this->sPHPFormat[$i] == '\\')) { $bEscaping = true; continue; } - - if ($bEscaping) - { + + if ($bEscaping) { $sResult .= $this->sPHPFormat[$i]; // No need to escape characters in the placeholder $bEscaping = false; - } - else if(array_key_exists($this->sPHPFormat[$i], $aMappings)) - { + } elseif (array_key_exists($this->sPHPFormat[$i], $aMappings)) { // Not a litteral value, must be replaced by Dict equivalent $sResult .= Dict::S('Core:DateTime:Placeholder_'.$this->sPHPFormat[$i]); - } - else - { + } else { // Normal char with no special meaning $sResult .= $this->sPHPFormat[$i]; } } - + return $sResult; } @@ -373,14 +337,11 @@ EOF { $iStart = 999; $iEnd = 0; - - foreach($aPlaceholders as $sChar) - { + + foreach ($aPlaceholders as $sChar) { $iPos = strpos($this->sPHPFormat, $sChar); - if ($iPos !== false) - { - if (($iPos > 0) && ($this->sPHPFormat[$iPos-1] == '\\')) - { + if ($iPos !== false) { + if (($iPos > 0) && ($this->sPHPFormat[$iPos - 1] == '\\')) { // The placeholder is actually escaped, it's a litteral character, ignore it continue; } @@ -391,25 +352,25 @@ EOF $sFormat = substr($this->sPHPFormat, $iStart, $iEnd - $iStart + 1); return $sFormat; } - + /** * Produces the Date format string by extracting only the date part of the date and time format string * @return string */ public function ToDateFormat() { - return $this->ToSubFormat(array('Y', 'y', 'd', 'j', 'm', 'n')); + return $this->ToSubFormat(['Y', 'y', 'd', 'j', 'm', 'n']); } - + /** * Produces the Time format string by extracting only the time part of the date and time format string * @return string */ public function ToTimeFormat() { - return $this->ToSubFormat(array('H', 'h', 'G', 'g', 'i', 's', 'a', 'A')); + return $this->ToSubFormat(['H', 'h', 'G', 'g', 'i', 's', 'a', 'A']); } - + /** * Get the regular expression to (approximately) validate a date/time for the current format * The validation does not take into account the number of days in a month (i.e. June 31st will pass, as well as Feb 30th!) @@ -419,8 +380,7 @@ EOF public function ToRegExpr($sDelimiter = null) { $sRet = '^'.$this->Transform('regexpr', "\\%s", false /* escape all */, '.?*$^()[]:').'$'; - if ($sDelimiter !== null) - { + if ($sDelimiter !== null) { $sRet = $sDelimiter.str_replace($sDelimiter, '\\'.$sDelimiter, $sRet).$sDelimiter; } return $sRet; diff --git a/core/dbobjectiterator.php b/core/dbobjectiterator.php index 98519f9ed..eb5845c8d 100644 --- a/core/dbobjectiterator.php +++ b/core/dbobjectiterator.php @@ -1,9 +1,10 @@ - /** - * A set of persistent objects, could be heterogeneous as long as the objects in the set have a common ancestor class + * A set of persistent objects, could be heterogeneous as long as the objects in the set have a common ancestor class * * @package iTopORM * @copyright Copyright (C) 2010-2024 Combodo SAS diff --git a/core/dbobjectset.class.php b/core/dbobjectset.class.php index 12783ce6f..6d25134cf 100644 --- a/core/dbobjectset.class.php +++ b/core/dbobjectset.class.php @@ -1,4 +1,5 @@ .]attcode' => bAscending (true for ASC, false, for DESC) * Example : array('name' => true, 'id' => false) @@ -97,10 +97,10 @@ class DBObjectSet implements iDBObjectSetIterator * @param int $iLimitStart Index of the first row to load (i.e. equivalent to MySQL's LIMIT start, count) * @param bool $bSort if false no order by is done */ - public function __construct(DBSearch $oFilter, $aOrderBy = array(), $aArgs = array(), $aExtendedDataSpec = null, $iLimitCount = 0, $iLimitStart = 0, $bSort = true) + public function __construct(DBSearch $oFilter, $aOrderBy = [], $aArgs = [], $aExtendedDataSpec = null, $iLimitCount = 0, $iLimitStart = 0, $bSort = true) { $this->m_oFilter = $oFilter->DeepClone(); - $this->m_aAddedIds = array(); + $this->m_aAddedIds = []; $this->m_aOrderBy = $aOrderBy; $this->m_aArgs = $aArgs; $this->m_aAttToLoad = null; @@ -112,44 +112,41 @@ class DBObjectSet implements iDBObjectSetIterator $this->m_iNumTotalDBRows = null; $this->m_iNumLoadedDBRows = 0; $this->m_bLoaded = false; - $this->m_aAddedObjects = array(); + $this->m_aAddedObjects = []; $this->m_iCurrRow = 0; $this->m_oSQLResult = null; } - /** - * @internal - */ + /** + * @internal + */ public function __destruct() { - if (is_object($this->m_oSQLResult)) - { + if (is_object($this->m_oSQLResult)) { $this->m_oSQLResult->free(); } } - /** - * @internal - * - * @return string - * - * @throws \Exception - * @throws \CoreException - * @throws \MissingQueryArgument - */ + /** + * @internal + * + * @return string + * + * @throws \Exception + * @throws \CoreException + * @throws \MissingQueryArgument + */ public function __toString() { $sRet = ''; $this->Rewind(); $sRet .= "Set (".$this->m_oFilter->ToOQL(true).")
    \n"; - $sRet .= "Query:
    ".$this->m_oFilter->MakeSelectQuery().")
    \n"; - + $sRet .= "Query:
    ".$this->m_oFilter->MakeSelectQuery().")
    \n"; + $sRet .= $this->Count()." records
    \n"; - if ($this->Count() > 0) - { + if ($this->Count() > 0) { $sRet .= "
      \n"; - while ($oObj = $this->Fetch()) - { + while ($oObj = $this->Fetch()) { $sRet .= "
    • ".$oObj->__toString()."
    • \n"; } $sRet .= "
    \n"; @@ -158,9 +155,9 @@ class DBObjectSet implements iDBObjectSetIterator return $sRet; } - /** - * @internal - */ + /** + * @internal + */ public function __clone() { $this->m_oFilter = $this->m_oFilter->DeepClone(); @@ -174,7 +171,7 @@ class DBObjectSet implements iDBObjectSetIterator /** * Called when unserializing a DBObjectSet - * @internal + * @internal */ public function __wakeup() { @@ -185,84 +182,75 @@ class DBObjectSet implements iDBObjectSetIterator $this->m_oSQLResult = null; } - /** - * @internal - * @param $bShow - */ + /** + * @internal + * @param $bShow + */ public function SetShowObsoleteData($bShow) { $this->m_oFilter->SetShowObsoleteData($bShow); } - /** - * @internal - * @return bool - */ + /** + * @internal + * @return bool + */ public function GetShowObsoleteData() { return $this->m_oFilter->GetShowObsoleteData(); } - /** - * Specify the subset of attributes to load - * this subset is specified for each class of objects, - * this has to be done before the actual fetch. - * - * @api - * - * @param array $aAttToLoad Format: alias => array of attribute_codes - * - * @return void - * - * @throws \Exception - * @throws \CoreException - */ + /** + * Specify the subset of attributes to load + * this subset is specified for each class of objects, + * this has to be done before the actual fetch. + * + * @api + * + * @param array $aAttToLoad Format: alias => array of attribute_codes + * + * @return void + * + * @throws \Exception + * @throws \CoreException + */ public function OptimizeColumnLoad($aAttToLoad) { // Check that the structure is an array of array - if (!is_array($aAttToLoad)) - { + if (!is_array($aAttToLoad)) { $this->m_aAttToLoad = null; - trigger_error ( "OptimizeColumnLoad : wrong format actual :(".print_r($aAttToLoad, true)."). should be [alias=>[attributes]]", E_USER_WARNING ); + trigger_error("OptimizeColumnLoad : wrong format actual :(".print_r($aAttToLoad, true)."). should be [alias=>[attributes]]", E_USER_WARNING); return; } - foreach ($aAttToLoad as $sAlias => $aAttCodes) - { - if (!is_array($aAttCodes)) - { + foreach ($aAttToLoad as $sAlias => $aAttCodes) { + if (!is_array($aAttCodes)) { $this->m_aAttToLoad = null; - trigger_error ( "OptimizeColumnLoad : wrong format actual :(".print_r($aAttToLoad, true)."). should be [alias=>[attributes]]", E_USER_WARNING ); + trigger_error("OptimizeColumnLoad : wrong format actual :(".print_r($aAttToLoad, true)."). should be [alias=>[attributes]]", E_USER_WARNING); return; } } // Complete the attribute list with the attribute codes - $aAttToLoadWithAttDef = array(); - foreach($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) - { - $aAttToLoadWithAttDef[$sClassAlias] = array(); - if (array_key_exists($sClassAlias, $aAttToLoad)) - { + $aAttToLoadWithAttDef = []; + foreach ($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) { + $aAttToLoadWithAttDef[$sClassAlias] = []; + if (array_key_exists($sClassAlias, $aAttToLoad)) { $aAttList = $aAttToLoad[$sClassAlias]; - foreach($aAttList as $sAttToLoad) - { + foreach ($aAttList as $sAttToLoad) { $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttToLoad); $aAttToLoadWithAttDef[$sClassAlias][$sAttToLoad] = $oAttDef; - if ($oAttDef->IsExternalKey(EXTKEY_ABSOLUTE)) - { + if ($oAttDef->IsExternalKey(EXTKEY_ABSOLUTE)) { // Add the external key friendly name anytime $oFriendlyNameAttDef = MetaModel::GetAttributeDef($sClass, $sAttToLoad.'_friendlyname'); $aAttToLoadWithAttDef[$sClassAlias][$sAttToLoad.'_friendlyname'] = $oFriendlyNameAttDef; - if (MetaModel::IsArchivable($oAttDef->GetTargetClass(EXTKEY_ABSOLUTE))) - { + if (MetaModel::IsArchivable($oAttDef->GetTargetClass(EXTKEY_ABSOLUTE))) { // Add the archive flag if necessary $oArchiveFlagAttDef = MetaModel::GetAttributeDef($sClass, $sAttToLoad.'_archive_flag'); $aAttToLoadWithAttDef[$sClassAlias][$sAttToLoad.'_archive_flag'] = $oArchiveFlagAttDef; } - if (MetaModel::IsObsoletable($oAttDef->GetTargetClass(EXTKEY_ABSOLUTE))) - { + if (MetaModel::IsObsoletable($oAttDef->GetTargetClass(EXTKEY_ABSOLUTE))) { // Add the obsolescence flag if necessary $oObsoleteFlagAttDef = MetaModel::GetAttributeDef($sClass, $sAttToLoad.'_obsolescence_flag'); $aAttToLoadWithAttDef[$sClassAlias][$sAttToLoad.'_obsolescence_flag'] = $oObsoleteFlagAttDef; @@ -275,23 +263,20 @@ class DBObjectSet implements iDBObjectSetIterator $oFriendlyNameAttDef = MetaModel::GetAttributeDef($sClass, 'friendlyname'); $aAttToLoadWithAttDef[$sClassAlias]['friendlyname'] = $oFriendlyNameAttDef; - if (MetaModel::IsArchivable($sClass)) - { + if (MetaModel::IsArchivable($sClass)) { // Add the archive flag if necessary $oArchiveFlagAttDef = MetaModel::GetAttributeDef($sClass, 'archive_flag'); $aAttToLoadWithAttDef[$sClassAlias]['archive_flag'] = $oArchiveFlagAttDef; } - if (MetaModel::IsObsoletable($sClass)) - { + if (MetaModel::IsObsoletable($sClass)) { // Add the obsolescence flag if necessary $oObsoleteFlagAttDef = MetaModel::GetAttributeDef($sClass, 'obsolescence_flag'); $aAttToLoadWithAttDef[$sClassAlias]['obsolescence_flag'] = $oObsoleteFlagAttDef; } // Make sure that the final class is requested anytime, whatever the specification (needed for object construction!) - if (!MetaModel::IsStandaloneClass($sClass) && !array_key_exists('finalclass', $aAttToLoadWithAttDef[$sClassAlias])) - { + if (!MetaModel::IsStandaloneClass($sClass) && !array_key_exists('finalclass', $aAttToLoadWithAttDef[$sClassAlias])) { $aAttToLoadWithAttDef[$sClassAlias]['finalclass'] = MetaModel::GetAttributeDef($sClass, 'finalclass'); } } @@ -299,36 +284,36 @@ class DBObjectSet implements iDBObjectSetIterator $this->m_aAttToLoad = $aAttToLoadWithAttDef; } - /** - * Create a set (in-memory) containing just the given object - * - * @internal - * - * @param \DBobject $oObject - * - * @return \DBObjectSet The singleton set - * - * @throws \Exception - */ - static public function FromObject($oObject) + /** + * Create a set (in-memory) containing just the given object + * + * @internal + * + * @param \DBobject $oObject + * + * @return \DBObjectSet The singleton set + * + * @throws \Exception + */ + public static function FromObject($oObject) { $oRetSet = self::FromScratch(get_class($oObject)); $oRetSet->AddObject($oObject); return $oRetSet; } - /** - * Create an empty set (in-memory), for the given class (and its subclasses) of objects - * - * @internal - * - * @param string $sClass The class (or an ancestor) for the objects to be added in this set - * - * @return \DBObjectSet The empty set - * - * @throws \Exception - */ - static public function FromScratch($sClass) + /** + * Create an empty set (in-memory), for the given class (and its subclasses) of objects + * + * @internal + * + * @param string $sClass The class (or an ancestor) for the objects to be added in this set + * + * @return \DBObjectSet The empty set + * + * @throws \Exception + */ + public static function FromScratch($sClass) { $oFilter = new DBObjectSearch($sClass); $oFilter->AddConditionExpression(new FalseExpression()); @@ -338,41 +323,41 @@ class DBObjectSet implements iDBObjectSetIterator return $oRetSet; } - /** - * Create a set (in-memory) with just one column (i.e. one object per row) and filled with the given array of objects - * - * @internal - * - * @param string $sClass The class of the objects (must be a common ancestor to all objects in the set) - * @param array $aObjects The list of objects to add into the set - * - * @return \DBObjectSet - * - * @throws \Exception - */ - static public function FromArray($sClass, $aObjects) + /** + * Create a set (in-memory) with just one column (i.e. one object per row) and filled with the given array of objects + * + * @internal + * + * @param string $sClass The class of the objects (must be a common ancestor to all objects in the set) + * @param array $aObjects The list of objects to add into the set + * + * @return \DBObjectSet + * + * @throws \Exception + */ + public static function FromArray($sClass, $aObjects) { $oRetSet = self::FromScratch($sClass); $oRetSet->AddObjectArray($aObjects, $sClass); return $oRetSet; } - /** - * Create a set in-memory with several classes of objects per row (with one alias per "column") - * - * **Limitation:** - * The filter/OQL query representing such a set can not be rebuilt (only the first column will be taken into account) - * - * @internal - * - * @param array $aClasses Format: array of (alias => class) - * @param array $aObjects Format: array of (array of (classalias => object)) - * - * @return \DBObjectSet - * - * @throws \Exception - */ - static public function FromArrayAssoc($aClasses, $aObjects) + /** + * Create a set in-memory with several classes of objects per row (with one alias per "column") + * + * **Limitation:** + * The filter/OQL query representing such a set can not be rebuilt (only the first column will be taken into account) + * + * @internal + * + * @param array $aClasses Format: array of (alias => class) + * @param array $aObjects Format: array of (array of (classalias => object)) + * + * @return \DBObjectSet + * + * @throws \Exception + */ + public static function FromArrayAssoc($aClasses, $aObjects) { // In a perfect world, we should create a complete tree of DBObjectSearch, // but as we lack most of the information related to the objects, @@ -384,132 +369,115 @@ class DBObjectSet implements iDBObjectSetIterator $oRetSet = new self($oFilter); $oRetSet->m_bLoaded = true; // no DB load $oRetSet->m_iNumTotalDBRows = 0; // Nothing from the DB - - foreach($aObjects as $rowIndex => $aObjectsByClassAlias) - { + + foreach ($aObjects as $rowIndex => $aObjectsByClassAlias) { $oRetSet->AddObjectExtended($aObjectsByClassAlias); } return $oRetSet; } - /** - * - * @internal - * - * @param $oObject - * @param string $sLinkSetAttCode - * @param string $sExtKeyToRemote - * - * @return \DBObjectSet - * - * @throws \Exception - * @throws \ArchivedObjectException - * @throws \CoreException - */static public function FromLinkSet($oObject, $sLinkSetAttCode, $sExtKeyToRemote) + /** + * + * @internal + * + * @param $oObject + * @param string $sLinkSetAttCode + * @param string $sExtKeyToRemote + * + * @return \DBObjectSet + * + * @throws \Exception + * @throws \ArchivedObjectException + * @throws \CoreException + */public static function FromLinkSet($oObject, $sLinkSetAttCode, $sExtKeyToRemote) { $oLinkAttCode = MetaModel::GetAttributeDef(get_class($oObject), $sLinkSetAttCode); $oExtKeyAttDef = MetaModel::GetAttributeDef($oLinkAttCode->GetLinkedClass(), $sExtKeyToRemote); $sTargetClass = $oExtKeyAttDef->GetTargetClass(); $oLinkSet = $oObject->Get($sLinkSetAttCode); - $aTargets = array(); - while ($oLink = $oLinkSet->Fetch()) - { + $aTargets = []; + while ($oLink = $oLinkSet->Fetch()) { $aTargets[] = MetaModel::GetObject($sTargetClass, $oLink->Get($sExtKeyToRemote)); } return self::FromArray($sTargetClass, $aTargets); } - /** - * Fetch all as array of DBObject - * - * Note: After calling this method, the set cursor will be at the end of the set. You might want to rewind it. - * - * @api - * - * @param bool $bWithId if true array key will be set to object id - * - * @return DBObject[] - * - * @throws \Exception - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MySQLException - */ + /** + * Fetch all as array of DBObject + * + * Note: After calling this method, the set cursor will be at the end of the set. You might want to rewind it. + * + * @api + * + * @param bool $bWithId if true array key will be set to object id + * + * @return DBObject[] + * + * @throws \Exception + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \MySQLException + */ public function ToArray($bWithId = true) { - $aRet = array(); + $aRet = []; $this->Rewind(); - while ($oObject = $this->Fetch()) - { - if ($bWithId) - { + while ($oObject = $this->Fetch()) { + if ($bWithId) { $aRet[$oObject->GetKey()] = $oObject; - } - else - { + } else { $aRet[] = $oObject; } } return $aRet; } - /** - * Fetch all as a structured array - * - * Unlike ToArray, ToArrayOfValues return the objects as an array. - * Only the scalar values will be presents (see AttributeDefinition::IsScalar()) - * - * @api - * - * @return array[] - * - * @throws \Exception - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MySQLException - */ + /** + * Fetch all as a structured array + * + * Unlike ToArray, ToArrayOfValues return the objects as an array. + * Only the scalar values will be presents (see AttributeDefinition::IsScalar()) + * + * @api + * + * @return array[] + * + * @throws \Exception + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \MySQLException + */ public function ToArrayOfValues() { - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } $this->Rewind(); $aSelectedClasses = $this->m_oFilter->GetSelectedClasses(); - $aRet = array(); + $aRet = []; $iRow = 0; - while($aObjects = $this->FetchAssoc()) - { - foreach($aObjects as $sClassAlias => $oObject) - { - if (is_null($oObject)) - { + while ($aObjects = $this->FetchAssoc()) { + foreach ($aObjects as $sClassAlias => $oObject) { + if (is_null($oObject)) { $aRet[$iRow][$sClassAlias.'.'.'id'] = null; - } - else - { + } else { $aRet[$iRow][$sClassAlias.'.'.'id'] = $oObject->GetKey(); - } - if (is_null($oObject)) - { - $sClass = $aSelectedClasses[$sClassAlias]; } - else - { + if (is_null($oObject)) { + $sClass = $aSelectedClasses[$sClassAlias]; + } else { $sClass = get_class($oObject); } - foreach(MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) - { - if ($oAttDef->IsScalar()) - { + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { + if ($oAttDef->IsScalar()) { $sAttName = $sClassAlias.'.'.$sAttCode; - if (is_null($oObject)) - { + if (is_null($oObject)) { $aRet[$iRow][$sAttName] = null; - } - else - { + } else { $aRet[$iRow][$sAttName] = $oObject->Get($sAttCode); } } @@ -520,45 +488,41 @@ class DBObjectSet implements iDBObjectSetIterator return $aRet; } - /** - * Note: After calling this method, the set cursor will be at the end of the set. You might want to rewind it. - * - * @param string $sAttCode - * @param bool $bWithId - * - * @return array - * - * @throws \Exception - * @throws \CoreException - */ + /** + * Note: After calling this method, the set cursor will be at the end of the set. You might want to rewind it. + * + * @param string $sAttCode + * @param bool $bWithId + * + * @return array + * + * @throws \Exception + * @throws \CoreException + */ public function GetColumnAsArray($sAttCode, $bWithId = true) { - $aRet = array(); + $aRet = []; $this->Rewind(); - while ($oObject = $this->Fetch()) - { - if ($bWithId) - { + while ($oObject = $this->Fetch()) { + if ($bWithId) { $aRet[$oObject->GetKey()] = $oObject->Get($sAttCode); - } - else - { + } else { $aRet[] = $oObject->Get($sAttCode); } } return $aRet; } - /** - * Retrieve the DBSearch corresponding to the objects present in this set - * - * Limitation: - * This method will NOT work for sets with several columns (i.e. several objects per row) - * - * @return \DBObjectSearch - * - * @throws \CoreException - */ + /** + * Retrieve the DBSearch corresponding to the objects present in this set + * + * Limitation: + * This method will NOT work for sets with several columns (i.e. several objects per row) + * + * @return \DBObjectSearch + * + * @throws \CoreException + */ public function GetFilter() { // Make sure that we carry on the parameters of the set with the filter @@ -567,13 +531,10 @@ class DBObjectSet implements iDBObjectSetIterator // Note: the arguments found within a set can be object (but not in a filter) // That's why PrepareQueryArguments must be invoked there $oFilter->SetInternalParams(array_merge($oFilter->GetInternalParams(), $this->m_aArgs)); - - if (count($this->m_aAddedIds) == 0) - { + + if (count($this->m_aAddedIds) == 0) { return $oFilter; - } - else - { + } else { $oIdListExpr = ListExpression::FromScalars(array_keys($this->m_aAddedIds)); $oIdExpr = new FieldExpression('id', $oFilter->GetClassAlias()); $oIdInList = new BinaryExpression($oIdExpr, 'IN', $oIdListExpr); @@ -584,7 +545,7 @@ class DBObjectSet implements iDBObjectSetIterator /** * The (common ancestor) class of the objects in the first column of this set - * + * * @return string The class of the objects in the first column */ public function GetClass() @@ -594,7 +555,7 @@ class DBObjectSet implements iDBObjectSetIterator /** * The alias for the class of the objects in the first column of this set - * + * * @return string The alias of the class in the first column */ public function GetClassAlias() @@ -604,7 +565,7 @@ class DBObjectSet implements iDBObjectSetIterator /** * The list of all classes (one per column) which are part of this set - * + * * @return array Format: alias => class */ public function GetSelectedClasses() @@ -612,13 +573,13 @@ class DBObjectSet implements iDBObjectSetIterator return $this->m_oFilter->GetSelectedClasses(); } - /** - * The root class (i.e. highest ancestor in the MeaModel class hierarchy) for the first column on this set - * - * @return string The root class for the objects in the first column of the set - * - * @throws \CoreException - */ + /** + * The root class (i.e. highest ancestor in the MeaModel class hierarchy) for the first column on this set + * + * @return string The root class for the objects in the first column of the set + * + * @throws \CoreException + */ public function GetRootClass() { return MetaModel::GetRootClass($this->GetClass()); @@ -626,7 +587,7 @@ class DBObjectSet implements iDBObjectSetIterator /** * The arguments used for building this set - * + * * @return array Format: parameter_name => value */ public function GetArgs() @@ -645,50 +606,44 @@ class DBObjectSet implements iDBObjectSetIterator $this->m_iLimitStart = $iLimitStart; } - /** - * Sets the sort order for loading the rows from the DB. Changing the order by causes a Reload. - * - * @param array $aOrderBy Format: [alias.]attcode => boolean (true = ascending, false = descending) - * - * @throws \MySQLException - */ + /** + * Sets the sort order for loading the rows from the DB. Changing the order by causes a Reload. + * + * @param array $aOrderBy Format: [alias.]attcode => boolean (true = ascending, false = descending) + * + * @throws \MySQLException + */ public function SetOrderBy($aOrderBy) { - if ($this->m_aOrderBy != $aOrderBy) - { + if ($this->m_aOrderBy != $aOrderBy) { $this->m_aOrderBy = $aOrderBy; - if ($this->m_bLoaded) - { + if ($this->m_bLoaded) { $this->m_bLoaded = false; $this->Load(); } } } - /** - * Sets the sort order for loading the rows from the DB. Changing the order by causes a Reload. - * - * @param array $aAliases Format: alias => boolean (true = ascending, false = descending). If omitted, then it defaults to all the selected classes - * - * @throws \CoreException - * @throws \MySQLException - */ + /** + * Sets the sort order for loading the rows from the DB. Changing the order by causes a Reload. + * + * @param array $aAliases Format: alias => boolean (true = ascending, false = descending). If omitted, then it defaults to all the selected classes + * + * @throws \CoreException + * @throws \MySQLException + */ public function SetOrderByClasses($aAliases = null) { - if ($aAliases === null) - { - $aAliases = array(); - foreach ($this->GetSelectedClasses() as $sAlias => $sClass) - { + if ($aAliases === null) { + $aAliases = []; + foreach ($this->GetSelectedClasses() as $sAlias => $sClass) { $aAliases[$sAlias] = true; } } - $aAttributes = array(); - foreach ($aAliases as $sAlias => $bClassDirection) - { - foreach (MetaModel::GetOrderByDefault($this->m_oFilter->GetClassName($sAlias)) as $sAttCode => $bAttributeDirection) - { + $aAttributes = []; + foreach ($aAliases as $sAlias => $bClassDirection) { + foreach (MetaModel::GetOrderByDefault($this->m_oFilter->GetClassName($sAlias)) as $sAttCode => $bAttributeDirection) { $bDirection = $bClassDirection ? $bAttributeDirection : !$bAttributeDirection; $aAttributes[$sAlias.'.'.$sAttCode] = $bDirection; } @@ -698,7 +653,7 @@ class DBObjectSet implements iDBObjectSetIterator /** * Returns the 'count' limit for loading the rows from the DB - * + * * @return int */ public function GetLimitCount() @@ -708,7 +663,7 @@ class DBObjectSet implements iDBObjectSetIterator /** * Returns the 'start' limit for loading the rows from the DB - * + * * @return int */ public function GetLimitStart() @@ -716,79 +671,71 @@ class DBObjectSet implements iDBObjectSetIterator return $this->m_iLimitStart; } - /** - * Get the sort order used for loading this set from the database - * - * Limitation: the sort order has no effect on objects added in-memory - * - * @return array Format: field_code => boolean (true = ascending, false = descending) - * - * @throws \CoreException - */ + /** + * Get the sort order used for loading this set from the database + * + * Limitation: the sort order has no effect on objects added in-memory + * + * @return array Format: field_code => boolean (true = ascending, false = descending) + * + * @throws \CoreException + */ public function GetRealSortOrder() { - if (!$this->m_bSort) - { + if (!$this->m_bSort) { // No order by - return array(); + return []; } // Get the class default sort order if not specified with the API // - if (empty($this->m_aOrderBy)) - { + if (empty($this->m_aOrderBy)) { return MetaModel::GetOrderByDefault($this->m_oFilter->GetClass()); - } - else - { + } else { return $this->m_aOrderBy; } } - /** - * Loads the set from the database. Actually performs the SQL query to retrieve the records from the DB. - * - * @throws \Exception - * @throws \MySQLException - */ + /** + * Loads the set from the database. Actually performs the SQL query to retrieve the records from the DB. + * + * @throws \Exception + * @throws \MySQLException + */ public function Load() { - if ($this->m_bLoaded) return; + if ($this->m_bLoaded) { + return; + } // Note: it is mandatory to set this value now, to protect against reentrance $this->m_bLoaded = true; $sSQL = $this->_makeSelectQuery($this->m_aAttToLoad); - - if (is_object($this->m_oSQLResult)) - { + + if (is_object($this->m_oSQLResult)) { // Free previous resultset if any $this->m_oSQLResult->free(); $this->m_oSQLResult = null; } - try - { - $oKPI = new ExecutionKPI(); + try { + $oKPI = new ExecutionKPI(); $this->m_oSQLResult = CMDBSource::Query($sSQL); - $sOQL = $this->GetPseudoOQL($this->m_oFilter, $this->GetRealSortOrder(), $this->m_iLimitCount, $this->m_iLimitStart, false); - $oKPI->ComputeStats('OQL Query Exec', $sOQL); - } catch (MySQLException $e) - { + $sOQL = $this->GetPseudoOQL($this->m_oFilter, $this->GetRealSortOrder(), $this->m_iLimitCount, $this->m_iLimitStart, false); + $oKPI->ComputeStats('OQL Query Exec', $sOQL); + } catch (MySQLException $e) { // 1116 = ER_TOO_MANY_TABLES // https://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html#error_er_too_many_tables - if ($e->getCode() != 1116) - { + if ($e->getCode() != 1116) { throw $e; } // N.689 Workaround for the 61 max joins in MySQL : full lazy load ! - $aAttToLoad = array(); - foreach($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) - { - $aAttToLoad[$sClassAlias] = array(); + $aAttToLoad = []; + foreach ($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) { + $aAttToLoad[$sClassAlias] = []; $bIsAbstractClass = MetaModel::IsAbstract($sClass); $bIsClassWithChildren = MetaModel::HasChildrenClasses($sClass); - if ($bIsAbstractClass || $bIsClassWithChildren) - { + if ($bIsAbstractClass || $bIsClassWithChildren) { // we need finalClass field at least to be able to instantiate the real corresponding object ! $aAttToLoad[$sClassAlias]['finalclass'] = MetaModel::GetAttributeDef($sClass, 'finalclass'); } @@ -797,65 +744,74 @@ class DBObjectSet implements iDBObjectSetIterator $this->m_oSQLResult = CMDBSource::Query($sSQL); // may fail again } - if ($this->m_oSQLResult === false) return; + if ($this->m_oSQLResult === false) { + return; + } - if ((($this->m_iLimitCount == 0) || ($this->m_iLimitCount > $this->m_oSQLResult->num_rows)) && ($this->m_iLimitStart == 0)) - { + if ((($this->m_iLimitCount == 0) || ($this->m_iLimitCount > $this->m_oSQLResult->num_rows)) && ($this->m_iLimitStart == 0)) { $this->m_iNumTotalDBRows = $this->m_oSQLResult->num_rows; } $this->m_iNumLoadedDBRows = $this->m_oSQLResult->num_rows; } - /** - * @param string[] $aAttToLoad - * - * @return string SQL query - * - * @throws \CoreException - * @throws \MissingQueryArgument - */ + /** + * @param string[] $aAttToLoad + * + * @return string SQL query + * + * @throws \CoreException + * @throws \MissingQueryArgument + */ private function _makeSelectQuery($aAttToLoad) { - if ($this->m_iLimitCount > 0) - { - $sSQL = $this->m_oFilter->MakeSelectQuery($this->GetRealSortOrder(), $this->m_aArgs, $aAttToLoad, - $this->m_aExtendedDataSpec, $this->m_iLimitCount, $this->m_iLimitStart); - } - else - { - $sSQL = $this->m_oFilter->MakeSelectQuery($this->GetRealSortOrder(), $this->m_aArgs, $aAttToLoad, - $this->m_aExtendedDataSpec); + if ($this->m_iLimitCount > 0) { + $sSQL = $this->m_oFilter->MakeSelectQuery( + $this->GetRealSortOrder(), + $this->m_aArgs, + $aAttToLoad, + $this->m_aExtendedDataSpec, + $this->m_iLimitCount, + $this->m_iLimitStart + ); + } else { + $sSQL = $this->m_oFilter->MakeSelectQuery( + $this->GetRealSortOrder(), + $this->m_aArgs, + $aAttToLoad, + $this->m_aExtendedDataSpec + ); } return $sSQL; } - /** - * The total number of rows in this set. Independently of the SetLimit used for loading the set and taking into - * account the rows added in-memory. - * - * May actually perform the SQL query SELECT COUNT... if the set was not previously loaded, or loaded with a - * SetLimit - * - * @api - * @return int The total number of rows for this set. - * - * @throws \CoreException - * @throws \MissingQueryArgument - * @throws \MySQLException - * @throws \MySQLHasGoneAwayException - */ + /** + * The total number of rows in this set. Independently of the SetLimit used for loading the set and taking into + * account the rows added in-memory. + * + * May actually perform the SQL query SELECT COUNT... if the set was not previously loaded, or loaded with a + * SetLimit + * + * @api + * @return int The total number of rows for this set. + * + * @throws \CoreException + * @throws \MissingQueryArgument + * @throws \MySQLException + * @throws \MySQLHasGoneAwayException + */ public function Count(): int { - if (is_null($this->m_iNumTotalDBRows)) - { - $oKPI = new ExecutionKPI(); - $sSQL = $this->m_oFilter->MakeSelectQuery(array(), $this->m_aArgs, null, null, 0, 0, true); + if (is_null($this->m_iNumTotalDBRows)) { + $oKPI = new ExecutionKPI(); + $sSQL = $this->m_oFilter->MakeSelectQuery([], $this->m_aArgs, null, null, 0, 0, true); $resQuery = CMDBSource::Query($sSQL); - $sOQL = $this->GetPseudoOQL($this->m_oFilter, array(), 0, 0, true); - $oKPI->ComputeStats('OQL Query Exec', $sOQL); - if (!$resQuery) return 0; + $sOQL = $this->GetPseudoOQL($this->m_oFilter, [], 0, 0, true); + $oKPI->ComputeStats('OQL Query Exec', $sOQL); + if (!$resQuery) { + return 0; + } $aRow = CMDBSource::FetchArray($resQuery); CMDBSource::FreeResult($resQuery); @@ -865,41 +821,41 @@ class DBObjectSet implements iDBObjectSetIterator return $this->m_iNumTotalDBRows + count($this->m_aAddedObjects); // Does it fix Trac #887 ?? } - /** - * @param \DBSearch $oFilter - * @param array $aOrder - * @param int $iLimitCount - * @param int $iLimitStart - * @param bool $bCount - * - * @return string - */ - private function GetPseudoOQL($oFilter, $aOrder, $iLimitCount, $iLimitStart, $bCount) - { - $sOQL = ''; - if ($bCount) { - $sOQL .= 'COUNT '; - } - $sOQL .= $oFilter->ToOQL(); + /** + * @param \DBSearch $oFilter + * @param array $aOrder + * @param int $iLimitCount + * @param int $iLimitStart + * @param bool $bCount + * + * @return string + */ + private function GetPseudoOQL($oFilter, $aOrder, $iLimitCount, $iLimitStart, $bCount) + { + $sOQL = ''; + if ($bCount) { + $sOQL .= 'COUNT '; + } + $sOQL .= $oFilter->ToOQL(); - if ($iLimitCount > 0) { - $sOQL .= ' LIMIT '; - if ($iLimitStart > 0) { - $sOQL .= "$iLimitStart, "; - } - $sOQL .= "$iLimitCount"; - } + if ($iLimitCount > 0) { + $sOQL .= ' LIMIT '; + if ($iLimitStart > 0) { + $sOQL .= "$iLimitStart, "; + } + $sOQL .= "$iLimitCount"; + } - if (count($aOrder) > 0) { - $sOQL .= ' ORDER BY '; - $aOrderBy = []; - foreach ($aOrder as $sAttCode => $bAsc) { - $aOrderBy[] = $sAttCode.' '.($bAsc ? 'ASC' : 'DESC'); - } - $sOQL .= implode(', ', $aOrderBy); - } - return $sOQL; - } + if (count($aOrder) > 0) { + $sOQL .= ' ORDER BY '; + $aOrderBy = []; + foreach ($aOrder as $sAttCode => $bAsc) { + $aOrderBy[] = $sAttCode.' '.($bAsc ? 'ASC' : 'DESC'); + } + $sOQL .= implode(', ', $aOrderBy); + } + return $sOQL; + } /** * Check if the count exceeds a given limit @@ -915,26 +871,20 @@ class DBObjectSet implements iDBObjectSetIterator */ public function CountExceeds($iLimit) { - if (is_null($this->m_iNumTotalDBRows)) - { - $oKPI = new ExecutionKPI(); - $sSQL = $this->m_oFilter->MakeSelectQuery(array(), $this->m_aArgs, null, null, $iLimit + 2, 0, true); + if (is_null($this->m_iNumTotalDBRows)) { + $oKPI = new ExecutionKPI(); + $sSQL = $this->m_oFilter->MakeSelectQuery([], $this->m_aArgs, null, null, $iLimit + 2, 0, true); $resQuery = CMDBSource::Query($sSQL); - $sOQL = $this->GetPseudoOQL($this->m_oFilter, array(), $iLimit + 2, 0, true); - $oKPI->ComputeStats('OQL Query Exec', $sOQL); - if ($resQuery) - { + $sOQL = $this->GetPseudoOQL($this->m_oFilter, [], $iLimit + 2, 0, true); + $oKPI->ComputeStats('OQL Query Exec', $sOQL); + if ($resQuery) { $aRow = CMDBSource::FetchArray($resQuery); $iCount = intval($aRow['COUNT']); CMDBSource::FreeResult($resQuery); - } - else - { + } else { $iCount = 0; } - } - else - { + } else { $iCount = $this->m_iNumTotalDBRows; } @@ -955,26 +905,20 @@ class DBObjectSet implements iDBObjectSetIterator */ public function CountWithLimit($iLimit) { - if (is_null($this->m_iNumTotalDBRows)) - { - $oKPI = new ExecutionKPI(); - $sSQL = $this->m_oFilter->MakeSelectQuery(array(), $this->m_aArgs, null, null, $iLimit + 2, 0, true); + if (is_null($this->m_iNumTotalDBRows)) { + $oKPI = new ExecutionKPI(); + $sSQL = $this->m_oFilter->MakeSelectQuery([], $this->m_aArgs, null, null, $iLimit + 2, 0, true); $resQuery = CMDBSource::Query($sSQL); - $sOQL = $this->GetPseudoOQL($this->m_oFilter, array(), $iLimit + 2, 0, true); - $oKPI->ComputeStats('OQL Query Exec', $sOQL); - if ($resQuery) - { + $sOQL = $this->GetPseudoOQL($this->m_oFilter, [], $iLimit + 2, 0, true); + $oKPI->ComputeStats('OQL Query Exec', $sOQL); + if ($resQuery) { $aRow = CMDBSource::FetchArray($resQuery); CMDBSource::FreeResult($resQuery); $iCount = intval($aRow['COUNT']); - } - else - { + } else { $iCount = 0; } - } - else - { + } else { $iCount = $this->m_iNumTotalDBRows; } @@ -983,7 +927,7 @@ class DBObjectSet implements iDBObjectSetIterator /** * Number of rows available in memory (loaded from DB + added in memory) - * + * * @return number The number of rows available for Fetch'ing */ protected function CountLoaded() @@ -991,53 +935,44 @@ class DBObjectSet implements iDBObjectSetIterator return $this->m_iNumLoadedDBRows + count($this->m_aAddedObjects); } - /** - * Fetch an object (with the given class alias) at the current position in the set and move the cursor to the next position. - * - * @api - * - * @param string $sRequestedClassAlias The class alias to fetch (defaults to the first selected class) - * - * @return \DBObject The fetched object or null when at the end - * - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MySQLException - */ + /** + * Fetch an object (with the given class alias) at the current position in the set and move the cursor to the next position. + * + * @api + * + * @param string $sRequestedClassAlias The class alias to fetch (defaults to the first selected class) + * + * @return \DBObject The fetched object or null when at the end + * + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \MySQLException + */ public function Fetch($sRequestedClassAlias = '') { - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } - if ($this->m_iCurrRow >= $this->CountLoaded()) - { + if ($this->m_iCurrRow >= $this->CountLoaded()) { return null; } - - if (strlen($sRequestedClassAlias) == 0) - { + + if (strlen($sRequestedClassAlias) == 0) { $sRequestedClassAlias = $this->m_oFilter->GetClassAlias(); } - if ($this->m_iCurrRow < $this->m_iNumLoadedDBRows) - { + if ($this->m_iCurrRow < $this->m_iNumLoadedDBRows) { // Pick the row from the database $aRow = CMDBSource::FetchArray($this->m_oSQLResult); - foreach ($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) - { - if ($sRequestedClassAlias == $sClassAlias) - { - if (is_null($aRow[$sClassAlias.'id'])) - { + foreach ($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) { + if ($sRequestedClassAlias == $sClassAlias) { + if (is_null($aRow[$sClassAlias.'id'])) { $oRetObj = null; - } - else - { - try - { + } else { + try { $oRetObj = MetaModel::GetObjectByRow($sClass, $aRow, $sClassAlias, $this->m_aAttToLoad, $this->m_aExtendedDataSpec); - } - catch (CoreException $e) - { + } catch (CoreException $e) { $this->m_iCurrRow++; $oRetObj = $this->Fetch($sRequestedClassAlias); } @@ -1045,9 +980,7 @@ class DBObjectSet implements iDBObjectSetIterator break; } } - } - else - { + } else { // Pick the row from the objects added *in memory* $oRetObj = $this->m_aAddedObjects[$this->m_iCurrRow - $this->m_iNumLoadedDBRows][$sRequestedClassAlias]; } @@ -1055,50 +988,43 @@ class DBObjectSet implements iDBObjectSetIterator return $oRetObj; } - /** - * Fetch the whole row of objects (if several classes have been specified in the query) and move the cursor to the next position - * - * @api - * - * @return array An associative with the format 'classAlias' => $oObj representing the current row of the set. Returns null when at the end. - * - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MySQLException - */ + /** + * Fetch the whole row of objects (if several classes have been specified in the query) and move the cursor to the next position + * + * @api + * + * @return array An associative with the format 'classAlias' => $oObj representing the current row of the set. Returns null when at the end. + * + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \MySQLException + */ public function FetchAssoc() { - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } - if ($this->m_iCurrRow >= $this->CountLoaded()) - { + if ($this->m_iCurrRow >= $this->CountLoaded()) { return null; } - - if ($this->m_iCurrRow < $this->m_iNumLoadedDBRows) - { + + if ($this->m_iCurrRow < $this->m_iNumLoadedDBRows) { // Pick the row from the database $aRow = CMDBSource::FetchArray($this->m_oSQLResult); - $aRetObjects = array(); - foreach ($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) - { - if (is_null($aRow[$sClassAlias.'id'])) - { + $aRetObjects = []; + foreach ($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) { + if (is_null($aRow[$sClassAlias.'id'])) { $oObj = null; - } - else - { + } else { $oObj = MetaModel::GetObjectByRow($sClass, $aRow, $sClassAlias, $this->m_aAttToLoad, $this->m_aExtendedDataSpec); } $aRetObjects[$sClassAlias] = $oObj; } - } - else - { + } else { // Pick the row from the objects added *in memory* - $aRetObjects = array(); - foreach ($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) - { + $aRetObjects = []; + foreach ($this->m_oFilter->GetSelectedClasses() as $sClassAlias => $sClass) { $aRetObjects[$sClassAlias] = $this->m_aAddedObjects[$this->m_iCurrRow - $this->m_iNumLoadedDBRows][$sClassAlias]; } } @@ -1115,182 +1041,181 @@ class DBObjectSet implements iDBObjectSetIterator */ public function Rewind() { - if ($this->m_bLoaded) - { + if ($this->m_bLoaded) { $this->Seek(0); } } - /** - * Position the cursor (for iterating in the set) to the given position - * - * @param int $iRow - * - * @throws \CoreException - * @throws \MissingQueryArgument - * @throws \MySQLException - * @throws \MySQLHasGoneAwayException - * @since 3.1.0 N°4517 Now returns void for return type to match parent class and be compatible with PHP 8.1 - */ + /** + * Position the cursor (for iterating in the set) to the given position + * + * @param int $iRow + * + * @throws \CoreException + * @throws \MissingQueryArgument + * @throws \MySQLException + * @throws \MySQLHasGoneAwayException + * @since 3.1.0 N°4517 Now returns void for return type to match parent class and be compatible with PHP 8.1 + */ public function Seek($iRow): void { - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } $this->m_iCurrRow = min($iRow, $this->Count()); - if ($this->m_iCurrRow < $this->m_iNumLoadedDBRows) - { + if ($this->m_iCurrRow < $this->m_iNumLoadedDBRows) { $this->m_oSQLResult->data_seek($this->m_iCurrRow); } } - /** - * Add an object to the current set (in-memory only, nothing is written to the database) - * - * Limitation: - * Sets with several objects per row are NOT supported - * - * @param \DBObject $oObject The object to add - * @param string $sClassAlias The alias for the class of the object - * - * @throws \MySQLException - */ + /** + * Add an object to the current set (in-memory only, nothing is written to the database) + * + * Limitation: + * Sets with several objects per row are NOT supported + * + * @param \DBObject $oObject The object to add + * @param string $sClassAlias The alias for the class of the object + * + * @throws \MySQLException + */ public function AddObject($oObject, $sClassAlias = '') { - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } - if (strlen($sClassAlias) == 0) - { + if (strlen($sClassAlias) == 0) { $sClassAlias = $this->m_oFilter->GetClassAlias(); } $iNextPos = count($this->m_aAddedObjects); $this->m_aAddedObjects[$iNextPos][$sClassAlias] = $oObject; - if (!is_null($oObject)) - { + if (!is_null($oObject)) { $this->m_aAddedIds[$oObject->GetKey()] = true; } } - /** - * Add a hash containig objects into the current set. - * - * The expected format for the hash is: $aObjectArray[$idx][$sClassAlias] => $oObject - * Limitation: - * The aliases MUST match the ones used in the current set - * Only the ID of the objects associated to the first alias (column) is remembered.. in case we have to rebuild a filter - * - * @param array $aObjectArray - * - * @throws \MySQLException - */ + /** + * Add a hash containig objects into the current set. + * + * The expected format for the hash is: $aObjectArray[$idx][$sClassAlias] => $oObject + * Limitation: + * The aliases MUST match the ones used in the current set + * Only the ID of the objects associated to the first alias (column) is remembered.. in case we have to rebuild a filter + * + * @param array $aObjectArray + * + * @throws \MySQLException + */ protected function AddObjectExtended($aObjectArray) { - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } $iNextPos = count($this->m_aAddedObjects); - + $sFirstAlias = $this->m_oFilter->GetClassAlias(); - foreach ($aObjectArray as $sClassAlias => $oObject) - { + foreach ($aObjectArray as $sClassAlias => $oObject) { $this->m_aAddedObjects[$iNextPos][$sClassAlias] = $oObject; - - if (!is_null($oObject) && ($sFirstAlias == $sClassAlias)) - { + + if (!is_null($oObject) && ($sFirstAlias == $sClassAlias)) { $this->m_aAddedIds[$oObject->GetKey()] = true; } } } - /** - * Add an array of objects into the current set - * - * Limitation: - * Sets with several classes per row are not supported (use AddObjectExtended instead) - * - * @param array $aObjects The array of objects to add - * @param string $sClassAlias The Alias of the class for the added objects - * - * @throws \MySQLException - */ + /** + * Add an array of objects into the current set + * + * Limitation: + * Sets with several classes per row are not supported (use AddObjectExtended instead) + * + * @param array $aObjects The array of objects to add + * @param string $sClassAlias The Alias of the class for the added objects + * + * @throws \MySQLException + */ public function AddObjectArray($aObjects, $sClassAlias = '') { - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } // #@# todo - add a check on the object class ? - foreach ($aObjects as $oObj) - { + foreach ($aObjects as $oObj) { $this->AddObject($oObj, $sClassAlias); } } /** * Append a given set to the current object. (This method used to be named Merge) - * + * * Limitation: * The added objects are not checked for duplicates (i.e. one cann add several times the same object, or add an object already present in the set). - * + * * @param \DBObjectSet $oObjectSet The set to append - * + * * @throws \CoreException */ public function Append(DBObjectSet $oObjectSet) { - if ($this->GetRootClass() != $oObjectSet->GetRootClass()) - { + if ($this->GetRootClass() != $oObjectSet->GetRootClass()) { throw new CoreException("Could not merge two objects sets if they don't have the same root class"); } - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } $oObjectSet->Seek(0); - while ($oObject = $oObjectSet->Fetch()) - { + while ($oObject = $oObjectSet->Fetch()) { $this->AddObject($oObject); } } - /** - * Create a set containing the objects present in both the current set and another specified set - * - * Limitations: - * Will NOT work if only a subset of the sets was loaded with SetLimit. - * Works only with sets made of objects loaded from the database since the comparison is based on the objects identifiers - * - * @param \DBObjectSet $oObjectSet The set to intersect with. The current position inside the set will be lost (= at the end) - * - * @return \DBObjectSet A new set of objects, containing the objects present in both sets (based on their identifier) - * - * @throws \Exception - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MissingQueryArgument - * @throws \MySQLException - * @throws \MySQLHasGoneAwayException - */ + /** + * Create a set containing the objects present in both the current set and another specified set + * + * Limitations: + * Will NOT work if only a subset of the sets was loaded with SetLimit. + * Works only with sets made of objects loaded from the database since the comparison is based on the objects identifiers + * + * @param \DBObjectSet $oObjectSet The set to intersect with. The current position inside the set will be lost (= at the end) + * + * @return \DBObjectSet A new set of objects, containing the objects present in both sets (based on their identifier) + * + * @throws \Exception + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \MissingQueryArgument + * @throws \MySQLException + * @throws \MySQLHasGoneAwayException + */ public function CreateIntersect(DBObjectSet $oObjectSet) { - if ($this->GetRootClass() != $oObjectSet->GetRootClass()) - { + if ($this->GetRootClass() != $oObjectSet->GetRootClass()) { throw new CoreException("Could not 'intersect' two objects sets if they don't have the same root class"); } - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } - $aId2Row = array(); + $aId2Row = []; $iCurrPos = $this->m_iCurrRow; // Save the cursor $idx = 0; - while($oObj = $this->Fetch()) - { + while ($oObj = $this->Fetch()) { $aId2Row[$oObj->GetKey()] = $idx; $idx++; } - + $oNewSet = DBObjectSet::FromScratch($this->GetClass()); $oObjectSet->Seek(0); - while ($oObject = $oObjectSet->Fetch()) - { - if (array_key_exists($oObject->GetKey(), $aId2Row)) - { + while ($oObject = $oObjectSet->Fetch()) { + if (array_key_exists($oObject->GetKey(), $aId2Row)) { $oNewSet->AddObject($oObject); } } @@ -1298,34 +1223,34 @@ class DBObjectSet implements iDBObjectSetIterator return $oNewSet; } - /** - * Compare two sets of objects to determine if their content is identical or not. - * - * Limitation: - * Works only for sets of 1 column (i.e. one class of object selected) - * - * @param \DBObjectSet $oObjectSet - * @param array $aExcludeColumns The list of columns to exclude frop the comparison - * - * @return boolean True if the sets are identical, false otherwise - * - * @throws \CoreException - */ - public function HasSameContents(DBObjectSet $oObjectSet, $aExcludeColumns = array()) - { + /** + * Compare two sets of objects to determine if their content is identical or not. + * + * Limitation: + * Works only for sets of 1 column (i.e. one class of object selected) + * + * @param \DBObjectSet $oObjectSet + * @param array $aExcludeColumns The list of columns to exclude frop the comparison + * + * @return boolean True if the sets are identical, false otherwise + * + * @throws \CoreException + */ + public function HasSameContents(DBObjectSet $oObjectSet, $aExcludeColumns = []) + { $oComparator = new DBObjectSetComparator($this, $oObjectSet, $aExcludeColumns); return $oComparator->SetsAreEquivalent(); } /** * Build a new set (in memory) made of objects of the given set which are NOT present in the current set - * + * * Limitations: * The objects inside the set must be written in the database since the comparison is based on their identifiers * Sets with several objects per row are NOT supported - * + * * @param \DBObjectSet $oObjectSet - * + * * @return \DBObjectSet The "delta" set. * * @throws \Exception @@ -1333,17 +1258,17 @@ class DBObjectSet implements iDBObjectSetIterator */ public function CreateDelta(DBObjectSet $oObjectSet) { - if ($this->GetRootClass() != $oObjectSet->GetRootClass()) - { + if ($this->GetRootClass() != $oObjectSet->GetRootClass()) { throw new CoreException("Could not 'delta' two objects sets if they don't have the same root class"); } - if (!$this->m_bLoaded) $this->Load(); + if (!$this->m_bLoaded) { + $this->Load(); + } - $aId2Row = array(); + $aId2Row = []; $iCurrPos = $this->m_iCurrRow; // Save the cursor $idx = 0; - while($oObj = $this->Fetch()) - { + while ($oObj = $this->Fetch()) { $aId2Row[$oObj->GetKey()] = $idx; $idx++; } @@ -1351,10 +1276,8 @@ class DBObjectSet implements iDBObjectSetIterator $oNewSet = DBObjectSet::FromScratch($this->GetClass()); $oObjectSet->Seek(0); - while ($oObject = $oObjectSet->Fetch()) - { - if (!array_key_exists($oObject->GetKey(), $aId2Row)) - { + while ($oObject = $oObjectSet->Fetch()) { + if (!array_key_exists($oObject->GetKey(), $aId2Row)) { $oNewSet->AddObject($oObject); } } @@ -1362,145 +1285,126 @@ class DBObjectSet implements iDBObjectSetIterator return $oNewSet; } - /** - * Compute the "RelatedObjects" (forward or "down" direction) for the set - * for the specified relation - * - * @param string $sRelCode The code of the relation to use for the computation - * @param int $iMaxDepth Maximum recursion depth - * @param bool $bEnableRedundancy - * - * @return \RelationGraph The graph of all the related objects - * - * @throws \Exception - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MySQLException - */ + /** + * Compute the "RelatedObjects" (forward or "down" direction) for the set + * for the specified relation + * + * @param string $sRelCode The code of the relation to use for the computation + * @param int $iMaxDepth Maximum recursion depth + * @param bool $bEnableRedundancy + * + * @return \RelationGraph The graph of all the related objects + * + * @throws \Exception + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \MySQLException + */ public function GetRelatedObjectsDown($sRelCode, $iMaxDepth = 99, $bEnableRedundancy = true) { $oGraph = new RelationGraph(); $this->Rewind(); - while($oObj = $this->Fetch()) - { + while ($oObj = $this->Fetch()) { $oGraph->AddSourceObject($oObj); } $oGraph->ComputeRelatedObjectsDown($sRelCode, $iMaxDepth, $bEnableRedundancy); return $oGraph; } - /** - * Compute the "RelatedObjects" (reverse or "up" direction) for the set - * for the specified relation - * - * @param string $sRelCode The code of the relation to use for the computation - * @param int $iMaxDepth Maximum recursion depth - * @param bool $bEnableRedundancy - * - * @return \RelationGraph The graph of all the related objects - * - * @throws \Exception - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MySQLException - */ + /** + * Compute the "RelatedObjects" (reverse or "up" direction) for the set + * for the specified relation + * + * @param string $sRelCode The code of the relation to use for the computation + * @param int $iMaxDepth Maximum recursion depth + * @param bool $bEnableRedundancy + * + * @return \RelationGraph The graph of all the related objects + * + * @throws \Exception + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \MySQLException + */ public function GetRelatedObjectsUp($sRelCode, $iMaxDepth = 99, $bEnableRedundancy = true) { $oGraph = new RelationGraph(); $this->Rewind(); - while($oObj = $this->Fetch()) - { + while ($oObj = $this->Fetch()) { $oGraph->AddSinkObject($oObj); } $oGraph->ComputeRelatedObjectsUp($sRelCode, $iMaxDepth, $bEnableRedundancy); return $oGraph; } - /** - * Builds an object that contains the values that are common to all the objects - * in the set. If for a given attribute, objects in the set have various values - * then the resulting object will contain null for this value. - * - * @param array $aValues Hash Output: the distribution of the values, in the set, for each attribute - * - * @return \DBObject The object with the common values - * - * @throws \Exception - * @throws \CoreException - * @throws \CoreUnexpectedValue - * @throws \MySQLException - */ + /** + * Builds an object that contains the values that are common to all the objects + * in the set. If for a given attribute, objects in the set have various values + * then the resulting object will contain null for this value. + * + * @param array $aValues Hash Output: the distribution of the values, in the set, for each attribute + * + * @return \DBObject The object with the common values + * + * @throws \Exception + * @throws \CoreException + * @throws \CoreUnexpectedValue + * @throws \MySQLException + */ public function ComputeCommonObject(&$aValues) { $sClass = $this->GetClass(); $aList = MetaModel::ListAttributeDefs($sClass); - $aValues = array(); - foreach($aList as $sAttCode => $oAttDef) - { - if ($oAttDef->IsScalar()) - { - $aValues[$sAttCode] = array(); + $aValues = []; + foreach ($aList as $sAttCode => $oAttDef) { + if ($oAttDef->IsScalar()) { + $aValues[$sAttCode] = []; } } $this->Rewind(); - while($oObj = $this->Fetch()) - { - foreach($aList as $sAttCode => $oAttDef) - { - if ($oAttDef->IsScalar() && $oAttDef->IsWritable()) - { + while ($oObj = $this->Fetch()) { + foreach ($aList as $sAttCode => $oAttDef) { + if ($oAttDef->IsScalar() && $oAttDef->IsWritable()) { $currValue = $oObj->Get($sAttCode); - if (is_object($currValue)) continue; // Skip non scalar values... - if(!array_key_exists($currValue, $aValues[$sAttCode])) - { - $aValues[$sAttCode][$currValue] = array('count' => 1, 'display' => $oObj->GetAsHTML($sAttCode)); - } - else - { - $aValues[$sAttCode][$currValue]['count']++; + if (is_object($currValue)) { + continue; + } // Skip non scalar values... + if (!array_key_exists($currValue, $aValues[$sAttCode])) { + $aValues[$sAttCode][$currValue] = ['count' => 1, 'display' => $oObj->GetAsHTML($sAttCode)]; + } else { + $aValues[$sAttCode][$currValue]['count']++; } } } } - - foreach($aValues as $sAttCode => $aMultiValues) - { - if (count($aMultiValues) > 1) - { + + foreach ($aValues as $sAttCode => $aMultiValues) { + if (count($aMultiValues) > 1) { uasort($aValues[$sAttCode], 'HashCountComparison'); } } - - - // Now create an object that has values for the homogenous values only + + // Now create an object that has values for the homogenous values only $oCommonObj = new $sClass(); // @@ What if the class is abstract ? - $aComments = array(); + $aComments = []; $iFormId = cmdbAbstractObject::GetNextFormId(); // Identifier that prefixes all the form fields $sReadyScript = ''; - $aDependsOn = array(); + $aDependsOn = []; $sFormPrefix = '2_'; - foreach($aList as $sAttCode => $oAttDef) - { - if ($oAttDef->IsScalar() && $oAttDef->IsWritable()) - { - if ($oAttDef->GetEditClass() == 'One Way Password') - { + foreach ($aList as $sAttCode => $oAttDef) { + if ($oAttDef->IsScalar() && $oAttDef->IsWritable()) { + if ($oAttDef->GetEditClass() == 'One Way Password') { $oCommonObj->Set($sAttCode, null); - } - else - { + } else { $iCount = count($aValues[$sAttCode]); - if ($iCount == 1) - { + if ($iCount == 1) { // Homogenous value reset($aValues[$sAttCode]); $aKeys = array_keys($aValues[$sAttCode]); $currValue = $aKeys[0]; // The only value is the first key $oCommonObj->Set($sAttCode, $currValue); - } - else - { + } else { // Non-homogenous value $oCommonObj->Set($sAttCode, null); } @@ -1520,21 +1424,18 @@ class DBObjectSet implements iDBObjectSetIterator // The complete list of arguments will include magic arguments (e.g. current_user->attcode) $aScalarArgs = MetaModel::PrepareQueryArguments($this->m_oFilter->GetInternalParams(), $this->m_aArgs, $this->m_oFilter->GetExpectedArguments()); $aConst = $this->m_oFilter->ListConstantFields(); - - foreach($aConst as $sClassAlias => $aVals) - { - foreach($aVals as $sCode => $oExpr) - { - if (is_object($oExpr)) // Array_merge_recursive creates an array when the same key is present multiple times... ignore them - { + + foreach ($aConst as $sClassAlias => $aVals) { + foreach ($aVals as $sCode => $oExpr) { + if (is_object($oExpr)) { // Array_merge_recursive creates an array when the same key is present multiple times... ignore them $oScalarExpr = $oExpr->GetAsScalar($aScalarArgs); $aConst[$sClassAlias][$sCode] = $oScalarExpr->GetValue(); } } } - return $aConst; + return $aConst; } - + public function ApplyParameters() { $aAllArgs = MetaModel::PrepareQueryArguments($this->m_oFilter->GetInternalParams(), $this->m_aArgs, $this->m_oFilter->GetExpectedArguments()); @@ -1549,11 +1450,10 @@ class DBObjectSet implements iDBObjectSetIterator */ function HashCountComparison($a, $b) // Sort descending on 'count' { - if ($a['count'] == $b['count']) - { - return 0; - } - return ($a['count'] > $b['count']) ? -1 : 1; + if ($a['count'] == $b['count']) { + return 0; + } + return ($a['count'] > $b['count']) ? -1 : 1; } /** @@ -1561,7 +1461,7 @@ function HashCountComparison($a, $b) // Sort descending on 'count' * The FIRST SET MUST BE LOADED FROM THE DATABASE, the second one can be a set of objects in memory * When computing the actual differences, the algorithm tries to preserve as much as possible the EXISTING * objects (i.e. prefers 'modified' to 'removed' + 'added') - * + * * LIMITATIONS: * - only DBObjectSets with one column (i.e. one class of object selected) are supported * - the first set must be the one loaded from the database @@ -1590,7 +1490,7 @@ class DBObjectSetComparator protected $sAdditionalKeyColumn; protected $aAdditionalKeys; - + /** * Initializes the comparator * @param iDBObjectSetIterator $oSet1 The first set of objects to compare, or null @@ -1598,63 +1498,55 @@ class DBObjectSetComparator * @param array $aExcludedColumns The list of columns (= attribute codes) to exclude from the comparison * @param string $sAdditionalKeyColumn The attribute code of an additional column to be considered as a key indentifying the object (useful for n:n links) */ - public function __construct(iDBObjectSetIterator $oSet1, iDBObjectSetIterator $oSet2, $aExcludedColumns = array(), $sAdditionalKeyColumn = null) + public function __construct(iDBObjectSetIterator $oSet1, iDBObjectSetIterator $oSet2, $aExcludedColumns = [], $sAdditionalKeyColumn = null) { $this->aFingerprints1 = null; $this->aFingerprints2 = null; - $this->aIDs1 = array(); - $this->aIDs2 = array(); + $this->aIDs1 = []; + $this->aIDs2 = []; $this->aExcludedColumns = $aExcludedColumns; $this->sAdditionalKeyColumn = $sAdditionalKeyColumn; $this->aAdditionalKeys = null; $this->oSet1 = $oSet1; - $this->oSet2 = $oSet2; + $this->oSet2 = $oSet2; } - /** - * Builds the lists of fingerprints and initializes internal structures, if it was not already done - * - * @internal - * - * @throws \CoreException - */ + /** + * Builds the lists of fingerprints and initializes internal structures, if it was not already done + * + * @internal + * + * @throws \CoreException + */ protected function ComputeFingerprints() { - if ($this->aFingerprints1 === null) - { - $this->aFingerprints1 = array(); - $this->aFingerprints2 = array(); - $this->aAdditionalKeys = array(); - - if ($this->oSet1 !== null) - { + if ($this->aFingerprints1 === null) { + $this->aFingerprints1 = []; + $this->aFingerprints2 = []; + $this->aAdditionalKeys = []; + + if ($this->oSet1 !== null) { $this->oSet1->Rewind(); - while($oObj = $this->oSet1->Fetch()) - { + while ($oObj = $this->oSet1->Fetch()) { $sFingerprint = $oObj->Fingerprint($this->aExcludedColumns); $this->aFingerprints1[$sFingerprint] = $oObj; - if (!$oObj->IsNew()) - { + if (!$oObj->IsNew()) { $this->aIDs1[$oObj->GetKey()] = $oObj; } } $this->oSet1->Rewind(); } - - if ($this->oSet2 !== null) - { + + if ($this->oSet2 !== null) { $this->oSet2->Rewind(); - while($oObj = $this->oSet2->Fetch()) - { + while ($oObj = $this->oSet2->Fetch()) { $sFingerprint = $oObj->Fingerprint($this->aExcludedColumns); $this->aFingerprints2[$sFingerprint] = $oObj; - if (!$oObj->IsNew()) - { + if (!$oObj->IsNew()) { $this->aIDs2[$oObj->GetKey()] = $oObj; } - - if ($this->sAdditionalKeyColumn !== null) - { + + if ($this->sAdditionalKeyColumn !== null) { $this->aAdditionalKeys[$oObj->Get($this->sAdditionalKeyColumn)] = $oObj; } } @@ -1663,82 +1555,75 @@ class DBObjectSetComparator } } - /** - * Tells if the sets are equivalent or not. Returns as soon as the first difference is found. - * - * @internal - * - * @return boolean true if the set have an equivalent content, false otherwise - * - * @throws \CoreException - */ + /** + * Tells if the sets are equivalent or not. Returns as soon as the first difference is found. + * + * @internal + * + * @return boolean true if the set have an equivalent content, false otherwise + * + * @throws \CoreException + */ public function SetsAreEquivalent() { - if (($this->oSet1 === null) && ($this->oSet2 === null)) - { + if (($this->oSet1 === null) && ($this->oSet2 === null)) { // Both sets are empty, they are equal return true; - } - else if (($this->oSet1 === null) || ($this->oSet2 === null)) - { + } elseif (($this->oSet1 === null) || ($this->oSet2 === null)) { // one of them is empty, they are different return false; } - - if (($this->oSet1->GetRootClass() != $this->oSet2->GetRootClass()) || ($this->oSet1->Count() != $this->oSet2->Count())) return false; - + + if (($this->oSet1->GetRootClass() != $this->oSet2->GetRootClass()) || ($this->oSet1->Count() != $this->oSet2->Count())) { + return false; + } + $this->ComputeFingerprints(); - + // Check that all objects in Set1 are also in Set2 - foreach($this->aFingerprints1 as $sFingerprint => $oObj) - { - if (!array_key_exists($sFingerprint, $this->aFingerprints2)) - { + foreach ($this->aFingerprints1 as $sFingerprint => $oObj) { + if (!array_key_exists($sFingerprint, $this->aFingerprints2)) { return false; } } - + // Vice versa // Check that all objects in Set2 are also in Set1 - foreach($this->aFingerprints2 as $sFingerprint => $oObj) - { - if (!array_key_exists($sFingerprint, $this->aFingerprints1)) - { + foreach ($this->aFingerprints2 as $sFingerprint => $oObj) { + if (!array_key_exists($sFingerprint, $this->aFingerprints1)) { return false; } } - + return true; } - /** - * Get the list of differences between the two sets. In ordeer to write back into the database only the minimum changes - * THE FIRST SET MUST BE THE ONE LOADED FROM THE DATABASE - * - * @internal - * - * @return array 'added' => DBObject(s), 'removed' => DBObject(s), 'modified' => DBObjects(s) - * - * @throws \Exception - * @throws \CoreException - */ + /** + * Get the list of differences between the two sets. In ordeer to write back into the database only the minimum changes + * THE FIRST SET MUST BE THE ONE LOADED FROM THE DATABASE + * + * @internal + * + * @return array 'added' => DBObject(s), 'removed' => DBObject(s), 'modified' => DBObjects(s) + * + * @throws \Exception + * @throws \CoreException + */ public function GetDifferences() { - $aResult = array('added' => array(), 'removed' => array(), 'modified' => array()); + $aResult = ['added' => [], 'removed' => [], 'modified' => []]; $this->ComputeFingerprints(); - + // Check that all objects in Set1 are also in Set2 - foreach($this->aFingerprints1 as $sFingerprint => $oObj) - { + foreach ($this->aFingerprints1 as $sFingerprint => $oObj) { // Beware: the elements from the first set MUST come from the database, otherwise the result will be irrelevant - if ($oObj->IsNew()) throw new Exception('Cannot compute differences when elements from the first set are NOT in the database'); - if (array_key_exists($oObj->GetKey(), $this->aIDs2) && ($this->aIDs2[$oObj->GetKey()]->IsModified())) - { + if ($oObj->IsNew()) { + throw new Exception('Cannot compute differences when elements from the first set are NOT in the database'); + } + if (array_key_exists($oObj->GetKey(), $this->aIDs2) && ($this->aIDs2[$oObj->GetKey()]->IsModified())) { // The very same object exists in both set, but was modified since its load $aResult['modified'][$oObj->GetKey()] = $this->aIDs2[$oObj->GetKey()]; - } - else if (($this->sAdditionalKeyColumn !== null) && array_key_exists($oObj->Get($this->sAdditionalKeyColumn), $this->aAdditionalKeys)) - { + } elseif (($this->sAdditionalKeyColumn !== null) && array_key_exists($oObj->Get($this->sAdditionalKeyColumn), $this->aAdditionalKeys)) { // Special case for n:n links where the link is recreated between the very same 2 objects, but some of its attributes are modified // Let's consider this as a "modification" instead of "deletion" + "creation" in order to have a "clean" history for the objects $oDestObj = $this->aAdditionalKeys[$oObj->Get($this->sAdditionalKeyColumn)]; @@ -1747,51 +1632,43 @@ class DBObjectSetComparator // Mark this as processed, so that the pass on aFingerprints2 below ignores this object $sNewFingerprint = $oDestObj->Fingerprint($this->aExcludedColumns); $this->aFingerprints2[$sNewFingerprint] = $oCloneObj; - } - else if (!array_key_exists($sFingerprint, $this->aFingerprints2)) - { + } elseif (!array_key_exists($sFingerprint, $this->aFingerprints2)) { $aResult['removed'][] = $oObj; } } - + // Vice versa // Check that all objects in Set2 are also in Set1 - foreach($this->aFingerprints2 as $sFingerprint => $oObj) - { - if (array_key_exists($oObj->GetKey(), $this->aIDs1) && ($oObj->IsModified())) - { + foreach ($this->aFingerprints2 as $sFingerprint => $oObj) { + if (array_key_exists($oObj->GetKey(), $this->aIDs1) && ($oObj->IsModified())) { // Already marked as modified above //$aResult['modified'][$oObj->GetKey()] = $oObj; - } - else if (!array_key_exists($sFingerprint, $this->aFingerprints1)) - { + } elseif (!array_key_exists($sFingerprint, $this->aFingerprints1)) { $aResult['added'][] = $oObj; } } return $aResult; } - /** - * Helper to clone (in memory) an object and to apply to it the values taken from a second object - * - * @internal - * - * @param \DBObject $oObjToClone - * @param \DBObject $oObjWithValues - * - * @return \DBObject The modified clone - * - * @throws \ArchivedObjectException - * @throws \CoreException - * @throws \CoreUnexpectedValue - */ + /** + * Helper to clone (in memory) an object and to apply to it the values taken from a second object + * + * @internal + * + * @param \DBObject $oObjToClone + * @param \DBObject $oObjWithValues + * + * @return \DBObject The modified clone + * + * @throws \ArchivedObjectException + * @throws \CoreException + * @throws \CoreUnexpectedValue + */ protected function CopyFrom($oObjToClone, $oObjWithValues) { $oObj = MetaModel::GetObject(get_class($oObjToClone), $oObjToClone->GetKey()); - foreach(MetaModel::ListAttributeDefs(get_class($oObj)) as $sAttCode => $oAttDef) - { - if (!in_array($sAttCode, $this->aExcludedColumns) && $oAttDef->IsWritable()) - { + foreach (MetaModel::ListAttributeDefs(get_class($oObj)) as $sAttCode => $oAttDef) { + if (!in_array($sAttCode, $this->aExcludedColumns) && $oAttDef->IsWritable()) { $oObj->Set($sAttCode, $oObjWithValues->Get($sAttCode)); } } diff --git a/core/dbproperty.class.inc.php b/core/dbproperty.class.inc.php index b03aae2fe..c7ddcc542 100644 --- a/core/dbproperty.class.inc.php +++ b/core/dbproperty.class.inc.php @@ -1,9 +1,10 @@ - /** * Database properties - manage database instances in a complex installation * @@ -24,9 +24,8 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - /** - * A database property + * A database property * * @package iTopORM */ @@ -34,40 +33,37 @@ class DBProperty extends DBObject { public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "cloud", "key_type" => "autoincrement", "name_attcode" => "name", "state_attcode" => "", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_db_properties", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); //MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeString("name", array("allowed_values"=>null, "sql"=>"name", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("description", array("allowed_values"=>null, "sql"=>"description", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("value", array("allowed_values"=>null, "sql"=>"value", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeString("name", ["allowed_values" => null, "sql" => "name", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("description", ["allowed_values" => null, "sql" => "description", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("value", ["allowed_values" => null, "sql" => "value", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeDateTime("change_date", array("allowed_values"=>null, "sql"=>"change_date", "default_value"=>"NOW()", "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("change_comment", array("allowed_values"=>null, "sql"=>"change_comment", "default_value"=>null, "is_null_allowed"=>true, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeDateTime("change_date", ["allowed_values" => null, "sql" => "change_date", "default_value" => "NOW()", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("change_comment", ["allowed_values" => null, "sql" => "change_comment", "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); } /** - * Helper to check wether the table has been created into the DB + * Helper to check wether the table has been created into the DB * (this table did not exist in 1.0.1 and older versions) */ public static function IsInstalled() { $sTable = MetaModel::DBGetTable(__CLASS__); - if (CMDBSource::IsTable($sTable)) - { + if (CMDBSource::IsTable($sTable)) { return true; - } - else - { + } else { return false; } return false; @@ -75,12 +71,10 @@ class DBProperty extends DBObject public static function SetProperty($sName, $sValue, $sComment = '', $sDescription = null) { - try - { + try { $oSearch = DBObjectSearch::FromOQL('SELECT DBProperty WHERE name = :name'); - $oSet = new DBObjectSet($oSearch, array(), array('name' => $sName)); - if ($oSet->Count() == 0) - { + $oSet = new DBObjectSet($oSearch, [], ['name' => $sName]); + if ($oSet->Count() == 0) { $oProp = new DBProperty(); $oProp->Set('name', $sName); $oProp->Set('description', $sDescription); @@ -88,31 +82,23 @@ class DBProperty extends DBObject $oProp->Set('change_date', time()); $oProp->Set('change_comment', $sComment); $oProp->DBInsert(); - } - elseif ($oSet->Count() == 1) - { + } elseif ($oSet->Count() == 1) { $oProp = $oSet->fetch(); - if (!is_null($sDescription)) - { + if (!is_null($sDescription)) { $oProp->Set('description', $sDescription); } $oProp->Set('value', $sValue); $oProp->Set('change_date', time()); $oProp->Set('change_comment', $sComment); $oProp->DBUpdate(); - } - else - { + } else { // Houston... throw new CoreException('duplicate db property'); } - } - catch (MySQLException $e) - { + } catch (MySQLException $e) { // This might be because the table could not be found, // let's check it and discard silently if this is really the case - if (self::IsInstalled()) - { + if (self::IsInstalled()) { throw $e; } IssueLog::Error('Attempting to write a DBProperty while the module has not been installed'); @@ -121,34 +107,25 @@ class DBProperty extends DBObject public static function GetProperty($sName, $default = null) { - try - { + try { $oSearch = DBObjectSearch::FromOQL('SELECT DBProperty WHERE name = :name'); - $oSet = new DBObjectSet($oSearch, array(), array('name' => $sName)); + $oSet = new DBObjectSet($oSearch, [], ['name' => $sName]); $iCount = $oSet->Count(); - if ($iCount == 0) - { + if ($iCount == 0) { //throw new CoreException('unknown db property', array('name' => $sName)); $sValue = $default; - } - elseif ($iCount == 1) - { + } elseif ($iCount == 1) { $oProp = $oSet->fetch(); $sValue = $oProp->Get('value'); - } - else - { + } else { // $iCount > 1 // Houston... - throw new CoreException('duplicate db property', array('name' => $sName, 'count' => $iCount)); + throw new CoreException('duplicate db property', ['name' => $sName, 'count' => $iCount]); } - } - catch (MySQLException $e) - { + } catch (MySQLException $e) { // This might be because the table could not be found, // let's check it and discard silently if this is really the case - if (self::IsInstalled()) - { + if (self::IsInstalled()) { throw $e; } $sValue = $default; @@ -156,5 +133,3 @@ class DBProperty extends DBObject return $sValue; } } - -?> diff --git a/core/deletionplan.class.inc.php b/core/deletionplan.class.inc.php index 493e0a1c8..fa12655e3 100644 --- a/core/deletionplan.class.inc.php +++ b/core/deletionplan.class.inc.php @@ -1,4 +1,5 @@ array( + protected static $m_aModeUpdate = [ + DEL_SILENT => [ DEL_SILENT => DEL_SILENT, DEL_AUTO => DEL_AUTO, - DEL_MANUAL => DEL_MANUAL - ), - DEL_MANUAL => array( + DEL_MANUAL => DEL_MANUAL, + ], + DEL_MANUAL => [ DEL_SILENT => DEL_MANUAL, DEL_AUTO => DEL_AUTO, - DEL_MANUAL => DEL_MANUAL - ), - DEL_AUTO => array( + DEL_MANUAL => DEL_MANUAL, + ], + DEL_AUTO => [ DEL_SILENT => DEL_AUTO, DEL_AUTO => DEL_AUTO, - DEL_MANUAL => DEL_AUTO - ) - ); + DEL_MANUAL => DEL_AUTO, + ], + ]; public function __construct() { $this->m_iToDelete = 0; $this->m_iToUpdate = 0; - $this->m_aToDelete = array(); - $this->m_aToUpdate = array(); + $this->m_aToDelete = []; + $this->m_aToUpdate = []; $this->m_bFoundStopper = false; $this->m_bFoundSecurityIssue = false; @@ -65,22 +66,17 @@ class DeletionPlan $this->m_iToDelete = 0; $this->m_iToUpdate = 0; - foreach($this->m_aToDelete as $sClass => $aToDelete) - { - foreach($aToDelete as $iId => $aData) - { + foreach ($this->m_aToDelete as $sClass => $aToDelete) { + foreach ($aToDelete as $iId => $aData) { $this->m_iToDelete++; - if (isset($aData['issue'])) - { + if (isset($aData['issue'])) { $this->m_bFoundStopper = true; $this->m_bFoundManualOperation = true; - if (isset($aData['issue_security'])) - { + if (isset($aData['issue_security'])) { $this->m_bFoundSecurityIssue = true; } } - if ($aData['mode'] == DEL_MANUAL) - { + if ($aData['mode'] == DEL_MANUAL) { $this->m_aToDelete[$sClass][$iId]['issue'] = $sClass.'::'.$iId.' '.Dict::S('UI:Delete:MustBeDeletedManually'); $this->m_bFoundStopper = true; $this->m_bFoundManualDelete = true; @@ -92,30 +88,25 @@ class DeletionPlan // www.php.net/manual/fr/function.set-time-limit.php#72305 $iPreviousTimeLimit = ini_get('max_execution_time'); $iLoopTimeLimit = MetaModel::GetConfig()->Get('max_execution_time_per_loop'); - foreach($this->m_aToUpdate as $sClass => $aToUpdate) - { - foreach($aToUpdate as $iId => $aData) - { + foreach ($this->m_aToUpdate as $sClass => $aToUpdate) { + foreach ($aToUpdate as $iId => $aData) { set_time_limit(intval($iLoopTimeLimit)); $this->m_iToUpdate++; $oObject = $aData['to_reset']; - $aExtKeyLabels = array(); - foreach ($aData['attributes'] as $sRemoteExtKey => $aRemoteAttDef) - { + $aExtKeyLabels = []; + foreach ($aData['attributes'] as $sRemoteExtKey => $aRemoteAttDef) { $oObject->Set($sRemoteExtKey, $aData['values'][$sRemoteExtKey]); $aExtKeyLabels[] = $aRemoteAttDef->GetLabel(); } - $this->m_aToUpdate[$sClass][$iId]['attributes_list'] = implode(', ', $aExtKeyLabels); + $this->m_aToUpdate[$sClass][$iId]['attributes_list'] = implode(', ', $aExtKeyLabels); list($bRes, $aIssues, $bSecurityIssues) = $oObject->CheckToWrite(); - if (!$bRes) - { + if (!$bRes) { $this->m_aToUpdate[$sClass][$iId]['issue'] = implode(', ', $aIssues); $this->m_bFoundStopper = true; - if ($bSecurityIssues) - { + if ($bSecurityIssues) { $this->m_aToUpdate[$sClass][$iId]['issue_security'] = true; $this->m_bFoundSecurityIssue = true; } @@ -127,23 +118,17 @@ class DeletionPlan public function GetIssues() { - $aIssues = array(); - foreach ($this->m_aToDelete as $sClass => $aToDelete) - { - foreach ($aToDelete as $iId => $aData) - { - if (isset($aData['issue'])) - { + $aIssues = []; + foreach ($this->m_aToDelete as $sClass => $aToDelete) { + foreach ($aToDelete as $iId => $aData) { + if (isset($aData['issue'])) { $aIssues[] = $aData['issue']; } } } - foreach ($this->m_aToUpdate as $sClass => $aToUpdate) - { - foreach ($aToUpdate as $iId => $aData) - { - if (isset($aData['issue'])) - { + foreach ($this->m_aToUpdate as $sClass => $aToUpdate) { + foreach ($aToUpdate as $iId => $aData) { + if (isset($aData['issue'])) { $aIssues[] = $aData['issue']; } } @@ -192,63 +177,50 @@ class DeletionPlan public function AddToDelete($oObject, $iDeletionMode = null) { - if (is_null($iDeletionMode)) - { + if (is_null($iDeletionMode)) { $bRequestedExplicitely = true; $iDeletionMode = DEL_AUTO; - } - else - { + } else { $bRequestedExplicitely = false; } $sClass = get_class($oObject); $iId = $oObject->GetKey(); - if (isset($this->m_aToUpdate[$sClass][$iId])) - { + if (isset($this->m_aToUpdate[$sClass][$iId])) { unset($this->m_aToUpdate[$sClass][$iId]); } - if (isset($this->m_aToDelete[$sClass][$iId])) - { - if ($this->m_aToDelete[$sClass][$iId]['requested_explicitely']) - { + if (isset($this->m_aToDelete[$sClass][$iId])) { + if ($this->m_aToDelete[$sClass][$iId]['requested_explicitely']) { // No change: let it in mode DEL_AUTO - } - else - { + } else { $iPrevDeletionMode = $this->m_aToDelete[$sClass][$iId]['mode']; $iNewDeletionMode = self::$m_aModeUpdate[$iPrevDeletionMode][$iDeletionMode]; $this->m_aToDelete[$sClass][$iId]['mode'] = $iNewDeletionMode; - - if ($bRequestedExplicitely) - { + + if ($bRequestedExplicitely) { // This object was in the root list $this->m_aToDelete[$sClass][$iId]['requested_explicitely'] = true; $this->m_aToDelete[$sClass][$iId]['mode'] = DEL_AUTO; } } - } - else - { - $this->m_aToDelete[$sClass][$iId] = array( + } else { + $this->m_aToDelete[$sClass][$iId] = [ 'to_delete' => $oObject, 'mode' => $iDeletionMode, 'requested_explicitely' => $bRequestedExplicitely, - ); + ]; } } public function SetDeletionIssues($oObject, $aIssues, $bSecurityIssue) { - if (count($aIssues ?? []) > 0) - { + if (count($aIssues ?? []) > 0) { $sClass = get_class($oObject); $iId = $oObject->GetKey(); $this->m_aToDelete[$sClass][$iId]['issue'] = implode(', ', $aIssues); - if ($bSecurityIssue) - { + if ($bSecurityIssue) { $this->m_aToDelete[$sClass][$iId]['issue_security'] = true; } } @@ -258,21 +230,16 @@ class DeletionPlan { $sClass = get_class($oObject); $iId = $oObject->GetKey(); - if (isset($this->m_aToDelete[$sClass][$iId])) - { + if (isset($this->m_aToDelete[$sClass][$iId])) { // skip... it should be deleted anyhow ! - } - else - { - if (!isset($this->m_aToUpdate[$sClass][$iId])) - { - $this->m_aToUpdate[$sClass][$iId] = array( + } else { + if (!isset($this->m_aToUpdate[$sClass][$iId])) { + $this->m_aToUpdate[$sClass][$iId] = [ 'to_reset' => $oObject, - ); + ]; } $this->m_aToUpdate[$sClass][$iId]['attributes'][$oAttDef->GetCode()] = $oAttDef; $this->m_aToUpdate[$sClass][$iId]['values'][$oAttDef->GetCode()] = $value; } } } -?> diff --git a/core/designdocument.class.inc.php b/core/designdocument.class.inc.php index ceb3fdbf0..1606439dc 100644 --- a/core/designdocument.class.inc.php +++ b/core/designdocument.class.inc.php @@ -1,4 +1,5 @@ query($sXPath); - } - else - { + } else { $oResult = $oXPath->query($sXPath, $oContextNode); } return $oResult; @@ -174,8 +167,12 @@ class DesignDocument extends DOMDocument */ public static function GetItopNodePath($oNode) { - if ($oNode instanceof \DOMDocument) return ''; - if (is_null($oNode)) return ''; + if ($oNode instanceof \DOMDocument) { + return ''; + } + if (is_null($oNode)) { + return ''; + } $sId = $oNode->getAttribute('id'); $sNodeDesc = ($sId != '') ? $oNode->nodeName.'['.$sId.']' : $oNode->nodeName; @@ -303,16 +300,13 @@ class DesignElement extends \DOMElement public function GetUniqueElement($sTagName, $bMustExist = true) { $oNode = null; - foreach($this->childNodes as $oChildNode) - { - if ($oChildNode->nodeName == $sTagName) - { + foreach ($this->childNodes as $oChildNode) { + if ($oChildNode->nodeName == $sTagName) { $oNode = $oChildNode; break; } } - if ($bMustExist && is_null($oNode)) - { + if ($bMustExist && is_null($oNode)) { throw new DOMFormatException('Missing unique tag: '.$sTagName); } return $oNode; @@ -337,20 +331,17 @@ class DesignElement extends \DOMElement public function GetText($sDefault = null) { $sText = null; - foreach($this->childNodes as $oChildNode) - { - if ($oChildNode instanceof \DOMText) - { - if (is_null($sText)) $sText = ''; + foreach ($this->childNodes as $oChildNode) { + if ($oChildNode instanceof \DOMText) { + if (is_null($sText)) { + $sText = ''; + } $sText .= $oChildNode->wholeText; } } - if (is_null($sText)) - { + if (is_null($sText)) { return $sDefault; - } - else - { + } else { return $sText; } } @@ -367,8 +358,7 @@ class DesignElement extends \DOMElement public function GetChildText($sTagName, $sDefault = null) { $sRet = $sDefault; - if ($oChild = $this->GetOptionalElement($sTagName)) - { + if ($oChild = $this->GetOptionalElement($sTagName)) { $sRet = $oChild->GetText($sDefault); } return $sRet; @@ -427,7 +417,6 @@ class DesignElement extends \DOMElement return self::_FindNode($this, $oRefNode, $sSearchId); } - /** * Find the child node matching the given node. * UNSAFE: may return nodes marked as _alteration="removed" @@ -482,32 +471,25 @@ class DesignElement extends \DOMElement */ public static function _FindNodes(DOMNode $oParent, DesignElement $oRefNode, string $sSearchId = null) { - if ($oParent instanceof DOMDocument) - { + if ($oParent instanceof DOMDocument) { $oDoc = $oParent->firstChild->ownerDocument; $oRoot = $oParent; - } - else - { + } else { $oDoc = $oParent->ownerDocument; $oRoot = $oParent; } $oXPath = new DOMXPath($oDoc); - if ($oRefNode->hasAttribute('id')) - { + if ($oRefNode->hasAttribute('id')) { // Find the elements having the same tag name and id - if (!$sSearchId) - { + if (!$sSearchId) { $sSearchId = $oRefNode->getAttribute('id'); } $sQuotedId = DesignDocument::XPathQuote($sSearchId); $sXPath = './'.$oRefNode->tagName."[@id=$sQuotedId]"; $oRes = $oXPath->query($sXPath, $oRoot); - } - else - { + } else { // Get the elements having the same tag name $sXPath = './'.$oRefNode->tagName; diff --git a/core/dict.class.inc.php b/core/dict.class.inc.php index 002ca3c4b..ae87c76c5 100644 --- a/core/dict.class.inc.php +++ b/core/dict.class.inc.php @@ -1,4 +1,5 @@ - define('DICT_ERR_STRING', 1); // when a string is missing, return the identifier define('DICT_ERR_EXCEPTION', 2); // when a string is missing, throw an exception //define('DICT_ERR_LOG', 3); // when a string is missing, log an error - /** * Class Dict * Management of localizable strings @@ -32,8 +31,8 @@ class Dict protected static $m_sDefaultLanguage = 'EN US'; protected static $m_sCurrentLanguage = null; // No language selected by default - protected static $m_aLanguages = array(); // array( code => array( 'description' => '...', 'localized_description' => '...') ...) - protected static $m_aData = array(); + protected static $m_aLanguages = []; // array( code => array( 'description' => '...', 'localized_description' => '...') ...) + protected static $m_aData = []; protected static $m_sApplicationPrefix = null; /** @var \ApcService $m_oApcService */ protected static $m_oApcService = null; @@ -45,8 +44,7 @@ class Dict */ public static function SetDefaultLanguage($sLanguageCode) { - if (!array_key_exists($sLanguageCode, self::$m_aLanguages)) - { + if (!array_key_exists($sLanguageCode, self::$m_aLanguages)) { throw new DictExceptionUnknownLanguage($sLanguageCode); } self::$m_sDefaultLanguage = $sLanguageCode; @@ -60,18 +58,15 @@ class Dict */ public static function SetUserLanguage($sLanguageCode = null) { - if (!is_null($sLanguageCode) && !array_key_exists($sLanguageCode, self::$m_aLanguages)) - { + if (!is_null($sLanguageCode) && !array_key_exists($sLanguageCode, self::$m_aLanguages)) { throw new DictExceptionUnknownLanguage($sLanguageCode); } self::$m_sCurrentLanguage = $sLanguageCode; } - public static function GetUserLanguage() { - if (self::$m_sCurrentLanguage == null) // May happen when no user is logged in (i.e. login screen, non-authenticated page) - { + if (self::$m_sCurrentLanguage == null) { // May happen when no user is logged in (i.e. login screen, non-authenticated page) // In which case let's use the default language return self::$m_sDefaultLanguage; } @@ -99,8 +94,7 @@ class Dict public static function Exists($sStringCode) { $sImpossibleString = 'aVlHYKEI3TZuDV5o0pghv7fvhYNYuzYkTk7WL0Zoqw8rggE7aq'; - if (static::S($sStringCode, $sImpossibleString) === $sImpossibleString) - { + if (static::S($sStringCode, $sImpossibleString) === $sImpossibleString) { return false; } return true; @@ -139,26 +133,22 @@ class Dict $sLangCode = self::GetUserLanguage(); self::InitLangIfNeeded($sLangCode); - if (! array_key_exists($sLangCode, self::$m_aData)) - { + if (! array_key_exists($sLangCode, self::$m_aData)) { IssueLog::Warning("Cannot find $sLangCode in all registered dictionaries."); // It may happen, when something happens before the dictionaries get loaded return [ 'label' => $sStringCode, 'lang' => $sLangCode ]; } $aCurrentDictionary = self::$m_aData[$sLangCode]; - if (is_array($aCurrentDictionary) && array_key_exists($sStringCode, $aCurrentDictionary)) - { + if (is_array($aCurrentDictionary) && array_key_exists($sStringCode, $aCurrentDictionary)) { return [ 'label' => $aCurrentDictionary[$sStringCode], 'lang' => $sLangCode ]; } - if (!$bUserLanguageOnly) - { + if (!$bUserLanguageOnly) { // Attempt to find the string in the default language // self::InitLangIfNeeded(self::$m_sDefaultLanguage); $aDefaultDictionary = self::$m_aData[self::$m_sDefaultLanguage]; - if (is_array($aDefaultDictionary) && array_key_exists($sStringCode, $aDefaultDictionary)) - { + if (is_array($aDefaultDictionary) && array_key_exists($sStringCode, $aDefaultDictionary)) { return [ 'label' => $aDefaultDictionary[$sStringCode], 'lang' => self::$m_sDefaultLanguage ]; } // Attempt to find the string in english @@ -166,22 +156,19 @@ class Dict self::InitLangIfNeeded('EN US'); $aDefaultDictionary = self::$m_aData['EN US']; - if (is_array($aDefaultDictionary) && array_key_exists($sStringCode, $aDefaultDictionary)) - { + if (is_array($aDefaultDictionary) && array_key_exists($sStringCode, $aDefaultDictionary)) { return [ 'label' => $aDefaultDictionary[$sStringCode], 'lang' => 'EN US' ]; } } // Could not find the string... // - if (is_null($sDefault)) - { + if (is_null($sDefault)) { return [ 'label' => $sStringCode, 'lang' => null ]; } return [ 'label' => $sDefault, 'lang' => null ]; } - /** * Formats a localized string with numbered placeholders (%1$s...) for the additional arguments * See vsprintf for more information about the syntax of the placeholders @@ -199,15 +186,14 @@ class Dict $aArguments = func_get_args(); array_shift($aArguments); - if ($sLocalizedFormat == $sFormatCode) - { + if ($sLocalizedFormat == $sFormatCode) { // Make sure the information will be displayed (ex: an error occurring before the dictionary gets loaded) return $sFormatCode.' - '.implode(', ', $aArguments); } - try{ + try { return utils::VSprintf($sLocalizedFormat, $aArguments); - } catch(\Throwable $e){ + } catch (\Throwable $e) { \IssueLog::Error("Cannot format dict key", null, ["sFormatCode" => $sFormatCode, "sLangCode" => $sLangCode, 'exception_msg' => $e->getMessage() ]); return $sFormatCode.' - '.implode(', ', $aArguments); } @@ -236,8 +222,9 @@ class Dict * @since 2.7.6 N°4125 * @return \ApcService */ - public static function GetApcService() { - if (self::$m_oApcService === null){ + public static function GetApcService() + { + if (self::$m_oApcService === null) { self::$m_oApcService = new ApcService(); } return self::$m_oApcService; @@ -247,7 +234,8 @@ class Dict * @since 2.7.6 N°4125 * @param \ApcService $m_oApcService */ - public static function SetApcService($oApcService) { + public static function SetApcService($oApcService) + { self::$m_oApcService = $oApcService; } @@ -258,19 +246,20 @@ class Dict */ public static function InitLangIfNeeded($sLangCode) { - if (array_key_exists($sLangCode, self::$m_aData)) return true; + if (array_key_exists($sLangCode, self::$m_aData)) { + return true; + } $bResult = false; if (self::GetApcService()->function_exists('apc_fetch') - && (self::$m_sApplicationPrefix !== null)) - { + && (self::$m_sApplicationPrefix !== null)) { // Note: For versions of APC older than 3.0.17, fetch() accepts only one parameter // self::$m_aData[$sLangCode] = self::GetApcService()->apc_fetch(self::$m_sApplicationPrefix.'-dict-'.$sLangCode); if (self::$m_aData[$sLangCode] === false) { unset(self::$m_aData[$sLangCode]); - } else if (! is_array(self::$m_aData[$sLangCode])) { + } elseif (! is_array(self::$m_aData[$sLangCode])) { // N°4125: we don't fix dictionary corrupted cache (on iTop side). // but we log an error in a dedicated channel to let itop administrator be aware of a potential APCu issue to fix. IssueLog::Error("APCu corrupted data (with $sLangCode dictionary). APCu configuration and running version should be troubleshooted...", LogChannels::APC); @@ -279,14 +268,12 @@ class Dict $bResult = true; } } - if (!$bResult) - { + if (!$bResult) { $sDictFile = APPROOT.'env-'.utils::GetCurrentEnvironment().'/dictionaries/'.str_replace(' ', '-', strtolower($sLangCode)).'.dict.php'; require_once($sDictFile); if (self::GetApcService()->function_exists('apc_store') - && (self::$m_sApplicationPrefix !== null)) - { + && (self::$m_sApplicationPrefix !== null)) { self::GetApcService()->apc_store(self::$m_sApplicationPrefix.'-dict-'.$sLangCode, self::$m_aData[$sLangCode]); } $bResult = true; @@ -309,10 +296,8 @@ class Dict */ public static function ResetCache($sApplicationPrefix) { - if (function_exists('apc_delete')) - { - foreach(self::$m_aLanguages as $sLang => $void) - { + if (function_exists('apc_delete')) { + foreach (self::$m_aLanguages as $sLang => $void) { apc_delete($sApplicationPrefix.'-dict-'.$sLang); } } @@ -320,7 +305,6 @@ class Dict ///////////////////////////////////////////////////////////////////////// - /** * Clone a string in every language (if it exists in that language) * @@ -330,8 +314,8 @@ class Dict */ public static function CloneString($sSourceCode, $sDestCode) { - foreach(self::$m_aLanguages as $sLanguageCode => $foo) { - if (isset(self::$m_aData[$sLanguageCode][$sSourceCode]) && !isset(self::$m_aData[$sLanguageCode][$sDestCode] )) { + foreach (self::$m_aLanguages as $sLanguageCode => $foo) { + if (isset(self::$m_aData[$sLanguageCode][$sSourceCode]) && !isset(self::$m_aData[$sLanguageCode][$sDestCode])) { self::$m_aData[$sLanguageCode][$sDestCode] = self::$m_aData[$sLanguageCode][$sSourceCode]; } } @@ -339,40 +323,31 @@ class Dict public static function MakeStats($sLanguageCode, $sLanguageRef = 'EN US') { - $aMissing = array(); // Strings missing for the target language - $aUnexpected = array(); // Strings defined for the target language, but not found in the reference dictionary - $aNotTranslated = array(); // Strings having the same value in both dictionaries - $aOK = array(); // Strings having different values in both dictionaries + $aMissing = []; // Strings missing for the target language + $aUnexpected = []; // Strings defined for the target language, but not found in the reference dictionary + $aNotTranslated = []; // Strings having the same value in both dictionaries + $aOK = []; // Strings having different values in both dictionaries - foreach (self::$m_aData[$sLanguageRef] as $sStringCode => $sValue) - { - if (!array_key_exists($sStringCode, self::$m_aData[$sLanguageCode])) - { + foreach (self::$m_aData[$sLanguageRef] as $sStringCode => $sValue) { + if (!array_key_exists($sStringCode, self::$m_aData[$sLanguageCode])) { $aMissing[$sStringCode] = $sValue; } } - foreach (self::$m_aData[$sLanguageCode] as $sStringCode => $sValue) - { - if (!array_key_exists($sStringCode, self::$m_aData[$sLanguageRef])) - { + foreach (self::$m_aData[$sLanguageCode] as $sStringCode => $sValue) { + if (!array_key_exists($sStringCode, self::$m_aData[$sLanguageRef])) { $aUnexpected[$sStringCode] = $sValue; - } - else - { + } else { // The value exists in the reference $sRefValue = self::$m_aData[$sLanguageRef][$sStringCode]; - if ($sValue == $sRefValue) - { + if ($sValue == $sRefValue) { $aNotTranslated[$sStringCode] = $sValue; - } - else - { + } else { $aOK[$sStringCode] = $sValue; } } } - return array($aMissing, $aUnexpected, $aNotTranslated, $aOK); + return [$aMissing, $aUnexpected, $aNotTranslated, $aOK]; } public static function Dump() @@ -389,10 +364,9 @@ class Dict // ~~ or ~* can be used to indicate entries still to be translated. public static function Add($sLanguageCode, $sEnglishLanguageDesc, $sLocalizedLanguageDesc, $aEntries) { - if (!array_key_exists($sLanguageCode, self::$m_aLanguages)) - { - self::$m_aLanguages[$sLanguageCode] = array('description' => $sEnglishLanguageDesc, 'localized_description' => $sLocalizedLanguageDesc); - self::$m_aData[$sLanguageCode] = array(); + if (!array_key_exists($sLanguageCode, self::$m_aLanguages)) { + self::$m_aLanguages[$sLanguageCode] = ['description' => $sEnglishLanguageDesc, 'localized_description' => $sLocalizedLanguageDesc]; + self::$m_aData[$sLanguageCode] = []; } // No need to actually load the strings since it's only used to know the list of languages // at setup time !! @@ -408,27 +382,22 @@ class Dict { self::InitLangIfNeeded(self::GetUserLanguage()); self::InitLangIfNeeded(self::$m_sDefaultLanguage); - $aEntries = array(); + $aEntries = []; $iLength = strlen($sStartingWith); // First prefill the array with entries from the default language - foreach(self::$m_aData[self::$m_sDefaultLanguage] as $sCode => $sEntry) - { - if (substr($sCode, 0, $iLength) == $sStartingWith) - { + foreach (self::$m_aData[self::$m_sDefaultLanguage] as $sCode => $sEntry) { + if (substr($sCode, 0, $iLength) == $sStartingWith) { $aEntries[$sCode] = $sEntry; } } // Now put (overwrite) the entries for the user language - foreach(self::$m_aData[self::GetUserLanguage()] as $sCode => $sEntry) - { - if (substr($sCode, 0, $iLength) == $sStartingWith) - { + foreach (self::$m_aData[self::GetUserLanguage()] as $sCode => $sEntry) { + if (substr($sCode, 0, $iLength) == $sStartingWith) { $aEntries[$sCode] = $sEntry; } } return $aEntries; } } -?> diff --git a/core/email.class.inc.php b/core/email.class.inc.php index ca26d9223..5e559861c 100644 --- a/core/email.class.inc.php +++ b/core/email.class.inc.php @@ -1,9 +1,10 @@ - /** * Send an email (abstraction for synchronous/asynchronous modes) * @@ -27,9 +27,9 @@ use Combodo\iTop\Core\Email\EmailFactory; use Combodo\iTop\Core\Email\iEMail; -define ('EMAIL_SEND_OK', 0); -define ('EMAIL_SEND_PENDING', 1); -define ('EMAIL_SEND_ERROR', 2); +define('EMAIL_SEND_OK', 0); +define('EMAIL_SEND_PENDING', 1); +define('EMAIL_SEND_ERROR', 2); class EMail implements iEMail { @@ -43,18 +43,18 @@ class EMail implements iEMail protected $oMailer; // Serialization formats - const ORIGINAL_FORMAT = 1; // Original format, consisting in serializing the whole object, inculding the Swift Mailer's object. + public const ORIGINAL_FORMAT = 1; // Original format, consisting in serializing the whole object, inculding the Swift Mailer's object. // Did not work with attachements since their binary representation cannot be stored as a valid UTF-8 string - const FORMAT_V2 = 2; // New format, only the raw data are serialized (base64 encoded if needed) - + public const FORMAT_V2 = 2; // New format, only the raw data are serialized (base64 encoded if needed) + /** @var int ENUM_SEND_DEFAULT This option can be used when sending an e-mail to respect the default configuration parameter. */ - const ENUM_SEND_DEFAULT = 0; - + public const ENUM_SEND_DEFAULT = 0; + /** @var int ENUM_SEND_FORCE_SYNCHRONOUS This option can be used when sending an e-mail to ignore the default and force synchronous sending instead. Example of a use case: instant e-mail test. */ - const ENUM_SEND_FORCE_SYNCHRONOUS = 1; - + public const ENUM_SEND_FORCE_SYNCHRONOUS = 1; + /** @var int ENUM_SEND_FORCE_ASYNCHRONOUS This option can be used when sending an e-mail to ignore the default and force synchronous sending instead. Example of a use case: Bulk mails. */ - const ENUM_SEND_FORCE_ASYNCHRONOUS = 2; + public const ENUM_SEND_FORCE_ASYNCHRONOUS = 2; public function __construct() { @@ -157,7 +157,7 @@ class EMail implements iEMail public function SetBody($sBody, $sMimeType = 'text/html', $sCustomStyles = null) { $this->oMailer->SetBody($sBody, $sMimeType, $sCustomStyles); - } + } public function AddPart($sText, $sMimeType = 'text/html') { @@ -208,4 +208,4 @@ class EMail implements iEMail { $this->oMailer->SetRecipientReplyTo($sAddress); } -} \ No newline at end of file +} diff --git a/core/excelbulkexport.class.inc.php b/core/excelbulkexport.class.inc.php index 57eb40f96..6f4632962 100644 --- a/core/excelbulkexport.class.inc.php +++ b/core/excelbulkexport.class.inc.php @@ -1,4 +1,5 @@ aStatusInfo['formatted_text'] = (bool)utils::ReadParam('formatted_text', 0, true); - + $sDateFormatRadio = utils::ReadParam('excel_date_format_radio', ''); - switch($sDateFormatRadio) - { + switch ($sDateFormatRadio) { case 'default': - // Export from the UI => format = same as is the UI - $this->aStatusInfo['date_format'] = (string)AttributeDateTime::GetFormat(); - break; - + // Export from the UI => format = same as is the UI + $this->aStatusInfo['date_format'] = (string)AttributeDateTime::GetFormat(); + break; + case 'custom': - // Custom format specified from the UI - $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetFormat(), true, 'raw_data'); - break; + // Custom format specified from the UI + $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetFormat(), true, 'raw_data'); + break; default: // Export from the command line (or scripted) => default format is SQL, as in previous versions of iTop, unless specified otherwise @@ -67,7 +67,7 @@ class ExcelBulkExport extends TabularBulkExport public function EnumFormParts() { - return array_merge(parent::EnumFormParts(), array('xlsx_options' => array('formatted_text'), 'interactive_fields_xlsx' => array('interactive_fields_xlsx'))); + return array_merge(parent::EnumFormParts(), ['xlsx_options' => ['formatted_text'], 'interactive_fields_xlsx' => ['interactive_fields_xlsx']]); } /** @@ -121,7 +121,6 @@ class ExcelBulkExport extends TabularBulkExport $oRadioCustom->GetInput()->AddCSSClass('ibo-input-checkbox'); $oFieldSetDate->AddSubBlock($oRadioCustom); - $oP->add_ready_script( <<'.utils::EscapeHtml($oAttDef->GetEditValue($oObj->Get($sAttCode), $oObj)).'
    '; @@ -175,74 +171,50 @@ EOF protected function GetValue($oObj, $sAttCode) { - switch($sAttCode) - { + switch ($sAttCode) { case 'id': $sRet = $oObj->GetKey(); break; - + default: - $value = $oObj->Get($sAttCode); - if ($value instanceOf ormCaseLog) - { - if (array_key_exists('formatted_text', $this->aStatusInfo) && $this->aStatusInfo['formatted_text']) - { - $sText = $value->GetText(); - } - else - { - $sText = $value->GetAsPlainText(); - } - // Extract the case log as text and remove the "===" which make Excel think that the cell contains a formula the next time you edit it! - $sRet = trim(preg_replace('/========== ([^=]+) ============/', '********** $1 ************', $sText)); - } - else if ($value instanceOf DBObjectSet) - { - $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); - $sRet = $oAttDef->GetAsCSV($value, '', '', $oObj); - } - else if ($value instanceOf ormDocument) - { - $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); - $sRet = $oAttDef->GetAsCSV($value, '', '', $oObj); - } - else if ($value instanceOf ormSet) - { - $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); - $sRet = $oAttDef->GetAsCSV($value, '', '', $oObj); - } - else - { - $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); - if ($oAttDef instanceof AttributeDateTime) - { - // Date and times are formatted using the ISO encoding, not the localized format - if ($oAttDef->IsNull($value)) - { - // NOt a valid date - $sRet = ''; + $value = $oObj->Get($sAttCode); + if ($value instanceof ormCaseLog) { + if (array_key_exists('formatted_text', $this->aStatusInfo) && $this->aStatusInfo['formatted_text']) { + $sText = $value->GetText(); + } else { + $sText = $value->GetAsPlainText(); } - else - { - $sRet = $value; + // Extract the case log as text and remove the "===" which make Excel think that the cell contains a formula the next time you edit it! + $sRet = trim(preg_replace('/========== ([^=]+) ============/', '********** $1 ************', $sText)); + } elseif ($value instanceof DBObjectSet) { + $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); + $sRet = $oAttDef->GetAsCSV($value, '', '', $oObj); + } elseif ($value instanceof ormDocument) { + $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); + $sRet = $oAttDef->GetAsCSV($value, '', '', $oObj); + } elseif ($value instanceof ormSet) { + $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); + $sRet = $oAttDef->GetAsCSV($value, '', '', $oObj); + } else { + $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); + if ($oAttDef instanceof AttributeDateTime) { + // Date and times are formatted using the ISO encoding, not the localized format + if ($oAttDef->IsNull($value)) { + // NOt a valid date + $sRet = ''; + } else { + $sRet = $value; + } + } elseif (array_key_exists('formatted_text', $this->aStatusInfo) && $this->aStatusInfo['formatted_text']) { + if ($oAttDef instanceof AttributeText && $oAttDef->GetFormat() == 'html') { + $sRet = str_replace(">", ">", $value); + } else { + $sRet = $oAttDef->GetEditValue($value, $oObj); + } + } else { + $sRet = $oAttDef->GetAsPlainText($value, $oObj); } } - else if (array_key_exists('formatted_text', $this->aStatusInfo) && $this->aStatusInfo['formatted_text']) - { - if ($oAttDef instanceof AttributeText && $oAttDef->GetFormat()=='html') - { - $sRet = str_replace(">", ">", $value); - } - else - { - $sRet = $oAttDef->GetEditValue($value, $oObj); - } - } - else - { - $sRet = $oAttDef->GetAsPlainText($value, $oObj); - } - } } return $sRet; } @@ -255,14 +227,12 @@ EOF $this->aStatusInfo['position'] = 0; $this->aStatusInfo['total'] = $oSet->Count(); - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $sExtendedAttCode = $aFieldSpec['sFieldSpec']; $sAttCode = $aFieldSpec['sAttCode']; $sColLabel = $aFieldSpec['sColLabel']; - - switch($sAttCode) - { + + switch ($sAttCode) { case 'id': $sType = '0'; break; @@ -270,22 +240,18 @@ EOF default: $oAttDef = MetaModel::GetAttributeDef($aFieldSpec['sClass'], $aFieldSpec['sAttCode']); $sType = 'string'; - if($oAttDef instanceof AttributeDate) - { + if ($oAttDef instanceof AttributeDate) { $sType = 'date'; - } - else if($oAttDef instanceof AttributeDateTime) - { + } elseif ($oAttDef instanceof AttributeDateTime) { $sType = 'datetime'; } } - $aTableHeaders[] = array('label' => $sColLabel, 'type' => $sType); + $aTableHeaders[] = ['label' => $sColLabel, 'type' => $sType]; } $sRow = json_encode($aTableHeaders); $hFile = @fopen($this->aStatusInfo['tmp_file'], 'ab'); - if ($hFile === false) - { + if ($hFile === false) { throw new Exception('ExcelBulkExport: Failed to open temporary data file: "'.$this->aStatusInfo['tmp_file'].'" for writing.'); } fwrite($hFile, $sRow."\n"); @@ -307,19 +273,16 @@ EOF $iCount = 0; $iPreviousTimeLimit = ini_get('max_execution_time'); $iLoopTimeLimit = MetaModel::GetConfig()->Get('max_execution_time_per_loop'); - while($aRow = $oSet->FetchAssoc()) - { + while ($aRow = $oSet->FetchAssoc()) { set_time_limit(intval($iLoopTimeLimit)); - $aData = array(); - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + $aData = []; + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $sAlias = $aFieldSpec['sAlias']; $sAttCode = $aFieldSpec['sAttCode']; $oObj = $aRow[$sAlias]; $sField = ''; - if ($oObj) - { + if ($oObj) { $sField = $this->GetValue($oObj, $sAttCode); } $aData[] = $sField; @@ -329,41 +292,35 @@ EOF } set_time_limit(intval($iPreviousTimeLimit)); $this->aStatusInfo['position'] += $this->iChunkSize; - if ($this->aStatusInfo['total'] == 0) - { + if ($this->aStatusInfo['total'] == 0) { $iPercentage = 100; $sRetCode = 'done'; // Next phase (GetFooter) will be to build the xlsx file + } else { + $iPercentage = floor(min(100.0, 100.0 * $this->aStatusInfo['position'] / $this->aStatusInfo['total'])); } - else - { - $iPercentage = floor(min(100.0, 100.0*$this->aStatusInfo['position']/$this->aStatusInfo['total'])); - } - if ($iCount < $this->iChunkSize) - { + if ($iCount < $this->iChunkSize) { $sRetCode = 'done'; } - $aStatus = array('code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage); + $aStatus = ['code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage]; return ''; // The actual XLSX file is built in GetFooter(); } public function GetFooter() { $hFile = @fopen($this->aStatusInfo['tmp_file'], 'rb'); - if ($hFile === false) - { + if ($hFile === false) { throw new Exception('ExcelBulkExport: Failed to open temporary data file: "'.$this->aStatusInfo['tmp_file'].'" for reading.'); } $sHeaders = fgets($hFile); $aHeaders = json_decode($sHeaders, true); - $aData = array(); - while($sLine = fgets($hFile)) - { + $aData = []; + while ($sLine = fgets($hFile)) { $aRow = json_decode($sLine); $aData[] = $aRow; } fclose($hFile); - + $fStartExcel = microtime(true); $writer = new XLSXWriter(); $sDateFormat = isset($this->aStatusInfo['date_format']) ? $this->aStatusInfo['date_format'] : (string)AttributeDateTime::GetFormat(); @@ -372,14 +329,13 @@ EOF $oDateFormat = new DateTimeFormat($oDateTimeFormat->ToDateFormat()); $writer->setDateFormat($oDateFormat->ToExcel()); $writer->setAuthor(UserRights::GetUserFriendlyName()); - $aHeaderTypes = array(); - $aHeaderNames = array(); - foreach($aHeaders as $Header) - { + $aHeaderTypes = []; + $aHeaderNames = []; + foreach ($aHeaders as $Header) { $aHeaderNames[] = $Header['label']; $aHeaderTypes[] = $Header['type']; } - $writer->writeSheet($aData,'Sheet1', $aHeaderTypes, $aHeaderNames); + $writer->writeSheet($aData, 'Sheet1', $aHeaderTypes, $aHeaderNames); $fExcelTime = microtime(true) - $fStartExcel; //$this->aStatistics['excel_build_duration'] = $fExcelTime; @@ -405,6 +361,6 @@ EOF public function GetSupportedFormats() { - return array('xlsx' => Dict::S('Core:BulkExport:XLSXFormat')); + return ['xlsx' => Dict::S('Core:BulkExport:XLSXFormat')]; } } diff --git a/core/htmlbulkexport.class.inc.php b/core/htmlbulkexport.class.inc.php index 7a78ab0b8..b0d4a9348 100644 --- a/core/htmlbulkexport.class.inc.php +++ b/core/htmlbulkexport.class.inc.php @@ -1,4 +1,5 @@ array('interactive_fields_html'))); + return array_merge(parent::EnumFormParts(), ['interactive_fields_html' => ['interactive_fields_html']]); } /** @@ -52,17 +53,15 @@ class HTMLBulkExport extends TabularBulkExport break; default: - return parent:: GetFormPart($oP, $sPartId); + return parent::GetFormPart($oP, $sPartId); } } protected function GetSampleData($oObj, $sAttCode) { - if ($sAttCode != 'id') - { + if ($sAttCode != 'id') { $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); - if ($oAttDef instanceof AttributeDateTime) // AttributeDate is derived from AttributeDateTime - { + if ($oAttDef instanceof AttributeDateTime) { // AttributeDate is derived from AttributeDateTime $sClass = (get_class($oAttDef) == 'AttributeDateTime') ? 'user-formatted-date-time' : 'user-formatted-date'; return '
    '.utils::EscapeHtml($oAttDef->GetEditValue($oObj->Get($sAttCode), $oObj)).'
    '; @@ -73,24 +72,18 @@ class HTMLBulkExport extends TabularBulkExport protected function GetValue($oObj, $sAttCode) { - switch($sAttCode) - { + switch ($sAttCode) { case 'id': $sRet = $oObj->GetHyperlink(); break; - + default: $value = $oObj->Get($sAttCode); - if ($value instanceof ormCaseLog) - { + if ($value instanceof ormCaseLog) { $sRet = $value->GetAsSimpleHtml(); - } - elseif ($value instanceof ormStopWatch) - { + } elseif ($value instanceof ormStopWatch) { $sRet = $value->GetTimeSpent(); - } - else - { + } else { $sRet = $oObj->GetAsHtml($sAttCode); } } @@ -100,7 +93,7 @@ class HTMLBulkExport extends TabularBulkExport public function GetHeader() { $sData = ''; - + $oSet = new DBObjectSet($this->oSearch); $this->aStatusInfo['status'] = 'running'; $this->aStatusInfo['position'] = 0; @@ -109,8 +102,7 @@ class HTMLBulkExport extends TabularBulkExport $sData .= "\n"; $sData .= "\n"; $sData .= "\n"; - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $sData .= "\n"; } $sData .= "\n"; @@ -135,32 +127,25 @@ class HTMLBulkExport extends TabularBulkExport $sData = ''; $iPreviousTimeLimit = ini_get('max_execution_time'); $iLoopTimeLimit = MetaModel::GetConfig()->Get('max_execution_time_per_loop'); - while($aRow = $oSet->FetchAssoc()) - { + while ($aRow = $oSet->FetchAssoc()) { set_time_limit(intval($iLoopTimeLimit)); $oMainObj = $aRow[$sFirstAlias]; $sHilightClass = ''; - if ($oMainObj) - { + if ($oMainObj) { $sHilightClass = MetaModel::GetHilightClass($sClass, $aRow[$sFirstAlias]); } - if ($sHilightClass != '') - { + if ($sHilightClass != '') { $sData .= ""; - } - else - { + } else { $sData .= ""; } - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $sAlias = $aFieldSpec['sAlias']; $sAttCode = $aFieldSpec['sAttCode']; $oObj = $aRow[$sAlias]; $sField = ''; - if ($oObj) - { + if ($oObj) { $sField = $this->GetValue($oObj, $sAttCode); } $sValue = ($sField === '') ? ' ' : $sField; @@ -171,21 +156,17 @@ class HTMLBulkExport extends TabularBulkExport } set_time_limit(intval($iPreviousTimeLimit)); $this->aStatusInfo['position'] += $this->iChunkSize; - if ($this->aStatusInfo['total'] == 0) - { + if ($this->aStatusInfo['total'] == 0) { $iPercentage = 100; - } - else - { - $iPercentage = floor(min(100.0, 100.0*$this->aStatusInfo['position']/$this->aStatusInfo['total'])); + } else { + $iPercentage = floor(min(100.0, 100.0 * $this->aStatusInfo['position'] / $this->aStatusInfo['total'])); } - if ($iCount < $this->iChunkSize) - { + if ($iCount < $this->iChunkSize) { $sRetCode = 'done'; } - $aStatus = array('code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage); + $aStatus = ['code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage]; return $sData; } @@ -198,7 +179,7 @@ class HTMLBulkExport extends TabularBulkExport public function GetSupportedFormats() { - return array('html' => Dict::S('Core:BulkExport:HTMLFormat')); + return ['html' => Dict::S('Core:BulkExport:HTMLFormat')]; } public function GetMimeType() diff --git a/core/htmlsanitizer.class.inc.php b/core/htmlsanitizer.class.inc.php index 7fa1e9690..d6f43eb65 100644 --- a/core/htmlsanitizer.class.inc.php +++ b/core/htmlsanitizer.class.inc.php @@ -1,4 +1,5 @@ DoSanitize($sHTML); - } - catch (Exception $e) { + } catch (Exception $e) { if ($sSanitizerClass != 'HTMLDOMSanitizer') { IssueLog::Warning('Failed to sanitize an HTML string with "'.$sSanitizerClass.'". The following exception occured: '.$e->getMessage()); IssueLog::Warning('Will try to sanitize with HTMLDOMSanitizer.'); // try again with the HTMLDOMSanitizer $oSanitizer = new HTMLDOMSanitizer(); $sCleanHTML = $oSanitizer->DoSanitize($sHTML); - } - else - { + } else { IssueLog::Error('Failed to sanitize an HTML string with "HTMLDOMSanitizer". The following exception occured: '.$e->getMessage()); IssueLog::Error('The HTML will NOT be sanitized.'); $sCleanHTML = $sHTML; @@ -104,8 +102,6 @@ class HTMLNullSanitizer extends HTMLSanitizer } } - - /** * Common implementation for sanitizer using DOM parsing */ @@ -166,7 +162,7 @@ abstract class DOMSanitizer extends HTMLSanitizer protected function CleanNode(DOMNode $oElement) { - $aAttrToRemove = array(); + $aAttrToRemove = []; // Gather the attributes to remove if ($oElement->hasAttributes()) { foreach ($oElement->attributes as $oAttr) { @@ -174,13 +170,13 @@ abstract class DOMSanitizer extends HTMLSanitizer if ((false === empty($this->GetAttrsBlackList())) && (in_array($sAttr, $this->GetAttrsBlackList(), true))) { $aAttrToRemove[] = $oAttr->name; - } else if ((false === empty($this->GetTagsWhiteList())) + } elseif ((false === empty($this->GetTagsWhiteList())) && (false === in_array($sAttr, $this->GetTagsWhiteList()[strtolower($oElement->tagName)]))) { $aAttrToRemove[] = $oAttr->name; - } else if (!$this->IsValidAttributeContent($sAttr, $oAttr->value)) { + } elseif (!$this->IsValidAttributeContent($sAttr, $oAttr->value)) { // Invalid content $aAttrToRemove[] = $oAttr->name; - } else if ($sAttr == 'style') { + } elseif ($sAttr == 'style') { // Special processing for style tags $sCleanStyle = $this->CleanStyle($oAttr->value); if ($sCleanStyle == '') { @@ -192,17 +188,15 @@ abstract class DOMSanitizer extends HTMLSanitizer } } // Now remove them - foreach($aAttrToRemove as $sName) - { + foreach ($aAttrToRemove as $sName) { $oElement->removeAttribute($sName); } } - if ($oElement->hasChildNodes()) - { - $aChildElementsToRemove = array(); + if ($oElement->hasChildNodes()) { + $aChildElementsToRemove = []; // Gather the child noes to remove - foreach($oElement->childNodes as $oNode) { + foreach ($oElement->childNodes as $oNode) { if ($oNode instanceof DOMElement) { $sNodeTagName = strtolower($oNode->tagName); } @@ -210,11 +204,11 @@ abstract class DOMSanitizer extends HTMLSanitizer && (false === empty($this->GetTagsBlackList())) && (in_array($sNodeTagName, $this->GetTagsBlackList(), true))) { $aChildElementsToRemove[] = $oNode; - } else if (($oNode instanceof DOMElement) + } elseif (($oNode instanceof DOMElement) && (false === empty($this->GetTagsWhiteList())) && (false === array_key_exists($sNodeTagName, $this->GetTagsWhiteList()))) { $aChildElementsToRemove[] = $oNode; - } else if ($oNode instanceof DOMComment) { + } elseif ($oNode instanceof DOMComment) { $aChildElementsToRemove[] = $oNode; } else { // Recurse @@ -225,8 +219,7 @@ abstract class DOMSanitizer extends HTMLSanitizer } } // Now remove them - foreach($aChildElementsToRemove as $oDomElement) - { + foreach ($aChildElementsToRemove as $oDomElement) { $oElement->removeChild($oDomElement); } } @@ -252,7 +245,7 @@ abstract class DOMSanitizer extends HTMLSanitizer return $sStyle; } - $aAllowedStyles = array(); + $aAllowedStyles = []; $aItems = explode(';', $sStyle); { foreach ($aItems as $sItem) { @@ -267,78 +260,76 @@ abstract class DOMSanitizer extends HTMLSanitizer } } - - class HTMLDOMSanitizer extends DOMSanitizer { /** * @var array * @see https://www.itophub.io/wiki/page?id=2_6_0%3Aadmin%3Arich_text_limitations */ - protected static $aTagsWhiteList = array( - 'html' => array(), - 'body' => array(), - 'a' => array('href', 'name', 'style', 'class', 'target', 'title', 'data-role', 'data-object-class', 'data-object-id', 'data-object-key'), - 'p' => array('style', 'class'), - 'blockquote' => array('style', 'class'), - 'br' => array(), - 'span' => array('style', 'class'), - 'div' => array('style', 'class'), - 'b' => array('class'), - 'i' => array('class'), - 'u' => array('class'), - 'em' => array('class'), - 'strong' => array('class'), - 'img' => array('src', 'style', 'class', 'alt', 'title', 'width', 'height'), - 'ul' => array('style', 'class'), - 'ol' => array('reversed', 'start', 'style', 'class', 'type'), - 'li' => array('style', 'class', 'value'), - 'h1' => array('style', 'class'), - 'h2' => array('style', 'class'), - 'h3' => array('style', 'class'), - 'h4' => array('style', 'class'), - 'nav' => array('style', 'class'), - 'section' => array('style', 'class'), - 'code' => array('style', 'class'), - 'table' => array('style', 'class', 'width', 'summary', 'align', 'border', 'cellpadding', 'cellspacing'), - 'colgroup' => array(), - 'col' => array('style'), - 'thead' => array('style', 'class'), - 'tbody' => array('style', 'class'), - 'tr' => array('style', 'class', 'colspan', 'rowspan'), - 'td' => array('style', 'class', 'colspan', 'rowspan'), - 'th' => array('style', 'class', 'colspan', 'rowspan'), - 'fieldset' => array('style', 'class'), - 'legend' => array('style', 'class'), - 'font' => array('face', 'color', 'style', 'class', 'size'), - 'big' => array(), - 'small' => array(), - 'tt' => array(), - 'kbd' => array(), - 'samp' => array(), - 'var' => array(), - 'del' => array(), - 's' => array(), // strikethrough - 'ins' => array(), - 'cite' => array(), - 'q' => array(), - 'hr' => array('style', 'class'), - 'pre' => array('class'), - 'center' => array(), - 'figure' => array('style', 'class'), // Ckeditor 5 puts images in figures - 'figcaption' => array('class'), - 'mark' => array('class') - ); + protected static $aTagsWhiteList = [ + 'html' => [], + 'body' => [], + 'a' => ['href', 'name', 'style', 'class', 'target', 'title', 'data-role', 'data-object-class', 'data-object-id', 'data-object-key'], + 'p' => ['style', 'class'], + 'blockquote' => ['style', 'class'], + 'br' => [], + 'span' => ['style', 'class'], + 'div' => ['style', 'class'], + 'b' => ['class'], + 'i' => ['class'], + 'u' => ['class'], + 'em' => ['class'], + 'strong' => ['class'], + 'img' => ['src', 'style', 'class', 'alt', 'title', 'width', 'height'], + 'ul' => ['style', 'class'], + 'ol' => ['reversed', 'start', 'style', 'class', 'type'], + 'li' => ['style', 'class', 'value'], + 'h1' => ['style', 'class'], + 'h2' => ['style', 'class'], + 'h3' => ['style', 'class'], + 'h4' => ['style', 'class'], + 'nav' => ['style', 'class'], + 'section' => ['style', 'class'], + 'code' => ['style', 'class'], + 'table' => ['style', 'class', 'width', 'summary', 'align', 'border', 'cellpadding', 'cellspacing'], + 'colgroup' => [], + 'col' => ['style'], + 'thead' => ['style', 'class'], + 'tbody' => ['style', 'class'], + 'tr' => ['style', 'class', 'colspan', 'rowspan'], + 'td' => ['style', 'class', 'colspan', 'rowspan'], + 'th' => ['style', 'class', 'colspan', 'rowspan'], + 'fieldset' => ['style', 'class'], + 'legend' => ['style', 'class'], + 'font' => ['face', 'color', 'style', 'class', 'size'], + 'big' => [], + 'small' => [], + 'tt' => [], + 'kbd' => [], + 'samp' => [], + 'var' => [], + 'del' => [], + 's' => [], // strikethrough + 'ins' => [], + 'cite' => [], + 'q' => [], + 'hr' => ['style', 'class'], + 'pre' => ['class'], + 'center' => [], + 'figure' => ['style', 'class'], // Ckeditor 5 puts images in figures + 'figcaption' => ['class'], + 'mark' => ['class'], + ]; - protected static $aAttrsWhiteList = array( + protected static $aAttrsWhiteList = [ 'src' => '/^(http:|https:|data:)/i', - ); + ]; /** * @var array * @see https://www.itophub.io/wiki/page?id=2_6_0%3Aadmin%3Arich_text_limitations */ - protected static $aStylesWhiteList = array( + protected static $aStylesWhiteList = [ 'aspect-ratio', 'background-color', 'border', @@ -361,7 +352,7 @@ class HTMLDOMSanitizer extends DOMSanitizer 'vertical-align', 'width', 'white-space', - ); + ]; public function __construct($sInlineImageClassName = InlineImage::class) { @@ -431,15 +422,13 @@ class HTMLDOMSanitizer extends DOMSanitizer // Export only the content of the body tag $sCleanHtml = $this->oDoc->saveHTML($oNodesList->item(0)); // remove the body tag itself - $sCleanHtml = str_replace(array('', ''), '', $sCleanHtml); + $sCleanHtml = str_replace(['', ''], '', $sCleanHtml); } return $sCleanHtml; } } - - /** * @since 2.6.5 2.7.6 3.0.0 N°4360 */ diff --git a/core/iTopConfigParser.php b/core/iTopConfigParser.php index 723bffe01..a077a8a96 100644 --- a/core/iTopConfigParser.php +++ b/core/iTopConfigParser.php @@ -1,4 +1,5 @@ createForNewestSupportedVersion(); - $this->aVarsMap = array( - 'MySettings' => array(), - 'MyModuleSettings' => array(), - 'MyModules' => array(), - ); + $this->aVarsMap = [ + 'MySettings' => [], + 'MyModuleSettings' => [], + 'MyModules' => [], + ]; - if ($sConfig !== null) - { + if ($sConfig !== null) { $this->BrowseFile($oParser, $sConfig); } } @@ -67,15 +66,15 @@ class iTopConfigParser */ public function GetVarValue($arrayName, $key) { - if (!array_key_exists($arrayName, $this->aVarsMap)){ - return array('found' => false); + if (!array_key_exists($arrayName, $this->aVarsMap)) { + return ['found' => false]; } $arrayValue = $this->aVarsMap[$arrayName]; - if (!array_key_exists($key, $arrayValue)){ - return array('found' => false); + if (!array_key_exists($key, $arrayValue)) { + return ['found' => false]; } - return array('found' => true, - 'value' => $arrayValue[$key]); + return ['found' => true, + 'value' => $arrayValue[$key]]; } /** @@ -90,8 +89,7 @@ class iTopConfigParser try { $aNodes = $oParser->parse($sConfig); - } - catch (\Error $e) { + } catch (\Error $e) { $sMessage = Dict::Format('config-parse-error', $e->getMessage(), $e->getLine()); $this->oException = new \Exception($sMessage, 0, $e); } @@ -122,7 +120,7 @@ class iTopConfigParser if (!array_key_exists($sCurrentRootVar, $this->aVarsMap)) { continue; } - $aCurrentRootVarMap =& $this->aVarsMap[$sCurrentRootVar]; + $aCurrentRootVarMap = & $this->aVarsMap[$sCurrentRootVar]; foreach ($oAssignation->expr->items as $oItem) { $sValue = $prettyPrinter->prettyPrintExpr($oItem->value); @@ -130,4 +128,4 @@ class iTopConfigParser } } } -} \ No newline at end of file +} diff --git a/core/introspection.class.inc.php b/core/introspection.class.inc.php index cee5f9087..9e59be2a7 100644 --- a/core/introspection.class.inc.php +++ b/core/introspection.class.inc.php @@ -1,9 +1,10 @@ child classes - protected $aAttributes = array(); + protected $aAttributeHierarchy = []; // class => child classes + protected $aAttributes = []; public function __construct() { @@ -35,25 +36,19 @@ class Introspection protected function InitAttributes() { - foreach(get_declared_classes() as $sPHPClass) - { + foreach (get_declared_classes() as $sPHPClass) { $oRefClass = new ReflectionClass($sPHPClass); - if ($sPHPClass == 'AttributeDefinition' || $oRefClass->isSubclassOf('AttributeDefinition')) - { - if ($oParentClass = $oRefClass->getParentClass()) - { + if ($sPHPClass == 'AttributeDefinition' || $oRefClass->isSubclassOf('AttributeDefinition')) { + if ($oParentClass = $oRefClass->getParentClass()) { $sParentClass = $oParentClass->getName(); - if (!array_key_exists($sParentClass, $this->aAttributeHierarchy)) - { - $this->aAttributeHierarchy[$sParentClass] = array(); + if (!array_key_exists($sParentClass, $this->aAttributeHierarchy)) { + $this->aAttributeHierarchy[$sParentClass] = []; } $this->aAttributeHierarchy[$sParentClass][] = $sPHPClass; - } - else - { + } else { $sParentClass = null; } - $this->aAttributes[$sPHPClass] = array( + $this->aAttributes[$sPHPClass] = [ 'parent' => $sParentClass, 'LoadInObject' => $sPHPClass::LoadInObject(), 'LoadFromDB' => $sPHPClass::LoadFromDB(), @@ -63,7 +58,7 @@ class Introspection 'IsScalar' => $sPHPClass::IsScalar(), 'IsLinkset' => $sPHPClass::IsLinkset(), 'IsHierarchicalKey' => $sPHPClass::IsHierarchicalKey(), - ); + ]; } } } @@ -77,7 +72,7 @@ class Introspection } public function EnumAttributeCharacteristics() { - return array( + return [ 'LoadInObject' => 'Is the value stored in the object itself?', 'LoadFromDB' => 'Is the value read from the DB?', 'IsBasedOnDBColumns' => 'Is this a value stored within one or several columns?', @@ -86,8 +81,6 @@ class Introspection 'IsScalar' => 'Is this a value that makes sense in a SQL/OQL expression?', 'IsLinkset' => 'Is this a collection (1-N or N-N)?', 'IsHierarchicalKey' => 'Is this attribute an external key pointing to the host class?', - ); + ]; } } - - diff --git a/core/log.class.inc.php b/core/log.class.inc.php index a1688afdc..b79703ebf 100644 --- a/core/log.class.inc.php +++ b/core/log.class.inc.php @@ -1,4 +1,5 @@ - /** * @since 2.7.0 N°2518 N°2793 */ @@ -66,7 +66,7 @@ abstract class RotatingLogFileNameBuilder implements iLogFileNameBuilder * We are caching the file mtime though * @var array with full file path as key and DateTime (file last modification time) as value */ - protected static $aLogFileLastModified = array(); + protected static $aLogFileLastModified = []; /** @var string */ protected $sLogFileFullPath; /** @var string */ @@ -86,8 +86,7 @@ abstract class RotatingLogFileNameBuilder implements iLogFileNameBuilder protected function GetLastModifiedDateForFile() { - if (isset(static::$aLogFileLastModified[$this->sLogFileFullPath])) - { + if (isset(static::$aLogFileLastModified[$this->sLogFileFullPath])) { return static::$aLogFileLastModified[$this->sLogFileFullPath]; } @@ -131,16 +130,13 @@ abstract class RotatingLogFileNameBuilder implements iLogFileNameBuilder $oConfig = utils::GetConfig(); utils::InitTimeZone($oConfig); - if ($this->GetLastModifiedDateForFile() === null) - { - if (!$this->IsLogFileExists()) - { + if ($this->GetLastModifiedDateForFile() === null) { + if (!$this->IsLogFileExists()) { return; } $iLogDateLastModifiedTimeStamp = filemtime($this->sLogFileFullPath); - if ($iLogDateLastModifiedTimeStamp === false) - { + if ($iLogDateLastModifiedTimeStamp === false) { return; } $oDateTime = DateTime::createFromFormat('U', $iLogDateLastModifiedTimeStamp); @@ -152,8 +148,7 @@ abstract class RotatingLogFileNameBuilder implements iLogFileNameBuilder $oNow = new DateTime(); $bShouldRotate = $this->ShouldRotate($this->GetLastModifiedDateForFile(), $oNow); - if (!$bShouldRotate) - { + if (!$bShouldRotate) { return; } @@ -170,33 +165,28 @@ abstract class RotatingLogFileNameBuilder implements iLogFileNameBuilder */ protected function RotateLogFile($oLogFileLastModified) { - if (!$this->IsLogFileExists()) // extra check, but useful for cron also ! - { + if (!$this->IsLogFileExists()) { // extra check, but useful for cron also ! return; } $oLock = null; - try - { + try { $oLock = new iTopMutex('log_rotation_'.$this->sLogFileFullPath); $oLock->Lock(); - if (!$this->IsLogFileExists()) // extra extra check if we were blocked and another process moved the file in the meantime - { + if (!$this->IsLogFileExists()) { // extra extra check if we were blocked and another process moved the file in the meantime $oLock->Unlock(); return; } $this->ResetLastModifiedDateForFile(); $sNewLogFileName = $this->GetRotatedFileName($oLogFileLastModified); rename($this->sLogFileFullPath, $sNewLogFileName); - } - catch (Exception $e) - { + } catch (Exception $e) { // nothing to do, cannot log... file will be renamed on the next call O:) return; - } - finally - { - if (!is_null($oLock)) { $oLock->Unlock();} + } finally { + if (!is_null($oLock)) { + $oLock->Unlock(); + } } } @@ -227,13 +217,11 @@ abstract class RotatingLogFileNameBuilder implements iLogFileNameBuilder */ public function IsLogFileExists() { - if (!file_exists($this->sLogFileFullPath)) - { + if (!file_exists($this->sLogFileFullPath)) { return false; } - if (!is_readable($this->sLogFileFullPath)) - { + if (!is_readable($this->sLogFileFullPath)) { return false; } @@ -290,13 +278,11 @@ class DailyRotatingLogFileNameBuilder extends RotatingLogFileNameBuilder $iNowYear = $oNow->format('Y'); $iNowDay = $oNow->format('z'); - if ($iLogYear !== $iNowYear) - { + if ($iLogYear !== $iNowYear) { return true; } - if ($iLogDay !== $iNowDay) - { + if ($iLogDay !== $iNowDay) { return true; } @@ -341,13 +327,11 @@ class WeeklyRotatingLogFileNameBuilder extends RotatingLogFileNameBuilder $iNowYear = $oNow->format('Y'); $iNowWeek = $oNow->format('W'); - if ($iLogYear !== $iNowYear) - { + if ($iLogYear !== $iNowYear) { return true; } - if ($iLogWeek !== $iNowWeek) - { + if ($iLogWeek !== $iNowWeek) { return true; } @@ -381,13 +365,11 @@ class MonthlyRotatingLogFileNameBuilder extends RotatingLogFileNameBuilder $iNowYear = $oNow->format('Y'); $iNowMonth = $oNow->format('n'); - if ($iLogYear !== $iNowYear) - { + if ($iLogYear !== $iNowYear) { return true; } - if ($iLogMonth !== $iNowMonth) - { + if ($iLogMonth !== $iNowMonth) { return true; } @@ -435,8 +417,7 @@ class LogFileNameBuilderFactory { $oConfig = utils::GetConfig(); $sFileNameBuilderImpl = $oConfig->Get('log_filename_builder_impl'); - if (!is_a($sFileNameBuilderImpl, iLogFileNameBuilder::class, true)) - { + if (!is_a($sFileNameBuilderImpl, iLogFileNameBuilder::class, true)) { $sFileNameBuilderImpl = 'DefaultLogFileNameBuilder'; } @@ -444,7 +425,6 @@ class LogFileNameBuilderFactory } } - /** * File logging * @@ -469,38 +449,37 @@ class FileLog $this->oFileNameBuilder = LogFileNameBuilderFactory::GetInstance($sFileName); } - public function Error($sText, $sChannel = '', $aContext = array()) + public function Error($sText, $sChannel = '', $aContext = []) { $this->Write($sText, __FUNCTION__, $sChannel, $aContext); } - public function Warning($sText, $sChannel = '', $aContext = array()) + public function Warning($sText, $sChannel = '', $aContext = []) { $this->Write($sText, __FUNCTION__, $sChannel, $aContext); } - public function Info($sText, $sChannel = '', $aContext = array()) + public function Info($sText, $sChannel = '', $aContext = []) { $this->Write($sText, __FUNCTION__, $sChannel, $aContext); } - public function Ok($sText, $sChannel = '', $aContext = array()) + public function Ok($sText, $sChannel = '', $aContext = []) { $this->Write($sText, __FUNCTION__, $sChannel, $aContext); } - public function Debug($sText, $sChannel = '', $aContext = array()) + public function Debug($sText, $sChannel = '', $aContext = []) { $this->Write($sText, __FUNCTION__, $sChannel, $aContext); } - public function Trace($sText, $sChannel = '', $aContext = array()) + public function Trace($sText, $sChannel = '', $aContext = []) { $this->Write($sText, __FUNCTION__, $sChannel, $aContext); } - - protected function Write($sText, $sLevel = '', $sChannel = '', $aContext = array()) + protected function Write($sText, $sLevel = '', $sChannel = '', $aContext = []) { $sTextPrefix = empty($sLevel) ? '' : (str_pad($sLevel, 7)); $sTextPrefix .= ' | '; @@ -533,7 +512,6 @@ class FileLog } } - /** * Simple enum like class to factorize channels values as constants * Channels are used especially as parameters in {@see \LogAPI} methods @@ -638,7 +616,6 @@ class LogChannels public const SECURITY = 'Security'; } - abstract class LogAPI { public const CHANNEL_DEFAULT = ''; @@ -666,19 +643,18 @@ abstract class LogAPI */ public const LEVEL_DEFAULT_DB = false; - protected static $aLevelsPriority = array( + protected static $aLevelsPriority = [ self::LEVEL_ERROR => 400, self::LEVEL_WARNING => 300, self::LEVEL_INFO => 200, self::LEVEL_OK => 200, self::LEVEL_DEBUG => 100, self::LEVEL_TRACE => 50, - ); + ]; public const ENUM_CONFIG_PARAM_FILE = 'log_level_min'; public const ENUM_CONFIG_PARAM_DB = 'log_level_min.write_in_db'; - /** * Parameter to enable log purge. * @@ -715,32 +691,32 @@ abstract class LogAPI static::$m_oMockMetaModelConfig = $oMetaModelConfig; } - public static function Error($sMessage, $sChannel = null, $aContext = array()) + public static function Error($sMessage, $sChannel = null, $aContext = []) { static::Log(self::LEVEL_ERROR, $sMessage, $sChannel, $aContext); } - public static function Warning($sMessage, $sChannel = null, $aContext = array()) + public static function Warning($sMessage, $sChannel = null, $aContext = []) { static::Log(self::LEVEL_WARNING, $sMessage, $sChannel, $aContext); } - public static function Info($sMessage, $sChannel = null, $aContext = array()) + public static function Info($sMessage, $sChannel = null, $aContext = []) { static::Log(self::LEVEL_INFO, $sMessage, $sChannel, $aContext); } - public static function Ok($sMessage, $sChannel = null, $aContext = array()) + public static function Ok($sMessage, $sChannel = null, $aContext = []) { static::Log(self::LEVEL_OK, $sMessage, $sChannel, $aContext); } - public static function Debug($sMessage, $sChannel = null, $aContext = array()) + public static function Debug($sMessage, $sChannel = null, $aContext = []) { static::Log(self::LEVEL_DEBUG, $sMessage, $sChannel, $aContext); } - public static function Trace($sMessage, $sChannel = null, $aContext = array()) + public static function Trace($sMessage, $sChannel = null, $aContext = []) { static::Log(self::LEVEL_TRACE, $sMessage, $sChannel, $aContext); } @@ -748,7 +724,7 @@ abstract class LogAPI /** * @throws \ConfigException if log wrongly configured */ - public static function Log($sLevel, $sMessage, $sChannel = null, $aContext = array()) + public static function Log($sLevel, $sMessage, $sChannel = null, $aContext = []) { if (!isset(self::$aLevelsPriority[$sLevel])) { IssueLog::Error("invalid log level '{$sLevel}'"); @@ -766,7 +742,7 @@ abstract class LogAPI /** * @throws \ConfigException */ - protected static function WriteLog(string $sLevel, string $sMessage, ?string $sChannel = null, ?array $aContext = array()): void + protected static function WriteLog(string $sLevel, string $sMessage, ?string $sChannel = null, ?array $aContext = []): void { if ( (null !== static::$m_oFileLog) @@ -918,15 +894,13 @@ abstract class LogAPI try { self::$oLastEventIssue = static::GetEventIssue($sMessage, $sChannel, $aContext); self::$oLastEventIssue->DBInsertNoReload(); - } - catch (Exception $e) { + } catch (Exception $e) { // calling low level methods : if we would call Error() for example we would try to write to DB again... static::$m_oFileLog->Error('Failed to log issue into the DB', LogChannels::CORE, [ 'exception message' => $e->getMessage(), 'exception stack' => $e->getTraceAsString(), ]); - } - finally { + } finally { $bWriteToDbReentrance = false; } } @@ -994,13 +968,13 @@ abstract class LogAPI class SetupLog extends LogAPI { - const CHANNEL_DEFAULT = 'SetupLog'; + public const CHANNEL_DEFAULT = 'SetupLog'; /** * @inheritDoc * * As this object is used during setup, without any conf file available, customizing the level can be done by changing this constant ! */ - const LEVEL_DEFAULT = self::LEVEL_INFO; + public const LEVEL_DEFAULT = self::LEVEL_INFO; protected static $m_oFileLog = null; @@ -1017,14 +991,14 @@ class SetupLog extends LogAPI class IssueLog extends LogAPI { - const CHANNEL_DEFAULT = 'IssueLog'; + public const CHANNEL_DEFAULT = 'IssueLog'; protected static $m_oFileLog = null; } class ToolsLog extends LogAPI { - const CHANNEL_DEFAULT = 'ToolsLog'; + public const CHANNEL_DEFAULT = 'ToolsLog'; protected static $m_oFileLog = null; } @@ -1037,17 +1011,16 @@ class ToolsLog extends LogAPI */ class DeadLockLog extends LogAPI { - const CHANNEL_WAIT_TIMEOUT = 'Deadlock-WaitTimeout'; - const CHANNEL_DEADLOCK_FOUND = 'Deadlock-Found'; - const CHANNEL_DEFAULT = self::CHANNEL_WAIT_TIMEOUT; + public const CHANNEL_WAIT_TIMEOUT = 'Deadlock-WaitTimeout'; + public const CHANNEL_DEADLOCK_FOUND = 'Deadlock-Found'; + public const CHANNEL_DEFAULT = self::CHANNEL_WAIT_TIMEOUT; /** @var \FileLog we want our own instance ! */ protected static $m_oFileLog = null; public static function Enable($sTargetFile = null) { - if (empty($sTargetFile)) - { + if (empty($sTargetFile)) { $sTargetFile = APPROOT.'log/deadlocks.log'; } parent::Enable($sTargetFile); @@ -1056,8 +1029,7 @@ class DeadLockLog extends LogAPI /** @noinspection PhpUnreachableStatementInspection we want to keep the break statements to keep clarity and avoid errors */ private static function GetChannelFromMysqlErrorNo($iMysqlErrorNo) { - switch ($iMysqlErrorNo) - { + switch ($iMysqlErrorNo) { case CMDBSource::MYSQL_ERRNO_WAIT_TIMEOUT: return self::CHANNEL_WAIT_TIMEOUT; break; @@ -1082,14 +1054,13 @@ class DeadLockLog extends LogAPI * @since 2.7.1 method creation * @since 2.7.5 3.0.0 rename param names and fix phpdoc (thanks Hipska !) */ - public static function Log($sLevel, $sMessage, $iMysqlErrorNumber = null, $aContext = array()) + public static function Log($sLevel, $sMessage, $iMysqlErrorNumber = null, $aContext = []) { $sChannel = self::GetChannelFromMysqlErrorNo($iMysqlErrorNumber); parent::Log($sLevel, $sMessage, $sChannel, $aContext); } } - /** * Starting with the WARNING level we will log in a dedicated file (/log/deprecated-calls.log) : * - iTop deprecated files or code @@ -1137,8 +1108,7 @@ class DeprecatedCallsLog extends LogAPI { try { $bIsLogLevelEnabled = static::IsLogLevelEnabled(self::LEVEL_WARNING, self::ENUM_CHANNEL_PHP_LIBMETHOD); - } - catch (ConfigException $e) { + } catch (ConfigException $e) { $bIsLogLevelEnabled = false; } @@ -1153,7 +1123,8 @@ class DeprecatedCallsLog extends LogAPI * @since 3.0.0 N°3002 logs deprecated notices in called code * @since 3.0.4 N°6274 do not set handler when in PHPUnit context (otherwise PHP notices won't be caught) */ - public static function Enable($sTargetFile = null): void { + public static function Enable($sTargetFile = null): void + { if (empty($sTargetFile)) { $sTargetFile = APPROOT.'log/deprecated-calls.log'; } @@ -1248,8 +1219,7 @@ class DeprecatedCallsLog extends LogAPI if (!static::IsLogLevelEnabled(self::LEVEL_WARNING, self::ENUM_CHANNEL_FILE)) { return; } - } - catch (ConfigException $e) { + } catch (ConfigException $e) { return; } @@ -1290,8 +1260,7 @@ class DeprecatedCallsLog extends LogAPI if (!static::IsLogLevelEnabled(self::LEVEL_WARNING, self::ENUM_CHANNEL_PHP_API)) { return; } - } - catch (ConfigException $oException) { + } catch (ConfigException $oException) { return; } @@ -1319,8 +1288,7 @@ class DeprecatedCallsLog extends LogAPI if (!static::IsLogLevelEnabled(self::LEVEL_WARNING, self::ENUM_CHANNEL_PHP_METHOD)) { return; } - } - catch (ConfigException $e) { + } catch (ConfigException $e) { return; } @@ -1328,8 +1296,7 @@ class DeprecatedCallsLog extends LogAPI if (isset($aStack[1]['class'])) { $sFunctionDesc = $aStack[1]['class'].$aStack[1]['type'].$aStack[1]['function']; - } - else { + } else { $sFunctionDesc = $aStack[1]['function']; } @@ -1340,7 +1307,6 @@ class DeprecatedCallsLog extends LogAPI $sMessage .= '. Caller: '.self::SummarizeCallStack(array_slice($aStack, 1)); - static::Warning($sMessage, self::ENUM_CHANNEL_PHP_METHOD); static::ForwardToTriggerError($sMessage); } @@ -1355,8 +1321,7 @@ class DeprecatedCallsLog extends LogAPI if (!static::IsLogLevelEnabled(self::LEVEL_WARNING, self::ENUM_CHANNEL_PHP_ENDPOINT)) { return; } - } - catch (ConfigException $e) { + } catch (ConfigException $e) { return; } @@ -1375,12 +1340,11 @@ class DeprecatedCallsLog extends LogAPI static::ForwardToTriggerError($sMessage); } - public static function Log($sLevel, $sMessage, $sChannel = null, $aContext = array()): void + public static function Log($sLevel, $sMessage, $sChannel = null, $aContext = []): void { try { parent::Log($sLevel, $sMessage, $sChannel, $aContext); - } - catch (ConfigException $e) { + } catch (ConfigException $e) { // nothing much we can do... and we don't want to crash the caller ! } } @@ -1412,13 +1376,11 @@ class DeprecatedCallsLog extends LogAPI // If possible and meaningful, add the class and method if (isset($aCallStack[1]['class'])) { $sSummary = $aCallStack[1]['class'].$aCallStack[1]['type'].$aCallStack[1]['function']." ($sFileLine)"; - } - elseif (isset($aCallStack[1]['function'])) { + } elseif (isset($aCallStack[1]['function'])) { if (in_array($aCallStack[1]['function'], ['include', 'require', 'include_once', 'require_once'])) { // No need to show the generic mechanism of inclusion $bRecurse = false; - } - else { + } else { $sSummary = $aCallStack[1]['function']." ($sFileLine)"; } } @@ -1441,7 +1403,6 @@ class DeprecatedCallsLog extends LogAPI } } - class LogFileRotationProcess implements iScheduledProcess { /** @@ -1449,12 +1410,12 @@ class LogFileRotationProcess implements iScheduledProcess * * @var string[] */ - const LOGFILES_TO_ROTATE = array( + public const LOGFILES_TO_ROTATE = [ 'setup.log', 'error.log', 'tools.log', 'itop-fence.log', - ); + ]; /** * @inheritDoc @@ -1492,7 +1453,7 @@ class LogFileRotationProcess implements iScheduledProcess public function PurgeLogs(): array { // result - $aFilesResult = array(); + $aFilesResult = []; // Max keep days $iMaxDays = MetaModel::GetConfig()->Get(LogAPI::ENUM_CONFIG_PARAM_PURGE_MAX_KEEP_DAYS); @@ -1511,9 +1472,9 @@ class LogFileRotationProcess implements iScheduledProcess $sFileRealPath = $oLogFile->getRealPath(); // Check file extension - if(!in_array($oLogFile->getExtension(), ['log','sql','xml'])){ + if (!in_array($oLogFile->getExtension(), ['log','sql','xml'])) { continue; - } + } // Compute number of days since last modification $oDateFileLastModification = new DateTime(); @@ -1535,7 +1496,7 @@ class LogFileRotationProcess implements iScheduledProcess if (!is_writable($sFileRealPath)) { $aFileResult['error'] = Dict::S('itop-log-mgmt:UI:Error:file_read_only'); } // unlink OK - else if (unlink($sFileRealPath)) { + elseif (unlink($sFileRealPath)) { $aFileResult['deleted'] = true; } // unlink KO else { @@ -1558,8 +1519,7 @@ class LogFileRotationProcess implements iScheduledProcess { try { $sLogFileNameBuilder = $this->GetLogFileNameBuilderClassName(); - } - catch (ProcessException $e) { + } catch (ProcessException $e) { return new DateTime('3000-01-01'); } @@ -1575,8 +1535,7 @@ class LogFileRotationProcess implements iScheduledProcess private function GetLogFileNameBuilderClassName() { $sLogFileNameBuilder = MetaModel::GetConfig()->Get('log_filename_builder_impl'); - if (is_a($sLogFileNameBuilder, RotatingLogFileNameBuilder::class, true)) - { + if (is_a($sLogFileNameBuilder, RotatingLogFileNameBuilder::class, true)) { return $sLogFileNameBuilder; } @@ -1604,7 +1563,7 @@ class ExceptionLog extends LogAPI * As it encapsulate the operations performed using the Exception, you should prefer it to the standard API inherited from LogApi `ExceptionLog::Error($oException->getMessage(), get_class($oException), ['__exception' => $oException]);` * The parameter order is not standard, but in our use case, the resulting API is way more convenient this way ! */ - public static function LogException(Throwable $oException, $aContext = array(), $sLevel = self::LEVEL_ERROR): void + public static function LogException(Throwable $oException, $aContext = [], $sLevel = self::LEVEL_ERROR): void { if (!isset(self::$aLevelsPriority[$sLevel])) { IssueLog::Error("invalid log level '{$sLevel}'"); @@ -1626,13 +1585,13 @@ class ExceptionLog extends LogAPI } /** @noinspection PhpUnhandledExceptionInspection */ - public static function Log($sLevel, $sMessage, $sChannel = null, $aContext = array()) + public static function Log($sLevel, $sMessage, $sChannel = null, $aContext = []) { throw new ApplicationException('Do not call this directly, prefer using ExceptionLog::LogException() instead'); } /** @noinspection PhpParameterNameChangedDuringInheritanceInspection */ - protected static function WriteLog(string $sLevel, string $sMessage, ?string $sExceptionClass = null, ?array $aContext = array()): void + protected static function WriteLog(string $sLevel, string $sMessage, ?string $sExceptionClass = null, ?array $aContext = []): void { if ( (null !== static::$m_oFileLog) diff --git a/core/metamodelmodifier.inc.php b/core/metamodelmodifier.inc.php index 5da53d262..1dcff60d8 100644 --- a/core/metamodelmodifier.inc.php +++ b/core/metamodelmodifier.inc.php @@ -1,9 +1,10 @@ - /** - * Any extension to hook the initialization of the metamodel + * Any extension to hook the initialization of the metamodel * * @copyright Copyright (C) 2010-2024 Combodo SAS * @license http://opensource.org/licenses/AGPL-3.0 @@ -28,5 +28,3 @@ interface iOnClassInitialization { public function OnAfterClassInitialization($sClass); } - -?> diff --git a/core/modelreflection.class.inc.php b/core/modelreflection.class.inc.php index 3ab1ed7cf..3e10c0bdd 100644 --- a/core/modelreflection.class.inc.php +++ b/core/modelreflection.class.inc.php @@ -1,9 +1,10 @@ - /** - * Reflection API for the MetaModel (partial) + * Reflection API for the MetaModel (partial) * * @copyright Copyright (C) 2024 Combodo SAS * @license http://opensource.org/licenses/AGPL-3.0 @@ -37,10 +37,9 @@ define('ENUM_CHILD_CLASSES_EXCLUDETOP', 1); */ define('ENUM_CHILD_CLASSES_ALL', 2); - abstract class ModelReflection { - abstract public function GetClassIcon($sClass, $bImgTag = true); + abstract public function GetClassIcon($sClass, $bImgTag = true); abstract public function IsValidAttCode($sClass, $sAttCode); abstract public function GetName($sClass); abstract public function GetLabel($sClass, $sAttCodeEx); @@ -70,9 +69,8 @@ abstract class ModelReflection $sLocalizedFormat = $this->DictString($sFormatCode); $aArguments = func_get_args(); array_shift($aArguments); - - if ($sLocalizedFormat == $sFormatCode) - { + + if ($sLocalizedFormat == $sFormatCode) { // Make sure the information will be displayed (ex: an error occuring before the dictionary gets loaded) return $sFormatCode.' - '.implode(', ', $aArguments); } @@ -88,7 +86,7 @@ abstract class ModelReflection * @return \RunTimeIconSelectionField */ abstract public function GetIconSelectionField($sCode, $sLabel = '', $defaultValue = ''); - + abstract public function GetRootClass($sClass); abstract public function EnumChildClasses($sClass, $iOption = ENUM_CHILD_CLASSES_EXCLUDETOP); } @@ -104,7 +102,6 @@ abstract class QueryReflection abstract public function GetClassAlias(); } - class ModelReflectionRuntime extends ModelReflection { public function __construct() @@ -115,22 +112,22 @@ class ModelReflectionRuntime extends ModelReflection { return MetaModel::GetClassIcon($sClass, $bImgTag); } - + public function IsValidAttCode($sClass, $sAttCode) { return MetaModel::IsValidAttCode($sClass, $sAttCode); } - + public function GetName($sClass) { return MetaModel::GetName($sClass); } - + public function GetLabel($sClass, $sAttCodeEx) { return MetaModel::GetLabel($sClass, $sAttCodeEx); } - + public function GetValueLabel($sClass, $sAttCode, $sValue) { $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); @@ -140,52 +137,41 @@ class ModelReflectionRuntime extends ModelReflection public function ListAttributes($sClass, $sScope = null) { $aScope = null; - if ($sScope != null) - { - $aScope = array(); - foreach (explode(',', $sScope) as $sScopeClass) - { + if ($sScope != null) { + $aScope = []; + foreach (explode(',', $sScope) as $sScopeClass) { $aScope[] = trim($sScopeClass); } } - $aAttributes = array(); - foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) - { + $aAttributes = []; + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { $sAttributeClass = get_class($oAttDef); - if ($aScope != null) - { - foreach ($aScope as $sScopeClass) - { - if (($sAttributeClass == $sScopeClass) || is_subclass_of($sAttributeClass, $sScopeClass)) - { + if ($aScope != null) { + foreach ($aScope as $sScopeClass) { + if (($sAttributeClass == $sScopeClass) || is_subclass_of($sAttributeClass, $sScopeClass)) { $aAttributes[$sAttCode] = $sAttributeClass; break; } } - } - else - { + } else { $aAttributes[$sAttCode] = $sAttributeClass; } } return $aAttributes; } - + public function GetAttributeProperty($sClass, $sAttCode, $sPropName, $default = null) { $ret = $default; $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); $aParams = $oAttDef->GetParams(); - if (array_key_exists($sPropName, $aParams)) - { + if (array_key_exists($sPropName, $aParams)) { $ret = $aParams[$sPropName]; } - if ($oAttDef instanceof AttributeHierarchicalKey) - { - if ($sPropName == 'targetclass') - { + if ($oAttDef instanceof AttributeHierarchicalKey) { + if ($sPropName == 'targetclass') { $ret = $sClass; } } @@ -196,29 +182,24 @@ class ModelReflectionRuntime extends ModelReflection { return MetaModel::GetAllowedValues_att($sClass, $sAttCode); } - + public function HasChildrenClasses($sClass) { return MetaModel::HasChildrenClasses($sClass); } - + public function GetClasses($sCategories = '', $bExcludeLinks = false) { $aClasses = MetaModel::GetClasses($sCategories); - if ($bExcludeLinks) - { + if ($bExcludeLinks) { $aExcluded = MetaModel::GetLinkClasses(); - $aRes = array(); - foreach ($aClasses as $sClass) - { - if (!array_key_exists($sClass, $aExcluded)) - { + $aRes = []; + foreach ($aClasses as $sClass) { + if (!array_key_exists($sClass, $aExcluded)) { $aRes[] = $sClass; } } - } - else - { + } else { $aRes = $aClasses; } return $aRes; @@ -263,19 +244,18 @@ class ModelReflectionRuntime extends ModelReflection { return new RunTimeIconSelectionField($sCode, $sLabel, $defaultValue); } - + public function GetRootClass($sClass) { return MetaModel::GetRootClass($sClass); } - + public function EnumChildClasses($sClass, $iOption = ENUM_CHILD_CLASSES_EXCLUDETOP) { return MetaModel::EnumChildClasses($sClass, $iOption); } } - class QueryReflectionRuntime extends QueryReflection { protected $oFilter; diff --git a/core/moduledesign.class.inc.php b/core/moduledesign.class.inc.php index 8b76e8a56..16b5d57a2 100644 --- a/core/moduledesign.class.inc.php +++ b/core/moduledesign.class.inc.php @@ -1,4 +1,5 @@ LoadFromCompiledDesigns($sDesignSourceId); } } @@ -80,18 +79,13 @@ class ModuleDesign extends \Combodo\iTop\DesignDocument { $sDesignDir = APPROOT.'env-'.utils::GetCurrentEnvironment().'/core/module_designs/'; $sFile = $sDesignDir.$sDesignSourceId.'.xml'; - if (!file_exists($sFile)) - { + if (!file_exists($sFile)) { $aFiles = glob($sDesignDir.'/*.xml'); - if (count($aFiles) == 0) - { + if (count($aFiles) == 0) { $sAvailable = 'none!'; - } - else - { - $aAvailable = array(); - foreach ($aFiles as $sFile) - { + } else { + $aAvailable = []; + foreach ($aFiles as $sFile) { $aAvailable[] = "'".basename($sFile, '.xml')."'"; } $sAvailable = implode(', ', $aAvailable); @@ -105,11 +99,9 @@ class ModuleDesign extends \Combodo\iTop\DesignDocument $this->load($sFile); //$bValidated = $oDocument->schemaValidate(APPROOT.'setup/itop_design.xsd'); $aErrors = libxml_get_errors(); - if (count($aErrors) > 0) - { - $aDisplayErrors = array(); - foreach($aErrors as $oXmlError) - { + if (count($aErrors) > 0) { + $aDisplayErrors = []; + foreach ($aErrors as $oXmlError) { $aDisplayErrors[] = 'Line '.$oXmlError->line.': '.$oXmlError->message; } diff --git a/core/modulehandler.class.inc.php b/core/modulehandler.class.inc.php index 21d9b7204..60249aa4c 100644 --- a/core/modulehandler.class.inc.php +++ b/core/modulehandler.class.inc.php @@ -1,9 +1,10 @@ - /** * Class ModuleHandler - * Defines the API to implement module specific actions during page execution + * Defines the API to implement module specific actions during page execution * * @copyright Copyright (C) 2010-2024 Combodo SAS * @license http://opensource.org/licenses/AGPL-3.0 @@ -36,17 +36,16 @@ abstract class ModuleHandlerAPI implements ModuleHandlerApiInterface } public function __construct() - { - } + { + } } - interface ModuleHandlerApiInterface { - public static function OnMetaModelStarted(); + public static function OnMetaModelStarted(); - public static function OnMenuCreation(); + public static function OnMenuCreation(); - public function __construct(); //empty params is required in order to be instantiable by MetaModel::InitClasses() -} \ No newline at end of file + public function __construct(); //empty params is required in order to be instantiable by MetaModel::InitClasses() +} diff --git a/core/mutex.class.inc.php b/core/mutex.class.inc.php index 94db80198..4e7c096c1 100644 --- a/core/mutex.class.inc.php +++ b/core/mutex.class.inc.php @@ -1,9 +1,10 @@ - /** * Class iTopMutex * A class to serialize the execution of some code sections @@ -44,17 +44,20 @@ class iTopMutex protected $sDBSubname; protected $bDBTlsEnabled; protected $sDBTlsCA; - static protected $aAcquiredLocks = array(); // Number of instances of the Mutex, having the lock, in this page + protected static $aAcquiredLocks = []; // Number of instances of the Mutex, having the lock, in this page public function __construct( - $sName, $sDBHost = null, $sDBUser = null, $sDBPwd = null, $bDBTlsEnabled = null, $sDBTlsCA = null - ) - { + $sName, + $sDBHost = null, + $sDBUser = null, + $sDBPwd = null, + $bDBTlsEnabled = null, + $sDBTlsCA = null + ) { // Compute the name of a lock for mysql // Note: names are server-wide!!! So let's make the name specific to this iTop instance $oConfig = MetaModel::GetConfig(); - if ($oConfig === null) - { + if ($oConfig === null) { $oConfig = utils::GetConfig(); // Will return an empty config when called during the setup } $this->sDBHost = is_null($sDBHost) ? $oConfig->Get('db_host') : $sDBHost; @@ -67,8 +70,7 @@ class iTopMutex $this->sDBTlsCA = is_null($sDBTlsCA) ? $oConfig->Get('db_tls.ca') : $sDBTlsCA; $this->sName = $sName; - if (substr($sName, -strlen($this->sDBName.$sDBSubname)) != $this->sDBName.$sDBSubname) - { + if (substr($sName, -strlen($this->sDBName.$sDBSubname)) != $this->sDBName.$sDBSubname) { // If the name supplied already ends with the expected suffix // don't add it twice, since the setup may try to detect an already // running cron job by its mutex, without knowing if the config already exists or not @@ -80,8 +82,7 @@ class iTopMutex $this->bLocked = false; // Not yet locked - if (!array_key_exists($this->sName, self::$aAcquiredLocks)) - { + if (!array_key_exists($this->sName, self::$aAcquiredLocks)) { self::$aAcquiredLocks[$this->sName] = 0; } @@ -108,11 +109,9 @@ class iTopMutex return new iTopMutex(...$aArgs); } - public function __destruct() { - if ($this->bLocked) - { + if ($this->bLocked) { $this->Unlock(); } mysqli_close($this->hDBLink); @@ -122,27 +121,22 @@ class iTopMutex * Acquire the mutex. Uses a MySQL lock. Warn : can have an abnormal behavior on MySQL clusters (see R-016204) * * @see https://dev.mysql.com/doc/refman/5.7/en/miscellaneous-functions.html#function_get-lock - */ + */ public function Lock() { - if ($this->bLocked) - { + if ($this->bLocked) { // Lock already acquired return; } - if (self::$aAcquiredLocks[$this->sName] == 0) - { - do - { + if (self::$aAcquiredLocks[$this->sName] == 0) { + do { $res = $this->QueryToScalar("SELECT GET_LOCK('".$this->sName."', 3600)"); - if (is_null($res)) - { + if (is_null($res)) { throw new Exception("Failed to acquire the lock '".$this->sName."'"); } // $res === '1' means I hold the lock // $res === '0' means it timed out - } - while ($res !== '1'); + } while ($res !== '1'); } $this->bLocked = true; self::$aAcquiredLocks[$this->sName]++; @@ -150,66 +144,56 @@ class iTopMutex /** * Attempt to acquire the mutex - * @returns bool True if the mutex is acquired, false if already locked elsewhere - */ + * @returns bool True if the mutex is acquired, false if already locked elsewhere + */ public function TryLock() { - if ($this->bLocked) - { + if ($this->bLocked) { return true; // Already acquired } - if (self::$aAcquiredLocks[$this->sName] > 0) - { + if (self::$aAcquiredLocks[$this->sName] > 0) { self::$aAcquiredLocks[$this->sName]++; $this->bLocked = true; return true; } - + $res = $this->QueryToScalar("SELECT GET_LOCK('".$this->sName."', 0)"); - if (is_null($res)) - { + if (is_null($res)) { throw new Exception("Failed to acquire the lock '".$this->sName."'"); } // $res === '1' means I hold the lock // $res === '0' means it timed out - if ($res === '1') - { + if ($res === '1') { $this->bLocked = true; self::$aAcquiredLocks[$this->sName]++; } - if (($res !== '1') && ($res !== '0')) - { + if (($res !== '1') && ($res !== '0')) { $sMsg = 'GET_LOCK('.$this->sName.', 0) returned: '.var_export($res, true).'. Expected values are: 0, 1 or null'; IssueLog::Error($sMsg); throw new Exception($sMsg); } return ($res !== '0'); } - + /** * Check if the mutex is locked WITHOUT TRYING TO ACQUIRE IT * @returns bool True if the mutex is in use, false otherwise */ public function IsLocked() { - if ($this->bLocked) - { + if ($this->bLocked) { return true; // Already acquired } - if (self::$aAcquiredLocks[$this->sName] > 0) - { + if (self::$aAcquiredLocks[$this->sName] > 0) { return true; } - + $res = $this->QueryToScalar("SELECT IS_FREE_LOCK('".$this->sName."')"); // IS_FREE_LOCK detects some error cases that IS_USED_LOCK do not detect - if (is_null($res)) - { + if (is_null($res)) { $sMsg = "MySQL Error, IS_FREE_LOCK('".$this->sName."') returned null. Error (".mysqli_errno($this->hDBLink).") = '".mysqli_error($this->hDBLink)."'"; IssueLog::Error($sMsg); throw new Exception($sMsg); - } - else if ($res == '1') - { + } elseif ($res == '1') { // Lock is free return false; } @@ -218,21 +202,18 @@ class iTopMutex /** * Release the mutex - */ + */ public function Unlock() { - if (!$this->bLocked) - { + if (!$this->bLocked) { // ??? the lock is not acquired, exit - return; + return; } - if (self::$aAcquiredLocks[$this->sName] == 0) - { + if (self::$aAcquiredLocks[$this->sName] == 0) { return; // Safety net } - - if (self::$aAcquiredLocks[$this->sName] == 1) - { + + if (self::$aAcquiredLocks[$this->sName] == 1) { $res = $this->QueryToScalar("SELECT RELEASE_LOCK('".$this->sName."')"); } $this->bLocked = false; @@ -259,7 +240,7 @@ class iTopMutex $this->hDBLink = CMDBSource::GetMysqliInstance($sServer, $sUser, $sPwd, $sSource, $bTlsEnabled, $sTlsCA, false); if (!$this->hDBLink) { - throw new MySQLException('Could not connect to the DB server '.mysqli_connect_error().' (mysql errno: '.mysqli_connect_errno(), array('host' => $sDBHost, 'user' => $sDBUser)); + throw new MySQLException('Could not connect to the DB server '.mysqli_connect_error().' (mysql errno: '.mysqli_connect_errno(), ['host' => $sDBHost, 'user' => $sDBUser]); } // Make sure that the server variable `wait_timeout` is at least 86400 seconds for this connection, @@ -290,20 +271,15 @@ class iTopMutex } } - protected function QueryToScalar($sSql) { $result = mysqli_query($this->hDBLink, $sSql); - if (!$result) - { + if (!$result) { throw new Exception("Failed to issue MySQL query '".$sSql."': ".mysqli_error($this->hDBLink).' (mysql errno: '.mysqli_errno($this->hDBLink).')'); } - if ($aRow = mysqli_fetch_array($result, MYSQLI_BOTH)) - { + if ($aRow = mysqli_fetch_array($result, MYSQLI_BOTH)) { $res = $aRow[0]; - } - else - { + } else { mysqli_free_result($result); throw new Exception("No result for query '".$sSql."'"); } diff --git a/core/oqlclassnode.class.inc.php b/core/oqlclassnode.class.inc.php index 5abeb17e5..a77e42675 100644 --- a/core/oqlclassnode.class.inc.php +++ b/core/oqlclassnode.class.inc.php @@ -1,10 +1,10 @@ sNodeClass = $sNodeClass; - if (empty($sNodeClassAlias)) - { + if (empty($sNodeClassAlias)) { $this->sNodeClassAlias = $oBuild->GetEmptyClassAlias(); - } - else - { + } else { $this->sNodeClassAlias = $sNodeClassAlias; } - $this->aJoins = array(); - $this->aExtKeys = array(); - if (is_null($sOQLClassAlias)) - { + $this->aJoins = []; + $this->aExtKeys = []; + if (is_null($sOQLClassAlias)) { $this->sOQLClassAlias = $this->sNodeClassAlias; - } - else - { + } else { $this->sOQLClassAlias = $sOQLClassAlias; } $this->oBuild = $oBuild; @@ -60,9 +54,8 @@ class OQLClassNode public function AddExternalKey($sKeyAttCode) { - if (!isset($this->aExtKeys[$sKeyAttCode])) - { - $this->aExtKeys[$sKeyAttCode] = array(); + if (!isset($this->aExtKeys[$sKeyAttCode])) { + $this->aExtKeys[$sKeyAttCode] = []; } } @@ -72,7 +65,6 @@ class OQLClassNode $this->aExtKeys[$sKeyAttCode][$sFieldAttCode] = $oAttDef; } - public function AddInnerJoin($oOQLClassNode, $sLeftField, $sRightField, $bOutbound = true) { $this->AddJoin(OQLJoin::JOIN_INNER, $oOQLClassNode, $sLeftField, $sRightField, $bOutbound); @@ -82,7 +74,7 @@ class OQLClassNode { $this->AddJoin(OQLJoin::JOIN_LEFT, $oOQLClassNode, $sLeftField, $sRightField, $bOutbound); } - + public function AddInnerJoinTree($oOQLClassNode, $sLeftField, $sRightField, $bOutbound = true, $iOperatorCode = TREE_OPERATOR_BELOW, $bInvertOnClause = false) { $this->AddJoin(OQLJoin::JOIN_INNER_TREE, $oOQLClassNode, $sLeftField, $sRightField, $bOutbound, $iOperatorCode, $bInvertOnClause); @@ -90,8 +82,16 @@ class OQLClassNode private function AddJoin($sJoinType, $oOQLClassNode, $sLeftField, $sRightField, $bOutbound = true, $sTreeOperator = null, $bInvertOnClause = false) { - $oOQLJoin = new OQLJoin($this->oBuild, $sJoinType, $oOQLClassNode, $sLeftField, $sRightField, $bOutbound, $sTreeOperator, - $bInvertOnClause); + $oOQLJoin = new OQLJoin( + $this->oBuild, + $sJoinType, + $oOQLClassNode, + $sLeftField, + $sRightField, + $bOutbound, + $sTreeOperator, + $bInvertOnClause + ); $this->AddOQLJoin($sLeftField, $oOQLJoin); } @@ -116,26 +116,21 @@ class OQLClassNode public function RenderDebug() { $sOQL = "SELECT `{$this->sNodeClassAlias}` FROM `{$this->sNodeClass}` AS `{$this->sNodeClassAlias}`"; - foreach ($this->aJoins as $aJoins) - { - foreach ($aJoins as $oJoin) - { + foreach ($this->aJoins as $aJoins) { + foreach ($aJoins as $oJoin) { $sOQL .= "{$oJoin->RenderDebug($this->sNodeClassAlias)}"; } } - return $sOQL; } public function Browse(Closure $callback) { $callback($this); - foreach ($this->GetJoins() as $aJoins) - { + foreach ($this->GetJoins() as $aJoins) { /** @var \OQLJoin $oJoin */ - foreach ($aJoins as $oJoin) - { + foreach ($aJoins as $oJoin) { $oJoin->GetOOQLClassNode()->Browse($callback); } } @@ -182,8 +177,7 @@ class OQLClassNode public function RemoveJoin($sLeftKey, $index) { unset($this->aJoins[$sLeftKey][$index]); - if (empty($this->aJoins[$sLeftKey])) - { + if (empty($this->aJoins[$sLeftKey])) { unset($this->aJoins[$sLeftKey]); } } @@ -192,10 +186,10 @@ class OQLClassNode class OQLJoin { - const JOIN_INNER = 'inner'; - const JOIN_LEFT = 'left'; - const JOIN_INNER_TREE = 'inner_tree'; - + public const JOIN_INNER = 'inner'; + public const JOIN_LEFT = 'left'; + public const JOIN_INNER_TREE = 'inner_tree'; + private $sJoinType; /** @var \OQLClassNode */ private $oOQLClassNode; @@ -238,8 +232,16 @@ class OQLJoin public function NewOQLJoinWithClassNode($oOQLClassNode) { - return new self($this->oBuild, $this->sJoinType, $oOQLClassNode, $this->sLeftField, $this->sRightField, $this->bOutbound, - $this->sTreeOperator, $this->bInvertOnClause); + return new self( + $this->oBuild, + $this->sJoinType, + $oOQLClassNode, + $this->sLeftField, + $this->sRightField, + $this->bOutbound, + $this->sTreeOperator, + $this->bInvertOnClause + ); } /** @@ -252,27 +254,20 @@ class OQLJoin // Translate the fields before copy to SQL $sLeft = $oBaseSQLQuery->GetTableAlias().'.'.$this->sLeftField; $oLeftField = $oBuild->m_oQBExpressions->GetJoinField($sLeft); - if ($oLeftField) - { + if ($oLeftField) { $sSQLLeft = $oLeftField->GetName(); - } - else - { + } else { $sSQLLeft = "no_field_found_for_$sLeft"; } $sRight = $oJoinedSQLQuery->GetTableAlias().'.'.$this->sRightField; $oRightField = $oBuild->m_oQBExpressions->GetJoinField($sRight); - if ($oRightField) - { + if ($oRightField) { $sSQLRight = $oRightField->GetName(); - } - else - { + } else { $sSQLRight = "no_field_found_for_$sRight"; } - switch ($this->sJoinType) - { + switch ($this->sJoinType) { case self::JOIN_INNER: $oBaseSQLQuery->AddInnerJoin($oJoinedSQLQuery, $sSQLLeft, $sSQLRight); break; @@ -296,10 +291,8 @@ class OQLJoin $sOQL = "\n{$sPrefix}{$sType} JOIN `{$this->oOQLClassNode->GetNodeClass()}` AS `{$this->oOQLClassNode->GetNodeClassAlias()}`"; $sOQL .= "\n{$sPrefix} ON `{$sClassAlias}`.`{$this->sLeftField}` = `{$this->oOQLClassNode->GetNodeClassAlias()}`.`{$this->sRightField}`"; $sPrefix .= " "; - foreach ($this->oOQLClassNode->GetJoins() as $aJoins) - { - foreach ($aJoins as $oJoin) - { + foreach ($this->oOQLClassNode->GetJoins() as $aJoins) { + foreach ($aJoins as $oJoin) { $sOQL .= " {$oJoin->RenderDebug($this->oOQLClassNode->GetNodeClassAlias(), $sPrefix)}"; } } diff --git a/core/oqlclasstreebuilder.class.inc.php b/core/oqlclasstreebuilder.class.inc.php index f984dbae8..bbb80cb40 100644 --- a/core/oqlclasstreebuilder.class.inc.php +++ b/core/oqlclasstreebuilder.class.inc.php @@ -1,10 +1,10 @@ oDBObjectSearch = $oDBObjetSearch; $this->sClass = $oDBObjetSearch->GetFirstJoinedClass(); $this->sClassAlias = $oDBObjetSearch->GetFirstJoinedClassAlias(); - if (empty($this->sClassAlias)) - { + if (empty($this->sClassAlias)) { $this->sClassAlias = $oBuild->GetEmptyClassAlias(); } $this->oOQLClassNode = new OQLClassNode($oBuild, $this->sClass, $this->sClassAlias); @@ -89,10 +88,8 @@ class OQLClassTreeBuilder */ private function AddExternalKeysFromSearch() { - foreach ($this->oDBObjectSearch->GetCriteria_PointingTo() as $sKeyAttCode => $aPointingTo) - { - if (array_key_exists(TREE_OPERATOR_EQUALS, $aPointingTo)) - { + foreach ($this->oDBObjectSearch->GetCriteria_PointingTo() as $sKeyAttCode => $aPointingTo) { + if (array_key_exists(TREE_OPERATOR_EQUALS, $aPointingTo)) { $this->oOQLClassNode->AddExternalKey($sKeyAttCode); } } @@ -109,69 +106,53 @@ class OQLClassTreeBuilder // array of (attcode => fieldexpression) $aExpectedAttributes = $this->oBuild->m_oQBExpressions->GetUnresolvedFields($this->sClassAlias); - $aPolymorphicJoinAlias = array(); // array of (subclass => alias) - foreach ($aExpectedAttributes as $sExpectedAttCode => $oExpression) - { - if (!MetaModel::IsValidAttCode($this->sClass, $sExpectedAttCode)) - { + $aPolymorphicJoinAlias = []; // array of (subclass => alias) + foreach ($aExpectedAttributes as $sExpectedAttCode => $oExpression) { + if (!MetaModel::IsValidAttCode($this->sClass, $sExpectedAttCode)) { continue; } $oAttDef = MetaModel::GetAttributeDef($this->sClass, $sExpectedAttCode); - if ($oAttDef->IsBasedOnOQLExpression()) - { + if ($oAttDef->IsBasedOnOQLExpression()) { // To optimize: detect a restriction on child classes in the condition expression // e.g. SELECT FunctionalCI WHERE finalclass IN ('Server', 'VirtualMachine') $oExpression = DBObjectSearch::GetPolymorphicExpression($this->sClass, $sExpectedAttCode); - $aRequiredFields = array(); + $aRequiredFields = []; $oExpression->GetUnresolvedFields('', $aRequiredFields); - $aTranslateFields = array(); - foreach ($aRequiredFields as $sSubClass => $aFields) - { - foreach ($aFields as $sAttCode => $oField) - { + $aTranslateFields = []; + foreach ($aRequiredFields as $sSubClass => $aFields) { + foreach ($aFields as $sAttCode => $oField) { $oAttDef = MetaModel::GetAttributeDef($sSubClass, $sAttCode); - if ($oAttDef->IsExternalKey()) - { + if ($oAttDef->IsExternalKey()) { $sClassOfAttribute = MetaModel::GetAttributeOrigin($sSubClass, $sAttCode); - if (MetaModel::IsParentClass($sClassOfAttribute, $this->sClass)) - { + if (MetaModel::IsParentClass($sClassOfAttribute, $this->sClass)) { $this->oOQLClassNode->AddExternalKey($sAttCode); } - } - elseif ($oAttDef->IsExternalField()) - { + } elseif ($oAttDef->IsExternalField()) { $sKeyAttCode = $oAttDef->GetKeyAttCode(); $sClassOfAttribute = MetaModel::GetAttributeOrigin($sSubClass, $sKeyAttCode); - if (MetaModel::IsParentClass($sClassOfAttribute, $this->sClass)) - { + if (MetaModel::IsParentClass($sClassOfAttribute, $this->sClass)) { $this->oOQLClassNode->AddExternalField($sKeyAttCode, $sAttCode, $oAttDef); } - } - else - { + } else { $sClassOfAttribute = MetaModel::GetAttributeOrigin($sSubClass, $sAttCode); } - if (MetaModel::IsParentClass($sClassOfAttribute, $this->sClass)) - { + if (MetaModel::IsParentClass($sClassOfAttribute, $this->sClass)) { // The attribute is part of the standard query // $sAliasForAttribute = $this->sClassAlias; - } - else - { + } else { // The attribute will be available from an additional outer join // For each subclass (table) one single join is enough // - if (!array_key_exists($sClassOfAttribute, $aPolymorphicJoinAlias)) - { - $sAliasForAttribute = $this->oBuild->GenerateClassAlias($this->sClassAlias.'_poly_'.$sClassOfAttribute, - $sClassOfAttribute); + if (!array_key_exists($sClassOfAttribute, $aPolymorphicJoinAlias)) { + $sAliasForAttribute = $this->oBuild->GenerateClassAlias( + $this->sClassAlias.'_poly_'.$sClassOfAttribute, + $sClassOfAttribute + ); $aPolymorphicJoinAlias[$sClassOfAttribute] = $sAliasForAttribute; - } - else - { + } else { $sAliasForAttribute = $aPolymorphicJoinAlias[$sClassOfAttribute]; } } @@ -181,7 +162,7 @@ class OQLClassTreeBuilder } $oExpression = $oExpression->Translate($aTranslateFields, false); - $aTranslateNow = array(); + $aTranslateNow = []; $aTranslateNow[$this->sClassAlias][$sExpectedAttCode] = $oExpression; $this->oBuild->m_oQBExpressions->Translate($aTranslateNow, false); } @@ -200,12 +181,9 @@ class OQLClassTreeBuilder // array of (attcode => fieldexpression) $aExpectedAttributes = $this->oBuild->m_oQBExpressions->GetUnresolvedFields($this->sClassAlias); - foreach (MetaModel::ListAttributeDefs($this->sClass) as $sAttCode => $oAttDef) - { - if ($oAttDef->IsExternalField()) - { - if (array_key_exists($sAttCode, $aExpectedAttributes)) - { + foreach (MetaModel::ListAttributeDefs($this->sClass) as $sAttCode => $oAttDef) { + if ($oAttDef->IsExternalField()) { + if (array_key_exists($sAttCode, $aExpectedAttributes)) { // Add the external attribute $sKeyAttCode = $oAttDef->GetKeyAttCode(); $this->oOQLClassNode->AddExternalField($sKeyAttCode, $sAttCode, $oAttDef); @@ -225,16 +203,13 @@ class OQLClassTreeBuilder $aAllPointingTo = $this->oDBObjectSearch->GetCriteria_PointingTo(); // Add filters from external keys - foreach (array_keys($this->oOQLClassNode->GetExternalKeys()) as $sKeyAttCode) - { - if (!MetaModel::IsValidAttCode($this->sClass, $sKeyAttCode)) - { + foreach (array_keys($this->oOQLClassNode->GetExternalKeys()) as $sKeyAttCode) { + if (!MetaModel::IsValidAttCode($this->sClass, $sKeyAttCode)) { continue; } // Not defined in the class, skip it $oKeyAttDef = MetaModel::GetAttributeDef($this->sClass, $sKeyAttCode); - $aPointingTo = isset($aAllPointingTo[$sKeyAttCode]) ? $aAllPointingTo[$sKeyAttCode] : array(); - if (!array_key_exists(TREE_OPERATOR_EQUALS, $aPointingTo)) - { + $aPointingTo = isset($aAllPointingTo[$sKeyAttCode]) ? $aAllPointingTo[$sKeyAttCode] : []; + if (!array_key_exists(TREE_OPERATOR_EQUALS, $aPointingTo)) { // The join was not explicitly defined in the filter, // we need to do it now $sKeyClass = $oKeyAttDef->GetTargetClass(); @@ -246,14 +221,10 @@ class OQLClassTreeBuilder } $oQBContextExpressions = $this->oBuild->m_oQBExpressions; - foreach ($aAllPointingTo as $sKeyAttCode => $aPointingTo) - { - foreach ($aPointingTo as $iOperatorCode => $aFilter) - { - foreach ($aFilter as $oExtFilter) - { - if (!MetaModel::IsValidAttCode($this->sClass, $sKeyAttCode)) - { + foreach ($aAllPointingTo as $sKeyAttCode => $aPointingTo) { + foreach ($aPointingTo as $iOperatorCode => $aFilter) { + foreach ($aFilter as $oExtFilter) { + if (!MetaModel::IsValidAttCode($this->sClass, $sKeyAttCode)) { continue; } // Not defined in the class, skip it // The aliases should not conflict because normalization occurred while building the filter @@ -263,34 +234,29 @@ class OQLClassTreeBuilder // Note: there is no search condition in $oExtFilter, because normalization did merge the condition onto the top of the filter tree - if ($iOperatorCode == TREE_OPERATOR_EQUALS) - { - if ($this->oOQLClassNode->HasExternalKey($sKeyAttCode)) - { + if ($iOperatorCode == TREE_OPERATOR_EQUALS) { + if ($this->oOQLClassNode->HasExternalKey($sKeyAttCode)) { // Specify expected attributes for the target class query // ... and use the current alias ! - $aTranslateNow = array(); // Translation for external fields - must be performed before the join is done (recursion...) - foreach ($this->oOQLClassNode->GetExternalKey($sKeyAttCode) as $sAttCode => $oAtt) - { + $aTranslateNow = []; // Translation for external fields - must be performed before the join is done (recursion...) + foreach ($this->oOQLClassNode->GetExternalKey($sKeyAttCode) as $sAttCode => $oAtt) { $oExtAttDef = $oAtt->GetExtAttDef(); - if ($oExtAttDef->IsBasedOnOQLExpression()) - { + if ($oExtAttDef->IsBasedOnOQLExpression()) { $sExtAttCode = $oExtAttDef->GetCode(); - } - else - { + } else { $sExtAttCode = $oAtt->GetExtAttCode(); } // Translate mainclass.extfield => remoteclassalias.remotefieldcode $aTranslateNow[$this->sClassAlias][$sAttCode] = new FieldExpression($sExtAttCode, $sKeyClassAlias); } - if ($oKeyAttDef instanceof AttributeObjectKey) - { + if ($oKeyAttDef instanceof AttributeObjectKey) { // Add the condition: `$sTargetAlias`.$sClassAttCode IN (subclasses of $sKeyClass') $sClassAttCode = $oKeyAttDef->Get('class_attcode'); - $oClassListExpr = ListExpression::FromScalars(MetaModel::EnumChildClasses($sKeyClass, - ENUM_CHILD_CLASSES_ALL)); + $oClassListExpr = ListExpression::FromScalars(MetaModel::EnumChildClasses( + $sKeyClass, + ENUM_CHILD_CLASSES_ALL + )); $oClassExpr = new FieldExpression($sClassAttCode, $this->sClassAlias); $oClassRestriction = new BinaryExpression($oClassExpr, 'IN', $oClassListExpr); $oQBContextExpressions->AddCondition($oClassRestriction); @@ -304,24 +270,18 @@ class OQLClassTreeBuilder $oOQLClassTreeBuilder = new OQLClassTreeBuilder($oExtFilter, $this->oBuild); $oSelectExtKey = $oOQLClassTreeBuilder->DevelopOQLClassNode(); - if ($oKeyAttDef->IsNullAllowed()) - { + if ($oKeyAttDef->IsNullAllowed()) { $this->oOQLClassNode->AddLeftJoin($oSelectExtKey, $sKeyAttCode, $sExternalKeyField, true); - } - else - { + } else { $this->oOQLClassNode->AddInnerJoin($oSelectExtKey, $sKeyAttCode, $sExternalKeyField, true); } } - } - elseif (MetaModel::GetAttributeOrigin($sKeyClass, $sKeyAttCode) == $this->sClass) - { + } elseif (MetaModel::GetAttributeOrigin($sKeyClass, $sKeyAttCode) == $this->sClass) { $sExternalKeyField = $sKeyAttCode; $oOQLClassTreeBuilder = new OQLClassTreeBuilder($oExtFilter, $this->oBuild); $oSelectExtKey = $oOQLClassTreeBuilder->DevelopOQLClassNode(); - $this->oOQLClassNode->AddInnerJoinTree($oSelectExtKey, $sKeyAttCode, $sExternalKeyField, true, $iOperatorCode); } } @@ -336,25 +296,22 @@ class OQLClassTreeBuilder */ private function JoinClassesReferencedBy() { - foreach ($this->oDBObjectSearch->GetCriteria_ReferencedBy() as $sForeignClass => $aReferences) - { - foreach ($aReferences as $sForeignExtKeyAttCode => $aFiltersByOperator) - { - foreach ($aFiltersByOperator as $iOperatorCode => $aFilters) - { - foreach ($aFilters as $oForeignFilter) - { + foreach ($this->oDBObjectSearch->GetCriteria_ReferencedBy() as $sForeignClass => $aReferences) { + foreach ($aReferences as $sForeignExtKeyAttCode => $aFiltersByOperator) { + foreach ($aFiltersByOperator as $iOperatorCode => $aFilters) { + foreach ($aFilters as $oForeignFilter) { $oForeignKeyAttDef = MetaModel::GetAttributeDef($sForeignClass, $sForeignExtKeyAttCode); $sForeignClassAlias = $oForeignFilter->GetFirstJoinedClassAlias(); - if ($oForeignKeyAttDef instanceof AttributeObjectKey) - { + if ($oForeignKeyAttDef instanceof AttributeObjectKey) { $sClassAttCode = $oForeignKeyAttDef->Get('class_attcode'); // Add the condition: `$sForeignClassAlias`.$sClassAttCode IN (subclasses of $sClass') - $oClassListExpr = ListExpression::FromScalars(MetaModel::EnumChildClasses($this->sClass, - ENUM_CHILD_CLASSES_ALL)); + $oClassListExpr = ListExpression::FromScalars(MetaModel::EnumChildClasses( + $this->sClass, + ENUM_CHILD_CLASSES_ALL + )); $oClassExpr = new FieldExpression($sClassAttCode, $sForeignClassAlias); $oClassRestriction = new BinaryExpression($oClassExpr, 'IN', $oClassListExpr); $this->oBuild->m_oQBExpressions->AddCondition($oClassRestriction); @@ -363,12 +320,9 @@ class OQLClassTreeBuilder $oOQLClassTreeBuilder = new OQLClassTreeBuilder($oForeignFilter, $this->oBuild); $oSelectForeign = $oOQLClassTreeBuilder->DevelopOQLClassNode(); - if ($iOperatorCode == TREE_OPERATOR_EQUALS) - { + if ($iOperatorCode == TREE_OPERATOR_EQUALS) { $this->oOQLClassNode->AddInnerJoin($oSelectForeign, 'id', $sForeignExtKeyAttCode, false); - } - else - { + } else { // Hierarchical key $this->oOQLClassNode->AddInnerJoinTree($oSelectForeign, $sForeignExtKeyAttCode, $sForeignExtKeyAttCode, false, $iOperatorCode, true); } @@ -387,8 +341,7 @@ class OQLClassTreeBuilder */ private function JoinClassesForPolymorphicExpressions($aPolymorphicJoinAlias) { - foreach ($aPolymorphicJoinAlias as $sSubClass => $sSubClassAlias) - { + foreach ($aPolymorphicJoinAlias as $sSubClass => $sSubClassAlias) { $oSubClassFilter = new DBObjectSearch($sSubClass, $sSubClassAlias); $oOQLClassTreeBuilder = new OQLClassTreeBuilder($oSubClassFilter, $this->oBuild); $oSelectPoly = $oOQLClassTreeBuilder->DevelopOQLClassNode(); diff --git a/core/oqlclasstreeoptimizer.class.inc.php b/core/oqlclasstreeoptimizer.class.inc.php index 48931835c..55538647a 100644 --- a/core/oqlclasstreeoptimizer.class.inc.php +++ b/core/oqlclasstreeoptimizer.class.inc.php @@ -1,13 +1,13 @@ oBuild->m_oQBExpressions->GetExpectedFields($oCurrentClassNode->GetNodeClassAlias()); $bCanBeRemoved = empty($aExpectedAttributes); - foreach ($oCurrentClassNode->GetJoins() as $sLeftKey => $aJoins) - { - foreach ($aJoins as $index => $oJoin) - { - if ($this->PruneJoins($oJoin->GetOOQLClassNode())) - { - if ($oJoin->IsOutbound()) - { + foreach ($oCurrentClassNode->GetJoins() as $sLeftKey => $aJoins) { + foreach ($aJoins as $index => $oJoin) { + if ($this->PruneJoins($oJoin->GetOOQLClassNode())) { + if ($oJoin->IsOutbound()) { // If joined class in not the same class than the external key target class // then the join cannot be removed because it is used to filter the request $sJoinedClass = $oJoin->GetOOQLClassNode()->GetNodeClass(); @@ -59,15 +55,11 @@ class OQLClassTreeOptimizer // The join is not used, remove from tree $oCurrentClassNode->RemoveJoin($sLeftKey, $index); } - } - else - { + } else { // Inbound joins cannot be removed $bCanBeRemoved = false; } - } - else - { + } else { // This join is used, so the current node cannot be removed $bCanBeRemoved = false; } @@ -75,4 +67,4 @@ class OQLClassTreeOptimizer } return $bCanBeRemoved; } -} \ No newline at end of file +} diff --git a/core/ormStyle.class.inc.php b/core/ormStyle.class.inc.php index 43f8a0c14..614526a5e 100644 --- a/core/ormStyle.class.inc.php +++ b/core/ormStyle.class.inc.php @@ -1,4 +1,5 @@ sIcon; } -} \ No newline at end of file +} diff --git a/core/ormcaselog.class.inc.php b/core/ormcaselog.class.inc.php index fe089bf0e..f820f1d2f 100644 --- a/core/ormcaselog.class.inc.php +++ b/core/ormcaselog.class.inc.php @@ -1,9 +1,10 @@ m_sLog = $sLog; $this->m_aIndex = $aIndex; $this->m_bModified = false; } - + public function GetText($bConvertToPlainText = false) { - if ($bConvertToPlainText) - { + if ($bConvertToPlainText) { // Rebuild the log, but filtering any HTML markup for the all {@see static::ENUM_FORMAT_HTML} entries in the log return $this->GetAsPlainText(); - } - else - { + } else { return $this->m_sLog; } } - + public static function FromJSON($oJson) { - if (!isset($oJson->items)) - { + if (!isset($oJson->items)) { throw new Exception("Missing 'items' elements"); } $oCaseLog = new ormCaseLog(); - foreach($oJson->items as $oItem) - { + foreach ($oJson->items as $oItem) { $oCaseLog->AddLogEntryFromJSON($oItem); } return $oCaseLog; } /** - * Return a value that will be further JSON encoded - */ + * Return a value that will be further JSON encoded + */ public function GetForJSON() { // Order by ascending date - $aRet = array('entries' => array_reverse($this->GetAsArray())); + $aRet = ['entries' => array_reverse($this->GetAsArray())]; return $aRet; } @@ -118,10 +114,9 @@ class ormCaseLog { */ public function GetAsArray() { - $aEntries = array(); + $aEntries = []; $iPos = 0; - for($index=count($this->m_aIndex)-1 ; $index >= 0 ; $index--) - { + for ($index = count($this->m_aIndex) - 1 ; $index >= 0 ; $index--) { $iPos += $this->m_aIndex[$index]['separator_length']; $sTextEntry = substr($this->m_sLog, $iPos, $this->m_aIndex[$index]['text_length']); $iPos += $this->m_aIndex[$index]['text_length']; @@ -130,27 +125,20 @@ class ormCaseLog { // therefore we have changed the format. To preserve the compatibility with existing // installations of iTop, both format are allowed: // the 'date' item is either a DateTime object, or a unix timestamp - if (is_int($this->m_aIndex[$index]['date'])) - { + if (is_int($this->m_aIndex[$index]['date'])) { // Unix timestamp - $sDate = date(AttributeDateTime::GetInternalFormat(),$this->m_aIndex[$index]['date']); - } - elseif (is_object($this->m_aIndex[$index]['date'])) - { - if (version_compare(phpversion(), '5.3.0', '>=')) - { + $sDate = date(AttributeDateTime::GetInternalFormat(), $this->m_aIndex[$index]['date']); + } elseif (is_object($this->m_aIndex[$index]['date'])) { + if (version_compare(phpversion(), '5.3.0', '>=')) { // DateTime $sDate = $this->m_aIndex[$index]['date']->format(AttributeDateTime::GetInternalFormat()); - } - else - { + } else { // No Warning... but the date is unknown $sDate = ''; } } - $sFormat = array_key_exists('format', $this->m_aIndex[$index]) ? $this->m_aIndex[$index]['format'] : static::ENUM_FORMAT_TEXT; - switch($sFormat) - { + $sFormat = array_key_exists('format', $this->m_aIndex[$index]) ? $this->m_aIndex[$index]['format'] : static::ENUM_FORMAT_TEXT; + switch ($sFormat) { case static::ENUM_FORMAT_TEXT: $sHtmlEntry = utils::TextToHtml($sTextEntry); break; @@ -160,27 +148,26 @@ class ormCaseLog { $sTextEntry = utils::HtmlToText($sHtmlEntry); break; } - $aEntries[] = array( + $aEntries[] = [ 'date' => $sDate, 'user_login' => $this->m_aIndex[$index]['user_name'], 'user_id' => $this->m_aIndex[$index]['user_id'], 'message' => $sTextEntry, 'message_html' => $sHtmlEntry, - ); + ]; } // Process the case of an eventual remainder (quick migration of AttributeText fields) - if ($iPos < (utils::StrLen($this->m_sLog) - 1)) - { + if ($iPos < (utils::StrLen($this->m_sLog) - 1)) { $sTextEntry = substr($this->m_sLog, $iPos); - $aEntries[] = array( + $aEntries[] = [ 'date' => '', 'user_login' => '', 'user_id' => 0, 'message' => $sTextEntry, 'message_html' => utils::TextToHtml($sTextEntry), - ); + ]; } return $aEntries; @@ -195,14 +182,13 @@ class ormCaseLog { { $sPlainText = ''; $aJSON = $this->GetForJSON(); - foreach($aJSON['entries'] as $aData) - { + foreach ($aJSON['entries'] as $aData) { $sSeparator = sprintf(CASELOG_SEPARATOR, $aData['date'], $aData['user_login'], $aData['user_id']); $sPlainText .= $sSeparator.$aData['message']; } - return $sPlainText; + return $sPlainText; } - + public function GetIndex() { return $this->m_aIndex; @@ -210,25 +196,27 @@ class ormCaseLog { public function __toString() { - if($this->IsEmpty()) return ''; + if ($this->IsEmpty()) { + return ''; + } - return $this->m_sLog; + return $this->m_sLog; } public function IsEmpty() - { - return ($this->m_sLog === null); - } + { + return ($this->m_sLog === null); + } /** * @return int The number of entries in this log * @since 3.0.0 */ - public function GetEntryCount(): int - { - return count($this->m_aIndex); - } - + public function GetEntryCount(): int + { + return count($this->m_aIndex); + } + public function ClearModifiedFlag() { $this->m_bModified = false; @@ -236,7 +224,7 @@ class ormCaseLog { /** * Produces an HTML representation, aimed at being used within an email - */ + */ public function GetAsEmailHtml() { $sStyleCaseLogHeader = ''; @@ -245,18 +233,14 @@ class ormCaseLog { $sHtml = '
    ".$aFieldSpec['sColLabel']."
    '; // Use table-layout:fixed to force the with to be independent from the actual content $iPos = 0; $aIndex = $this->m_aIndex; - for($index=count($aIndex)-1 ; $index >= 0 ; $index--) - { + for ($index = count($aIndex) - 1 ; $index >= 0 ; $index--) { $iPos += $aIndex[$index]['separator_length']; $sTextEntry = substr($this->m_sLog, $iPos, $aIndex[$index]['text_length']); $sCSSClass = 'caselog_entry_html'; - if (!array_key_exists('format', $aIndex[$index]) || ($aIndex[$index]['format'] == static::ENUM_FORMAT_TEXT)) - { + if (!array_key_exists('format', $aIndex[$index]) || ($aIndex[$index]['format'] == static::ENUM_FORMAT_TEXT)) { $sCSSClass = 'caselog_entry'; - $sTextEntry = str_replace(array("\r\n", "\n", "\r"), "
    ", utils::EscapeHtml($sTextEntry)); - } - else - { + $sTextEntry = str_replace(["\r\n", "\n", "\r"], "
    ", utils::EscapeHtml($sTextEntry)); + } else { $sTextEntry = InlineImage::FixUrls($sTextEntry); } $iPos += $aIndex[$index]['text_length']; @@ -266,20 +250,14 @@ class ormCaseLog { // therefore we have changed the format. To preserve the compatibility with existing // installations of iTop, both format are allowed: // the 'date' item is either a DateTime object, or a unix timestamp - if (is_int($aIndex[$index]['date'])) - { + if (is_int($aIndex[$index]['date'])) { // Unix timestamp $sDate = date((string)AttributeDateTime::GetFormat(), $aIndex[$index]['date']); - } - elseif (is_object($aIndex[$index]['date'])) - { - if (version_compare(phpversion(), '5.3.0', '>=')) - { + } elseif (is_object($aIndex[$index]['date'])) { + if (version_compare(phpversion(), '5.3.0', '>=')) { // DateTime $sDate = $aIndex[$index]['date']->format((string)AttributeDateTime::GetFormat()); - } - else - { + } else { // No Warning... but the date is unknown $sDate = ''; } @@ -295,7 +273,7 @@ class ormCaseLog { // Process the case of an eventual remainder (quick migration of AttributeText fields) if ($iPos < (utils::StrLen($this->m_sLog) - 1)) { $sTextEntry = substr($this->m_sLog, $iPos); - $sTextEntry = str_replace(array("\r\n", "\n", "\r"), "
    ", utils::EscapeHtml($sTextEntry)); + $sTextEntry = str_replace(["\r\n", "\n", "\r"], "
    ", utils::EscapeHtml($sTextEntry)); if (count($this->m_aIndex) == 0) { $sHtml .= '
    '; @@ -313,10 +291,10 @@ class ormCaseLog { $sHtml .= '
    '; return $sHtml; } - + /** * Produces an HTML representation, aimed at being used to produce a PDF with TCPDF (no table) - */ + */ public function GetAsSimpleHtml($aTransfoHandler = null) { $sStyleCaseLogEntry = ''; @@ -324,13 +302,13 @@ class ormCaseLog { $sHtml = '
      '; $iPos = 0; $aIndex = $this->m_aIndex; - for($index=count($aIndex)-1 ; $index >= 0 ; $index--) { + for ($index = count($aIndex) - 1 ; $index >= 0 ; $index--) { $iPos += $aIndex[$index]['separator_length']; $sTextEntry = substr($this->m_sLog, $iPos, $aIndex[$index]['text_length']); $sCSSClass = 'case_log_simple_html_entry_html'; if (!array_key_exists('format', $aIndex[$index]) || ($aIndex[$index]['format'] == static::ENUM_FORMAT_TEXT)) { $sCSSClass = 'case_log_simple_html_entry'; - $sTextEntry = str_replace(array("\r\n", "\n", "\r"), "
      ", utils::EscapeHtml($sTextEntry)); + $sTextEntry = str_replace(["\r\n", "\n", "\r"], "
      ", utils::EscapeHtml($sTextEntry)); if (!is_null($aTransfoHandler)) { $sTextEntry = call_user_func($aTransfoHandler, $sTextEntry); } @@ -339,7 +317,7 @@ class ormCaseLog { $sTextEntry = call_user_func($aTransfoHandler, $sTextEntry, true /* wiki "links" only */); } $sTextEntry = InlineImage::FixUrls($sTextEntry); - } + } $iPos += $aIndex[$index]['text_length']; $sEntry = '
    • '; @@ -347,20 +325,14 @@ class ormCaseLog { // therefore we have changed the format. To preserve the compatibility with existing // installations of iTop, both format are allowed: // the 'date' item is either a DateTime object, or a unix timestamp - if (is_int($aIndex[$index]['date'])) - { + if (is_int($aIndex[$index]['date'])) { // Unix timestamp - $sDate = date((string)AttributeDateTime::GetFormat(),$aIndex[$index]['date']); - } - elseif (is_object($aIndex[$index]['date'])) - { - if (version_compare(phpversion(), '5.3.0', '>=')) - { + $sDate = date((string)AttributeDateTime::GetFormat(), $aIndex[$index]['date']); + } elseif (is_object($aIndex[$index]['date'])) { + if (version_compare(phpversion(), '5.3.0', '>=')) { // DateTime $sDate = $aIndex[$index]['date']->format((string)AttributeDateTime::GetFormat()); - } - else - { + } else { // No Warning... but the date is unknown $sDate = ''; } @@ -376,7 +348,7 @@ class ormCaseLog { // Process the case of an eventual remainder (quick migration of AttributeText fields) if ($iPos < (utils::StrLen($this->m_sLog) - 1)) { $sTextEntry = substr($this->m_sLog, $iPos); - $sTextEntry = str_replace(array("\r\n", "\n", "\r"), "
      ", utils::EscapeHtml($sTextEntry)); + $sTextEntry = str_replace(["\r\n", "\n", "\r"], "
      ", utils::EscapeHtml($sTextEntry)); if (count($this->m_aIndex) == 0) { $sHtml .= '
    • '; @@ -397,7 +369,7 @@ class ormCaseLog { /** * Produces an HTML representation, aimed at being used within the iTop framework - */ + */ public function GetAsHTML(WebPage $oP = null, $bEditMode = false, $aTransfoHandler = null) { $bPrintableVersion = (utils::ReadParam('printable', '0') == '1'); @@ -405,35 +377,27 @@ class ormCaseLog { $oBlock = UIContentBlockUIBlockFactory::MakeStandard(null, ['ibo-caselog-list']); $iPos = 0; $aIndex = $this->m_aIndex; - if (($bEditMode) && (count($aIndex) > 0) && $this->m_bModified) - { + if (($bEditMode) && (count($aIndex) > 0) && $this->m_bModified) { // Don't display the first element, that is still considered as editable $aLastEntry = end($aIndex); $iPos = $aLastEntry['separator_length'] + $aLastEntry['text_length']; array_pop($aIndex); } - for($index=count($aIndex)-1 ; $index >= 0 ; $index--) - { - if (!$bPrintableVersion && ($index < count($aIndex) - CASELOG_VISIBLE_ITEMS)) - { + for ($index = count($aIndex) - 1 ; $index >= 0 ; $index--) { + if (!$bPrintableVersion && ($index < count($aIndex) - CASELOG_VISIBLE_ITEMS)) { $bIsOpen = false; - } - else - { + } else { $bIsOpen = true; } $iPos += $aIndex[$index]['separator_length']; $sTextEntry = substr($this->m_sLog, $iPos, $aIndex[$index]['text_length']); if (!array_key_exists('format', $aIndex[$index]) || ($aIndex[$index]['format'] == static::ENUM_FORMAT_TEXT)) { - $sTextEntry = str_replace(array("\r\n", "\n", "\r"), "
      ", utils::EscapeHtml($sTextEntry)); + $sTextEntry = str_replace(["\r\n", "\n", "\r"], "
      ", utils::EscapeHtml($sTextEntry)); if (!is_null($aTransfoHandler)) { $sTextEntry = call_user_func($aTransfoHandler, $sTextEntry); } - } - else - { - if (!is_null($aTransfoHandler)) - { + } else { + if (!is_null($aTransfoHandler)) { $sTextEntry = call_user_func($aTransfoHandler, $sTextEntry, true /* wiki "links" only */); } $sTextEntry = InlineImage::FixUrls($sTextEntry); @@ -444,25 +408,19 @@ class ormCaseLog { // therefore we have changed the format. To preserve the compatibility with existing // installations of iTop, both format are allowed: // the 'date' item is either a DateTime object, or a unix timestamp - if (is_int($aIndex[$index]['date'])) - { + if (is_int($aIndex[$index]['date'])) { // Unix timestamp - $sDate = date((string)AttributeDateTime::GetFormat(),$aIndex[$index]['date']); - } - elseif (is_object($aIndex[$index]['date'])) - { - if (version_compare(phpversion(), '5.3.0', '>=')) - { + $sDate = date((string)AttributeDateTime::GetFormat(), $aIndex[$index]['date']); + } elseif (is_object($aIndex[$index]['date'])) { + if (version_compare(phpversion(), '5.3.0', '>=')) { // DateTime $sDate = $aIndex[$index]['date']->format((string)AttributeDateTime::GetFormat()); - } - else - { + } else { // No Warning... but the date is unknown $sDate = ''; } } - $oCollapsibleBlock = CollapsibleSectionUIBlockFactory::MakeStandard( sprintf(Dict::S('UI:CaseLog:Header_Date_UserName'), $sDate, $aIndex[$index]['user_name'])); + $oCollapsibleBlock = CollapsibleSectionUIBlockFactory::MakeStandard(sprintf(Dict::S('UI:CaseLog:Header_Date_UserName'), $sDate, $aIndex[$index]['user_name'])); $oCollapsibleBlock->AddSubBlock(new Html($sTextEntry)); $oCollapsibleBlock->SetOpenedByDefault($bIsOpen); $oBlock->AddSubBlock($oCollapsibleBlock); @@ -471,7 +429,7 @@ class ormCaseLog { if ($iPos < (utils::StrLen($this->m_sLog) - 1)) { // In this case the format is always "text" $sTextEntry = substr($this->m_sLog, $iPos); - $sTextEntry = str_replace(array("\r\n", "\n", "\r"), "
      ", utils::EscapeHtml($sTextEntry)); + $sTextEntry = str_replace(["\r\n", "\n", "\r"], "
      ", utils::EscapeHtml($sTextEntry)); if (!is_null($aTransfoHandler)) { $sTextEntry = call_user_func($aTransfoHandler, $sTextEntry); } @@ -481,27 +439,22 @@ class ormCaseLog { $oCollapsibleBlock->AddSubBlock(new Html($sTextEntry)); $oCollapsibleBlock->SetOpenedByDefault(true); $oBlock->AddSubBlock($oCollapsibleBlock); - } - else - { - if (!$bPrintableVersion && (count($this->m_aIndex) - CASELOG_VISIBLE_ITEMS > 0)) - { + } else { + if (!$bPrintableVersion && (count($this->m_aIndex) - CASELOG_VISIBLE_ITEMS > 0)) { $bIsOpen = false; - } - else - { + } else { $bIsOpen = true; } - $oCollapsibleBlock = CollapsibleSectionUIBlockFactory::MakeStandard( Dict::S('UI:CaseLog:InitialValue')); + $oCollapsibleBlock = CollapsibleSectionUIBlockFactory::MakeStandard(Dict::S('UI:CaseLog:InitialValue')); $oCollapsibleBlock->AddSubBlock(new Html($sTextEntry)); $oCollapsibleBlock->SetOpenedByDefault($bIsOpen); } } $oBlockRenderer = new BlockRenderer($oBlock); $sHtml = $oBlockRenderer->RenderHtml(); - $sScript = $oBlockRenderer->RenderJsInlineRecursively($oBlock,iUIBlock::ENUM_JS_TYPE_ON_READY); + $sScript = $oBlockRenderer->RenderJsInlineRecursively($oBlock, iUIBlock::ENUM_JS_TYPE_ON_READY); $aJsFiles = $oBlockRenderer->GetJsFiles(); - if ($sScript!=''){ + if ($sScript != '') { if ($oP == null) { $sScript = ''; $sHtml .= $sScript; @@ -510,7 +463,7 @@ class ormCaseLog { } } // Ugly hack as we use a block and strip its content above, we'll also need JS files it depends on - if(count($aJsFiles) > 0){ + if (count($aJsFiles) > 0) { foreach ($aJsFiles as $sFileAbsUrl) { if ($oP === null) { $sScript = ''; @@ -520,7 +473,7 @@ class ormCaseLog { } } } - + return $sHtml; } @@ -535,7 +488,7 @@ class ormCaseLog { * @throws \ArchivedObjectException * @throws \CoreException * @throws \OQLException - * + * * @since 3.0.0 New $iOnBehalfOfId parameter * @since 3.0.0 May throw \ArchivedObjectException exception */ @@ -546,24 +499,19 @@ class ormCaseLog { if ($sOnBehalfOf == '' && $iOnBehalfOfId === null) { $sOnBehalfOf = UserRights::GetUserFriendlyName(); $iUserId = UserRights::GetUserId(); - } - elseif ($iOnBehalfOfId !== null) { + } elseif ($iOnBehalfOfId !== null) { $iUserId = $iOnBehalfOfId; /* @var User $oUser */ $oUser = MetaModel::GetObject('User', $iUserId, false, true); if ($oUser !== null && $sOnBehalfOf === '') { $sOnBehalfOf = $oUser->GetFriendlyName(); } - } - else - { + } else { $iUserId = null; } - if ($this->m_bModified) - { + if ($this->m_bModified) { $aLatestEntry = end($this->m_aIndex); - if ($aLatestEntry['user_name'] == $sOnBehalfOf) - { + if ($aLatestEntry['user_name'] == $sOnBehalfOf) { // Append the new text to the previous one $sPreviousText = substr($this->m_sLog, $aLatestEntry['separator_length'], $aLatestEntry['text_length']); $sText = $sPreviousText."\n".$sText; @@ -578,72 +526,55 @@ class ormCaseLog { $iSepLength = strlen($sSeparator); $iTextlength = strlen($sText); $this->m_sLog = $sSeparator.$sText.$this->m_sLog; // Latest entry printed first - $this->m_aIndex[] = array( + $this->m_aIndex[] = [ 'user_name' => $sOnBehalfOf, 'user_id' => $iUserId, 'date' => time(), 'text_length' => $iTextlength, 'separator_length' => $iSepLength, 'format' => static::ENUM_FORMAT_HTML, - ); + ]; $this->m_bModified = true; } public function AddLogEntryFromJSON($oJson, $bCheckUserId = true) { - if (isset($oJson->user_id)) - { - if (!UserRights::IsAdministrator()) - { + if (isset($oJson->user_id)) { + if (!UserRights::IsAdministrator()) { throw new Exception("Only administrators can set the user id", RestResult::UNAUTHORIZED); } - if ($bCheckUserId && ($oJson->user_id != 0)) - { - try - { + if ($bCheckUserId && ($oJson->user_id != 0)) { + try { $oUser = RestUtils::FindObjectFromKey('User', $oJson->user_id); - } - catch(Exception $e) - { + } catch (Exception $e) { throw new Exception('user_id: '.$e->getMessage(), $e->getCode()); } $iUserId = $oUser->GetKey(); $sOnBehalfOf = $oUser->GetFriendlyName(); - } - else - { + } else { $iUserId = $oJson->user_id; $sOnBehalfOf = $oJson->user_login; } - } - else - { + } else { $iUserId = UserRights::GetUserId(); $sOnBehalfOf = UserRights::GetUserFriendlyName(); } - - if (isset($oJson->date)) - { + + if (isset($oJson->date)) { $oDate = new DateTime($oJson->date); $iDate = (int) $oDate->format('U'); - } - else - { + } else { $iDate = time(); } - if (isset($oJson->format)) - { + if (isset($oJson->format)) { $sFormat = $oJson->format; - } - else - { + } else { // The default is HTML $sFormat = static::ENUM_FORMAT_HTML; } $sText = isset($oJson->message) ? $oJson->message : ''; - if ($sFormat == static::ENUM_FORMAT_HTML) - { + if ($sFormat == static::ENUM_FORMAT_HTML) { $sText = HTMLSanitizer::Sanitize($sText); } @@ -653,14 +584,14 @@ class ormCaseLog { $iSepLength = strlen($sSeparator); $iTextlength = strlen($sText); $this->m_sLog = $sSeparator.$sText.$this->m_sLog; // Latest entry printed first - $this->m_aIndex[] = array( - 'user_name' => $sOnBehalfOf, - 'user_id' => $iUserId, - 'date' => $iDate, - 'text_length' => $iTextlength, + $this->m_aIndex[] = [ + 'user_name' => $sOnBehalfOf, + 'user_id' => $iUserId, + 'date' => $iDate, + 'text_length' => $iTextlength, 'separator_length' => $iSepLength, 'format' => $sFormat, - ); + ]; $this->m_bModified = true; } @@ -668,8 +599,7 @@ class ormCaseLog { public function GetModifiedEntry($sFormat = self::ENUM_FORMAT_TEXT) { $sModifiedEntry = ''; - if ($this->m_bModified) - { + if ($this->m_bModified) { $sModifiedEntry = $this->GetLatestEntry($sFormat); } return $sModifiedEntry; @@ -717,7 +647,7 @@ class ormCaseLog { $iLast = end($aKeys); // Strict standards: the parameter passed to 'end' must be a variable since it is passed by reference return $iLast; } - + /** * Get the text string corresponding to the given entry in the log (zero based index, older entries first) * @param integer $iIndex @@ -727,8 +657,7 @@ class ormCaseLog { { $iPos = 0; $index = count($this->m_aIndex) - 1; - while($index > $iIndex) - { + while ($index > $iIndex) { $iPos += $this->m_aIndex[$index]['separator_length']; $iPos += $this->m_aIndex[$index]['text_length']; $index--; diff --git a/core/ormcustomfieldsvalue.class.inc.php b/core/ormcustomfieldsvalue.class.inc.php index ef8149fa0..d280a4179 100644 --- a/core/ormcustomfieldsvalue.class.inc.php +++ b/core/ormcustomfieldsvalue.class.inc.php @@ -1,4 +1,5 @@ - /** * Base class to hold the value managed by {@see CustomFieldsHandler} and {@see AttributeCustomFields} * diff --git a/core/ormdocument.class.inc.php b/core/ormdocument.class.inc.php index 45a573096..527465d4f 100644 --- a/core/ormdocument.class.inc.php +++ b/core/ormdocument.class.inc.php @@ -1,4 +1,5 @@ file($sPath); } @@ -144,7 +144,9 @@ class ormDocument public function __toString() { - if($this->IsEmpty()) return ''; + if ($this->IsEmpty()) { + return ''; + } return MyHelpers::beautifulstr($this->m_data, 100, true); } @@ -180,7 +182,7 @@ class ormDocument return true; } } - + public function GetMimeType() { return $this->m_sMimeType; @@ -188,8 +190,7 @@ class ormDocument public function GetMainMimeType() { $iSeparatorPos = strpos($this->m_sMimeType, '/'); - if ($iSeparatorPos > 0) - { + if ($iSeparatorPos > 0) { return substr($this->m_sMimeType, 0, $iSeparatorPos); } return $this->m_sMimeType; @@ -267,22 +268,22 @@ class ormDocument } return $sResult; } - + /** * Returns an hyperlink to display the document *inline* * @return string - */ + */ public function GetDisplayLink($sClass, $Id, $sAttCode) { $sUrl = $this->GetDisplayURL($sClass, $Id, $sAttCode); return "
      ".utils::EscapeHtml($this->GetFileName())."\n"; } - + /** * Returns an hyperlink to download the document (content-disposition: attachment) * @return string - */ + */ public function GetDownloadLink($sClass, $Id, $sAttCode) { $sUrl = $this->GetDownloadURL($sClass, $Id, $sAttCode); @@ -298,7 +299,7 @@ class ormDocument { $sSignature = $this->GetSignature(); // TODO: When refactoring this with the URLMaker system, mind to also change calls in the portal (look for the "p_object_document_display" route) - return utils::GetAbsoluteUrlAppRoot() . "pages/ajax.render.php?operation=display_document&class=$sClass&id=$Id&field=$sAttCode&s=$sSignature&cache=86400"; + return utils::GetAbsoluteUrlAppRoot()."pages/ajax.render.php?operation=display_document&class=$sClass&id=$Id&field=$sAttCode&s=$sSignature&cache=86400"; } /** @@ -310,22 +311,21 @@ class ormDocument // Compute a signature to reset the cache anytime the data changes (this is acceptable if used only with icon files) $sSignature = $this->GetSignature(); // TODO: When refactoring this with the URLMaker system, mind to also change calls in the portal (look for the "p_object_document_display" route) - return utils::GetAbsoluteUrlAppRoot() . "pages/ajax.document.php?operation=download_document&class=$sClass&id=$Id&field=$sAttCode&s=$sSignature&cache=86400"; + return utils::GetAbsoluteUrlAppRoot()."pages/ajax.document.php?operation=download_document&class=$sClass&id=$Id&field=$sAttCode&s=$sSignature&cache=86400"; } public function IsPreviewAvailable() { $bRet = false; - switch($this->GetMimeType()) - { + switch ($this->GetMimeType()) { case 'image/png': case 'image/jpg': case 'image/jpeg': case 'image/gif': case 'image/bmp': case 'image/svg+xml': - $bRet = true; - break; + $bRet = true; + break; } return $bRet; } @@ -345,11 +345,9 @@ class ormDocument */ public static function DownloadDocument(WebPage $oPage, $sClass, $id, $sAttCode, $sContentDisposition = 'attachment', $sSecretField = null, $sSecretValue = null) { - try - { + try { $oObj = MetaModel::GetObject($sClass, $id, false, false); - if (!is_object($oObj)) - { + if (!is_object($oObj)) { // If access to the document is not granted, check if the access to the host object is allowed $oObj = MetaModel::GetObject($sClass, $id, false, true); if ($oObj instanceof Attachment) { @@ -364,30 +362,28 @@ class ormDocument throw new Exception("Invalid id ($id) for class '$sClass' - the object does not exist or you are not allowed to view it"); } } - if (($sSecretField != null) && ($oObj->Get($sSecretField) != $sSecretValue)) - { + if (($sSecretField != null) && ($oObj->Get($sSecretField) != $sSecretValue)) { usleep(200); throw new Exception("Invalid secret for class '$sClass' - the object does not exist or you are not allowed to view it"); } /** @var \ormDocument $oDocument */ $oDocument = $oObj->Get($sAttCode); - if (is_object($oDocument)) - { - $aEventData = array( + if (is_object($oDocument)) { + $aEventData = [ 'debug_info' => $oDocument->GetFileName(), 'object' => $oObj, 'att_code' => $sAttCode, 'document' => $oDocument, 'content_disposition' => $sContentDisposition, - ); + ]; EventService::FireEvent(new EventData(\EVENT_DOWNLOAD_DOCUMENT, $sClass, $aEventData)); $oPage->TrashUnexpectedOutput(); $oPage->SetContentType($oDocument->GetMimeType()); - $oPage->SetContentDisposition($sContentDisposition,$oDocument->GetFileName()); + $oPage->SetContentDisposition($sContentDisposition, $oDocument->GetFileName()); $oPage->add($oDocument->GetData()); // Update downloads count only when content disposition is set to "attachment" as other disposition are to display the document within the page - if($sContentDisposition === static::ENUM_CONTENT_DISPOSITION_ATTACHMENT) { + if ($sContentDisposition === static::ENUM_CONTENT_DISPOSITION_ATTACHMENT) { $oDocument->IncreaseDownloadsCount(); $oObj->Set($sAttCode, $oDocument); // $oObj can be a \DBObject or \cmdbAbstractObject so we ahve to protect it @@ -398,9 +394,7 @@ class ormDocument $oObj->DBUpdate(); } } - } - catch(Exception $e) - { + } catch (Exception $e) { $oPage->p($e->getMessage()); } } diff --git a/core/ormpassword.class.inc.php b/core/ormpassword.class.inc.php index a90780bdd..f8b4d2122 100644 --- a/core/ormpassword.class.inc.php +++ b/core/ormpassword.class.inc.php @@ -1,9 +1,10 @@ - require_once(APPROOT.'/core/simplecrypt.class.inc.php'); /** @@ -45,7 +45,7 @@ class ormPassword //only used for <= 2.5 hashed password $this->m_sSalt = $sSalt; } - + /** * Encrypts the clear text password, with a unique salt */ @@ -68,17 +68,17 @@ class ormPassword { return utils::IsNullOrEmptyString($this->m_sHashed); } - + public function GetHash() { return $this->m_sHashed; } - + public function GetSalt() { return $this->m_sSalt; } - + /** * Displays the password: displays some stars * @return string @@ -97,19 +97,16 @@ class ormPassword { $bResult = false; $aInfo = password_get_info($this->m_sHashed); - if (is_null($aInfo["algo"]) || $aInfo["algo"] === 0) - { + if (is_null($aInfo["algo"]) || $aInfo["algo"] === 0) { //unknown, assume it's a legacy password $sHashedPwd = $this->ComputeHash($sClearTextPassword); $bResult = ($this->m_sHashed == $sHashedPwd); - } - else - { + } else { $bResult = password_verify($sClearTextPassword, $this->m_sHashed); } return $bResult; } - + /** * Computes the hashed version of a password using a unique salt * for this password. A unique salt is generated if needed @@ -117,11 +114,9 @@ class ormPassword */ protected function ComputeHash($sClearTextPwd) { - if ($this->m_sSalt == null) - { + if ($this->m_sSalt == null) { $this->m_sSalt = SimpleCrypt::GetNewSalt(); } return hash('sha256', $this->m_sSalt.$sClearTextPwd); } } -?> diff --git a/core/ormset.class.inc.php b/core/ormset.class.inc.php index 139207c78..4667f51c2 100644 --- a/core/ormset.class.inc.php +++ b/core/ormset.class.inc.php @@ -1,4 +1,5 @@ GetValues(); - if (!empty($aValue)) - { + if (!empty($aValue)) { return implode(', ', $aValue); - } - else - { + } else { return ' '; } } @@ -86,8 +84,7 @@ class ormSet $this->sAttCode = $sAttCode; $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); - if (!$oAttDef instanceof AttributeSet) - { + if (!$oAttDef instanceof AttributeSet) { throw new Exception("ormSet: field {$sClass}:{$sAttCode} is not a set"); } $this->sClass = $sClass; @@ -119,19 +116,16 @@ class ormSet */ public function SetValues($aItems) { - if (!is_array($aItems)) - { + if (!is_array($aItems)) { throw new CoreUnexpectedValue("Wrong value {$aItems} for {$this->sClass}:{$this->sAttCode}"); } - $aValues = array(); + $aValues = []; $iCount = 0; $bError = false; - foreach($aItems as $sItem) - { + foreach ($aItems as $sItem) { $iCount++; - if (($this->iLimit != 0) && ($iCount > $this->iLimit)) - { + if (($this->iLimit != 0) && ($iCount > $this->iLimit)) { $bError = true; continue; } @@ -139,13 +133,12 @@ class ormSet } $this->aPreserved = &$aValues; - $this->aRemoved = array(); - $this->aAdded = array(); - $this->aModified = array(); + $this->aRemoved = []; + $this->aAdded = []; + $this->aModified = []; $this->aOriginalObjects = $aValues; - if ($bError) - { + if ($bError) { throw new CoreException("Maximum number of items ({$this->iLimit}) reached for {$this->sClass}:{$this->sAttCode}"); } } @@ -167,10 +160,9 @@ class ormSet public function GetLabels() { - $aLabels = array(); + $aLabels = []; $aValues = $this->GetValues(); - foreach ($aValues as $sValue) - { + foreach ($aValues as $sValue) { $aLabels[$sValue] = $sValue; } return $aLabels; @@ -213,18 +205,16 @@ class ormSet $oSet->SetValues($aOrigItems); // now remove everything - foreach($aOrigItems as $oItem) - { + foreach ($aOrigItems as $oItem) { $oSet->Remove($oItem); } // now add the tags of the other ItemSet - foreach($oOtherSet->GetValues() as $oItem) - { + foreach ($oOtherSet->GetValues() as $oItem) { $oSet->Add($oItem); } - $aDelta = array(); + $aDelta = []; $aDelta['added'] = $oSet->GetAdded(); $aDelta['removed'] = $oSet->GetRemoved(); @@ -250,17 +240,13 @@ class ormSet */ public function ApplyDelta($aDelta) { - if (isset($aDelta['removed'])) - { - foreach($aDelta['removed'] as $oItem) - { + if (isset($aDelta['removed'])) { + foreach ($aDelta['removed'] as $oItem) { $this->Remove($oItem); } } - if (isset($aDelta['added'])) - { - foreach($aDelta['added'] as $oItem) - { + if (isset($aDelta['added'])) { + foreach ($aDelta['added'] as $oItem) { $this->Add($oItem); } } @@ -276,24 +262,19 @@ class ormSet */ public function Add($oItem) { - if (($this->iLimit != 0) && ($this->Count() > $this->iLimit)) - { + if (($this->iLimit != 0) && ($this->Count() > $this->iLimit)) { throw new CoreException("Maximum number of items ({$this->iLimit}) reached for {$this->sClass}:{$this->sAttCode}"); } - if ($this->IsItemInList($this->aPreserved, $oItem) || $this->IsItemInList($this->aAdded, $oItem)) - { + if ($this->IsItemInList($this->aPreserved, $oItem) || $this->IsItemInList($this->aAdded, $oItem)) { // nothing to do, already existing tag return; } // if removed and added again - if (($this->RemoveItemFromList($this->aRemoved, $oItem)) !== false) - { + if (($this->RemoveItemFromList($this->aRemoved, $oItem)) !== false) { // put it back into preserved $this->aPreserved[] = $oItem; // no need to add it to aModified : was already done when calling RemoveItem method - } - else - { + } else { $this->aAdded[] = $oItem; $this->aModified[] = $oItem; } @@ -304,21 +285,18 @@ class ormSet */ public function Remove($oItem) { - if ($this->IsItemInList($this->aRemoved, $oItem)) - { + if ($this->IsItemInList($this->aRemoved, $oItem)) { // nothing to do, already removed tag return; } - if ($this->RemoveItemFromList($this->aAdded, $oItem) !== false) - { + if ($this->RemoveItemFromList($this->aAdded, $oItem) !== false) { $this->aModified[] = $oItem; return; // if present in added, can't be in preserved ! } - if ($this->RemoveItemFromList($this->aPreserved, $oItem) !== false) - { + if ($this->RemoveItemFromList($this->aPreserved, $oItem) !== false) { $this->aModified[] = $oItem; $this->aRemoved[] = $oItem; } @@ -337,14 +315,11 @@ class ormSet */ private function RemoveItemFromList(&$aItemList, $oItem) { - if (!($this->IsItemInList($aItemList, $oItem))) - { + if (!($this->IsItemInList($aItemList, $oItem))) { return false; } - foreach ($aItemList as $index => $value) - { - if ($value === $oItem) - { + foreach ($aItemList as $index => $value) { + if ($value === $oItem) { unset($aItemList[$index]); return $oItem; } @@ -362,16 +337,13 @@ class ormSet */ public function GenerateDiffFromArray($aItems) { - foreach($this->GetValues() as $oCurrentItem) - { - if (!in_array($oCurrentItem, $aItems)) - { + foreach ($this->GetValues() as $oCurrentItem) { + if (!in_array($oCurrentItem, $aItems)) { $this->Remove($oCurrentItem); } } - foreach($aItems as $oNewItem) - { + foreach ($aItems as $oNewItem) { $this->Add($oNewItem); } } diff --git a/core/ormtagset.class.inc.php b/core/ormtagset.class.inc.php index 2f11a9fef..1af654905 100644 --- a/core/ormtagset.class.inc.php +++ b/core/ormtagset.class.inc.php @@ -1,4 +1,5 @@ sClass}:{$this->sAttCode}"); } - $oTags = array(); + $oTags = []; $iCount = 0; $bError = false; - foreach($aTagCodes as $sTagCode) - { + foreach ($aTagCodes as $sTagCode) { $iCount++; - if (($this->iLimit != 0) && ($iCount > $this->iLimit)) - { + if (($this->iLimit != 0) && ($iCount > $this->iLimit)) { $bError = true; continue; } @@ -74,13 +71,12 @@ final class ormTagSet extends ormSet } $this->aPreserved = &$oTags; - $this->aRemoved = array(); - $this->aAdded = array(); - $this->aModified = array(); + $this->aRemoved = []; + $this->aAdded = []; + $this->aModified = []; $this->aOriginalObjects = $oTags; - if ($bError) - { + if ($bError) { throw new CoreException("Maximum number of tags ({$this->iLimit}) reached for {$this->sClass}:{$this->sAttCode}"); } } @@ -90,13 +86,11 @@ final class ormTagSet extends ormSet */ public function GetValues() { - $aValues = array(); - foreach($this->aPreserved as $sTagCode => $oTag) - { + $aValues = []; + foreach ($this->aPreserved as $sTagCode => $oTag) { $aValues[] = $sTagCode; } - foreach($this->aAdded as $sTagCode => $oTag) - { + foreach ($this->aAdded as $sTagCode => $oTag) { $aValues[] = $sTagCode; } @@ -110,25 +104,19 @@ final class ormTagSet extends ormSet */ public function GetLabels() { - $aTags = array(); + $aTags = []; /** @var \TagSetFieldData $oTag */ - foreach($this->aPreserved as $sTagCode => $oTag) - { - try - { + foreach ($this->aPreserved as $sTagCode => $oTag) { + try { $aTags[$sTagCode] = $oTag->Get('label'); - } catch (CoreException $e) - { + } catch (CoreException $e) { IssueLog::Error($e->getMessage()); } } - foreach($this->aAdded as $sTagCode => $oTag) - { - try - { + foreach ($this->aAdded as $sTagCode => $oTag) { + try { $aTags[$sTagCode] = $oTag->Get('label'); - } catch (CoreException $e) - { + } catch (CoreException $e) { IssueLog::Error($e->getMessage()); } } @@ -142,13 +130,11 @@ final class ormTagSet extends ormSet */ public function GetTags() { - $aTags = array(); - foreach($this->aPreserved as $sTagCode => $oTag) - { + $aTags = []; + foreach ($this->aPreserved as $sTagCode => $oTag) { $aTags[$sTagCode] = $oTag; } - foreach($this->aAdded as $sTagCode => $oTag) - { + foreach ($this->aAdded as $sTagCode => $oTag) { $aTags[$sTagCode] = $oTag; } ksort($aTags); @@ -161,9 +147,8 @@ final class ormTagSet extends ormSet */ private function GetAddedCodes() { - $aTags = array(); - foreach($this->aAdded as $sTagCode => $oTag) - { + $aTags = []; + foreach ($this->aAdded as $sTagCode => $oTag) { $aTags[] = $sTagCode; } ksort($aTags); @@ -176,9 +161,8 @@ final class ormTagSet extends ormSet */ private function GetRemovedCodes() { - $aTags = array(); - foreach($this->aRemoved as $sTagCode => $oTag) - { + $aTags = []; + foreach ($this->aRemoved as $sTagCode => $oTag) { $aTags[] = $sTagCode; } ksort($aTags); @@ -191,9 +175,8 @@ final class ormTagSet extends ormSet */ private function GetAddedTags() { - $aTags = array(); - foreach($this->aAdded as $sTagCode => $oTag) - { + $aTags = []; + foreach ($this->aAdded as $sTagCode => $oTag) { $aTags[$sTagCode] = $oTag; } ksort($aTags); @@ -206,9 +189,8 @@ final class ormTagSet extends ormSet */ private function GetRemovedTags() { - $aTags = array(); - foreach($this->aRemoved as $sTagCode => $oTag) - { + $aTags = []; + foreach ($this->aRemoved as $sTagCode => $oTag) { $aTags[$sTagCode] = $oTag; } ksort($aTags); @@ -236,16 +218,14 @@ final class ormTagSet extends ormSet $aOrigTagCodes = $this->GetValues(); $oTag->SetValues($aOrigTagCodes); // now remove everything - foreach($aOrigTagCodes as $sTagCode) - { + foreach ($aOrigTagCodes as $sTagCode) { $oTag->Remove($sTagCode); } // now add the tags of the other TagSet - foreach($oOtherTagSet->GetValues() as $sTagCode) - { + foreach ($oOtherTagSet->GetValues() as $sTagCode) { $oTag->Add($sTagCode); } - $aDelta = array(); + $aDelta = []; $aDelta['added'] = $oTag->GetAddedCodes(); $aDelta['removed'] = $oTag->GetRemovedCodes(); @@ -272,16 +252,14 @@ final class ormTagSet extends ormSet $aOrigTagCodes = $this->GetValues(); $oTag->SetValues($aOrigTagCodes); // now remove everything - foreach($aOrigTagCodes as $sTagCode) - { + foreach ($aOrigTagCodes as $sTagCode) { $oTag->Remove($sTagCode); } // now add the tags of the other TagSet - foreach($oOtherTagSet->GetValues() as $sTagCode) - { + foreach ($oOtherTagSet->GetValues() as $sTagCode) { $oTag->Add($sTagCode); } - $aDelta = array(); + $aDelta = []; $aDelta['added'] = $oTag->GetAddedTags(); $aDelta['removed'] = $oTag->GetRemovedTags(); @@ -332,17 +310,13 @@ final class ormTagSet extends ormSet */ public function ApplyDelta($aDelta) { - if (isset($aDelta['removed'])) - { - foreach($aDelta['removed'] as $oItem) - { + if (isset($aDelta['removed'])) { + foreach ($aDelta['removed'] as $oItem) { $this->Remove($oItem); } } - if (isset($aDelta['added'])) - { - foreach($aDelta['added'] as $oItem) - { + if (isset($aDelta['added'])) { + foreach ($aDelta['added'] as $oItem) { $this->Add($oItem); } } @@ -357,22 +331,19 @@ final class ormTagSet extends ormSet */ public function GenerateDiffFromArray($aItems) { - foreach($this->GetValues() as $oCurrentItem) - { - if (!in_array($oCurrentItem, $aItems)) - { + foreach ($this->GetValues() as $oCurrentItem) { + if (!in_array($oCurrentItem, $aItems)) { $this->Remove($oCurrentItem); } } - foreach($aItems as $oNewItem) - { + foreach ($aItems as $oNewItem) { $this->Add($oNewItem); } // Keep only the aModified list - $this->aRemoved = array(); - $this->aAdded = array(); + $this->aRemoved = []; + $this->aAdded = []; } /** @@ -384,13 +355,11 @@ final class ormTagSet extends ormSet */ public function IsValidTag($sTagCode) { - try - { + try { $this->GetTagFromCode($sTagCode); return true; - } catch (Exception $e) - { + } catch (Exception $e) { return false; } } @@ -403,24 +372,19 @@ final class ormTagSet extends ormSet */ public function Add($sTagCode) { - if (($this->iLimit != 0) && ($this->Count() == $this->iLimit)) - { + if (($this->iLimit != 0) && ($this->Count() == $this->iLimit)) { throw new CoreException("Maximum number of tags ({$this->iLimit}) reached for {$this->sClass}:{$this->sAttCode}"); } - if ($this->IsTagInList($this->aPreserved, $sTagCode) || $this->IsTagInList($this->aAdded, $sTagCode)) - { + if ($this->IsTagInList($this->aPreserved, $sTagCode) || $this->IsTagInList($this->aAdded, $sTagCode)) { // nothing to do, already existing tag return; } // if removed then added again - if (($oTag = $this->RemoveTagFromList($this->aRemoved, $sTagCode)) !== false) - { + if (($oTag = $this->RemoveTagFromList($this->aRemoved, $sTagCode)) !== false) { // put it back into preserved $this->aPreserved[$sTagCode] = $oTag; // no need to add it to aModified : was already done when calling Remove method - } - else - { + } else { $oTag = $this->GetTagFromCode($sTagCode); $this->aAdded[$sTagCode] = $oTag; $this->aModified[$sTagCode] = $oTag; @@ -432,23 +396,20 @@ final class ormTagSet extends ormSet */ public function Remove($sTagCode) { - if ($this->IsTagInList($this->aRemoved, $sTagCode)) - { + if ($this->IsTagInList($this->aRemoved, $sTagCode)) { // nothing to do, already removed tag return; } $oTag = $this->RemoveTagFromList($this->aAdded, $sTagCode); - if ($oTag !== false) - { + if ($oTag !== false) { $this->aModified[$sTagCode] = $oTag; return; // if present in added, can't be in preserved ! } $oTag = $this->RemoveTagFromList($this->aPreserved, $sTagCode); - if ($oTag !== false) - { + if ($oTag !== false) { $this->aModified[$sTagCode] = $oTag; $this->aRemoved[$sTagCode] = $oTag; } @@ -467,8 +428,7 @@ final class ormTagSet extends ormSet */ private function RemoveTagFromList(&$aTagList, $sTagCode) { - if (!($this->IsTagInList($aTagList, $sTagCode))) - { + if (!($this->IsTagInList($aTagList, $sTagCode))) { return false; } @@ -488,10 +448,8 @@ final class ormTagSet extends ormSet private function GetTagFromCode($sTagCode) { $aAllowedTags = $this->GetAllowedTags(); - foreach($aAllowedTags as $oAllowedTag) - { - if ($oAllowedTag->Get('code') === $sTagCode) - { + foreach ($aAllowedTags as $oAllowedTag) { + if ($oAllowedTag->Get('code') === $sTagCode) { return $oAllowedTag; } } @@ -508,10 +466,8 @@ final class ormTagSet extends ormSet public function GetTagFromLabel($sTagLabel) { $aAllowedTags = $this->GetAllowedTags(); - foreach($aAllowedTags as $oAllowedTag) - { - if ($oAllowedTag->Get('label') === $sTagLabel) - { + foreach ($aAllowedTags as $oAllowedTag) { + if ($oAllowedTag->Get('label') === $sTagLabel) { return $oAllowedTag->Get('code'); } } @@ -538,12 +494,10 @@ final class ormTagSet extends ormSet */ public function Equals(ormSet $other) { - if (!($other instanceof ormTagSet)) - { + if (!($other instanceof ormTagSet)) { return false; } - if ($this->GetTagDataClass() !== $other->GetTagDataClass()) - { + if ($this->GetTagDataClass() !== $other->GetTagDataClass()) { return false; } diff --git a/core/ownershiplock.class.inc.php b/core/ownershiplock.class.inc.php index b9d4c751b..a72131adc 100644 --- a/core/ownershiplock.class.inc.php +++ b/core/ownershiplock.class.inc.php @@ -1,4 +1,5 @@ '', 'key_type' => 'autoincrement', - 'name_attcode' => array('obj_class', 'obj_key'), + 'name_attcode' => ['obj_class', 'obj_key'], 'state_attcode' => '', - 'reconc_keys' => array(''), + 'reconc_keys' => [''], 'db_table' => 'priv_ownership_token', 'db_key_field' => 'id', 'db_finalclass_field' => '', - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeDateTime("acquired", array("allowed_values"=>null, "sql"=>'acquired', "default_value"=>'NOW()', "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDateTime("last_seen", array("allowed_values"=>null, "sql"=>'last_seen', "default_value"=>'NOW()', "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("obj_class", array("allowed_values"=>null, "sql"=>'obj_class', "default_value"=>'', "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeInteger("obj_key", array("allowed_values"=>null, "sql"=>'obj_key', "default_value"=>'', "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeString("token", array("allowed_values"=>null, "sql"=>'token', "default_value"=>'', "is_null_allowed"=>true, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", array("targetclass"=>"User", "jointype"=> '', "allowed_values"=>null, "sql"=>"user_id", "is_null_allowed"=>true, "on_target_delete"=>DEL_SILENT, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeDateTime("acquired", ["allowed_values" => null, "sql" => 'acquired', "default_value" => 'NOW()', "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDateTime("last_seen", ["allowed_values" => null, "sql" => 'last_seen', "default_value" => 'NOW()', "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("obj_class", ["allowed_values" => null, "sql" => 'obj_class', "default_value" => '', "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeInteger("obj_key", ["allowed_values" => null, "sql" => 'obj_key', "default_value" => '', "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeString("token", ["allowed_values" => null, "sql" => 'token', "default_value" => '', "is_null_allowed" => true, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalKey("user_id", ["targetclass" => "User", "jointype" => '', "allowed_values" => null, "sql" => "user_id", "is_null_allowed" => true, "on_target_delete" => DEL_SILENT, "depends_on" => []])); - MetaModel::Init_SetZListItems('details', array ('obj_class', 'obj_key', 'last_seen', 'token')); - MetaModel::Init_SetZListItems('standard_search', array ('obj_class', 'obj_key', 'last_seen', 'token')); - MetaModel::Init_SetZListItems('list', array ('obj_class', 'obj_key', 'last_seen', 'token')); + MetaModel::Init_SetZListItems('details', ['obj_class', 'obj_key', 'last_seen', 'token']); + MetaModel::Init_SetZListItems('standard_search', ['obj_class', 'obj_key', 'last_seen', 'token']); + MetaModel::Init_SetZListItems('list', ['obj_class', 'obj_key', 'last_seen', 'token']); } } @@ -67,7 +68,7 @@ class iTopOwnershipLock protected $sObjClass; protected $iObjKey; protected $oToken; - + /** * Acquires an exclusive lock on the specified DBObject. Once acquired, the lock is identified * by a unique "token" string. @@ -78,15 +79,15 @@ class iTopOwnershipLock public static function AcquireLock($sObjClass, $iObjKey) { $oMutex = new iTopMutex('lock_'.$sObjClass.'::'.$iObjKey); - + $oMutex->Lock(); $oOwnershipLock = new iTopOwnershipLock($sObjClass, $iObjKey); $token = $oOwnershipLock->Acquire(); $oMutex->Unlock(); - - return array('success' => $token !== false, 'token' => $token, 'lock' => $oOwnershipLock, 'acquired' => $oOwnershipLock->oToken->Get('acquired')); + + return ['success' => $token !== false, 'token' => $token, 'lock' => $oOwnershipLock, 'acquired' => $oOwnershipLock->oToken->Get('acquired')]; } - + /** * Extends the ownership lock or acquires it if none exists * Returns a hash array with 3 elements: @@ -99,18 +100,18 @@ class iTopOwnershipLock public static function ExtendLock($sObjClass, $iObjKey, $sToken) { $oMutex = new iTopMutex('lock_'.$sObjClass.'::'.$iObjKey); - + $oMutex->Lock(); $oOwnershipLock = new iTopOwnershipLock($sObjClass, $iObjKey); $aResult = $oOwnershipLock->Extend($sToken); $oMutex->Unlock(); - + return $aResult; } /** * Releases the given lock for the specified object - * + * * @param string $sObjClass The class of the object * @param int $iObjKey The identifier of the object * @param string $sToken The string identifying the lock @@ -119,13 +120,13 @@ class iTopOwnershipLock public static function ReleaseLock($sObjClass, $iObjKey, $sToken) { $oMutex = new iTopMutex('lock_'.$sObjClass.'::'.$iObjKey); - + $oMutex->Lock(); $oOwnershipLock = new iTopOwnershipLock($sObjClass, $iObjKey); $bResult = $oOwnershipLock->Release($sToken); self::DeleteExpiredLocks(); // Cleanup orphan locks $oMutex->Unlock(); - + return $bResult; } @@ -139,17 +140,16 @@ class iTopOwnershipLock public static function KillLock($sObjClass, $iObjKey) { $oMutex = new iTopMutex('lock_'.$sObjClass.'::'.$iObjKey); - + $oMutex->Lock(); $sOQL = "SELECT iTopOwnershipToken WHERE obj_class = :obj_class AND obj_key = :obj_key"; - $oSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL, array('obj_class' => $sObjClass, 'obj_key' => $iObjKey))); - while($oLock = $oSet->Fetch()) - { + $oSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL, ['obj_class' => $sObjClass, 'obj_key' => $iObjKey])); + while ($oLock = $oSet->Fetch()) { $oLock->DBDelete(); } $oMutex->Unlock(); } - + /** * Checks if an exclusive lock exists on the specified DBObject. * @param string $sObjClass The class of the object for which to acquire the lock @@ -160,26 +160,24 @@ class iTopOwnershipLock { $bLocked = false; $oMutex = new iTopMutex('lock_'.$sObjClass.'::'.$iObjKey); - + $oMutex->Lock(); $oOwnershipLock = new iTopOwnershipLock($sObjClass, $iObjKey); - if ($oOwnershipLock->IsOwned()) - { + if ($oOwnershipLock->IsOwned()) { $bLocked = true; } $oMutex->Unlock(); - - return array('locked' =>$bLocked, 'owner' => $oOwnershipLock->GetOwner()); + + return ['locked' => $bLocked, 'owner' => $oOwnershipLock->GetOwner()]; } - + /** * Get the current owner of the lock * @return User */ public function GetOwner() { - if ($this->IsTokenValid()) - { + if ($this->IsTokenValid()) { return MetaModel::GetObject('User', $this->oToken->Get('user_id'), false, true); } return null; @@ -194,33 +192,30 @@ class iTopOwnershipLock protected function __construct($sObjClass, $iObjKey) { $sOQL = "SELECT iTopOwnershipToken WHERE obj_class = :obj_class AND obj_key = :obj_key"; - $oSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL, array('obj_class' => $sObjClass, 'obj_key' => $iObjKey))); + $oSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL, ['obj_class' => $sObjClass, 'obj_key' => $iObjKey])); $this->oToken = $oSet->Fetch(); $this->sObjClass = $sObjClass; $this->iObjKey = $iObjKey; // IssueLog::Info("iTopOwnershipLock::__construct($sObjClass, $iObjKey) oToken::".($this->oToken ? $this->oToken->GetKey() : 'null')); } - + protected function IsOwned() { return $this->IsTokenValid(); } - + protected function Acquire($sToken = null) { - if ($this->IsTokenValid()) - { + if ($this->IsTokenValid()) { // IssueLog::Info("Acquire($sToken) returns false"); return false; - } - else - { + } else { $sToken = $this->TakeOwnership($sToken); // IssueLog::Info("Acquire($sToken) returns $sToken"); return $sToken; } } - + /** * Extends the ownership lock or acquires it if none exists * Returns a hash array with 3 elements: @@ -233,96 +228,79 @@ class iTopOwnershipLock */ protected function Extend($sToken) { - $aResult = array('status' => true, 'owner' => '', 'operation' => 'renewed'); - - if ($this->IsTokenValid()) - { - if ($sToken === $this->oToken->Get('token')) - { + $aResult = ['status' => true, 'owner' => '', 'operation' => 'renewed']; + + if ($this->IsTokenValid()) { + if ($sToken === $this->oToken->Get('token')) { $this->oToken->Set('last_seen', date(AttributeDateTime::GetSQLFormat())); $this->oToken->DBUpdate(); $aResult['acquired'] = $this->oToken->Get('acquired'); - } - else - { + } else { // IssueLog::Info("Extend($sToken) returns false"); $aResult['status'] = false; $aResult['operation'] = 'lost'; $aResult['owner'] = $this->GetOwner(); $aResult['acquired'] = $this->oToken->Get('acquired'); } - } - else - { + } else { $aResult['status'] = false; $aResult['operation'] = 'expired'; } // IssueLog::Info("Extend($sToken) returns true"); return $aResult; } - + protected function HasOwnership($sToken) { $bRet = false; - if ($this->IsTokenValid()) - { - if ($sToken === $this->oToken->Get('token')) - { + if ($this->IsTokenValid()) { + if ($sToken === $this->oToken->Get('token')) { $bRet = true; } } // IssueLog::Info("HasOwnership($sToken) return $bRet"); return $bRet; } - + protected function Release($sToken) { $bRet = false; // IssueLog::Info("Release... begin [$sToken]"); - if (($this->oToken) && ($sToken === $this->oToken->Get('token'))) - { + if (($this->oToken) && ($sToken === $this->oToken->Get('token'))) { // IssueLog::Info("oToken::".$this->oToken->GetKey().' ('.$sToken.') to be deleted'); $this->oToken->DBDelete(); // IssueLog::Info("oToken deleted"); $this->oToken = null; $bRet = true; - } - else if ($this->oToken == null) - { - // IssueLog::Info("Release FAILED oToken == null !!!"); - } - else - { - // IssueLog::Info("Release FAILED inconsistent tokens: sToken=\"".$sToken.'", oToken->Get(\'token\')="'.$this->oToken->Get('token').'"'); + } elseif ($this->oToken == null) { + // IssueLog::Info("Release FAILED oToken == null !!!"); + } else { + // IssueLog::Info("Release FAILED inconsistent tokens: sToken=\"".$sToken.'", oToken->Get(\'token\')="'.$this->oToken->Get('token').'"'); } // IssueLog::Info("Release... end"); return $bRet; } - + protected function IsTokenValid() { $bRet = false; - if ($this->oToken != null) - { + if ($this->oToken != null) { $sToken = $this->oToken->Get('token'); $sDate = $this->oToken->Get('last_seen'); - if (($sDate != '') && ($sToken != '')) - { + if (($sDate != '') && ($sToken != '')) { $oLastSeenTime = new DateTime($sDate); $iNow = date('U'); - if (($iNow - $oLastSeenTime->format('U')) < MetaModel::GetConfig()->Get('concurrent_lock_expiration_delay')) - { + if (($iNow - $oLastSeenTime->format('U')) < MetaModel::GetConfig()->Get('concurrent_lock_expiration_delay')) { $bRet = true; } } } - return $bRet; + return $bRet; } - + protected function TakeOwnership($sToken = null) { - if ($this->oToken == null) - { + if ($this->oToken == null) { $this->oToken = new iTopOwnershipToken(); $this->oToken->Set('obj_class', $this->sObjClass); $this->oToken->Set('obj_key', $this->iObjKey); @@ -330,23 +308,21 @@ class iTopOwnershipLock $this->oToken->Set('acquired', date(AttributeDateTime::GetSQLFormat())); $this->oToken->Set('user_id', UserRights::GetUserId()); $this->oToken->Set('last_seen', date(AttributeDateTime::GetSQLFormat())); - if ($sToken === null) - { + if ($sToken === null) { $sToken = sprintf('%X', microtime(true)); } $this->oToken->Set('token', $sToken); $this->oToken->DBWrite(); return $this->oToken->Get('token'); } - + protected static function DeleteExpiredLocks() { $sOQL = "SELECT iTopOwnershipToken WHERE last_seen < :last_seen_limit"; - $oSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL, array('last_seen_limit' => date(AttributeDateTime::GetSQLFormat(), time() - MetaModel::GetConfig()->Get('concurrent_lock_expiration_delay'))))); - while($oToken = $oSet->Fetch()) - { + $oSet = new DBObjectSet(DBObjectSearch::FromOQL($sOQL, ['last_seen_limit' => date(AttributeDateTime::GetSQLFormat(), time() - MetaModel::GetConfig()->Get('concurrent_lock_expiration_delay'))])); + while ($oToken = $oSet->Fetch()) { $oToken->DBDelete(); } - + } } diff --git a/core/pdfbulkexport.class.inc.php b/core/pdfbulkexport.class.inc.php index 64c2daed5..ed21d58c7 100644 --- a/core/pdfbulkexport.class.inc.php +++ b/core/pdfbulkexport.class.inc.php @@ -1,4 +1,5 @@ array('pdf_options')), parent::EnumFormParts()); + return array_merge(['pdf_options' => ['pdf_options']], parent::EnumFormParts()); } /** @@ -125,33 +126,31 @@ EOF break; default: - return parent:: GetFormPart($oP, $sPartId); + return parent::GetFormPart($oP, $sPartId); } } - public function ReadParameters() { parent::ReadParameters(); $this->aStatusInfo['page_size'] = utils::ReadParam('page_size', 'A4', true, 'raw_data'); $this->aStatusInfo['page_orientation'] = utils::ReadParam('page_orientation', 'L', true); - + $sDateFormatRadio = utils::ReadParam('pdf_date_format_radio', ''); - switch($sDateFormatRadio) - { + switch ($sDateFormatRadio) { case 'default': - // Export from the UI => format = same as is the UI - $this->aStatusInfo['date_format'] = (string)AttributeDateTime::GetFormat(); - break; - + // Export from the UI => format = same as is the UI + $this->aStatusInfo['date_format'] = (string)AttributeDateTime::GetFormat(); + break; + case 'custom': - // Custom format specified from the UI - $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetFormat(), true, 'raw_data'); - break; - + // Custom format specified from the UI + $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetFormat(), true, 'raw_data'); + break; + default: - // Export from the command line (or scripted) => default format is SQL, as in previous versions of iTop, unless specified otherwise - $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetSQLFormat(), true, 'raw_data'); + // Export from the command line (or scripted) => default format is SQL, as in previous versions of iTop, unless specified otherwise + $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetSQLFormat(), true, 'raw_data'); } } @@ -160,8 +159,7 @@ EOF $this->aStatusInfo['tmp_file'] = $this->MakeTmpFile('data'); $sData = parent::GetHeader(); $hFile = @fopen($this->aStatusInfo['tmp_file'], 'ab'); - if ($hFile === false) - { + if ($hFile === false) { throw new Exception('PDFBulkExport: Failed to open temporary data file: "'.$this->aStatusInfo['tmp_file'].'" for writing.'); } fwrite($hFile, $sData."\n"); @@ -180,8 +178,7 @@ EOF AttributeDateTime::SetFormat($oPrevFormat); AttributeDate::SetFormat($oPrevDateFormat); $hFile = @fopen($this->aStatusInfo['tmp_file'], 'ab'); - if ($hFile === false) - { + if ($hFile === false) { throw new Exception('PDFBulkExport: Failed to open temporary data file: "'.$this->aStatusInfo['tmp_file'].'" for writing.'); } fwrite($hFile, $sData."\n"); @@ -214,8 +211,7 @@ EOF */ protected function GetSampleData($oObj, $sAttCode) { - if ($sAttCode !== 'id') - { + if ($sAttCode !== 'id') { $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); // As sample data will be displayed in the web browser, AttributeImage needs to be rendered with a regular HTML format, meaning its "src" looking like "data:image/png;base64,iVBORw0KGgoAAAANSUh..." @@ -245,17 +241,12 @@ EOF $value = $oObj->Get($sAttCode); if ($value instanceof ormDocument) { $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); - if ($oAttDef instanceof AttributeImage) - { + if ($oAttDef instanceof AttributeImage) { $sRet = $this->GetAttributeImageValue($oObj, $sAttCode, static::ENUM_OUTPUT_TYPE_REAL); - } - else - { + } else { $sRet = parent::GetValue($oObj, $sAttCode); } - } - else - { + } else { $sRet = parent::GetValue($oObj, $sAttCode); } } @@ -334,7 +325,7 @@ EOF public function GetSupportedFormats() { - return array('pdf' => Dict::S('Core:BulkExport:PDFFormat')); + return ['pdf' => Dict::S('Core:BulkExport:PDFFormat')]; } public function GetMimeType() diff --git a/core/plugininstanciationmanager.class.inc.php b/core/plugininstanciationmanager.class.inc.php index b5d0ec87c..595c2804d 100644 --- a/core/plugininstanciationmanager.class.inc.php +++ b/core/plugininstanciationmanager.class.inc.php @@ -1,25 +1,21 @@ isInstantiable()) - { + if ($class->isInstantiable()) { $newPerInstanceClasses[$sClassName] = new $sClassName(); } } diff --git a/core/pluginmanager.class.inc.php b/core/pluginmanager.class.inc.php index ef41a4d8d..54c51c694 100644 --- a/core/pluginmanager.class.inc.php +++ b/core/pluginmanager.class.inc.php @@ -1,13 +1,12 @@ m_aExtensionClassNames = $m_aExtensionClassNames; - if ($m_pluginInstanciationManager == null) - { + if ($m_pluginInstanciationManager == null) { $this->m_pluginInstantiationManager = new PluginInstanciationManager(); - } - else - { + } else { $this->m_pluginInstantiationManager = $m_pluginInstanciationManager; } } @@ -38,7 +34,7 @@ class PluginManager */ public function EnumPlugins($sInterface, $sFilterInstanceOf = null, $bCanInstantiatePlugins = true) { - $aPlugins = array(); + $aPlugins = []; if (array_key_exists($sInterface, self::$m_aExtensionClasses)) { $aAllPlugins = self::$m_aExtensionClasses[$sInterface]; @@ -46,17 +42,14 @@ class PluginManager return $aAllPlugins; }; - $aPlugins = array(); + $aPlugins = []; foreach ($aAllPlugins as $sPluginClass => $instance) { if ($instance instanceof $sFilterInstanceOf) { $aPlugins[$sPluginClass] = $instance; } } - } - else - { - if ($bCanInstantiatePlugins && array_key_exists($sInterface, $this->m_aExtensionClassNames)) - { + } else { + if ($bCanInstantiatePlugins && array_key_exists($sInterface, $this->m_aExtensionClassNames)) { $this->InstantiatePlugins($sInterface); return $this->EnumPlugins($sInterface, $sFilterInstanceOf, false); @@ -80,17 +73,12 @@ class PluginManager public function GetPlugins($sInterface, $sClassName, $bCanInstantiatePlugins = true) { $oInstance = null; - if (array_key_exists($sInterface, self::$m_aExtensionClasses)) - { - if (array_key_exists($sClassName, self::$m_aExtensionClasses[$sInterface])) - { + if (array_key_exists($sInterface, self::$m_aExtensionClasses)) { + if (array_key_exists($sClassName, self::$m_aExtensionClasses[$sInterface])) { return self::$m_aExtensionClasses[$sInterface][$sClassName]; } - } - else - { - if ($bCanInstantiatePlugins && array_key_exists($sInterface, $this->m_aExtensionClassNames)) - { + } else { + if ($bCanInstantiatePlugins && array_key_exists($sInterface, $this->m_aExtensionClassNames)) { $this->InstantiatePlugins($sInterface); return $this->GetPlugins($sInterface, $sClassName, false); } diff --git a/core/querybuildercontext.class.inc.php b/core/querybuildercontext.class.inc.php index a3c679508..d17dd0949 100644 --- a/core/querybuildercontext.class.inc.php +++ b/core/querybuildercontext.class.inc.php @@ -1,9 +1,10 @@ m_oQBExpressions = new QueryBuilderExpressions($oFilter, $aGroupByExpr, $aSelectExpr); $this->m_aClassAliases = $oFilter->GetJoinedClasses(); - $this->m_aTableAliases = array(); - $this->m_aFilteredTables = array(); + $this->m_aTableAliases = []; + $this->m_aFilteredTables = []; $this->m_aModifierProperties = $aModifierProperties; - if (is_null($aSelectedClasses)) - { + if (is_null($aSelectedClasses)) { $this->m_aSelectedClasses = $oFilter->GetSelectedClasses(); - } - else - { + } else { // For the unions, the selected classes can be upper in the hierarchy (lowest common ancestor) $this->m_aSelectedClasses = $aSelectedClasses; } // Add all the attribute of interest - foreach ($this->m_aSelectedClasses as $sClassAlias => $sClass) - { + foreach ($this->m_aSelectedClasses as $sClassAlias => $sClass) { $sTableAlias = $sClassAlias; - if (empty($sTableAlias)) - { + if (empty($sTableAlias)) { $sTableAlias = $this->GenerateClassAlias("$sClass", $sClass); $this->m_sEmptyClassAlias = $sTableAlias; } // default to the whole list of attributes + the very std id/finalclass $this->m_oQBExpressions->AddSelect($sClassAlias.'id', new FieldExpression('id', $sTableAlias)); - if (is_null($aAttToLoad) || !array_key_exists($sClassAlias, $aAttToLoad)) - { + if (is_null($aAttToLoad) || !array_key_exists($sClassAlias, $aAttToLoad)) { $sSelectedClass = $this->GetSelectedClass($sClassAlias); $aAttList = MetaModel::ListAttributeDefs($sSelectedClass); - } - else - { + } else { $aAttList = $aAttToLoad[$sClassAlias]; } - foreach ($aAttList as $sAttCode => $oAttDef) - { - if (!$oAttDef->IsScalar()) - { + foreach ($aAttList as $sAttCode => $oAttDef) { + if (!$oAttDef->IsScalar()) { continue; } $oExpression = new FieldExpression($sAttCode, $sTableAlias); @@ -117,13 +108,10 @@ class QueryBuilderContext public function GetModifierProperties($sPluginClass) { - if (array_key_exists($sPluginClass, $this->m_aModifierProperties)) - { + if (array_key_exists($sPluginClass, $this->m_aModifierProperties)) { return $this->m_aModifierProperties[$sPluginClass]; - } - else - { - return array(); + } else { + return []; } } @@ -134,13 +122,10 @@ class QueryBuilderContext public function AddFilteredTable($sTableAlias, $oCondition) { - if (array_key_exists($sTableAlias, $this->m_aFilteredTables)) - { + if (array_key_exists($sTableAlias, $this->m_aFilteredTables)) { $this->m_aFilteredTables[$sTableAlias][] = $oCondition; - } - else - { - $this->m_aFilteredTables[$sTableAlias] = array($oCondition); + } else { + $this->m_aFilteredTables[$sTableAlias] = [$oCondition]; } } @@ -157,5 +142,4 @@ class QueryBuilderContext return $this->m_sEmptyClassAlias; } - } diff --git a/core/querybuilderexpressions.class.inc.php b/core/querybuilderexpressions.class.inc.php index c713610a8..a6e229cef 100644 --- a/core/querybuilderexpressions.class.inc.php +++ b/core/querybuilderexpressions.class.inc.php @@ -26,25 +26,21 @@ class QueryBuilderExpressions public function __construct(DBObjectSearch $oSearch, $aGroupByExpr = null, $aSelectExpr = null) { $this->m_oConditionExpr = $oSearch->GetCriteria(); - if (!$oSearch->GetShowObsoleteData()) - { - foreach ($oSearch->GetSelectedClasses() as $sAlias => $sClass) - { - if (MetaModel::IsObsoletable($sClass)) - { + if (!$oSearch->GetShowObsoleteData()) { + foreach ($oSearch->GetSelectedClasses() as $sAlias => $sClass) { + if (MetaModel::IsObsoletable($sClass)) { $oNotObsolete = new BinaryExpression(new FieldExpression('obsolescence_flag', $sAlias), '=', new ScalarExpression(0)); $this->m_oConditionExpr = $this->m_oConditionExpr->LogAnd($oNotObsolete); } } } - $this->m_aSelectExpr = is_null($aSelectExpr) ? array() : $aSelectExpr; + $this->m_aSelectExpr = is_null($aSelectExpr) ? [] : $aSelectExpr; $this->m_aGroupByExpr = $aGroupByExpr; - $this->m_aJoinFields = array(); - $this->m_aJoinFields = array(); + $this->m_aJoinFields = []; + $this->m_aJoinFields = []; - $this->m_aClassIds = array(); - foreach ($oSearch->GetJoinedClasses() as $sClassAlias => $sClass) - { + $this->m_aClassIds = []; + foreach ($oSearch->GetJoinedClasses() as $sClassAlias => $sClass) { $this->m_aClassIds[$sClassAlias] = new FieldExpression('id', $sClassAlias); } } @@ -117,13 +113,11 @@ class QueryBuilderExpressions */ public function GetMandatoryTables(&$aTables = null) { - if (is_null($aTables)) - { - $aTables = array(); + if (is_null($aTables)) { + $aTables = []; } - foreach ($this->m_aClassIds as $sClass => $oExpression) - { + foreach ($this->m_aClassIds as $sClass => $oExpression) { $oExpression->CollectUsedParents($aTables); } @@ -138,8 +132,7 @@ class QueryBuilderExpressions public function GetUnresolvedFields($sAlias) { $aUnresolved = $this->GetExpectedFields($sAlias); - foreach ($this->m_aJoinFields as $oExpression) - { + foreach ($this->m_aJoinFields as $oExpression) { $oExpression->GetUnresolvedFields($sAlias, $aUnresolved); } return $aUnresolved; @@ -155,17 +148,14 @@ class QueryBuilderExpressions */ public function GetExpectedFields($sAlias) { - $aUnresolved = array(); + $aUnresolved = []; $this->m_oConditionExpr->GetUnresolvedFields($sAlias, $aUnresolved); - foreach ($this->m_aSelectExpr as $sColAlias => $oExpr) - { + foreach ($this->m_aSelectExpr as $sColAlias => $oExpr) { $oExpr->GetUnresolvedFields($sAlias, $aUnresolved); } - if (!empty($this->m_aGroupByExpr)) - { - foreach ($this->m_aGroupByExpr as $sColAlias => $oExpr) - { + if (!empty($this->m_aGroupByExpr)) { + foreach ($this->m_aGroupByExpr as $sColAlias => $oExpr) { $oExpr->GetUnresolvedFields($sAlias, $aUnresolved); } } @@ -175,31 +165,24 @@ class QueryBuilderExpressions public function Translate($aTranslationData, $bMatchAll = true, $bMarkFieldsAsResolved = true) { $this->m_oConditionExpr = $this->m_oConditionExpr->Translate($aTranslationData, $bMatchAll, $bMarkFieldsAsResolved); - foreach ($this->m_aSelectExpr as $sColAlias => $oExpr) - { + foreach ($this->m_aSelectExpr as $sColAlias => $oExpr) { $this->m_aSelectExpr[$sColAlias] = $oExpr->Translate($aTranslationData, $bMatchAll, $bMarkFieldsAsResolved); - if ($this->m_aSelectExpr[$sColAlias] instanceof FieldExpressionResolved) - { + if ($this->m_aSelectExpr[$sColAlias] instanceof FieldExpressionResolved) { // Split the field with the relevant alias - foreach ($this->m_aSelectExpr[$sColAlias]->AdditionalExpressions() as $sSuffix => $oAdditionalExpr) - { + foreach ($this->m_aSelectExpr[$sColAlias]->AdditionalExpressions() as $sSuffix => $oAdditionalExpr) { $this->m_aSelectExpr[$sColAlias.$sSuffix] = $oAdditionalExpr->Translate($aTranslationData, $bMatchAll, $bMarkFieldsAsResolved); } } } - if ($this->m_aGroupByExpr) - { - foreach ($this->m_aGroupByExpr as $sColAlias => $oExpr) - { + if ($this->m_aGroupByExpr) { + foreach ($this->m_aGroupByExpr as $sColAlias => $oExpr) { $this->m_aGroupByExpr[$sColAlias] = $oExpr->Translate($aTranslationData, $bMatchAll, $bMarkFieldsAsResolved); } } - foreach ($this->m_aJoinFields as $index => $oExpression) - { + foreach ($this->m_aJoinFields as $index => $oExpression) { $this->m_aJoinFields[$index] = $oExpression->Translate($aTranslationData, $bMatchAll, $bMarkFieldsAsResolved); } - foreach ($this->m_aClassIds as $sClass => $oExpression) - { + foreach ($this->m_aClassIds as $sClass => $oExpression) { $this->m_aClassIds[$sClass] = $oExpression->Translate($aTranslationData, $bMatchAll, $bMarkFieldsAsResolved); } } @@ -207,20 +190,16 @@ class QueryBuilderExpressions public function RenameParam($sOldName, $sNewName) { $this->m_oConditionExpr->RenameParam($sOldName, $sNewName); - foreach ($this->m_aSelectExpr as $sColAlias => $oExpr) - { + foreach ($this->m_aSelectExpr as $sColAlias => $oExpr) { $this->m_aSelectExpr[$sColAlias] = $oExpr->RenameParam($sOldName, $sNewName); } - if ($this->m_aGroupByExpr) - { - foreach ($this->m_aGroupByExpr as $sColAlias => $oExpr) - { + if ($this->m_aGroupByExpr) { + foreach ($this->m_aGroupByExpr as $sColAlias => $oExpr) { $this->m_aGroupByExpr[$sColAlias] = $oExpr->RenameParam($sOldName, $sNewName); } } - foreach ($this->m_aJoinFields as $index => $oExpression) - { + foreach ($this->m_aJoinFields as $index => $oExpression) { $this->m_aJoinFields[$index] = $oExpression->RenameParam($sOldName, $sNewName); } } -} \ No newline at end of file +} diff --git a/core/querymodifier.class.inc.php b/core/querymodifier.class.inc.php index ab7df0f35..57fe4e79b 100644 --- a/core/querymodifier.class.inc.php +++ b/core/querymodifier.class.inc.php @@ -1,9 +1,10 @@ - /** * Interface iQueryModifier - * Defines the API to tweak queries (e.g. translate data on the fly) + * Defines the API to tweak queries (e.g. translate data on the fly) * * @copyright Copyright (C) 2010-2024 Combodo SAS * @license http://opensource.org/licenses/AGPL-3.0 @@ -31,4 +31,3 @@ interface iQueryModifier public function GetFieldExpression(QueryBuilderContext &$oBuild, $sClass, $sAttCode, $sColId, Expression $oFieldSQLExp, SQLQuery &$oSelect); } -?> diff --git a/core/relationgraph.class.inc.php b/core/relationgraph.class.inc.php index 43b82f703..246b8f360 100644 --- a/core/relationgraph.class.inc.php +++ b/core/relationgraph.class.inc.php @@ -1,4 +1,5 @@ - /** * Data structures (i.e. PHP classes) to build and use relation graphs * * @copyright Copyright (C) 2015-2024 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 - * + * */ require_once(APPROOT.'core/simplegraph.class.inc.php'); @@ -61,24 +61,17 @@ class RelationObjectNode extends GraphNode public function GetDotAttributes($bNoLabel = false) { $sDot = parent::GetDotAttributes(); - if ($this->GetProperty('developped', false)) - { + if ($this->GetProperty('developped', false)) { $sDot .= ',fontcolor=black'; - } - else - { + } else { $sDot .= ',fontcolor=lightgrey'; } - if ($this->GetProperty('source', false) || $this->GetProperty('sink', false)) - { + if ($this->GetProperty('source', false) || $this->GetProperty('sink', false)) { $sDot .= ',shape=rectangle'; } - if ($this->GetProperty('is_reached', false)) - { + if ($this->GetProperty('is_reached', false)) { $sDot .= ',fillcolor="#ffdddd"'; - } - else - { + } else { $sDot .= ',fillcolor=white'; } return $sDot; @@ -92,11 +85,9 @@ class RelationObjectNode extends GraphNode */ public function ReachDown($sProperty, $value) { - if (is_null($this->GetProperty($sProperty)) && ($this->GetProperty($sProperty.'_allowed') !== false)) - { + if (is_null($this->GetProperty($sProperty)) && ($this->GetProperty($sProperty.'_allowed') !== false)) { $this->SetProperty($sProperty, $value); - foreach ($this->GetOutgoingEdges() as $oOutgoingEdge) - { + foreach ($this->GetOutgoingEdges() as $oOutgoingEdge) { // Recurse $oOutgoingEdge->GetSinkNode()->ReachDown($sProperty, $value); } @@ -154,11 +145,9 @@ class RelationRedundancyNode extends GraphNode public function ReachDown($sProperty, $value) { $this->SetProperty($sProperty.'_count', $this->GetProperty($sProperty.'_count', 0) + 1); - if ($this->GetProperty($sProperty.'_count') > $this->GetProperty('threshold')) - { + if ($this->GetProperty($sProperty.'_count') > $this->GetProperty('threshold')) { // Looping... though there should be only ONE SINGLE outgoing edge - foreach ($this->GetOutgoingEdges() as $oOutgoingEdge) - { + foreach ($this->GetOutgoingEdges() as $oOutgoingEdge) { // Recurse $oOutgoingEdge->GetSinkNode()->ReachDown($sProperty, $value); } @@ -166,10 +155,9 @@ class RelationRedundancyNode extends GraphNode } } - /** * Helper to name the edges in a unique way - */ + */ class RelationEdge extends GraphEdge { /** @@ -196,11 +184,11 @@ class RelationEdge extends GraphEdge * source: boolean, that node was added as a source node * sink: boolean, that node was added as a sink node * reached: boolean, that node has been marked as reached (impacted by the source nodes) - * developped: boolean, that node has been visited to search for related objects + * developped: boolean, that node has been visited to search for related objects * 1) RelationRedundancyNode * reached_count: int, the number of source nodes having reached=true - * threshold: float, if reached_count > threshold, the sink nodes become reachable - */ + * threshold: float, if reached_count > threshold, the sink nodes become reachable + */ class RelationGraph extends SimpleGraph { protected $aSourceNodes; // Index of source nodes (for a quicker access) @@ -211,10 +199,10 @@ class RelationGraph extends SimpleGraph public function __construct() { parent::__construct(); - $this->aSourceNodes = array(); - $this->aSinkNodes = array(); - $this->aRedundancySettings = array(); - $this->aContextSearches = array(); + $this->aSourceNodes = []; + $this->aSinkNodes = []; + $this->aRedundancySettings = []; + $this->aContextSearches = []; } /** @@ -252,25 +240,25 @@ class RelationGraph extends SimpleGraph */ public function AddContextQuery($key, $sOQL) { - if ($sOQL === '') { return;} - + if ($sOQL === '') { + return; + } + $oSearch = static::MakeSearch($sOQL); $aAliases = $oSearch->GetSelectedClasses(); - if (count($aAliases) < 2 ) - { + if (count($aAliases) < 2) { IssueLog::Error("Invalid context query '$sOQL'. A context query must contain at least two columns."); throw new Exception("Invalid context query '$sOQL'. A context query must contain at least two columns. Columns: ".implode(', ', $aAliases).'. '); } $aAliasNames = array_keys($aAliases); $oCondition = new BinaryExpression(new FieldExpression('id', $aAliasNames[0]), '=', new VariableExpression('id')); $oSearch->AddConditionExpression($oCondition); - + $sClass = $oSearch->GetClass(); - if (!array_key_exists($sClass, $this->aContextSearches)) - { - $this->aContextSearches[$sClass] = array(); + if (!array_key_exists($sClass, $this->aContextSearches)) { + $this->aContextSearches[$sClass] = []; } - $this->aContextSearches[$sClass][] = array('key' => $key, 'search' => $oSearch); + $this->aContextSearches[$sClass][] = ['key' => $key, 'search' => $oSearch]; } /** @@ -286,25 +274,19 @@ class RelationGraph extends SimpleGraph $bRet = false; $sFinalClass = get_class($oObj); $aParentClasses = MetaModel::EnumParentClasses($sFinalClass, ENUM_PARENT_CLASSES_ALL); - - foreach($aParentClasses as $sClass) - { - if (array_key_exists($sClass, $this->aContextSearches)) - { - foreach($this->aContextSearches[$sClass] as $aContextQuery) - { + + foreach ($aParentClasses as $sClass) { + if (array_key_exists($sClass, $this->aContextSearches)) { + foreach ($this->aContextSearches[$sClass] as $aContextQuery) { $aAliases = $aContextQuery['search']->GetSelectedClasses(); $aAliasNames = array_keys($aAliases); $sRootCauseAlias = $aAliasNames[1]; // 1st column (=0) = object, second column = root cause - $oSet = new DBObjectSet($aContextQuery['search'], array(), array('id' => $oObj->GetKey())); - $oSet->OptimizeColumnLoad(array($aAliasNames[0] => array(), $aAliasNames[1] => array())); // Do not load any column... better do a reload than many joins - while($aRow = $oSet->FetchAssoc()) - { - if (!is_null($aRow[$sRootCauseAlias])) - { - if (!array_key_exists($aContextQuery['key'], $aRootCauses)) - { - $aRootCauses[$aContextQuery['key']] = array(); + $oSet = new DBObjectSet($aContextQuery['search'], [], ['id' => $oObj->GetKey()]); + $oSet->OptimizeColumnLoad([$aAliasNames[0] => [], $aAliasNames[1] => []]); // Do not load any column... better do a reload than many joins + while ($aRow = $oSet->FetchAssoc()) { + if (!is_null($aRow[$sRootCauseAlias])) { + if (!array_key_exists($aContextQuery['key'], $aRootCauses)) { + $aRootCauses[$aContextQuery['key']] = []; } $aRootCauses[$aContextQuery['key']][] = $aRow[$sRootCauseAlias]; $bRet = true; @@ -327,47 +309,41 @@ class RelationGraph extends SimpleGraph * @throws \CoreException * @throws \Exception */ - public function ComputeRelatedObjectsDown($sRelCode, $iMaxDepth, $bEnableRedundancy, $aUnreachableObjects = array()) + public function ComputeRelatedObjectsDown($sRelCode, $iMaxDepth, $bEnableRedundancy, $aUnreachableObjects = []) { //echo "
      Sources only...
      \n".$this->DumpAsHtmlImage()."
      \n"; // Build the graph out of the sources - foreach ($this->aSourceNodes as $oSourceNode) - { + foreach ($this->aSourceNodes as $oSourceNode) { $this->AddRelatedObjects($sRelCode, true, $oSourceNode, $iMaxDepth, $bEnableRedundancy); //echo "
      After processing of {$oSourceNode->GetId()}
      \n".$this->DumpAsHtmlImage()."
      \n"; } - + // Mark the unreachable nodes - foreach ($aUnreachableObjects as $oObj) - { + foreach ($aUnreachableObjects as $oObj) { $sNodeId = RelationObjectNode::MakeId($oObj); $oNode = $this->GetNode($sNodeId); - if($oNode) - { + if ($oNode) { $oNode->SetProperty('is_reached_allowed', false); } } - + // Determine the reached nodes - foreach ($this->aSourceNodes as $oSourceNode) - { + foreach ($this->aSourceNodes as $oSourceNode) { $oSourceNode->ReachDown('is_reached', true); //echo "
      After reaching from {$oSourceNode->GetId()}
      \n".$this->DumpAsHtmlImage()."
      \n"; } - + // Mark also the "context" nodes as reached and record the "root causes" for each node $oIterator = new RelationTypeIterator($this, 'Node'); - foreach($oIterator as $oNode) - { + foreach ($oIterator as $oNode) { $oObj = $oNode->GetProperty('object'); - $aRootCauses = array(); - if (!is_null($oObj) && $this->IsPartOfContext($oObj, $aRootCauses)) - { + $aRootCauses = []; + if (!is_null($oObj) && $this->IsPartOfContext($oObj, $aRootCauses)) { $oNode->SetProperty('context_root_causes', $aRootCauses); $oNode->ReachDown('is_reached', true); - } + } } - if ( MetaModel::GetConfig()->Get('relations.complete_analysis')) { + if (MetaModel::GetConfig()->Get('relations.complete_analysis')) { $this->ApplyUserRightsOnGraph(); } } @@ -386,30 +362,26 @@ class RelationGraph extends SimpleGraph { //echo "
      Sinks only...
      \n".$this->DumpAsHtmlImage()."
      \n"; // Build the graph out of the sinks - foreach ($this->aSinkNodes as $oSinkNode) - { + foreach ($this->aSinkNodes as $oSinkNode) { $this->AddRelatedObjects($sRelCode, false, $oSinkNode, $iMaxDepth, $bEnableRedundancy); //echo "
      After processing of {$oSinkNode->GetId()}
      \n".$this->DumpAsHtmlImage()."
      \n"; } // Mark also the "context" nodes as reached and record the "root causes" for each node $oIterator = new RelationTypeIterator($this, 'Node'); - foreach($oIterator as $oNode) - { + foreach ($oIterator as $oNode) { $oObj = $oNode->GetProperty('object'); - $aRootCauses = array(); - if (!is_null($oObj) && $this->IsPartOfContext($oObj, $aRootCauses)) - { + $aRootCauses = []; + if (!is_null($oObj) && $this->IsPartOfContext($oObj, $aRootCauses)) { $oNode->SetProperty('context_root_causes', $aRootCauses); $oNode->ReachDown('is_reached', true); - } + } } - if ( MetaModel::GetConfig()->Get('relations.complete_analysis')) { + if (MetaModel::GetConfig()->Get('relations.complete_analysis')) { $this->ApplyUserRightsOnGraph(); } } - /** * Recursively find related objects, and add them into the graph * @@ -423,27 +395,22 @@ class RelationGraph extends SimpleGraph */ protected function AddRelatedObjects($sRelCode, $bDown, $oObjectNode, $iMaxDepth, $bEnableRedundancy) { - if ($iMaxDepth > 0) - { - if ($oObjectNode instanceof RelationRedundancyNode) - { + if ($iMaxDepth > 0) { + if ($oObjectNode instanceof RelationRedundancyNode) { // Note: this happens when recursing on an existing part of the graph // Skip that redundancy node $aRelatedEdges = $bDown ? $oObjectNode->GetOutgoingEdges() : $oObjectNode->GetIncomingEdges(); - foreach ($aRelatedEdges as $oRelatedEdge) - { + foreach ($aRelatedEdges as $oRelatedEdge) { $oRelatedNode = $bDown ? $oRelatedEdge->GetSinkNode() : $oRelatedEdge->GetSourceNode(); // Recurse (same depth) $this->AddRelatedObjects($sRelCode, $bDown, $oRelatedNode, $iMaxDepth, $bEnableRedundancy); } - } - elseif ($oObjectNode->GetProperty('developped', false)) - { + } elseif ($oObjectNode->GetProperty('developped', false)) { // No need to explore the underlying graph at all. We can stop here since the node has already been developped. // Otherwise in case of "loops" in the graph we would recurse up to the max depth limit // without producing any difference in the resulting graph... but potentially taking a LOOOONG time. return; - + // Former code was //$aRelatedEdges = $bDown ? $oObjectNode->GetOutgoingEdges() : $oObjectNode->GetIncomingEdges(); //foreach ($aRelatedEdges as $oRelatedEdge) @@ -452,60 +419,50 @@ class RelationGraph extends SimpleGraph // // Recurse (decrement the depth) // $this->AddRelatedObjects($sRelCode, $bDown, $oRelatedNode, $iMaxDepth - 1, $bEnableRedundancy); //} - } - else - { + } else { $oObjectNode->SetProperty('developped', true); - + $oObject = $oObjectNode->GetProperty('object'); $iPreviousTimeLimit = ini_get('max_execution_time'); $iLoopTimeLimit = MetaModel::GetConfig()->Get('max_execution_time_per_loop'); - foreach (MetaModel::EnumRelationQueries(get_class($oObject), $sRelCode, $bDown) as $sDummy => $aQueryInfo) - { - $sQuery = $bDown ? $aQueryInfo['sQueryDown'] : $aQueryInfo['sQueryUp']; - try - { + foreach (MetaModel::EnumRelationQueries(get_class($oObject), $sRelCode, $bDown) as $sDummy => $aQueryInfo) { + $sQuery = $bDown ? $aQueryInfo['sQueryDown'] : $aQueryInfo['sQueryUp']; + try { $oFlt = static::MakeSearch($sQuery); - if ( MetaModel::GetConfig()->Get('relations.complete_analysis')) { + if (MetaModel::GetConfig()->Get('relations.complete_analysis')) { //no filter to find all impacts $oFlt->AllowAllData(true); } - $oObjSet = new DBObjectSet($oFlt, array(), $oObject->ToArgsForQuery()); + $oObjSet = new DBObjectSet($oFlt, [], $oObject->ToArgsForQuery()); $oRelatedObj = $oObjSet->Fetch(); - } - catch (Exception $e) - { + } catch (Exception $e) { $sDirection = $bDown ? 'downstream' : 'upstream'; throw new Exception("Wrong query ($sDirection) for the relation $sRelCode/{$aQueryInfo['sDefinedInClass']}/{$aQueryInfo['sNeighbour']}: ".$e->getMessage()); } - if ($oRelatedObj) - { - do - { + if ($oRelatedObj) { + do { set_time_limit(intval($iLoopTimeLimit)); - $sObjectRef = RelationObjectNode::MakeId($oRelatedObj); - $oRelatedNode = $this->GetNode($sObjectRef); - if (is_null($oRelatedNode)) { - $oRelatedNode = new RelationObjectNode($this, $oRelatedObj); - } - $oSourceNode = $bDown ? $oObjectNode : $oRelatedNode; - $oSinkNode = $bDown ? $oRelatedNode : $oObjectNode; - if ($bEnableRedundancy) - { - $oRedundancyNode = $this->ComputeRedundancy($sRelCode, $aQueryInfo, $oSourceNode, $oSinkNode); - } else { - $oRedundancyNode = null; - } - if (!$oRedundancyNode) { - // Direct link (otherwise handled by ComputeRedundancy) - new RelationEdge($this, $oSourceNode, $oSinkNode); - } + $sObjectRef = RelationObjectNode::MakeId($oRelatedObj); + $oRelatedNode = $this->GetNode($sObjectRef); + if (is_null($oRelatedNode)) { + $oRelatedNode = new RelationObjectNode($this, $oRelatedObj); + } + $oSourceNode = $bDown ? $oObjectNode : $oRelatedNode; + $oSinkNode = $bDown ? $oRelatedNode : $oObjectNode; + if ($bEnableRedundancy) { + $oRedundancyNode = $this->ComputeRedundancy($sRelCode, $aQueryInfo, $oSourceNode, $oSinkNode); + } else { + $oRedundancyNode = null; + } + if (!$oRedundancyNode) { + // Direct link (otherwise handled by ComputeRedundancy) + new RelationEdge($this, $oSourceNode, $oSinkNode); + } // Recurse $this->AddRelatedObjects($sRelCode, $bDown, $oRelatedNode, $iMaxDepth - 1, $bEnableRedundancy); - } - while ($oRelatedObj = $oObjSet->Fetch()); + } while ($oRelatedObj = $oObjSet->Fetch()); } } set_time_limit(intval($iPreviousTimeLimit)); @@ -528,48 +485,41 @@ class RelationGraph extends SimpleGraph { $oRedundancyNode = null; $oObject = $oToNode->GetProperty('object'); - if ($this->IsRedundancyEnabled($sRelCode, $aQueryInfo, $oToNode)) - { + if ($this->IsRedundancyEnabled($sRelCode, $aQueryInfo, $oToNode)) { $sUniqueNeighbourId = $aQueryInfo['sDefinedInClass'].'-'.$aQueryInfo['sNeighbour']; $sId = RelationRedundancyNode::MakeId($sRelCode, $sUniqueNeighbourId, $oFromNode->GetProperty('object'), $oToNode->GetProperty('object')); $oRedundancyNode = $this->GetNode($sId); - if (is_null($oRedundancyNode)) - { + if (is_null($oRedundancyNode)) { // Get the upper neighbours $sQuery = $aQueryInfo['sQueryUp']; - if (!$sQuery) - { + if (!$sQuery) { throw new Exception("Redundancy cannot be enabled on the relation $sRelCode/{$aQueryInfo['sDefinedInClass']}/{$aQueryInfo['sNeighbour']}: its direction is \"{$aQueryInfo['sDirection']}\""); } - try - { + try { $oFlt = static::MakeSearch($sQuery); - if ( MetaModel::GetConfig()->Get('relations.complete_analysis')) { + if (MetaModel::GetConfig()->Get('relations.complete_analysis')) { //no filter to find all impacts $oFlt->AllowAllData(true); } - $oObjSet = new DBObjectSet($oFlt, array(), $oObject->ToArgsForQuery()); + $oObjSet = new DBObjectSet($oFlt, [], $oObject->ToArgsForQuery()); $iCount = $oObjSet->Count(); - } - catch (Exception $e) - { + } catch (Exception $e) { throw new Exception("Wrong query (upstream) for the relation $sRelCode/{$aQueryInfo['sDefinedInClass']}/{$aQueryInfo['sNeighbour']}: ".$e->getMessage()); } - + $iMinUp = $this->GetRedundancyMinUp($sRelCode, $aQueryInfo, $oToNode, $iCount); $fThreshold = max(0, $iCount - $iMinUp); $oRedundancyNode = new RelationRedundancyNode($this, $sId, $iMinUp, $fThreshold); new RelationEdge($this, $oRedundancyNode, $oToNode); - - while ($oUpperObj = $oObjSet->Fetch()) - { - $sObjectRef = RelationObjectNode::MakeId($oUpperObj); - $oUpperNode = $this->GetNode($sObjectRef); - if (is_null($oUpperNode)) { - $oUpperNode = new RelationObjectNode($this, $oUpperObj); - } - new RelationEdge($this, $oUpperNode, $oRedundancyNode); + + while ($oUpperObj = $oObjSet->Fetch()) { + $sObjectRef = RelationObjectNode::MakeId($oUpperObj); + $oUpperNode = $this->GetNode($sObjectRef); + if (is_null($oUpperNode)) { + $oUpperNode = new RelationObjectNode($this, $oUpperObj); + } + new RelationEdge($this, $oUpperNode, $oRedundancyNode); } } } @@ -590,8 +540,7 @@ class RelationGraph extends SimpleGraph $bRet = false; $oToObject = $oToNode->GetProperty('object'); $oRedundancyAttDef = $this->FindRedundancyAttribute($sRelCode, $aQueryInfo, get_class($oToObject)); - if ($oRedundancyAttDef) - { + if ($oRedundancyAttDef) { $sValue = $oToObject->Get($oRedundancyAttDef->GetCode()); $bRet = $oRedundancyAttDef->IsEnabled($sValue); } @@ -614,15 +563,11 @@ class RelationGraph extends SimpleGraph $oToObject = $oToNode->GetProperty('object'); $oRedundancyAttDef = $this->FindRedundancyAttribute($sRelCode, $aQueryInfo, get_class($oToObject)); - if ($oRedundancyAttDef) - { + if ($oRedundancyAttDef) { $sValue = $oToObject->Get($oRedundancyAttDef->GetCode()); - if ($oRedundancyAttDef->GetMinUpType($sValue) == 'count') - { + if ($oRedundancyAttDef->GetMinUpType($sValue) == 'count') { $iMinUp = $oRedundancyAttDef->GetMinUpValue($sValue); - } - else - { + } else { $iMinUp = $iUpstreamObjects * $oRedundancyAttDef->GetMinUpValue($sValue) / 100; } } @@ -641,16 +586,11 @@ class RelationGraph extends SimpleGraph protected function FindRedundancyAttribute($sRelCode, $aQueryInfo, $sClass) { $oRet = null; - foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) - { - if ($oAttDef instanceof AttributeRedundancySettings) - { - if ($oAttDef->Get('relation_code') == $sRelCode) - { - if ($oAttDef->Get('from_class') == $aQueryInfo['sFromClass']) - { - if ($oAttDef->Get('neighbour_id') == $aQueryInfo['sNeighbour']) - { + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { + if ($oAttDef instanceof AttributeRedundancySettings) { + if ($oAttDef->Get('relation_code') == $sRelCode) { + if ($oAttDef->Get('from_class') == $aQueryInfo['sFromClass']) { + if ($oAttDef->Get('neighbour_id') == $aQueryInfo['sNeighbour']) { $oRet = $oAttDef; break; } @@ -660,29 +600,26 @@ class RelationGraph extends SimpleGraph } return $oRet; } - + /** * Get the objects referenced by the graph as a hash array: 'class' => array of objects * @return array Ambigous */ public function GetObjectsByClass() { - $aResults = array(); + $aResults = []; $oIterator = new RelationTypeIterator($this, 'Node'); - foreach($oIterator as $oNode) - { + foreach ($oIterator as $oNode) { $oObj = $oNode->GetProperty('object'); // Some nodes (Redundancy Nodes and Group) do not contain an object - if ($oObj) - { + if ($oObj) { $sObjClass = get_class($oObj); - if (!array_key_exists($sObjClass, $aResults)) - { - $aResults[$sObjClass] = array(); + if (!array_key_exists($sObjClass, $aResults)) { + $aResults[$sObjClass] = []; } $aResults[$sObjClass][] = $oObj; } } - return $aResults; + return $aResults; } /** @@ -695,8 +632,7 @@ class RelationGraph extends SimpleGraph protected static function MakeSearch($sOQL) { $oSearch = DBSearch::FromOQL($sOQL); - if (MetaModel::IsObsoletable($oSearch->GetClass())) - { + if (MetaModel::IsObsoletable($oSearch->GetClass())) { // Exclude obsolete objects anytime $oSearch->AddCondition('obsolescence_flag', 0); } @@ -705,7 +641,6 @@ class RelationGraph extends SimpleGraph return $oSearch; } - /** * @return void * @throws \CoreException @@ -733,7 +668,7 @@ class RelationGraph extends SimpleGraph $sOQL = "SELECT ".$sClass.' WHERE id IN ('.implode(',', $aKeys).')'; $oSearch = DBObjectSearch::FromOQL($sOQL); $aListId = $oSearch->SelectAttributeToArray('id'); - foreach($aListId as$aItem ) { + foreach ($aListId as $aItem) { unset($aArrayTest[$sClass][$aItem['id']]); } } diff --git a/core/simplecrypt.class.inc.php b/core/simplecrypt.class.inc.php index 2875cff2e..e9c304f3d 100644 --- a/core/simplecrypt.class.inc.php +++ b/core/simplecrypt.class.inc.php @@ -1,4 +1,5 @@ oEngine = new $sEngineName; - } + $sEngineName = 'SimpleCrypt'.$sEngineName.'Engine'; + $this->oEngine = new $sEngineName(); + } - /** - * Encrypts the string with the given key - * @param string $key - * @param string $sString Plaintext string - * @return string Ciphered string - */ - function Encrypt($key, $sString) - { + /** + * Encrypts the string with the given key + * @param string $key + * @param string $sString Plaintext string + * @return string Ciphered string + */ + public function Encrypt($key, $sString) + { - return $this->oEngine->Encrypt($key,$sString); - } + return $this->oEngine->Encrypt($key, $sString); + } + /** + * Decrypts the string by the given key + * @param string $key + * @param string $string Ciphered string + * @return string Plaintext string + */ + public function Decrypt($key, $string) + { + if (is_null($string) || strlen($string) == 0) { + IssueLog::Warning("Cannot decrypt empty/null value"); + return $string; + } + return $this->oEngine->Decrypt($key, $string); + } - /** - * Decrypts the string by the given key - * @param string $key - * @param string $string Ciphered string - * @return string Plaintext string - */ - function Decrypt($key, $string) - { - if (is_null($string) || strlen($string) == 0) { - IssueLog::Warning("Cannot decrypt empty/null value"); - return $string; - } - return $this->oEngine->Decrypt($key,$string); - } - - /** - * Returns a random "salt" value, to be used when "hashing" a password - * using a one-way encryption algorithm, to prevent an attack using a "rainbow table" - * Tryes to use the best available random number generator - * @return string The generated random "salt" - */ - static function GetNewSalt() - { + /** + * Returns a random "salt" value, to be used when "hashing" a password + * using a one-way encryption algorithm, to prevent an attack using a "rainbow table" + * Tryes to use the best available random number generator + * @return string The generated random "salt" + */ + public static function GetNewSalt() + { // Copied from http://www.php.net/manual/en/function.mt-rand.php#83655 // get 128 pseudorandom bits in a string of 16 bytes $sRandomBits = null; // Unix/Linux platform? - $fp = @fopen('/dev/urandom','rb'); - if ($fp !== FALSE) - { + $fp = @fopen('/dev/urandom', 'rb'); + if ($fp !== false) { //echo "Random bits pulled from /dev/urandom
      \n"; - $sRandomBits .= @fread($fp,16); - @fclose($fp); - } - else - { + $sRandomBits .= @fread($fp, 16); + @fclose($fp); + } else { // MS-Windows platform? - if (@class_exists('COM')) - { + if (@class_exists('COM')) { // http://msdn.microsoft.com/en-us/library/aa388176(VS.85).aspx - try - { - $CAPI_Util = new COM('CAPICOM.Utilities.1'); - $sBase64RandomBits = ''.$CAPI_Util->GetRandom(16,0); + try { + $CAPI_Util = new COM('CAPICOM.Utilities.1'); + $sBase64RandomBits = ''.$CAPI_Util->GetRandom(16, 0); - // if we ask for binary data PHP munges it, so we - // request base64 return value. We squeeze out the - // redundancy and useless ==CRLF by hashing... - if ($sBase64RandomBits) - { + // if we ask for binary data PHP munges it, so we + // request base64 return value. We squeeze out the + // redundancy and useless ==CRLF by hashing... + if ($sBase64RandomBits) { //echo "Random bits got from CAPICOM.Utilities.1
      \n"; - $sRandomBits = md5($sBase64RandomBits, TRUE); - } - } - catch (Exception $ex) - { - // echo 'Exception: ' . $ex->getMessage(); + $sRandomBits = md5($sBase64RandomBits, true); + } + } catch (Exception $ex) { + // echo 'Exception: ' . $ex->getMessage(); } } } - if ($sRandomBits == null) - { + if ($sRandomBits == null) { // No "strong" random generator available, use PHP's built-in mechanism //echo "Random bits generated from mt_rand
      \n"; mt_srand(crc32(microtime())); $sRandomBits = ''; - for($i = 0; $i < 4; $i++) - { + for ($i = 0; $i < 4; $i++) { $sRandomBits .= sprintf('%04x', mt_rand(0, 65535)); } - } return $sRandomBits; - } + } } /** @@ -208,8 +189,8 @@ class SimpleCrypt interface CryptEngine { public static function GetNewDefaultParams(); - function Encrypt($key, $sString); - function Decrypt($key, $encrypted_data); + public function Encrypt($key, $sString); + public function Decrypt($key, $encrypted_data); } /** @@ -221,38 +202,36 @@ class SimpleCryptSimpleEngine implements CryptEngine { public static function GetNewDefaultParams() { - return array( 'lib' => 'Simple', 'key' => null); + return [ 'lib' => 'Simple', 'key' => null]; } public function Encrypt($key, $sString) - { - $result = ''; - for($i=1; $i<=strlen($sString); $i++) - { - $char = substr($sString, $i-1, 1); - $keychar = substr($key, ($i % strlen($key))-1, 1); - $char = chr(ord($char)+ord($keychar)); - $result.=$char; - } - return $result; - } + { + $result = ''; + for ($i = 1; $i <= strlen($sString); $i++) { + $char = substr($sString, $i - 1, 1); + $keychar = substr($key, ($i % strlen($key)) - 1, 1); + $char = chr(ord($char) + ord($keychar)); + $result .= $char; + } + return $result; + } - public function Decrypt($key, $encrypted_data) - { - if (is_null($encrypted_data) || strlen($encrypted_data) == 0) { - IssueLog::Warning("Cannot decrypt empty/null value"); - return $encrypted_data; - } - $result = ''; - for($i=1; $i<=strlen($encrypted_data); $i++) - { - $char = substr($encrypted_data, $i-1, 1); - $keychar = substr($key, ($i % strlen($key))-1, 1); - $char = chr(ord($char)-ord($keychar)); - $result.=$char; - } - return $result; - } + public function Decrypt($key, $encrypted_data) + { + if (is_null($encrypted_data) || strlen($encrypted_data) == 0) { + IssueLog::Warning("Cannot decrypt empty/null value"); + return $encrypted_data; + } + $result = ''; + for ($i = 1; $i <= strlen($encrypted_data); $i++) { + $char = substr($encrypted_data, $i - 1, 1); + $keychar = substr($key, ($i % strlen($key)) - 1, 1); + $char = chr(ord($char) - ord($keychar)); + $result .= $char; + } + return $result; + } } /** @@ -262,57 +241,52 @@ class SimpleCryptSimpleEngine implements CryptEngine */ class SimpleCryptMcryptEngine implements CryptEngine { - var $alg = MCRYPT_BLOWFISH; - var $td = null; + public $alg = MCRYPT_BLOWFISH; + public $td = null; public static function GetNewDefaultParams() { - return array('lib' => 'Mcrypt', 'key' => null); + return ['lib' => 'Mcrypt', 'key' => null]; } - public function __construct() { - $this->td = mcrypt_module_open($this->alg,'','cbc',''); + $this->td = mcrypt_module_open($this->alg, '', 'cbc', ''); } - public function Encrypt($key, $sString) - { - $iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($this->td), MCRYPT_DEV_URANDOM); // MCRYPT_DEV_URANDOM is now useable since itop requires php >= 5.6 - if (false === $iv) { - throw new Exception('IV generation failed'); - } + public function Encrypt($key, $sString) + { + $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($this->td), MCRYPT_DEV_URANDOM); // MCRYPT_DEV_URANDOM is now useable since itop requires php >= 5.6 + if (false === $iv) { + throw new Exception('IV generation failed'); + } mcrypt_generic_init($this->td, $key, $iv); - if (empty($sString)) - { + if (empty($sString)) { $sString = str_repeat("\0", 8); } $encrypted_data = mcrypt_generic($this->td, $sString); mcrypt_generic_deinit($this->td); - return $iv.$encrypted_data; - } + return $iv.$encrypted_data; + } - public function Decrypt($key, $encrypted_data) - { - $iv = substr($encrypted_data, 0, mcrypt_enc_get_iv_size($this->td)); - $string = substr($encrypted_data, mcrypt_enc_get_iv_size($this->td)); + public function Decrypt($key, $encrypted_data) + { + $iv = substr($encrypted_data, 0, mcrypt_enc_get_iv_size($this->td)); + $string = substr($encrypted_data, mcrypt_enc_get_iv_size($this->td)); $r = mcrypt_generic_init($this->td, $key, $iv); - if (($r < 0) || ($r === false)) - { + if (($r < 0) || ($r === false)) { $decrypted_data = Dict::S("Core:AttributeEncryptFailedToDecrypt"); - } - else - { + } else { $decrypted_data = rtrim(mdecrypt_generic($this->td, $string), "\0"); mcrypt_generic_deinit($this->td); } - return $decrypted_data; - } + return $decrypted_data; + } - public function __destruct() - { - mcrypt_module_close($this->td); - } + public function __destruct() + { + mcrypt_module_close($this->td); + } } /** * SodiumEngine requires Sodium extension @@ -324,7 +298,7 @@ class SimpleCryptSodiumEngine implements CryptEngine { public static function GetNewDefaultParams() { - return array('lib' => 'Sodium', 'key' => bin2hex(sodium_crypto_secretbox_keygen())); + return ['lib' => 'Sodium', 'key' => bin2hex(sodium_crypto_secretbox_keygen())]; } public function Encrypt($key, $sString) @@ -339,17 +313,16 @@ class SimpleCryptSodiumEngine implements CryptEngine public function Decrypt($key, $encrypted_data) { - if (is_null($encrypted_data) || strlen($encrypted_data) == 0) { - IssueLog::Warning("Cannot decrypt empty/null value"); - return $encrypted_data; - } + if (is_null($encrypted_data) || strlen($encrypted_data) == 0) { + IssueLog::Warning("Cannot decrypt empty/null value"); + return $encrypted_data; + } $key = hex2bin($key); $encrypted_data = base64_decode($encrypted_data); $nonce = mb_substr($encrypted_data, 0, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, '8bit'); $encrypted_data = mb_substr($encrypted_data, SODIUM_CRYPTO_SECRETBOX_NONCEBYTES, null, '8bit'); $plaintext = sodium_crypto_secretbox_open($encrypted_data, $nonce, $key); - if ($plaintext === false) - { + if ($plaintext === false) { $plaintext = Dict::S("Core:AttributeEncryptFailedToDecrypt"); } sodium_memzero($encrypted_data); @@ -362,29 +335,28 @@ class SimpleCryptOpenSSLEngine implements CryptEngine { public static function GetNewDefaultParams() { - return array('lib' => 'OpenSSL', 'key' => bin2hex(openssl_random_pseudo_bytes(32))); + return ['lib' => 'OpenSSL', 'key' => bin2hex(openssl_random_pseudo_bytes(32))]; } public function Encrypt($key, $sString) { $key = hex2bin($key); $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length("AES-256-CBC")); - $encrypted_string = openssl_encrypt($sString, "AES-256-CBC", $key, 0 , $iv); + $encrypted_string = openssl_encrypt($sString, "AES-256-CBC", $key, 0, $iv); return $iv.$encrypted_string; } public function Decrypt($key, $encrypted_data) { - if (is_null($encrypted_data) || strlen($encrypted_data) == 0) { - IssueLog::Warning("Cannot decrypt empty/null value"); - return $encrypted_data; - } + if (is_null($encrypted_data) || strlen($encrypted_data) == 0) { + IssueLog::Warning("Cannot decrypt empty/null value"); + return $encrypted_data; + } $key = hex2bin($key); $iv = mb_substr($encrypted_data, 0, openssl_cipher_iv_length("AES-256-CBC"), '8bit'); $encrypted_data = mb_substr($encrypted_data, openssl_cipher_iv_length("AES-256-CBC"), null, '8bit'); - $plaintext = openssl_decrypt($encrypted_data,"AES-256-CBC", $key, 0 , $iv); - if ($plaintext === false) - { + $plaintext = openssl_decrypt($encrypted_data, "AES-256-CBC", $key, 0, $iv); + if ($plaintext === false) { $plaintext = Dict::S("Core:AttributeEncryptFailedToDecrypt"); } return trim($plaintext); @@ -396,18 +368,16 @@ class SimpleCryptOpenSSLMcryptCompatibilityEngine implements CryptEngine { public static function GetNewDefaultParams() { - return array('lib' => 'OpenSSLMcryptCompatibility', 'key' => null); + return ['lib' => 'OpenSSLMcryptCompatibility', 'key' => null]; } //fix for php < 7.1.8 (keys are Zero padded instead of cycle padded) - static private function MakeOpenSSLBlowfishKey($key) + private static function MakeOpenSSLBlowfishKey($key) { - if("$key" === '') - { + if ("$key" === '') { return $key; } - $len = (16+2)*4; - while(strlen($key) < $len) - { + $len = (16 + 2) * 4; + while (strlen($key) < $len) { $key .= $key; } $key = substr($key, 0, $len); @@ -418,9 +388,9 @@ class SimpleCryptOpenSSLMcryptCompatibilityEngine implements CryptEngine $key = SimpleCryptOpenSSLMcryptCompatibilityEngine::MakeOpenSSLBlowfishKey($key); $blockSize = 8; $len = strlen($sString); - $paddingLen = intval (($len + $blockSize -1) / $blockSize) * $blockSize - $len; + $paddingLen = intval(($len + $blockSize - 1) / $blockSize) * $blockSize - $len; $padding = str_repeat("\0", $paddingLen); - $sData = $sString . $padding; + $sData = $sString.$padding; $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length("BF-CBC")); $encrypted_string = openssl_encrypt($sData, "BF-CBC", $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv); return $iv.$encrypted_string; @@ -428,16 +398,15 @@ class SimpleCryptOpenSSLMcryptCompatibilityEngine implements CryptEngine public function Decrypt($key, $encrypted_data) { - if (is_null($encrypted_data) || strlen($encrypted_data) == 0) { - IssueLog::Warning("Cannot decrypt empty/null value"); - return $encrypted_data; - } + if (is_null($encrypted_data) || strlen($encrypted_data) == 0) { + IssueLog::Warning("Cannot decrypt empty/null value"); + return $encrypted_data; + } $key = SimpleCryptOpenSSLMcryptCompatibilityEngine::MakeOpenSSLBlowfishKey($key); $iv = mb_substr($encrypted_data, 0, openssl_cipher_iv_length("BF-CBC"), '8bit'); $encrypted_data = mb_substr($encrypted_data, openssl_cipher_iv_length("BF-CBC"), null, '8bit'); - $plaintext = openssl_decrypt($encrypted_data,"BF-CBC", $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv); - if ($plaintext === false) - { + $plaintext = openssl_decrypt($encrypted_data, "BF-CBC", $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv); + if ($plaintext === false) { $plaintext = Dict::S("Core:AttributeEncryptFailedToDecrypt"); } return trim($plaintext); diff --git a/core/spreadsheetbulkexport.class.inc.php b/core/spreadsheetbulkexport.class.inc.php index 46f9ea95f..2006729ba 100644 --- a/core/spreadsheetbulkexport.class.inc.php +++ b/core/spreadsheetbulkexport.class.inc.php @@ -1,4 +1,5 @@ array('no-localize'), 'interactive_fields_spreadsheet' => array('interactive_fields_spreadsheet'))); + return array_merge(parent::EnumFormParts(), ['spreadsheet_options' => ['no-localize'], 'interactive_fields_spreadsheet' => ['interactive_fields_spreadsheet']]); } /** @@ -106,7 +107,7 @@ EOF break; default: - return parent:: GetFormPart($oP, $sPartId); + return parent::GetFormPart($oP, $sPartId); } } @@ -116,18 +117,17 @@ EOF $this->aStatusInfo['formatted_text'] = (bool)utils::ReadParam('formatted_text', 1, true); $sDateFormatRadio = utils::ReadParam('spreadsheet_date_format_radio', ''); - switch($sDateFormatRadio) - { + switch ($sDateFormatRadio) { case 'default': // Export from the UI => format = same as is the UI $this->aStatusInfo['date_format'] = (string)AttributeDateTime::GetFormat(); break; - + case 'custom': // Custom format specified from the UI $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetFormat(), true, 'raw_data'); break; - + default: // Export from the command line (or scripted) => default format is SQL, as in previous versions of iTop, unless specified otherwise $this->aStatusInfo['date_format'] = utils::ReadParam('date_format', (string)AttributeDateTime::GetSQLFormat(), true, 'raw_data'); @@ -136,11 +136,9 @@ EOF protected function GetSampleData($oObj, $sAttCode) { - if ($sAttCode != 'id') - { + if ($sAttCode != 'id') { $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); - if ($oAttDef instanceof AttributeDateTime) // AttributeDate is derived from AttributeDateTime - { + if ($oAttDef instanceof AttributeDateTime) { // AttributeDate is derived from AttributeDateTime $sClass = (get_class($oAttDef) == 'AttributeDateTime') ? 'user-formatted-date-time' : 'user-formatted-date'; return '
      '.utils::EscapeHtml($oAttDef->GetEditValue($oObj->Get($sAttCode), $oObj)).'
      '; @@ -152,12 +150,11 @@ EOF protected function GetValue($oObj, $sAttCode) { $bFormattedText = (array_key_exists('formatted_text', $this->aStatusInfo) ? $this->aStatusInfo['formatted_text'] : false); - switch($sAttCode) - { + switch ($sAttCode) { case 'id': $sRet = $oObj->GetKey(); break; - + default: $value = $oObj->Get($sAttCode); $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); @@ -167,28 +164,19 @@ EOF $sRet = $value->GetTimeSpent(); } elseif ($value instanceof ormDocument) { $sRet = ''; - } elseif ($oAttDef instanceof AttributeText) - { - if ($bFormattedText) - { + } elseif ($oAttDef instanceof AttributeText) { + if ($bFormattedText) { // Replace paragraphs (...

      , etc) by line breaks (
      ) since Excel (pre-2016) splits the cells when there is a paragraph $sRet = static::HtmlToSpreadsheet($oObj->GetAsHTML($sAttCode)); - } - else - { + } else { $sRet = utils::HtmlToText($oObj->GetAsHTML($sAttCode)); } - } - elseif ($oAttDef instanceof AttributeString) - { + } elseif ($oAttDef instanceof AttributeString) { $sRet = $oObj->GetAsHTML($sAttCode); - } - elseif ($oAttDef instanceof AttributeCustomFields) - { + } elseif ($oAttDef instanceof AttributeCustomFields) { // Stick to the weird implementation made in GetNextChunk $sRet = utils::TextToHtml($oObj->GetEditValue($sAttCode)); - } - else { + } else { if ($this->bLocalizeOutput) { $sRet = utils::EscapeHtml($oObj->GetEditValue()); } else { @@ -216,34 +204,26 @@ EOF $this->aStatusInfo['position'] = 0; $this->aStatusInfo['total'] = $oSet->Count(); - $aData = array(); - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + $aData = []; + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $sColLabel = $aFieldSpec['sColLabel']; - if ($aFieldSpec['sAttCode'] != 'id') - { + if ($aFieldSpec['sAttCode'] != 'id') { $oAttDef = MetaModel::GetAttributeDef($aFieldSpec['sClass'], $aFieldSpec['sAttCode']); $oFinalAttDef = $oAttDef->GetFinalAttDef(); - if (get_class($oFinalAttDef) == 'AttributeDateTime') - { + if (get_class($oFinalAttDef) == 'AttributeDateTime') { $aData[] = $sColLabel.' ('.Dict::S('UI:SplitDateTime-Date').')'; $aData[] = $sColLabel.' ('.Dict::S('UI:SplitDateTime-Time').')'; - } - else - { + } else { $aData[] = $sColLabel; } - } - else - { + } else { $aData[] = $sColLabel; } } $sData = ''; $sData .= "\n"; $sData .= "\n"; - foreach($aData as $sLabel) - { + foreach ($aData as $sLabel) { $sData .= "\n"; } $sData .= "\n"; @@ -270,47 +250,41 @@ EOF $sData = ''; $iPreviousTimeLimit = ini_get('max_execution_time'); $iLoopTimeLimit = MetaModel::GetConfig()->Get('max_execution_time_per_loop'); - while($aRow = $oSet->FetchAssoc()) - { + while ($aRow = $oSet->FetchAssoc()) { set_time_limit(intval($iLoopTimeLimit)); $sData .= ""; - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $sAlias = $aFieldSpec['sAlias']; $sAttCode = $aFieldSpec['sAttCode']; $sField = ''; /** @var \DBObject $oObj */ $oObj = $aRow[$sAlias]; - if ($oObj == null) - { + if ($oObj == null) { $sData .= ""; continue; } - switch($sAttCode) - { + switch ($sAttCode) { case 'id': $sField = $oObj->GetKey(); $sData .= ""; break; - + default: $oAttDef = MetaModel::GetAttributeDef(get_class($oObj), $sAttCode); $oFinalAttDef = $oAttDef->GetFinalAttDef(); - if (get_class($oFinalAttDef) == 'AttributeDateTime') - { + if (get_class($oFinalAttDef) == 'AttributeDateTime') { // Split the date and time in two columns $sDate = $oDateFormat->Format($oObj->Get($sAttCode)); $sTime = $oTimeFormat->Format($oObj->Get($sAttCode)); $sData .= ""; $sData .= ""; - } - else if (get_class($oFinalAttDef) == 'AttributeDate') { + } elseif (get_class($oFinalAttDef) == 'AttributeDate') { $sDate = $oDateFormat->Format($oObj->Get($sAttCode)); $sData .= ""; - } else if ($oAttDef instanceof AttributeCaseLog) { + } elseif ($oAttDef instanceof AttributeCaseLog) { $rawValue = $oObj->Get($sAttCode); $sField = str_replace("\n", "
      ", utils::EscapeHtml($rawValue->__toString())); // Trick for Excel: treat the content as text even if it begins with an equal sign @@ -319,31 +293,22 @@ EOF if ($bFormattedText) { // Replace paragraphs (...

      , etc) by line breaks (
      ) since Excel (pre-2016) splits the cells when there is a paragraph $sField = static::HtmlToSpreadsheet($oObj->GetAsHTML($sAttCode)); - } - else - { + } else { // Convert to plain text $sField = utils::HtmlToText($oObj->GetAsHTML($sAttCode)); } $sData .= "
      "; - } - elseif ($oAttDef instanceof AttributeCustomFields) - { + } elseif ($oAttDef instanceof AttributeCustomFields) { // GetAsHTML returns a table that would not fit $sField = utils::TextToHtml($oObj->GetEditValue($sAttCode)); $sData .= ""; - } - else if ($oAttDef instanceof AttributeString) - { + } elseif ($oAttDef instanceof AttributeString) { $sField = $oObj->GetAsHTML($sAttCode, $this->bLocalizeOutput); $sData .= ""; - } - else if ($oAttDef instanceof AttributeTagSet) - { + } elseif ($oAttDef instanceof AttributeTagSet) { $sField = utils::HtmlEntities($oObj->GetAsCSV($sAttCode, $this->bLocalizeOutput, '')); $sData .= ""; - } - else { + } else { $rawValue = $oObj->Get($sAttCode); if ($this->bLocalizeOutput) { $sField = utils::EscapeHtml($oFinalAttDef->GetEditValue($rawValue)); @@ -360,21 +325,17 @@ EOF } set_time_limit(intval($iPreviousTimeLimit)); $this->aStatusInfo['position'] += $this->iChunkSize; - if ($this->aStatusInfo['total'] == 0) - { + if ($this->aStatusInfo['total'] == 0) { $iPercentage = 100; - } - else - { - $iPercentage = floor(min(100.0, 100.0*$this->aStatusInfo['position']/$this->aStatusInfo['total'])); + } else { + $iPercentage = floor(min(100.0, 100.0 * $this->aStatusInfo['position'] / $this->aStatusInfo['total'])); } - if ($iCount < $this->iChunkSize) - { + if ($iCount < $this->iChunkSize) { $sRetCode = 'done'; } - $aStatus = array('code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage); + $aStatus = ['code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage]; return $sData; } @@ -387,7 +348,7 @@ EOF public function GetSupportedFormats() { - return array('spreadsheet' => Dict::S('Core:BulkExport:SpreadsheetFormat')); + return ['spreadsheet' => Dict::S('Core:BulkExport:SpreadsheetFormat')]; } public function GetMimeType() @@ -410,33 +371,30 @@ EOF */ public static function HtmlToSpreadsheet($sHtml) { - if (trim(strip_tags($sHtml)) === '') - { + if (trim(strip_tags($sHtml)) === '') { // Display this value as an empty cell in the table return ' '; } // The tags listed here are a subset of the whitelist defined in HTMLDOMSanitizer // Tags causing a visual "line break" in the displayed page (i.e. display: block) are to be replaced by a followed by a
      // in order to preserve any inline style/attribute of the removed tag - $aTagsToReplace = array( + $aTagsToReplace = [ 'pre', 'div', 'p', 'hr', 'center', 'h1', 'h2', 'h3', 'h4', 'li', 'fieldset', 'legend', 'nav', 'section', 'tr', 'caption', - ); + ]; // Tags to completely remove from the markup - $aTagsToRemove = array( + $aTagsToRemove = [ 'table', 'thead', 'tbody', 'ul', 'ol', 'td', 'th', - ); + ]; // Remove the englobing
      ...
      to prevent an extra line break $sHtml = preg_replace('|^
      (.*)
      $|s', '$1', $sHtml); // Must use the "s" (. matches newline) modifier - - foreach($aTagsToReplace as $sTag) - { + + foreach ($aTagsToReplace as $sTag) { $sHtml = preg_replace("|<{$sTag} ?([^>]*)>|is", '', $sHtml); $sHtml = preg_replace("||i", '
      ', $sHtml); } - foreach($aTagsToRemove as $sTag) - { + foreach ($aTagsToRemove as $sTag) { $sHtml = preg_replace("|<{$sTag} ?([^>]*)>|is", '', $sHtml); $sHtml = preg_replace("||i", '', $sHtml); } diff --git a/core/sqlobjectquery.class.inc.php b/core/sqlobjectquery.class.inc.php index fe29f4d5b..854d6b01b 100644 --- a/core/sqlobjectquery.class.inc.php +++ b/core/sqlobjectquery.class.inc.php @@ -1,9 +1,10 @@ - /** * SQLObjectQuery * build a mySQL compatible SQL query @@ -25,7 +25,6 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - /** * SQLObjectQuery * build a mySQL compatible SQL query @@ -33,20 +32,19 @@ * @package iTopORM */ - class SQLObjectQuery extends SQLQuery { public $m_aContextData = null; public $m_iOriginalTableCount = 0; private $m_sTable = ''; private $m_sTableAlias = ''; - private $m_aFields = array(); - private $m_aGroupBy = array(); + private $m_aFields = []; + private $m_aGroupBy = []; private $m_oConditionExpr = null; private $m_bToDelete = true; // The current table must be listed for deletion ? - private $m_aValues = array(); // Values to set in case of an update query + private $m_aValues = []; // Values to set in case of an update query private $m_oSelectedIdField = null; - private $m_aJoinSelects = array(); + private $m_aJoinSelects = []; protected $m_bBeautifulQuery = false; // Data set by PrepareRendering() @@ -57,8 +55,7 @@ class SQLObjectQuery extends SQLQuery private $__aSetValues; private $__aSelectedIdFields; - - public function __construct($sTable, $sTableAlias, $aFields, $bToDelete = true, $aValues = array(), $oSelectedIdField = null) + public function __construct($sTable, $sTableAlias, $aFields, $bToDelete = true, $aValues = [], $oSelectedIdField = null) { parent::__construct(); @@ -89,12 +86,11 @@ class SQLObjectQuery extends SQLQuery public function DisplayHtml() { - if (count($this->m_aFields) == 0) $sFields = ""; - else - { - $aFieldDesc = array(); - foreach ($this->m_aFields as $sAlias => $oExpression) - { + if (count($this->m_aFields) == 0) { + $sFields = ""; + } else { + $aFieldDesc = []; + foreach ($this->m_aFields as $sAlias => $oExpression) { $aFieldDesc[] = $oExpression->RenderExpression(false)." as $sAlias"; } $sFields = " => ".implode(', ', $aFieldDesc); @@ -102,26 +98,21 @@ class SQLObjectQuery extends SQLQuery echo "$this->m_sTable$sFields
      \n"; // #@# todo - display html of an expression tree //$this->m_oConditionExpr->DisplayHtml() - if (count($this->m_aJoinSelects) > 0) - { + if (count($this->m_aJoinSelects) > 0) { echo "Joined to...
      \n"; echo "
        \n"; - foreach ($this->m_aJoinSelects as $aJoinInfo) - { + foreach ($this->m_aJoinSelects as $aJoinInfo) { $sJoinType = $aJoinInfo["jointype"]; $oSQLQuery = $aJoinInfo["select"]; - if (isset($aJoinInfo["on_expression"])) - { + if (isset($aJoinInfo["on_expression"])) { $sOnCondition = $aJoinInfo["on_expression"]->RenderExpression(false); echo "
      • Join '$sJoinType', ON ($sOnCondition)".$oSQLQuery->DisplayHtml()."
      • \n"; - } - else - { + } else { $sLeftField = $aJoinInfo["leftfield"]; $sRightField = $aJoinInfo["rightfield"]; $sRightTableAlias = $aJoinInfo["righttablealias"]; - + echo "
      • Join '$sJoinType', $sLeftField, $sRightTableAlias.$sRightField".$oSQLQuery->DisplayHtml()."
      • \n"; } } @@ -161,12 +152,9 @@ class SQLObjectQuery extends SQLQuery public function AddCondition($oConditionExpr) { - if (is_null($this->m_oConditionExpr)) - { + if (is_null($this->m_oConditionExpr)) { $this->m_oConditionExpr = $oConditionExpr; - } - else - { + } else { $this->m_oConditionExpr = $this->m_oConditionExpr->LogAnd($oConditionExpr); } } @@ -180,23 +168,22 @@ class SQLObjectQuery extends SQLQuery // throw new CoreException("Unknown field '$sLeftField' in table '".$this->m_sTable); //} - if (empty($sRightTableAlias)) - { + if (empty($sRightTableAlias)) { $sRightTableAlias = $oSQLQuery->m_sTableAlias; } -// #@# Could not be verified here because the namespace is unknown - do we need to check it there? -// -// if (!CMDBSource::IsField($sRightTable, $sRightField)) -// { -// throw new CoreException("Unknown field '$sRightField' in table '".$sRightTable."'"); -// } - $this->m_aJoinSelects[] = array( + // #@# Could not be verified here because the namespace is unknown - do we need to check it there? + // + // if (!CMDBSource::IsField($sRightTable, $sRightField)) + // { + // throw new CoreException("Unknown field '$sRightField' in table '".$sRightTable."'"); + // } + $this->m_aJoinSelects[] = [ "jointype" => $sJoinType, "select" => $oSQLQuery, "leftfield" => $sLeftField, "rightfield" => $sRightField, - "righttablealias" => $sRightTableAlias - ); + "righttablealias" => $sRightTableAlias, + ]; } public function AddInnerJoin($oSQLQuery, $sLeftField, $sRightField, $sRightTable = '') { @@ -205,11 +192,10 @@ class SQLObjectQuery extends SQLQuery public function AddInnerJoinTree($oSQLQuery, $sLeftFieldLeft, $sLeftFieldRight, $sRightFieldLeft, $sRightFieldRight, $sRightTableAlias = '', $iOperatorCode = TREE_OPERATOR_BELOW, $bInvertOnClause = false) { assert((get_class($oSQLQuery) == __CLASS__) || is_subclass_of($oSQLQuery, __CLASS__)); - if (empty($sRightTableAlias)) - { + if (empty($sRightTableAlias)) { $sRightTableAlias = $oSQLQuery->m_sTableAlias; } - $this->m_aJoinSelects[] = array( + $this->m_aJoinSelects[] = [ "jointype" => 'inner_tree', "select" => $oSQLQuery, "leftfield" => $sLeftFieldLeft, @@ -218,8 +204,8 @@ class SQLObjectQuery extends SQLQuery "rightfield_right" => $sRightFieldRight, "righttablealias" => $sRightTableAlias, "tree_operator" => $iOperatorCode, - 'invert_on_clause' => $bInvertOnClause - ); + 'invert_on_clause' => $bInvertOnClause, + ]; } public function AddLeftJoin($oSQLQuery, $sLeftField, $sRightField) { @@ -228,22 +214,22 @@ class SQLObjectQuery extends SQLQuery public function AddInnerJoinEx(SQLQuery $oSQLQuery, Expression $oOnExpression) { - $this->m_aJoinSelects[] = array( + $this->m_aJoinSelects[] = [ "jointype" => 'inner', "select" => $oSQLQuery, - "on_expression" => $oOnExpression - ); + "on_expression" => $oOnExpression, + ]; } public function AddLeftJoinEx(SQLQuery $oSQLQuery, Expression $oOnExpression) { - $this->m_aJoinSelects[] = array( + $this->m_aJoinSelects[] = [ "jointype" => 'left', "select" => $oSQLQuery, - "on_expression" => $oOnExpression - ); + "on_expression" => $oOnExpression, + ]; } - + // Interface, build the SQL query /** @@ -251,7 +237,7 @@ class SQLObjectQuery extends SQLQuery * @return string * @throws CoreException */ - public function RenderDelete($aArgs = array()) + public function RenderDelete($aArgs = []) { $this->PrepareRendering(); @@ -267,12 +253,9 @@ class SQLObjectQuery extends SQLQuery throw new CoreException("Building a request wich will delete every object of a given table -looks suspicious- please use truncate instead..."); } */ - if (is_null($this->m_oConditionExpr)) - { + if (is_null($this->m_oConditionExpr)) { // Delete all !!! - } - else - { + } else { $sWhere = self::ClauseWhere($this->m_oConditionExpr, $aArgs); return "DELETE $sDelete FROM $sFrom WHERE $sWhere"; } @@ -309,7 +292,7 @@ class SQLObjectQuery extends SQLQuery * @return string * @throws CoreException */ - public function RenderUpdate($aArgs = array()) + public function RenderUpdate($aArgs = []) { $this->PrepareRendering(); $sFrom = self::ClauseFrom($this->__aFrom); @@ -318,7 +301,6 @@ class SQLObjectQuery extends SQLQuery return "UPDATE $sFrom SET $sValues WHERE $sWhere"; } - /** * Generate an INSERT statement. * Note : unlike `RenderUpdate` and `RenderSelect`, it is limited to one and only one table. @@ -328,13 +310,12 @@ class SQLObjectQuery extends SQLQuery * @return string * @throws CoreException */ - public function RenderInsert($aArgs = array()) + public function RenderInsert($aArgs = []) { $this->PrepareRendering(); $aJoinInfo = reset($this->__aFrom); - if ($aJoinInfo['jointype'] != 'first' || count($this->__aFrom) > 1) - { + if ($aJoinInfo['jointype'] != 'first' || count($this->__aFrom) > 1) { throw new CoreException('Cannot render insert'); } @@ -342,9 +323,8 @@ class SQLObjectQuery extends SQLQuery $sColList = '`'.implode('`,`', array_keys($this->m_aValues)).'`'; - $aSetValues = array(); - foreach ($this->__aSetValues as $sFieldSpec => $value) - { + $aSetValues = []; + foreach ($this->__aSetValues as $sFieldSpec => $value) { $aSetValues[] = CMDBSource::Quote($value); } $sValues = implode(',', $aSetValues); @@ -352,7 +332,6 @@ class SQLObjectQuery extends SQLQuery return "INSERT INTO $sFrom ($sColList) VALUES ($sValues)"; } - /** * @param array $aOrderBy * @param array $aArgs @@ -363,7 +342,7 @@ class SQLObjectQuery extends SQLQuery * @return string * @throws CoreException */ - public function RenderSelect($aOrderBy = array(), $aArgs = array(), $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulQuery = false) + public function RenderSelect($aOrderBy = [], $aArgs = [], $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulQuery = false) { $this->m_bBeautifulQuery = $bBeautifulQuery; $sLineSep = $this->m_bBeautifulQuery ? "\n" : ''; @@ -374,20 +353,15 @@ class SQLObjectQuery extends SQLQuery $sWhere = self::ClauseWhere($this->m_oConditionExpr, $aArgs); // Sanity $iLimitCount = (int)$iLimitCount; - if ($iLimitCount > 0) - { + if ($iLimitCount > 0) { // Sanity $iLimitStart = (int)$iLimitStart; $sLimit = 'LIMIT '.$iLimitStart.', '.$iLimitCount; - } - else - { + } else { $sLimit = ''; } - if ($bGetCount) - { - if (count($this->__aSelectedIdFields) > 0) - { + if ($bGetCount) { + if (count($this->__aSelectedIdFields) > 0) { $aCountFields = []; $aCountI = []; $i = 0; @@ -400,18 +374,13 @@ class SQLObjectQuery extends SQLQuery // Count can be limited for performance reason, in this case the total amount is not important, // we only need to know if the number of entries is greater than a certain amount. $sSQL = "SELECT COUNT(*) AS COUNT FROM (SELECT$sLineSep DISTINCT $sCountFields $sLineSep FROM $sFrom$sLineSep WHERE $sWhere $sLimit) AS _alderaan_ WHERE $sCountI>0"; - } - else - { + } else { $sSQL = "SELECT COUNT(*) AS COUNT FROM (SELECT$sLineSep 1 $sLineSep FROM $sFrom$sLineSep WHERE $sWhere $sLimit) AS _alderaan_"; } - } - else - { + } else { $sSelect = self::ClauseSelect($this->__aFields, $sLineSep); $sOrderBy = self::ClauseOrderBy($aOrderBy, $this->__aFields); - if (!empty($sOrderBy)) - { + if (!empty($sOrderBy)) { $sOrderBy = "ORDER BY $sOrderBy$sLineSep"; } @@ -431,7 +400,7 @@ class SQLObjectQuery extends SQLQuery * @return string * @throws CoreException */ - public function RenderGroupBy($aArgs = array(), $bBeautifulQuery = false, $aOrderBy = array(), $iLimitCount = 0, $iLimitStart = 0) + public function RenderGroupBy($aArgs = [], $bBeautifulQuery = false, $aOrderBy = [], $iLimitCount = 0, $iLimitStart = 0) { $this->m_bBeautifulQuery = $bBeautifulQuery; $sLineSep = $this->m_bBeautifulQuery ? "\n" : ''; @@ -444,34 +413,25 @@ class SQLObjectQuery extends SQLQuery $sWhere = self::ClauseWhere($this->m_oConditionExpr, $aArgs); $sGroupBy = self::ClauseGroupBy($this->__aGroupBy); $sOrderBy = self::ClauseOrderBy($aOrderBy, $this->__aFields); - if (!empty($sGroupBy)) - { + if (!empty($sGroupBy)) { $sGroupBy = "GROUP BY $sGroupBy$sLineSep"; } - if (!empty($sOrderBy)) - { + if (!empty($sOrderBy)) { $sOrderBy = "ORDER BY $sOrderBy$sLineSep"; } - if ($iLimitCount > 0) - { + if ($iLimitCount > 0) { $sLimit = 'LIMIT '.$iLimitStart.', '.$iLimitCount; - } - else - { + } else { $sLimit = ''; } - if (count($this->__aSelectedIdFields) > 0) - { - $aCountFields = array(); - foreach ($this->__aSelectedIdFields as $sFieldExpr) - { + if (count($this->__aSelectedIdFields) > 0) { + $aCountFields = []; + foreach ($this->__aSelectedIdFields as $sFieldExpr) { $aCountFields[] = "COALESCE($sFieldExpr, 0)"; // Null values are excluded from the count } $sCountFields = implode(', ', $aCountFields); $sCountClause = "DISTINCT $sCountFields"; - } - else - { + } else { $sCountClause = '*'; } $sSQL = "SELECT $sSelect,$sLineSep COUNT($sCountClause) AS _itop_count_$sLineSep FROM $sFrom$sLineSep WHERE $sWhere$sLineSep $sGroupBy $sOrderBy$sLineSep $sLimit"; @@ -481,16 +441,15 @@ class SQLObjectQuery extends SQLQuery // Purpose: prepare the query data, once for all private function PrepareRendering() { - if (is_null($this->__aFrom)) - { - $this->__aFrom = array(); - $this->__aFields = array(); - $this->__aGroupBy = array(); - $this->__aDelTables = array(); - $this->__aSetValues = array(); - $this->__aSelectedIdFields = array(); - - $this->PrepareSingleTable($this, $this->__aFrom, '', array('jointype' => 'first')); + if (is_null($this->__aFrom)) { + $this->__aFrom = []; + $this->__aFields = []; + $this->__aGroupBy = []; + $this->__aDelTables = []; + $this->__aSetValues = []; + $this->__aSelectedIdFields = []; + + $this->PrepareSingleTable($this, $this->__aFrom, '', ['jointype' => 'first']); } } @@ -511,118 +470,100 @@ class SQLObjectQuery extends SQLQuery // Handle the various kinds of join (or first table in the list) // - if (empty($aJoinData['righttablealias'])) - { + if (empty($aJoinData['righttablealias'])) { $sRightTableAlias = $this->m_sTableAlias; - } - else - { + } else { $sRightTableAlias = $aJoinData['righttablealias']; } - switch ($aJoinData['jointype']) - { + switch ($aJoinData['jointype']) { case "first": - $aFrom[$this->m_sTableAlias] = array("jointype"=>"first", "tablename"=>$this->m_sTable, "joincondition"=>""); + $aFrom[$this->m_sTableAlias] = ["jointype" => "first", "tablename" => $this->m_sTable, "joincondition" => ""]; break; case "inner": case "left": - if (isset($aJoinData["on_expression"])) - { + if (isset($aJoinData["on_expression"])) { $sJoinCond = $aJoinData["on_expression"]->RenderExpression(true); - } - else - { + } else { $sJoinCond = "`$sCallerAlias`.`{$aJoinData['leftfield']}` = `$sRightTableAlias`.`{$aJoinData['rightfield']}`"; } - $aFrom[$this->m_sTableAlias] = array("jointype"=>$aJoinData['jointype'], "tablename"=>$this->m_sTable, "joincondition"=>"$sJoinCond"); + $aFrom[$this->m_sTableAlias] = ["jointype" => $aJoinData['jointype'], "tablename" => $this->m_sTable, "joincondition" => "$sJoinCond"]; break; case "inner_tree": - if ($aJoinData['invert_on_clause']) - { + if ($aJoinData['invert_on_clause']) { $sRootLeft = "`$sCallerAlias`.`{$aJoinData['leftfield']}`"; $sRootRight = "`$sCallerAlias`.`{$aJoinData['rightfield']}`"; $sNodeLeft = "`$sRightTableAlias`.`{$aJoinData['rightfield_left']}`"; $sNodeRight = "`$sRightTableAlias`.`{$aJoinData['rightfield_right']}`"; - } - else - { + } else { $sNodeLeft = "`$sCallerAlias`.`{$aJoinData['leftfield']}`"; $sNodeRight = "`$sCallerAlias`.`{$aJoinData['rightfield']}`"; $sRootLeft = "`$sRightTableAlias`.`{$aJoinData['rightfield_left']}`"; $sRootRight = "`$sRightTableAlias`.`{$aJoinData['rightfield_right']}`"; } - switch($aJoinData['tree_operator']) - { + switch ($aJoinData['tree_operator']) { case TREE_OPERATOR_BELOW: - $sJoinCond = "$sNodeLeft >= $sRootLeft AND $sNodeLeft <= $sRootRight"; - break; - + $sJoinCond = "$sNodeLeft >= $sRootLeft AND $sNodeLeft <= $sRootRight"; + break; + case TREE_OPERATOR_BELOW_STRICT: - $sJoinCond = "$sNodeLeft > $sRootLeft AND $sNodeLeft < $sRootRight"; - break; - + $sJoinCond = "$sNodeLeft > $sRootLeft AND $sNodeLeft < $sRootRight"; + break; + case TREE_OPERATOR_NOT_BELOW: // Complementary of 'BELOW' - $sJoinCond = "$sNodeLeft < $sRootLeft OR $sNodeLeft > $sRootRight"; - break; - + $sJoinCond = "$sNodeLeft < $sRootLeft OR $sNodeLeft > $sRootRight"; + break; + case TREE_OPERATOR_NOT_BELOW_STRICT: // Complementary of BELOW_STRICT - $sJoinCond = "$sNodeLeft <= $sRootLeft OR $sNodeLeft >= $sRootRight"; - break; + $sJoinCond = "$sNodeLeft <= $sRootLeft OR $sNodeLeft >= $sRootRight"; + break; case TREE_OPERATOR_ABOVE: - $sJoinCond = "$sNodeLeft <= $sRootLeft AND $sNodeRight >= $sRootRight"; - break; - + $sJoinCond = "$sNodeLeft <= $sRootLeft AND $sNodeRight >= $sRootRight"; + break; + case TREE_OPERATOR_ABOVE_STRICT: - $sJoinCond = "$sNodeLeft < $sRootLeft AND $sNodeRight > $sRootRight"; - break; - + $sJoinCond = "$sNodeLeft < $sRootLeft AND $sNodeRight > $sRootRight"; + break; + case TREE_OPERATOR_NOT_ABOVE: // Complementary of 'ABOVE' - $sJoinCond = "$sNodeLeft > $sRootLeft OR $sNodeRight < $sRootRight"; - break; - + $sJoinCond = "$sNodeLeft > $sRootLeft OR $sNodeRight < $sRootRight"; + break; + case TREE_OPERATOR_NOT_ABOVE_STRICT: // Complementary of ABOVE_STRICT - $sJoinCond = "$sNodeLeft >= $sRootLeft OR $sNodeRight <= $sRootRight"; - break; - + $sJoinCond = "$sNodeLeft >= $sRootLeft OR $sNodeRight <= $sRootRight"; + break; + } - $aFrom[$this->m_sTableAlias] = array("jointype"=>$aJoinData['jointype'], "tablename"=>$this->m_sTable, "joincondition"=>"$sJoinCond"); + $aFrom[$this->m_sTableAlias] = ["jointype" => $aJoinData['jointype'], "tablename" => $this->m_sTable, "joincondition" => "$sJoinCond"]; break; } // Given the alias, modify the fields and conditions // before adding them into the current lists // - foreach($this->m_aFields as $sAlias => $oExpression) - { + foreach ($this->m_aFields as $sAlias => $oExpression) { $oRootQuery->__aFields["`$sAlias`"] = $oExpression->RenderExpression(true); } - if ($this->m_aGroupBy) - { - foreach($this->m_aGroupBy as $sAlias => $oExpression) - { + if ($this->m_aGroupBy) { + foreach ($this->m_aGroupBy as $sAlias => $oExpression) { $oRootQuery->__aGroupBy["`$sAlias`"] = $oExpression->RenderExpression(true); } } - if ($this->m_bToDelete) - { + if ($this->m_bToDelete) { $oRootQuery->__aDelTables[] = "`{$this->m_sTableAlias}`"; } - foreach($this->m_aValues as $sFieldName=>$value) - { + foreach ($this->m_aValues as $sFieldName => $value) { $oRootQuery->__aSetValues["`{$this->m_sTableAlias}`.`$sFieldName`"] = $value; // quoted further! } - if (!is_null($this->m_oSelectedIdField)) - { - $oRootQuery->__aSelectedIdFields[] = $this->m_oSelectedIdField->RenderExpression(true); + if (!is_null($this->m_oSelectedIdField)) { + $oRootQuery->__aSelectedIdFields[] = $this->m_oSelectedIdField->RenderExpression(true); } // loop on joins, to complete the list of tables/fields/conditions // - $aTempFrom = array(); // temporary subset of 'from' specs, to be grouped in the final query - foreach ($this->m_aJoinSelects as $aJoinData) - { + $aTempFrom = []; // temporary subset of 'from' specs, to be grouped in the final query + foreach ($this->m_aJoinSelects as $aJoinData) { /** @var \SQLObjectQuery $oRightSelect */ $oRightSelect = $aJoinData["select"]; @@ -636,24 +577,20 @@ class SQLObjectQuery extends SQLQuery public function OptimizeJoins($aUsedTables, $bTopCall = true) { $this->m_iOriginalTableCount = $this->CountTables(); - if ($bTopCall) - { + if ($bTopCall) { // Top call: complete the list of tables absolutely required to perform the right query $this->CollectUsedTables($aUsedTables); } - $aToDiscard = array(); - foreach ($this->m_aJoinSelects as $i => $aJoinInfo) - { + $aToDiscard = []; + foreach ($this->m_aJoinSelects as $i => $aJoinInfo) { $oSQLQuery = $aJoinInfo["select"]; $sTableAlias = $oSQLQuery->GetTableAlias(); - if ($oSQLQuery->OptimizeJoins($aUsedTables, false) && !array_key_exists($sTableAlias, $aUsedTables)) - { + if ($oSQLQuery->OptimizeJoins($aUsedTables, false) && !array_key_exists($sTableAlias, $aUsedTables)) { $aToDiscard[] = $i; } } - foreach ($aToDiscard as $i) - { + foreach ($aToDiscard as $i) { unset($this->m_aJoinSelects[$i]); } @@ -663,8 +600,7 @@ class SQLObjectQuery extends SQLQuery public function CountTables() { $iRet = 1; - foreach ($this->m_aJoinSelects as $i => $aJoinInfo) - { + foreach ($this->m_aJoinSelects as $i => $aJoinInfo) { $oSQLQuery = $aJoinInfo["select"]; $iRet += $oSQLQuery->CountTables(); } @@ -674,34 +610,26 @@ class SQLObjectQuery extends SQLQuery public function CollectUsedTables(&$aTables) { $this->m_oConditionExpr->CollectUsedParents($aTables); - foreach($this->m_aFields as $sFieldAlias => $oField) - { + foreach ($this->m_aFields as $sFieldAlias => $oField) { $oField->CollectUsedParents($aTables); } - if ($this->m_aGroupBy) - { - foreach($this->m_aGroupBy as $sAlias => $oExpression) - { + if ($this->m_aGroupBy) { + foreach ($this->m_aGroupBy as $sAlias => $oExpression) { $oExpression->CollectUsedParents($aTables); } } - if (!is_null($this->m_oSelectedIdField)) - { - $this->m_oSelectedIdField->CollectUsedParents($aTables); + if (!is_null($this->m_oSelectedIdField)) { + $this->m_oSelectedIdField->CollectUsedParents($aTables); } - foreach ($this->m_aJoinSelects as $i => $aJoinInfo) - { + foreach ($this->m_aJoinSelects as $i => $aJoinInfo) { $oSQLQuery = $aJoinInfo["select"]; - if ($oSQLQuery->HasRequiredTables($aTables)) - { + if ($oSQLQuery->HasRequiredTables($aTables)) { // There is something required in the branch, then this node is a MUST - if (isset($aJoinInfo['righttablealias'])) - { + if (isset($aJoinInfo['righttablealias'])) { $aTables[$aJoinInfo['righttablealias']] = true; } - if (isset($aJoinInfo["on_expression"])) - { + if (isset($aJoinInfo["on_expression"])) { $aJoinInfo["on_expression"]->CollectUsedParents($aTables); } } @@ -714,22 +642,17 @@ class SQLObjectQuery extends SQLQuery protected function HasRequiredTables(&$aTables) { $bResult = false; - if (array_key_exists($this->m_sTableAlias, $aTables)) - { + if (array_key_exists($this->m_sTableAlias, $aTables)) { $bResult = true; } - foreach ($this->m_aJoinSelects as $i => $aJoinInfo) - { + foreach ($this->m_aJoinSelects as $i => $aJoinInfo) { $oSQLQuery = $aJoinInfo["select"]; - if ($oSQLQuery->HasRequiredTables($aTables)) - { + if ($oSQLQuery->HasRequiredTables($aTables)) { // There is something required in the branch, then this node is a MUST - if (isset($aJoinInfo['righttablealias'])) - { + if (isset($aJoinInfo['righttablealias'])) { $aTables[$aJoinInfo['righttablealias']] = true; } - if (isset($aJoinInfo["on_expression"])) - { + if (isset($aJoinInfo["on_expression"])) { $aJoinInfo["on_expression"]->CollectUsedParents($aTables); } $bResult = true; diff --git a/core/sqlobjectquerybuilder.class.inc.php b/core/sqlobjectquerybuilder.class.inc.php index 7d9d8e02c..893fbc032 100644 --- a/core/sqlobjectquerybuilder.class.inc.php +++ b/core/sqlobjectquerybuilder.class.inc.php @@ -1,4 +1,5 @@ oDBObjetSearch->GetSelectedClasses() as $sClassAlias => $sClass) - { - $aAttToLoad[$sClassAlias] = array(); + $aAttToLoad = []; + foreach ($this->oDBObjetSearch->GetSelectedClasses() as $sClassAlias => $sClass) { + $aAttToLoad[$sClassAlias] = []; } } $oBuild = new QueryBuilderContext($this->oDBObjetSearch, $aModifierProperties, $aGroupByExpr, $aSelectedClasses, $aSelectExpr, $aAttToLoad); - $oSQLQuery = $this->MakeSQLObjectQueryRoot($oBuild, array(), $aGroupByExpr, $aSelectExpr); + $oSQLQuery = $this->MakeSQLObjectQueryRoot($oBuild, [], $aGroupByExpr, $aSelectExpr); return $oSQLQuery; } @@ -58,9 +56,9 @@ class SQLObjectQueryBuilder public function MakeSQLObjectDeleteQuery() { $aModifierProperties = MetaModel::MakeModifierProperties($this->oDBObjetSearch); - $aAttToLoad = array($this->oDBObjetSearch->GetClassAlias() => array()); + $aAttToLoad = [$this->oDBObjetSearch->GetClassAlias() => []]; $oBuild = new QueryBuilderContext($this->oDBObjetSearch, $aModifierProperties, null, null, null, $aAttToLoad); - $oSQLQuery = $this->MakeSQLObjectQueryRoot($oBuild, array()); + $oSQLQuery = $this->MakeSQLObjectQueryRoot($oBuild, []); return $oSQLQuery; } @@ -73,12 +71,11 @@ class SQLObjectQueryBuilder public function MakeSQLObjectUpdateQuery($aValues) { $aModifierProperties = MetaModel::MakeModifierProperties($this->oDBObjetSearch); - $aRequested = array(); // Requested attributes are the updated attributes - foreach ($aValues as $sAttCode => $value) - { + $aRequested = []; // Requested attributes are the updated attributes + foreach ($aValues as $sAttCode => $value) { $aRequested[$sAttCode] = MetaModel::GetAttributeDef($this->oDBObjetSearch->GetClass(), $sAttCode); } - $aAttToLoad = array($this->oDBObjetSearch->GetClassAlias() => $aRequested); + $aAttToLoad = [$this->oDBObjetSearch->GetClassAlias() => $aRequested]; $oBuild = new QueryBuilderContext($this->oDBObjetSearch, $aModifierProperties, null, null, null, $aAttToLoad); $oSQLQuery = $this->MakeSQLObjectQueryRoot($oBuild, $aValues); return $oSQLQuery; @@ -107,7 +104,6 @@ class SQLObjectQueryBuilder return $this->GetOQLClassTree($oBuild)->RenderDebug(); } - /** * @param \QueryBuilderContext $oBuild * @param array $aValues @@ -117,7 +113,7 @@ class SQLObjectQueryBuilder * @return null|SQLObjectQuery * @throws \CoreException */ - private function MakeSQLObjectQueryRoot($oBuild, $aValues = array(), $aGroupByExpr = null, $aSelectExpr = null) + private function MakeSQLObjectQueryRoot($oBuild, $aValues = [], $aGroupByExpr = null, $aSelectExpr = null) { $oOQLClassNode = $this->GetOQLClassTree($oBuild); @@ -128,38 +124,29 @@ class SQLObjectQueryBuilder */ $oSQLQuery->SetCondition($oBuild->m_oQBExpressions->GetCondition()); - if (is_array($aGroupByExpr)) - { + if (is_array($aGroupByExpr)) { $aCols = $oBuild->m_oQBExpressions->GetGroupBy(); $oSQLQuery->SetGroupBy($aCols); $oSQLQuery->SetSelect($aCols); - if (!empty($aSelectExpr)) - { + if (!empty($aSelectExpr)) { // Get the fields corresponding to the select expressions - foreach($oBuild->m_oQBExpressions->GetSelect() as $sAlias => $oExpr) - { - if (key_exists($sAlias, $aSelectExpr)) - { + foreach ($oBuild->m_oQBExpressions->GetSelect() as $sAlias => $oExpr) { + if (key_exists($sAlias, $aSelectExpr)) { $oSQLQuery->AddSelect($sAlias, $oExpr); } } } - } - else - { + } else { $oSQLQuery->SetSelect($oBuild->m_oQBExpressions->GetSelect()); } // Filter for archive flag // Filter tables as late as possible: do not interfere with the optimization process $aMandatoryTables = $oBuild->m_oQBExpressions->GetMandatoryTables(); - foreach ($oBuild->GetFilteredTables() as $sTableAlias => $aConditions) - { - if ($aMandatoryTables && array_key_exists($sTableAlias, $aMandatoryTables)) - { - foreach ($aConditions as $oCondition) - { + foreach ($oBuild->GetFilteredTables() as $sTableAlias => $aConditions) { + if ($aMandatoryTables && array_key_exists($sTableAlias, $aMandatoryTables)) { + foreach ($aConditions as $oCondition) { $oSQLQuery->AddCondition($oCondition); } } @@ -168,7 +155,6 @@ class SQLObjectQueryBuilder return $oSQLQuery; } - /** * @param \QueryBuilderContext $oBuild * @param \OQLClassNode $oOQLClassNode @@ -184,7 +170,6 @@ class SQLObjectQueryBuilder return $oSQLQuery; } - /** * @param \QueryBuilderContext $oBuild * @param \OQLClassNode $oOQLClassNode @@ -203,39 +188,32 @@ class SQLObjectQueryBuilder $aExpectedAttributes = $oBuild->m_oQBExpressions->GetUnresolvedFields($sClassAlias); $oSelectedIdField = null; - $aTranslation = array(); - $aUpdateValues = array(); + $aTranslation = []; + $aUpdateValues = []; $oIdField = new FieldExpressionResolved(MetaModel::DBGetKey($sClass), $sClassAlias); $aTranslation[$sClassAlias]['id'] = $oIdField; - if ($bIsOnQueriedClass) - { + if ($bIsOnQueriedClass) { // Add this field to the list of queried fields (required for the COUNT to work fine) $oSelectedIdField = $oIdField; - foreach ($aExpectedAttributes as $sAttCode => $oExpression) - { - if (!array_key_exists($sAttCode, $aValues)) - { + foreach ($aExpectedAttributes as $sAttCode => $oExpression) { + if (!array_key_exists($sAttCode, $aValues)) { continue; } $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); // Skip this attribute if not made of SQL columns nor in current table - if (count($oAttDef->GetSQLExpressions()) == 0 || $oAttDef->IsExternalField()) - { + if (count($oAttDef->GetSQLExpressions()) == 0 || $oAttDef->IsExternalField()) { continue; } - foreach ($oAttDef->GetSQLValues($aValues[$sAttCode]) as $sColumn => $sValue) - { + foreach ($oAttDef->GetSQLValues($aValues[$sAttCode]) as $sColumn => $sValue) { $aUpdateValues[$sColumn] = $sValue; } } } - $oBaseSQLQuery = new SQLObjectQuery($sTable, $sClassAlias, array(), $bIsOnQueriedClass, $aUpdateValues, $oSelectedIdField); + $oBaseSQLQuery = new SQLObjectQuery($sTable, $sClassAlias, [], $bIsOnQueriedClass, $aUpdateValues, $oSelectedIdField); - foreach ($aExpectedAttributes as $sAttCode => $oExpression) - { - if (!MetaModel::IsValidAttCode($sClass, $sAttCode)) - { + foreach ($aExpectedAttributes as $sAttCode => $oExpression) { + if (!MetaModel::IsValidAttCode($sClass, $sAttCode)) { continue; } $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); @@ -244,8 +222,7 @@ class SQLObjectQueryBuilder * @var string $sPluginClass * @var iQueryModifier $oQueryModifier */ - foreach (MetaModel::EnumPlugins('iQueryModifier') as $sPluginClass => $oQueryModifier) - { + foreach (MetaModel::EnumPlugins('iQueryModifier') as $sPluginClass => $oQueryModifier) { $oFieldSQLExp = $oQueryModifier->GetFieldExpression($oBuild, $sClass, $sAttCode, '', $oFieldSQLExp, $oBaseSQLQuery); } $aTranslation[$sClassAlias][$sAttCode] = $oFieldSQLExp; @@ -257,10 +234,8 @@ class SQLObjectQueryBuilder // Filter out archived records // - if (MetaModel::IsArchivable($sClass)) - { - if (!$oBuild->GetRootFilter()->GetArchiveMode()) - { + if (MetaModel::IsArchivable($sClass)) { + if (!$oBuild->GetRootFilter()->GetArchiveMode()) { $oNotArchived = new BinaryExpression(new FieldExpressionResolved('archive_flag', $sClassAlias), '=', new ScalarExpression(0)); $oBuild->AddFilteredTable($sClassAlias, $oNotArchived); } @@ -268,10 +243,8 @@ class SQLObjectQueryBuilder // Add Joins $aJoins = $oOQLClassNode->GetJoins(); - foreach ($aJoins as $aJoin) - { - foreach ($aJoin as $oOQLJoin) - { + foreach ($aJoins as $aJoin) { + foreach ($aJoin as $oOQLJoin) { $oJoinedClassNode = $oOQLJoin->GetOOQLClassNode(); $oJoinedSQLQuery = $this->MakeSQLObjectQueryNode($oBuild, $oJoinedClassNode, $aValues); $oOQLJoin->AddToSQLObjectQuery($oBuild, $oBaseSQLQuery, $oJoinedSQLQuery); diff --git a/core/sqlquery.class.inc.php b/core/sqlquery.class.inc.php index b21ffb05b..ec68e5d52 100644 --- a/core/sqlquery.class.inc.php +++ b/core/sqlquery.class.inc.php @@ -1,9 +1,10 @@ - /** * SQLQuery * build an mySQL compatible SQL query @@ -25,7 +25,6 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - /** * SQLQuery * build an mySQL compatible SQL query @@ -35,7 +34,6 @@ require_once('cmdbsource.class.inc.php'); - abstract class SQLQuery { private $m_SourceOQL = ''; @@ -47,7 +45,7 @@ abstract class SQLQuery /** * Perform a deep clone (as opposed to "clone" which does copy a reference to the underlying objects - **/ + **/ public function DeepClone() { return unserialize(serialize($this)); @@ -66,18 +64,17 @@ abstract class SQLQuery abstract public function AddInnerJoin($oSQLQuery, $sLeftField, $sRightField, $sRightTable = ''); abstract public function DisplayHtml(); - abstract public function RenderDelete($aArgs = array()); - abstract public function RenderUpdate($aArgs = array()); - abstract public function RenderSelect($aOrderBy = array(), $aArgs = array(), $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulQuery = false); - abstract public function RenderGroupBy($aArgs = array(), $bBeautifulQuery = false, $aOrderBy = array(), $iLimitCount = 0, $iLimitStart = 0); + abstract public function RenderDelete($aArgs = []); + abstract public function RenderUpdate($aArgs = []); + abstract public function RenderSelect($aOrderBy = [], $aArgs = [], $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulQuery = false); + abstract public function RenderGroupBy($aArgs = [], $bBeautifulQuery = false, $aOrderBy = [], $iLimitCount = 0, $iLimitStart = 0); abstract public function OptimizeJoins($aUsedTables, $bTopCall = true); protected static function ClauseSelect($aFields, $sLineSep = '') { - $aSelect = array(); - foreach ($aFields as $sFieldAlias => $sSQLExpr) - { + $aSelect = []; + foreach ($aFields as $sFieldAlias => $sSQLExpr) { $aSelect[] = "$sSQLExpr AS $sFieldAlias"; } $sSelect = implode(",$sLineSep ", $aSelect); @@ -92,9 +89,8 @@ abstract class SQLQuery protected static function ClauseDelete($aDelTableAliases) { - $aDelTables = array(); - foreach ($aDelTableAliases as $sTableAlias) - { + $aDelTables = []; + foreach ($aDelTableAliases as $sTableAlias) { $aDelTables[] = "$sTableAlias"; } $sDelTables = implode(', ', $aDelTables); @@ -114,38 +110,30 @@ abstract class SQLQuery $sLineBreak = $sIndent ? "\n".str_repeat($sIndent, $iIndentLevel) : ''; $sFrom = ""; - foreach ($aFrom as $sTableAlias => $aJoinInfo) - { - switch ($aJoinInfo["jointype"]) - { + foreach ($aFrom as $sTableAlias => $aJoinInfo) { + switch ($aJoinInfo["jointype"]) { case "first": $sFrom .= $sLineBreakLong."`".$aJoinInfo["tablename"]."` AS `$sTableAlias`"; $sFrom .= self::ClauseFrom($aJoinInfo["subfrom"], $sIndent, $iIndentLevel + 1); break; case "inner": case "inner_tree": - if (count($aJoinInfo["subfrom"]) > 0) - { + if (count($aJoinInfo["subfrom"]) > 0) { $sFrom .= $sLineBreak."INNER JOIN ($sLineBreakLong`".$aJoinInfo["tablename"]."` AS `$sTableAlias`"; $sFrom .= " ".self::ClauseFrom($aJoinInfo["subfrom"], $sIndent, $iIndentLevel + 1); $sFrom .= $sLineBreak.") ON ".$aJoinInfo["joincondition"]; - } - else - { + } else { // Unions do not suffer parenthesis around the "table AS alias" $sFrom .= $sLineBreak."INNER JOIN $sLineBreakLong`".$aJoinInfo["tablename"]."` AS `$sTableAlias`"; $sFrom .= $sLineBreak." ON ".$aJoinInfo["joincondition"]; } break; case "left": - if (count($aJoinInfo["subfrom"]) > 0) - { + if (count($aJoinInfo["subfrom"]) > 0) { $sFrom .= $sLineBreak."LEFT JOIN ($sLineBreakLong`".$aJoinInfo["tablename"]."` AS `$sTableAlias`"; $sFrom .= " ".self::ClauseFrom($aJoinInfo["subfrom"], $sIndent, $iIndentLevel + 1); $sFrom .= $sLineBreak.") ON ".$aJoinInfo["joincondition"]; - } - else - { + } else { // Unions do not suffer parenthesis around the "table AS alias" $sFrom .= $sLineBreak."LEFT JOIN $sLineBreakLong`".$aJoinInfo["tablename"]."` AS `$sTableAlias`"; $sFrom .= $sLineBreak." ON ".$aJoinInfo["joincondition"]; @@ -160,23 +148,19 @@ abstract class SQLQuery protected static function ClauseValues($aValues) { - $aSetValues = array(); - foreach ($aValues as $sFieldSpec => $value) - { + $aSetValues = []; + foreach ($aValues as $sFieldSpec => $value) { $aSetValues[] = "$sFieldSpec = ".CMDBSource::Quote($value); } $sSetValues = implode(', ', $aSetValues); return $sSetValues; } - protected static function ClauseWhere($oConditionExpr, $aArgs = array()) + protected static function ClauseWhere($oConditionExpr, $aArgs = []) { - if (is_null($oConditionExpr)) - { + if (is_null($oConditionExpr)) { return '1'; - } - else - { + } else { return $oConditionExpr->RenderExpression(true, $aArgs); } } @@ -189,9 +173,8 @@ abstract class SQLQuery */ protected static function ClauseOrderBy($aOrderBy, $aExistingFields) { - $aOrderBySpec = array(); - foreach($aOrderBy as $sFieldAlias => $bAscending) - { + $aOrderBySpec = []; + foreach ($aOrderBy as $sFieldAlias => $bAscending) { // Note: sFieldAlias must have backticks around column aliases $aOrderBySpec[] = $sFieldAlias.($bAscending ? " ASC" : " DESC"); } diff --git a/core/sqlunionquery.class.inc.php b/core/sqlunionquery.class.inc.php index ec008c3be..bfe8e6bf1 100644 --- a/core/sqlunionquery.class.inc.php +++ b/core/sqlunionquery.class.inc.php @@ -1,9 +1,10 @@ - /** * SQLUnionQuery * build a mySQL compatible SQL query @@ -25,7 +25,6 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - /** * SQLUnionQuery * build a mySQL compatible SQL query @@ -33,20 +32,18 @@ * @package iTopORM */ - class SQLUnionQuery extends SQLQuery { protected $aQueries; protected $aGroupBy; protected $aSelectExpr; - public function __construct($aQueries, $aGroupBy, $aSelectExpr = array()) + public function __construct($aQueries, $aGroupBy, $aSelectExpr = []) { parent::__construct(); - $this->aQueries = array(); - foreach ($aQueries as $oSQLQuery) - { + $this->aQueries = []; + foreach ($aQueries as $oSQLQuery) { $this->aQueries[] = $oSQLQuery->DeepClone(); } $this->aGroupBy = $aGroupBy; @@ -55,9 +52,8 @@ class SQLUnionQuery extends SQLQuery public function DisplayHtml() { - $aQueriesHtml = array(); - foreach ($this->aQueries as $oSQLQuery) - { + $aQueriesHtml = []; + foreach ($this->aQueries as $oSQLQuery) { $aQueriesHtml[] = '

        '.$oSQLQuery->DisplayHtml().'

        '; } echo implode('UNION', $aQueriesHtml); @@ -65,8 +61,7 @@ class SQLUnionQuery extends SQLQuery public function AddInnerJoin($oSQLQuery, $sLeftField, $sRightField, $sRightTable = '') { - foreach ($this->aQueries as $oSubSQLQuery) - { + foreach ($this->aQueries as $oSubSQLQuery) { $oSubSQLQuery->AddInnerJoin($oSQLQuery->DeepClone(), $sLeftField, $sRightField, $sRightTable = ''); } } @@ -75,7 +70,7 @@ class SQLUnionQuery extends SQLQuery * @param array $aArgs * @throws Exception */ - public function RenderDelete($aArgs = array()) + public function RenderDelete($aArgs = []) { throw new Exception(__class__.'::'.__function__.'Not implemented !'); } @@ -86,7 +81,7 @@ class SQLUnionQuery extends SQLQuery * @param array $aArgs * @throws Exception */ - public function RenderUpdate($aArgs = array()) + public function RenderUpdate($aArgs = []) { throw new Exception(__class__.'::'.__function__.'Not implemented !'); } @@ -104,47 +99,37 @@ class SQLUnionQuery extends SQLQuery * @return string * @throws \CoreException */ - public function RenderSelect($aOrderBy = array(), $aArgs = array(), $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulQuery = false) + public function RenderSelect($aOrderBy = [], $aArgs = [], $iLimitCount = 0, $iLimitStart = 0, $bGetCount = false, $bBeautifulQuery = false) { $this->m_bBeautifulQuery = $bBeautifulQuery; $sLineSep = $this->m_bBeautifulQuery ? "\n" : ''; - $aSelects = array(); - foreach ($this->aQueries as $oSQLQuery) - { + $aSelects = []; + foreach ($this->aQueries as $oSQLQuery) { // Render SELECTS without orderby/limit/count /** @var \SQLObjectQuery $oSQLQuery */ - $aSelects[] = $oSQLQuery->RenderSelect(array(), $aArgs, 0, 0, false, $bBeautifulQuery); + $aSelects[] = $oSQLQuery->RenderSelect([], $aArgs, 0, 0, false, $bBeautifulQuery); } - if ($iLimitCount > 0) - { + if ($iLimitCount > 0) { $sLimitStart = '('; $sLimit = 'LIMIT '.$iLimitStart.', '.$iLimitCount; $sLimitEnd = ')'; - } - else - { + } else { $sLimitStart = ''; $sLimit = ''; $sLimitEnd = ''; } - if ($bGetCount) - { + if ($bGetCount) { $sSelects = "{$sLimitStart}".implode(" {$sLimit}{$sLimitEnd}{$sLineSep} UNION{$sLineSep} {$sLimitStart}", $aSelects)." {$sLimit}{$sLimitEnd}"; $sFrom = "({$sLineSep}{$sSelects}{$sLineSep}) as __selects__"; $sSQL = "SELECT COUNT(*) AS COUNT FROM (SELECT$sLineSep 1 $sLineSep FROM {$sFrom}{$sLineSep}) AS _union_alderaan_"; - } - else - { + } else { $sOrderBy = $this->aQueries[0]->RenderOrderByClause($aOrderBy); - if (!empty($sOrderBy)) - { + if (!empty($sOrderBy)) { $sOrderBy = "ORDER BY {$sOrderBy}{$sLineSep} {$sLimit}"; $sSQL = implode(" {$sLineSep} UNION{$sLineSep} ", $aSelects).$sLineSep.$sOrderBy; - } - else - { + } else { $sSQL = $sLimitStart.implode(" {$sLimit}{$sLimitEnd} {$sLineSep} UNION{$sLineSep} {$sLimitStart}", $aSelects)." {$sLimit}{$sLimitEnd}"; } } @@ -162,29 +147,26 @@ class SQLUnionQuery extends SQLQuery * @return string * @throws CoreException */ - public function RenderGroupBy($aArgs = array(), $bBeautifulQuery = false, $aOrderBy = array(), $iLimitCount = 0, $iLimitStart = 0) + public function RenderGroupBy($aArgs = [], $bBeautifulQuery = false, $aOrderBy = [], $iLimitCount = 0, $iLimitStart = 0) { $this->m_bBeautifulQuery = $bBeautifulQuery; $sLineSep = $this->m_bBeautifulQuery ? "\n" : ''; - $aSelects = array(); - foreach ($this->aQueries as $oSQLQuery) - { + $aSelects = []; + foreach ($this->aQueries as $oSQLQuery) { // Render SELECTS without orderby/limit/count - $aSelects[] = $oSQLQuery->RenderSelect(array(), $aArgs, 0, 0, false, $bBeautifulQuery); + $aSelects[] = $oSQLQuery->RenderSelect([], $aArgs, 0, 0, false, $bBeautifulQuery); } $sSelects = '('.implode(")$sLineSep UNION$sLineSep(", $aSelects).')'; $sFrom = "($sLineSep$sSelects$sLineSep) as __selects__"; - $aSelectAliases = array(); - $aGroupAliases = array(); - foreach ($this->aGroupBy as $sGroupAlias => $trash) - { + $aSelectAliases = []; + $aGroupAliases = []; + foreach ($this->aGroupBy as $sGroupAlias => $trash) { $aSelectAliases[$sGroupAlias] = "`$sGroupAlias`"; $aGroupAliases[] = "`$sGroupAlias`"; } - foreach($this->aSelectExpr as $sSelectAlias => $oExpr) - { + foreach ($this->aSelectExpr as $sSelectAlias => $oExpr) { $aSelectAliases[$sSelectAlias] = $oExpr->RenderExpression(true)." AS `$sSelectAlias`"; } @@ -192,33 +174,25 @@ class SQLUnionQuery extends SQLQuery $sGroupBy = implode(', ', $aGroupAliases); $sOrderBy = self::ClauseOrderBy($aOrderBy, $aSelectAliases); - if (!empty($sGroupBy)) - { + if (!empty($sGroupBy)) { $sGroupBy = "GROUP BY $sGroupBy$sLineSep"; } - if (!empty($sOrderBy)) - { + if (!empty($sOrderBy)) { $sOrderBy = "ORDER BY $sOrderBy$sLineSep"; } - if ($iLimitCount > 0) - { + if ($iLimitCount > 0) { $sLimit = 'LIMIT '.$iLimitStart.', '.$iLimitCount; - } - else - { + } else { $sLimit = ''; } - $sSQL = "SELECT $sSelect,$sLineSep COUNT(*) AS _itop_count_$sLineSep FROM $sFrom$sLineSep $sGroupBy $sOrderBy$sLineSep $sLimit"; return $sSQL; } - public function OptimizeJoins($aUsedTables, $bTopCall = true) { - foreach ($this->aQueries as $oSQLQuery) - { + foreach ($this->aQueries as $oSQLQuery) { $oSQLQuery->OptimizeJoins($aUsedTables); } } diff --git a/core/stimulus.class.inc.php b/core/stimulus.class.inc.php index 261d07948..806f025df 100644 --- a/core/stimulus.class.inc.php +++ b/core/stimulus.class.inc.php @@ -1,9 +1,10 @@ - /** * Object lifecycle management: stimulus * @@ -24,9 +24,8 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - /** - * A stimulus is the trigger that makes the lifecycle go ahead (state machine) + * A stimulus is the trigger that makes the lifecycle go ahead (state machine) * * @package iTopORM */ @@ -36,7 +35,7 @@ class ObjectStimulus { - private $m_aParams = array(); + private $m_aParams = []; private $m_sHostClass = null; private $m_sCode = null; @@ -62,7 +61,7 @@ class ObjectStimulus public function GetLabel() { - return Dict::S('Class:'.$this->m_sHostClass.'/Stimulus:'.$this->m_sCode, $this->m_sCode); + return Dict::S('Class:'.$this->m_sHostClass.'/Stimulus:'.$this->m_sCode, $this->m_sCode); } public function GetDescription() { @@ -72,12 +71,9 @@ class ObjectStimulus public function GetLabel_Obsolete() { // Written for compatibility with a data model written prior to version 0.9.1 - if (array_key_exists('label', $this->m_aParams)) - { + if (array_key_exists('label', $this->m_aParams)) { return $this->m_aParams['label']; - } - else - { + } else { return $this->GetLabel(); } } @@ -85,23 +81,20 @@ class ObjectStimulus public function GetDescription_Obsolete() { // Written for compatibility with a data model written prior to version 0.9.1 - if (array_key_exists('description', $this->m_aParams)) - { + if (array_key_exists('description', $this->m_aParams)) { return $this->m_aParams['description']; - } - else - { + } else { return $this->GetDescription(); } } -// obsolete- public function Get($sParamName) {return $this->m_aParams[$sParamName];} + // obsolete- public function Get($sParamName) {return $this->m_aParams[$sParamName];} // Note: I could factorize this code with the parameter management made for the AttributeDef class // to be overloaded - static protected function ListExpectedParams() + protected static function ListExpectedParams() { - return array(); + return []; } private function ConsistencyCheck() @@ -110,10 +103,8 @@ class ObjectStimulus // Check that any mandatory param has been specified // $aExpectedParams = $this->ListExpectedParams(); - foreach($aExpectedParams as $sParamName) - { - if (!array_key_exists($sParamName, $this->m_aParams)) - { + foreach ($aExpectedParams as $sParamName) { + if (!array_key_exists($sParamName, $this->m_aParams)) { $aBacktrace = debug_backtrace(); $sTargetClass = $aBacktrace[2]["class"]; $sCodeInfo = $aBacktrace[1]["file"]." - ".$aBacktrace[1]["line"]; @@ -123,8 +114,6 @@ class ObjectStimulus } } - - class StimulusUserAction extends ObjectStimulus { // Entry in the menus @@ -134,5 +123,3 @@ class StimulusInternal extends ObjectStimulus { // Applied from page xxxx } - -?> diff --git a/core/tabularbulkexport.class.inc.php b/core/tabularbulkexport.class.inc.php index 18d54dbf7..7968ad4d1 100644 --- a/core/tabularbulkexport.class.inc.php +++ b/core/tabularbulkexport.class.inc.php @@ -1,4 +1,5 @@ array('fields'))); + return array_merge(parent::EnumFormParts(), ['tabular_fields' => ['fields']]); } /** @@ -49,21 +50,17 @@ abstract class TabularBulkExport extends BulkExport protected function SuggestFields($aSuggestedFields) { - $aRet = array(); + $aRet = []; // By defaults all fields are Ok, nothing gets translated but // you can overload this method if some fields are better exported // (in a given format) by using an alternate field, for example id => friendlyname $aAliases = $this->oSearch->GetSelectedClasses(); - foreach($aSuggestedFields as $idx => $sField) - { - if (preg_match('/^([^\\.]+)\\.(.+)$/', $sField, $aMatches)) - { + foreach ($aSuggestedFields as $idx => $sField) { + if (preg_match('/^([^\\.]+)\\.(.+)$/', $sField, $aMatches)) { $sAlias = $aMatches[1]; $sAttCode = $aMatches[2]; $sClass = $aAliases[$sAlias]; - } - else - { + } else { $sAlias = ''; $sAttCode = $sField; $sClass = reset($aAliases); @@ -72,8 +69,7 @@ abstract class TabularBulkExport extends BulkExport $sAttCodeEx = MetaModel::NormalizeFieldSpec($sClass, $sMostRelevantField); // Remove the aliases (if any) from the field names to make them compatible // with the 'short' notation used in this case by the widget - if (count($aAliases) > 1) - { + if (count($aAliases) > 1) { $sAttCodeEx = $sAlias.'.'.$sAttCodeEx; } $aRet[] = $sAttCodeEx; @@ -93,9 +89,8 @@ abstract class TabularBulkExport extends BulkExport protected function GetSubAttributes($sClass, $sAttCode, $oAttDef) { - $aResult = array(); - switch(get_class($oAttDef)) - { + $aResult = []; + switch (get_class($oAttDef)) { case 'AttributeExternalKey': case 'AttributeHierarchicalKey': @@ -103,74 +98,56 @@ abstract class TabularBulkExport extends BulkExport $oKeyAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); $sRemoteClass = $oKeyAttDef->GetTargetClass(); $sFriendlyNameAttCode = MetaModel::GetFriendlyNameAttributeCode($sRemoteClass); - if (!is_null($sFriendlyNameAttCode)) - { + if (!is_null($sFriendlyNameAttCode)) { // The friendly name is made of a single attribute, check if that attribute is present as an external field - foreach(MetaModel::ListAttributeDefs($sClass) as $sSubAttCode => $oSubAttDef) - { - if ($oSubAttDef instanceof AttributeExternalField) - { - if (($oSubAttDef->GetKeyAttCode() == $sAttCode) && ($oSubAttDef->GetExtAttCode() == $sFriendlyNameAttCode)) - { + foreach (MetaModel::ListAttributeDefs($sClass) as $sSubAttCode => $oSubAttDef) { + if ($oSubAttDef instanceof AttributeExternalField) { + if (($oSubAttDef->GetKeyAttCode() == $sAttCode) && ($oSubAttDef->GetExtAttCode() == $sFriendlyNameAttCode)) { $bAddFriendlyName = false; } } } } - $aResult[$sAttCode] = array('code' => $sAttCode, 'unique_label' => $oAttDef->GetLabel(), 'label' => Dict::S('UI:CSVImport:idField'), 'attdef' => $oAttDef); + $aResult[$sAttCode] = ['code' => $sAttCode, 'unique_label' => $oAttDef->GetLabel(), 'label' => Dict::S('UI:CSVImport:idField'), 'attdef' => $oAttDef]; - if ($bAddFriendlyName) - { - if ($this->IsExportableField($sClass, $sAttCode.'->friendlyname')) - { - $aResult[$sAttCode.'->friendlyname'] = array('code' => $sAttCode.'->friendlyname', 'unique_label' => $oAttDef->GetLabel().'->'.Dict::S('Core:FriendlyName-Label'), 'label' => Dict::S('Core:FriendlyName-Label'), 'attdef' => MetaModel::GetAttributeDef($sClass, $sAttCode.'_friendlyname')); + if ($bAddFriendlyName) { + if ($this->IsExportableField($sClass, $sAttCode.'->friendlyname')) { + $aResult[$sAttCode.'->friendlyname'] = ['code' => $sAttCode.'->friendlyname', 'unique_label' => $oAttDef->GetLabel().'->'.Dict::S('Core:FriendlyName-Label'), 'label' => Dict::S('Core:FriendlyName-Label'), 'attdef' => MetaModel::GetAttributeDef($sClass, $sAttCode.'_friendlyname')]; } } - foreach(MetaModel::ListAttributeDefs($sClass) as $sSubAttCode => $oSubAttDef) - { - if ($oSubAttDef instanceof AttributeExternalField) - { - if ($this->IsExportableField($sClass, $sSubAttCode, $oSubAttDef)) - { - if ($oSubAttDef->GetKeyAttCode() == $sAttCode) - { + foreach (MetaModel::ListAttributeDefs($sClass) as $sSubAttCode => $oSubAttDef) { + if ($oSubAttDef instanceof AttributeExternalField) { + if ($this->IsExportableField($sClass, $sSubAttCode, $oSubAttDef)) { + if ($oSubAttDef->GetKeyAttCode() == $sAttCode) { $sAttCodeEx = $sAttCode.'->'.$oSubAttDef->GetExtAttCode(); - $aResult[$sAttCodeEx] = array('code' => $sAttCodeEx, 'unique_label' => $oAttDef->GetLabel().'->'.$oSubAttDef->GetExtAttDef()->GetLabel(), 'label' => MetaModel::GetLabel($sRemoteClass, $oSubAttDef->GetExtAttCode()), 'attdef' => $oSubAttDef); + $aResult[$sAttCodeEx] = ['code' => $sAttCodeEx, 'unique_label' => $oAttDef->GetLabel().'->'.$oSubAttDef->GetExtAttDef()->GetLabel(), 'label' => MetaModel::GetLabel($sRemoteClass, $oSubAttDef->GetExtAttCode()), 'attdef' => $oSubAttDef]; } } } } // Add the reconciliation keys - foreach(MetaModel::GetReconcKeys($sRemoteClass) as $sRemoteAttCode) - { - if (!empty($sRemoteAttCode)) - { - $sAttCodeEx = $sAttCode.'->'.$sRemoteAttCode; - if (!array_key_exists($sAttCodeEx, $aResult)) - { - $oRemoteAttDef = MetaModel::GetAttributeDef($sRemoteClass, $sRemoteAttCode); - if ($this->IsExportableField($sRemoteClass, $sRemoteAttCode, $oRemoteAttDef)) - { - $aResult[$sAttCodeEx] = array('code' => $sAttCodeEx, 'unique_label' => $oAttDef->GetLabel().'->'.$oRemoteAttDef->GetLabel(), 'label' => MetaModel::GetLabel($sRemoteClass, $sRemoteAttCode), 'attdef' => $oRemoteAttDef); - } - } - } - } + foreach (MetaModel::GetReconcKeys($sRemoteClass) as $sRemoteAttCode) { + if (!empty($sRemoteAttCode)) { + $sAttCodeEx = $sAttCode.'->'.$sRemoteAttCode; + if (!array_key_exists($sAttCodeEx, $aResult)) { + $oRemoteAttDef = MetaModel::GetAttributeDef($sRemoteClass, $sRemoteAttCode); + if ($this->IsExportableField($sRemoteClass, $sRemoteAttCode, $oRemoteAttDef)) { + $aResult[$sAttCodeEx] = ['code' => $sAttCodeEx, 'unique_label' => $oAttDef->GetLabel().'->'.$oRemoteAttDef->GetLabel(), 'label' => MetaModel::GetLabel($sRemoteClass, $sRemoteAttCode), 'attdef' => $oRemoteAttDef]; + } + } + } + } break; - + case 'AttributeStopWatch': - foreach(MetaModel::ListAttributeDefs($sClass) as $sSubAttCode => $oSubAttDef) - { - if ($oSubAttDef instanceof AttributeSubItem) - { - if ($oSubAttDef->GetParentAttCode() == $sAttCode) - { - if ($this->IsExportableField($sClass, $sSubAttCode, $oSubAttDef)) - { - $aResult[$sSubAttCode] = array('code' => $sSubAttCode, 'unique_label' => $oSubAttDef->GetLabel(), 'label' => $oSubAttDef->GetLabel(), 'attdef' => $oSubAttDef); + foreach (MetaModel::ListAttributeDefs($sClass) as $sSubAttCode => $oSubAttDef) { + if ($oSubAttDef instanceof AttributeSubItem) { + if ($oSubAttDef->GetParentAttCode() == $sAttCode) { + if ($this->IsExportableField($sClass, $sSubAttCode, $oSubAttDef)) { + $aResult[$sSubAttCode] = ['code' => $sSubAttCode, 'unique_label' => $oSubAttDef->GetLabel(), 'label' => $oSubAttDef->GetLabel(), 'attdef' => $oSubAttDef]; } } } @@ -184,85 +161,66 @@ abstract class TabularBulkExport extends BulkExport { $oSet = new DBObjectSet($this->oSearch); $aSelectedClasses = $this->oSearch->GetSelectedClasses(); - $aAuthorizedClasses = array(); - foreach($aSelectedClasses as $sAlias => $sClassName) - { - if (UserRights::IsActionAllowed($sClassName, UR_ACTION_BULK_READ, $oSet) != UR_ALLOWED_NO) - { + $aAuthorizedClasses = []; + foreach ($aSelectedClasses as $sAlias => $sClassName) { + if (UserRights::IsActionAllowed($sClassName, UR_ACTION_BULK_READ, $oSet) != UR_ALLOWED_NO) { $aAuthorizedClasses[$sAlias] = $sClassName; } } - $aAllFieldsByAlias = array(); - $aAllAttCodes = array(); - foreach($aAuthorizedClasses as $sAlias => $sClass) - { - $aAllFields = array(); - if (count($aAuthorizedClasses) > 1 ) - { + $aAllFieldsByAlias = []; + $aAllAttCodes = []; + foreach ($aAuthorizedClasses as $sAlias => $sClass) { + $aAllFields = []; + if (count($aAuthorizedClasses) > 1) { $sShortAlias = $sAlias.'.'; - } - else - { + } else { $sShortAlias = ''; } - if ($this->IsExportableField($sClass, 'id')) - { + if ($this->IsExportableField($sClass, 'id')) { $sFriendlyNameAttCode = MetaModel::GetFriendlyNameAttributeCode($sClass); - if (is_null($sFriendlyNameAttCode)) - { + if (is_null($sFriendlyNameAttCode)) { // The friendly name is made of several attribute - $aSubAttr = array( - array('attcodeex' => 'id', 'code' => $sShortAlias.'id', 'unique_label' => $sShortAlias.Dict::S('UI:CSVImport:idField'), 'label' => $sShortAlias.'id'), - array('attcodeex' => 'friendlyname', 'code' => $sShortAlias.'friendlyname', 'unique_label' => $sShortAlias.Dict::S('Core:FriendlyName-Label'), 'label' => $sShortAlias.Dict::S('Core:FriendlyName-Label')), - ); - } - else - { + $aSubAttr = [ + ['attcodeex' => 'id', 'code' => $sShortAlias.'id', 'unique_label' => $sShortAlias.Dict::S('UI:CSVImport:idField'), 'label' => $sShortAlias.'id'], + ['attcodeex' => 'friendlyname', 'code' => $sShortAlias.'friendlyname', 'unique_label' => $sShortAlias.Dict::S('Core:FriendlyName-Label'), 'label' => $sShortAlias.Dict::S('Core:FriendlyName-Label')], + ]; + } else { // The friendly name has no added value - $aSubAttr = array(); + $aSubAttr = []; } - $aAllFields[] = array('attcodeex' => 'id', 'code' => $sShortAlias.'id', 'unique_label' => $sShortAlias.Dict::S('UI:CSVImport:idField'), 'label' => Dict::S('UI:CSVImport:idField'), 'subattr' => $aSubAttr); + $aAllFields[] = ['attcodeex' => 'id', 'code' => $sShortAlias.'id', 'unique_label' => $sShortAlias.Dict::S('UI:CSVImport:idField'), 'label' => Dict::S('UI:CSVImport:idField'), 'subattr' => $aSubAttr]; } - foreach(MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) - { - if($this->IsSubAttribute($sClass, $sAttCode, $oAttDef)) continue; + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { + if ($this->IsSubAttribute($sClass, $sAttCode, $oAttDef)) { + continue; + } - if ($this->IsExportableField($sClass, $sAttCode, $oAttDef)) - { + if ($this->IsExportableField($sClass, $sAttCode, $oAttDef)) { $sShortLabel = $oAttDef->GetLabel(); $sLabel = $sShortAlias.$oAttDef->GetLabel(); $aSubAttr = $this->GetSubAttributes($sClass, $sAttCode, $oAttDef); - $aValidSubAttr = array(); - foreach($aSubAttr as $aSubAttDef) - { - $aValidSubAttr[] = array('attcodeex' => $aSubAttDef['code'], 'code' => $sShortAlias.$aSubAttDef['code'], 'label' => $aSubAttDef['label'], 'unique_label' => $sShortAlias.$aSubAttDef['unique_label']); + $aValidSubAttr = []; + foreach ($aSubAttr as $aSubAttDef) { + $aValidSubAttr[] = ['attcodeex' => $aSubAttDef['code'], 'code' => $sShortAlias.$aSubAttDef['code'], 'label' => $aSubAttDef['label'], 'unique_label' => $sShortAlias.$aSubAttDef['unique_label']]; } - $aAllFields[] = array('attcodeex' => $sAttCode, 'code' => $sShortAlias.$sAttCode, 'label' => $sShortLabel, 'unique_label' => $sLabel, 'subattr' => $aValidSubAttr); + $aAllFields[] = ['attcodeex' => $sAttCode, 'code' => $sShortAlias.$sAttCode, 'label' => $sShortLabel, 'unique_label' => $sLabel, 'subattr' => $aValidSubAttr]; } } - usort($aAllFields, array(get_class($this), 'SortOnLabel')); - if (count($aAuthorizedClasses) > 1) - { + usort($aAllFields, [get_class($this), 'SortOnLabel']); + if (count($aAuthorizedClasses) > 1) { $sKey = MetaModel::GetName($sClass).' ('.$sAlias.')'; - } - else - { + } else { $sKey = MetaModel::GetName($sClass); } $aAllFieldsByAlias[$sKey] = $aAllFields; - foreach ($aAllFields as $aFieldSpec) - { + foreach ($aAllFields as $aFieldSpec) { $sAttCode = $aFieldSpec['attcodeex']; - if (count($aFieldSpec['subattr']) > 0) - { - foreach ($aFieldSpec['subattr'] as $aSubFieldSpec) - { + if (count($aFieldSpec['subattr']) > 0) { + foreach ($aFieldSpec['subattr'] as $aSubFieldSpec) { $aAllAttCodes[$sAlias][] = $aSubFieldSpec['attcodeex']; } - } - else - { + } else { $aAllAttCodes[$sAlias][] = $sAttCode; } } @@ -274,19 +232,16 @@ abstract class TabularBulkExport extends BulkExport $oSet = new DBObjectSet($this->oSearch); $iCount = $oSet->Count(); - foreach ($this->oSearch->GetSelectedClasses() as $sAlias => $sClass) - { - $aColumns[$sAlias] = array(); + foreach ($this->oSearch->GetSelectedClasses() as $sAlias => $sClass) { + $aColumns[$sAlias] = []; } $oSet->OptimizeColumnLoad($aColumns); $iPreviewLimit = 3; $oSet->SetLimit($iPreviewLimit); - $aSampleData = array(); - while($aRow = $oSet->FetchAssoc()) - { - $aSampleRow = array(); - foreach($aAuthorizedClasses as $sAlias => $sClass) - { + $aSampleData = []; + while ($aRow = $oSet->FetchAssoc()) { + $aSampleRow = []; + foreach ($aAuthorizedClasses as $sAlias => $sClass) { if (count($aAuthorizedClasses) > 1) { $sShortAlias = $sAlias.'.'; } else { @@ -302,7 +257,7 @@ abstract class TabularBulkExport extends BulkExport $aSampleData[] = $aSampleRow; } $sJSSampleData = json_encode($aSampleData); - $aLabels = array( + $aLabels = [ 'preview_header' => Dict::S('Core:BulkExport:DragAndDropHelp'), 'empty_preview' => Dict::S('Core:BulkExport:EmptyPreview'), 'columns_order' => Dict::S('Core:BulkExport:ColumnsOrder'), @@ -310,7 +265,7 @@ abstract class TabularBulkExport extends BulkExport 'check_all' => Dict::S('Core:BulkExport:CheckAll'), 'uncheck_all' => Dict::S('Core:BulkExport:UncheckAll'), 'no_field_selected' => Dict::S('Core:BulkExport:NoFieldSelected'), - ); + ]; $sJSLabels = json_encode($aLabels); $oP->add_ready_script( <<IsScalar(); } protected function GetSampleData($oObj, $sAttCode) { - if ($sAttCode == 'id') return $oObj->GetKey(); + if ($sAttCode == 'id') { + return $oObj->GetKey(); + } return $oObj->GetEditValue($sAttCode); } @@ -357,31 +317,22 @@ EOF parent::ReadParameters(); $sQueryId = utils::ReadParam('query', null, true); $sFields = utils::ReadParam('fields', null, true, 'raw_data'); - if ((($sFields === null) || ($sFields === '')) && ($sQueryId === null)) - { + if ((($sFields === null) || ($sFields === '')) && ($sQueryId === null)) { throw new BulkExportMissingParameterException('fields'); - } - else - { - if (($sQueryId !== null) && ($sQueryId !== null)) - { - $oSearch = DBObjectSearch::FromOQL('SELECT QueryOQL WHERE id = :query_id', array('query_id' => $sQueryId)); + } else { + if (($sQueryId !== null) && ($sQueryId !== null)) { + $oSearch = DBObjectSearch::FromOQL('SELECT QueryOQL WHERE id = :query_id', ['query_id' => $sQueryId]); $oQueries = new DBObjectSet($oSearch); - if ($oQueries->Count() > 0) - { + if ($oQueries->Count() > 0) { $oQuery = $oQueries->Fetch(); - if (($sFields === null) || ($sFields === '')) - { + if (($sFields === null) || ($sFields === '')) { // No 'fields' parameter supplied, take the fields from the query phrasebook definition $sFields = trim($oQuery->Get('fields')); - if ($sFields === '') - { + if ($sFields === '') { throw new BulkExportMissingParameterException('fields'); } } - } - else - { + } else { throw BulkExportException('Invalid value for the parameter: query. There is no Query Phrasebook with id = '.$sQueryId, Dict::Format('Core:BulkExport:InvalidParameter_Query', $sQueryId)); } } @@ -396,72 +347,55 @@ EOF // $aSelectedClasses = $this->oSearch->GetSelectedClasses(); $aAliases = array_keys($aSelectedClasses); - $aAuthorizedClasses = array(); - foreach($aSelectedClasses as $sAlias => $sClassName) - { - if (UserRights::IsActionAllowed($sClassName, UR_ACTION_BULK_READ) == UR_ALLOWED_YES) - { + $aAuthorizedClasses = []; + foreach ($aSelectedClasses as $sAlias => $sClassName) { + if (UserRights::IsActionAllowed($sClassName, UR_ACTION_BULK_READ) == UR_ALLOWED_YES) { $aAuthorizedClasses[$sAlias] = $sClassName; } } $aFields = explode(',', $sFields); - $this->aStatusInfo['fields'] = array(); - foreach($aFields as $sFieldSpec) - { + $this->aStatusInfo['fields'] = []; + foreach ($aFields as $sFieldSpec) { // Trim the values since it's natural to write: fields=name, first_name, org_name instead of fields=name,first_name,org_name $sExtendedAttCode = trim($sFieldSpec); - if (preg_match('/^([^\.]+)\.(.+)$/', $sExtendedAttCode, $aMatches)) - { + if (preg_match('/^([^\.]+)\.(.+)$/', $sExtendedAttCode, $aMatches)) { $sAlias = $aMatches[1]; $sAttCode = $aMatches[2]; - } - else - { + } else { $sAlias = reset($aAliases); $sAttCode = $sExtendedAttCode; } - if (!array_key_exists($sAlias, $aSelectedClasses)) - { + if (!array_key_exists($sAlias, $aSelectedClasses)) { throw new Exception("Invalid alias '$sAlias' for the column '$sExtendedAttCode'. Availables aliases: '".implode("', '", $aAliases)."'"); } $sClass = $aSelectedClasses[$sAlias]; - if (!array_key_exists($sAlias, $aAuthorizedClasses)) - { + if (!array_key_exists($sAlias, $aAuthorizedClasses)) { throw new Exception("You do not have enough permissions to bulk read data of class '$sClass' (alias: $sAlias)"); } - - if ($this->bLocalizeOutput) - { - try - { + + if ($this->bLocalizeOutput) { + try { $sLabel = MetaModel::GetLabel($sClass, $sAttCode); - } - catch (Exception $e) - { + } catch (Exception $e) { throw new Exception("Wrong field specification '$sFieldSpec': ".$e->getMessage()); - } - } - else - { + } + } else { $sLabel = $sAttCode; } - if (count($aAuthorizedClasses) > 1) - { + if (count($aAuthorizedClasses) > 1) { $sColLabel = $sAlias.'.'.$sLabel; - } - else - { + } else { $sColLabel = $sLabel; } - $this->aStatusInfo['fields'][] = array( + $this->aStatusInfo['fields'][] = [ 'sFieldSpec' => $sExtendedAttCode, 'sAlias' => $sAlias, 'sClass' => $sClass, 'sAttCode' => $sAttCode, 'sLabel' => $sLabel, - 'sColLabel' => $sColLabel - ); + 'sColLabel' => $sColLabel, + ]; } } @@ -470,29 +404,23 @@ EOF */ protected function OptimizeColumnLoad(DBObjectSet $oSet) { - $aColumnsToLoad = array(); + $aColumnsToLoad = []; - foreach($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) - { + foreach ($this->aStatusInfo['fields'] as $iCol => $aFieldSpec) { $sClass = $aFieldSpec['sClass']; $sAlias = $aFieldSpec['sAlias']; $sAttCode = $aFieldSpec['sAttCode']; - - if (!array_key_exists($sAlias, $aColumnsToLoad)) - { - $aColumnsToLoad[$sAlias] = array(); + + if (!array_key_exists($sAlias, $aColumnsToLoad)) { + $aColumnsToLoad[$sAlias] = []; } // id is not a real attribute code and, moreover, is always loaded - if ($sAttCode != 'id') - { + if ($sAttCode != 'id') { // Extended attributes are not recognized by DBObjectSet::OptimizeColumnLoad - if (($iPos = strpos($sAttCode, '->')) === false) - { + if (($iPos = strpos($sAttCode, '->')) === false) { $aColumnsToLoad[$sAlias][] = $sAttCode; $sClass = '???'; - } - else - { + } else { $sExtKeyAttCode = substr($sAttCode, 0, $iPos); $sRemoteAttCode = substr($sAttCode, $iPos + 2); @@ -501,8 +429,7 @@ EOF // Load the external field (if any) to avoid getting the remote object (see DBObject::Get that does the same) $oExtFieldAtt = MetaModel::FindExternalField($sClass, $sExtKeyAttCode, $sRemoteAttCode); - if (!is_null($oExtFieldAtt)) - { + if (!is_null($oExtFieldAtt)) { $aColumnsToLoad[$sAlias][] = $oExtFieldAtt->GetCode(); } } @@ -512,17 +439,14 @@ EOF // Add "always loaded attributes" // $aSelectedClasses = $this->oSearch->GetSelectedClasses(); - foreach ($aSelectedClasses as $sAlias => $sClass) - { - foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) - { - if ($oAttDef->AlwaysLoadInTables()) - { + foreach ($aSelectedClasses as $sAlias => $sClass) { + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { + if ($oAttDef->AlwaysLoadInTables()) { $aColumnsToLoad[$sAlias][] = $sAttCode; } } } $oSet->OptimizeColumnLoad($aColumnsToLoad); - } + } } diff --git a/core/tagsetfield.class.inc.php b/core/tagsetfield.class.inc.php index 28ad86ad0..3e119831d 100644 --- a/core/tagsetfield.class.inc.php +++ b/core/tagsetfield.class.inc.php @@ -1,4 +1,5 @@ Stores data for {@link AttributeTagSet} fields * @@ -31,7 +31,7 @@ use Combodo\iTop\Application\WebPage\WebPage; */ abstract class TagSetFieldData extends cmdbAbstractObject { - private static $m_aAllowedValues = array(); + private static $m_aAllowedValues = []; /** * @throws \CoreException @@ -39,62 +39,61 @@ abstract class TagSetFieldData extends cmdbAbstractObject */ public static function Init() { - $aParams = array - ( + $aParams = + [ 'category' => 'bizmodel', 'key_type' => 'autoincrement', - 'name_attcode' => array('label'), + 'name_attcode' => ['label'], 'state_attcode' => '', - 'reconc_keys' => array('code'), + 'reconc_keys' => ['code'], 'db_table' => 'priv_tagfielddata', 'db_key_field' => 'id', 'db_finalclass_field' => 'finalclass', - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeString("code", array( + MetaModel::Init_AddAttribute(new AttributeString("code", [ "allowed_values" => null, "sql" => 'code', "default_value" => '', "is_null_allowed" => false, - "depends_on" => array(), + "depends_on" => [], "validation_pattern" => '^[a-zA-Z][a-zA-Z0-9]{2,}$', - ))); - MetaModel::Init_AddAttribute(new AttributeString("label", array( + ])); + MetaModel::Init_AddAttribute(new AttributeString("label", [ "allowed_values" => null, "sql" => 'label', "default_value" => '', "is_null_allowed" => false, - "depends_on" => array() - ))); - MetaModel::Init_AddAttribute(new AttributeHTML("description", array( + "depends_on" => [], + ])); + MetaModel::Init_AddAttribute(new AttributeHTML("description", [ "allowed_values" => null, "sql" => 'description', "default_value" => '', "is_null_allowed" => true, - "depends_on" => array() - ))); - MetaModel::Init_AddAttribute(new AttributeString("obj_class", array( + "depends_on" => [], + ])); + MetaModel::Init_AddAttribute(new AttributeString("obj_class", [ "allowed_values" => null, "sql" => 'obj_class', "default_value" => '', "is_null_allowed" => false, - "depends_on" => array() - ))); - MetaModel::Init_AddAttribute(new AttributeString("obj_attcode", array( + "depends_on" => [], + ])); + MetaModel::Init_AddAttribute(new AttributeString("obj_attcode", [ "allowed_values" => null, "sql" => 'obj_attcode', "default_value" => '', "is_null_allowed" => false, - "depends_on" => array() - ))); + "depends_on" => [], + ])); - - MetaModel::Init_SetZListItems('details', array('code', 'label', 'description')); - MetaModel::Init_SetZListItems('standard_search', array('code', 'label', 'description')); - MetaModel::Init_SetZListItems('list', array('code', 'label', 'description')); + MetaModel::Init_SetZListItems('details', ['code', 'label', 'description']); + MetaModel::Init_SetZListItems('standard_search', ['code', 'label', 'description']); + MetaModel::Init_SetZListItems('list', ['code', 'label', 'description']); } public function ComputeValues() @@ -122,15 +121,12 @@ abstract class TagSetFieldData extends cmdbAbstractObject */ public static function ExtractTagFieldName($sClassName) { - $aRes = array(); + $aRes = []; // Extract class and attcode from class name using pattern TagSetFieldDataFor__>; - if (preg_match('@^TagSetFieldDataFor_(?\w+)__(?\w+)$@', $sClassName, $aMatches)) - { + if (preg_match('@^TagSetFieldDataFor_(?\w+)__(?\w+)$@', $sClassName, $aMatches)) { $aRes['obj_class'] = $aMatches['class']; $aRes['obj_attcode'] = $aMatches['attcode']; - } - else - { + } else { throw new CoreException("Bad Class name format: $sClassName"); } return $aRes; @@ -146,8 +142,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject parent::DoCheckToDelete($oDeletionPlan); $sTagCode = $this->Get('code'); - if ($this->IsCodeUsed($sTagCode)) - { + if ($this->IsCodeUsed($sTagCode)) { $this->m_aDeleteIssues[] = Dict::S('Core:TagSetFieldData:ErrorDeleteUsedTag'); } // Clear cache @@ -172,34 +167,28 @@ abstract class TagSetFieldData extends cmdbAbstractObject $sAttCode = $this->Get('obj_attcode'); $iMaxLen = 20; $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); - if ($oAttDef instanceof AttributeTagSet) - { + if ($oAttDef instanceof AttributeTagSet) { $iMaxLen = $oAttDef->GetTagCodeMaxLength(); } $sTagCode = $this->Get('code'); // Check code syntax $iMax = $iMaxLen - 1; - if (!preg_match("@^[a-zA-Z][a-zA-Z0-9]{2,$iMax}$@", $sTagCode)) - { + if (!preg_match("@^[a-zA-Z][a-zA-Z0-9]{2,$iMax}$@", $sTagCode)) { $this->m_aCheckIssues[] = Dict::Format('Core:TagSetFieldData:ErrorTagCodeSyntax', $iMaxLen); } // Check that the code is not a MySQL stop word $sSQL = "SELECT value FROM information_schema.INNODB_FT_DEFAULT_STOPWORD"; - try - { + try { $aResults = CMDBSource::QueryToArray($sSQL); - } catch (MySQLException $e) - { + } catch (MySQLException $e) { IssueLog::Warning($e->getMessage()); - $aResults = array(); + $aResults = []; } - foreach($aResults as $aResult) - { - if ($aResult['value'] == $sTagCode) - { + foreach ($aResults as $aResult) { + if ($aResult['value'] == $sTagCode) { $this->m_aCheckIssues[] = Dict::S('Core:TagSetFieldData:ErrorTagCodeReservedWord'); break; } @@ -207,8 +196,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject $sTagLabel = $this->Get('label'); $sSepItem = MetaModel::GetConfig()->Get('tag_set_item_separator'); - if (empty($sTagLabel) || (strpos($sTagLabel, $sSepItem) !== false)) - { + if (empty($sTagLabel) || (strpos($sTagLabel, $sSepItem) !== false)) { // Label must not contain | character $this->m_aCheckIssues[] = Dict::Format('Core:TagSetFieldData:ErrorTagLabelSyntax', $sSepItem); } @@ -216,18 +204,14 @@ abstract class TagSetFieldData extends cmdbAbstractObject // Check that code and labels are uniques $id = $this->GetKey(); $sClassName = get_class($this); - if (empty($id)) - { + if (empty($id)) { $oSearch = DBSearch::FromOQL("SELECT $sClassName WHERE (code = :tag_code OR label = :tag_label)"); - } - else - { + } else { $oSearch = DBSearch::FromOQL("SELECT $sClassName WHERE id != :id AND (code = :tag_code OR label = :tag_label)"); } - $aArgs = array('id' => $id, 'tag_code' => $sTagCode, 'tag_label' => $sTagLabel); - $oSet = new DBObjectSet($oSearch, array(), $aArgs); - if ($oSet->CountExceeds(0)) - { + $aArgs = ['id' => $id, 'tag_code' => $sTagCode, 'tag_label' => $sTagLabel]; + $oSet = new DBObjectSet($oSearch, [], $aArgs); + if ($oSet->CountExceeds(0)) { $this->m_aCheckIssues[] = Dict::S('Core:TagSetFieldData:ErrorDuplicateTagCodeOrLabel'); } // Clear cache @@ -244,50 +228,40 @@ abstract class TagSetFieldData extends cmdbAbstractObject { parent::OnUpdate(); $aChanges = $this->ListChanges(); - if (array_key_exists('code', $aChanges)) - { + if (array_key_exists('code', $aChanges)) { $sTagCode = $this->GetOriginal('code'); - if ($this->IsCodeUsed($sTagCode)) - { + if ($this->IsCodeUsed($sTagCode)) { throw new CoreException(Dict::S('Core:TagSetFieldData:ErrorCodeUpdateNotAllowed')); } } - if (array_key_exists('obj_class', $aChanges)) - { + if (array_key_exists('obj_class', $aChanges)) { throw new CoreException(Dict::S('Core:TagSetFieldData:ErrorClassUpdateNotAllowed')); } - if (array_key_exists('obj_attcode', $aChanges)) - { + if (array_key_exists('obj_attcode', $aChanges)) { throw new CoreException(Dict::S('Core:TagSetFieldData:ErrorAttCodeUpdateNotAllowed')); } } private function IsCodeUsed($sTagCode) { - try - { + try { $sClass = $this->Get('obj_class'); $sAttCode = $this->Get('obj_attcode'); $oSearch = DBSearch::FromOQL("SELECT $sClass WHERE $sAttCode MATCHES '$sTagCode'"); $oSet = new DBObjectSet($oSearch); - if ($oSet->CountExceeds(0)) - { + if ($oSet->CountExceeds(0)) { return true; } - } - catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Warning($e->getMessage()); } return false; } - public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '') + public function GetAttributeFlags($sAttCode, &$aReasons = [], $sTargetState = '') { - if ($sAttCode == 'code') - { - if ((!$this->IsNew()) && ($this->IsCodeUsed($this->Get('code')))) - { + if ($sAttCode == 'code') { + if ((!$this->IsNew()) && ($this->IsCodeUsed($this->Get('code')))) { return OPT_ATT_READONLY; } } @@ -308,23 +282,20 @@ abstract class TagSetFieldData extends cmdbAbstractObject * @throws \MySQLHasGoneAwayException * @throws \OQLException */ - function DisplayBareRelations(WebPage $oPage, $bEditMode = false) + public function DisplayBareRelations(WebPage $oPage, $bEditMode = false) { parent::DisplayBareRelations($oPage, $bEditMode); - if (!$bEditMode) - { + if (!$bEditMode) { $sClass = $this->Get('obj_class'); $sAttCode = $this->Get('obj_attcode'); $sTagCode = $this->Get('code'); - $oFilter = DBSearch::FromOQL("SELECT $sClass WHERE $sAttCode MATCHES '$sTagCode'"); $oSet = new DBObjectSet($oFilter); $iCount = $oSet->Count(); $oPage->SetCurrentTab('Core:TagSetFieldData:WhereIsThisTagTab', Dict::Format('Core:TagSetFieldData:WhereIsThisTagTab', $iCount)); - if ($iCount === 0) - { + if ($iCount === 0) { $sNoEntries = Dict::S('Core:TagSetFieldData:NoEntryFound'); $oPage->add("

        $sNoEntries

        "); @@ -333,8 +304,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject $oFilter = DBSearch::FromOQL("SELECT $sClass WHERE $sAttCode MATCHES '$sTagCode'"); $oSet = new DBObjectSet($oFilter); - if ($oSet->CountExceeds(0)) - { + if ($oSet->CountExceeds(0)) { $sClassLabel = MetaModel::GetName($sClass); $oPage->add("

        $sClassLabel

        "); $oResultBlock = new DisplayBlock($oFilter, 'list', false); @@ -345,26 +315,20 @@ abstract class TagSetFieldData extends cmdbAbstractObject public static function GetClassName($sClass) { - if ($sClass == 'TagSetFieldData') - { + if ($sClass == 'TagSetFieldData') { $aWords = preg_split('/(?=[A-Z]+)/', $sClass); return trim(implode(' ', $aWords)); } - try - { + try { $aTagFieldInfo = self::ExtractTagFieldName($sClass); - } catch (CoreException $e) - { + } catch (CoreException $e) { return $sClass; } $sClassDesc = MetaModel::GetName($aTagFieldInfo['obj_class']); $sAttDesc = MetaModel::GetAttributeDef($aTagFieldInfo['obj_class'], $aTagFieldInfo['obj_attcode'])->GetLabel(); - if (Dict::Exists("Class:$sClass")) - { + if (Dict::Exists("Class:$sClass")) { $sName = Dict::Format("Class:$sClass", $sClassDesc, $sAttDesc); - } - else - { + } else { $sName = Dict::Format('Class:TagSetFieldData', $sClassDesc, $sAttDesc); } return $sName; @@ -383,8 +347,7 @@ abstract class TagSetFieldData extends cmdbAbstractObject { $sClass = MetaModel::GetAttributeOrigin($sClass, $sAttCode); $sTagDataClass = self::GetTagDataClassName($sClass, $sAttCode); - if (!isset(self::$m_aAllowedValues[$sTagDataClass])) - { + if (!isset(self::$m_aAllowedValues[$sTagDataClass])) { $oSearch = new DBObjectSearch($sTagDataClass); $oSearch->AddCondition('obj_class', $sClass); $oSearch->AddCondition('obj_attcode', $sAttCode); @@ -394,4 +357,4 @@ abstract class TagSetFieldData extends cmdbAbstractObject return self::$m_aAllowedValues[$sTagDataClass]; } -} \ No newline at end of file +} diff --git a/core/tar-itop.class.inc.php b/core/tar-itop.class.inc.php index c7d3dbfd3..744bd1db1 100644 --- a/core/tar-itop.class.inc.php +++ b/core/tar-itop.class.inc.php @@ -1,4 +1,5 @@ - /** * Simple helper class to interpret and transform a template string * @@ -70,22 +70,20 @@ class TemplateString * * @throws \Exception */ - protected function Analyze($aParamTypes = array()) + protected function Analyze($aParamTypes = []) { - if (!is_null($this->m_aPlaceholders)) return; + if (!is_null($this->m_aPlaceholders)) { + return; + } - $this->m_aPlaceholders = array(); - if (preg_match_all('/\\$([a-z0-9_]+(->[a-z0-9_]+)*)\\$/', $this->m_sRaw, $aMatches)) - { - foreach($aMatches[1] as $sPlaceholder) - { + $this->m_aPlaceholders = []; + if (preg_match_all('/\\$([a-z0-9_]+(->[a-z0-9_]+)*)\\$/', $this->m_sRaw, $aMatches)) { + foreach ($aMatches[1] as $sPlaceholder) { $oPlaceholder = new TemplateStringPlaceholder($sPlaceholder); $oPlaceholder->bIsValid = false; - foreach ($aParamTypes as $sParamName => $sClass) - { + foreach ($aParamTypes as $sParamName => $sClass) { $sParamPrefix = $sParamName.'->'; - if (substr($sPlaceholder, 0, strlen($sParamPrefix)) == $sParamPrefix) - { + if (substr($sPlaceholder, 0, strlen($sParamPrefix)) == $sParamPrefix) { // Todo - detect functions (label...) $oPlaceholder->sFunction = ''; @@ -118,20 +116,16 @@ class TemplateString * * @return boolean */ - public function IsValid($aParamTypes = array()) + public function IsValid($aParamTypes = []) { $this->Analyze($aParamTypes); - foreach($this->m_aPlaceholders as $oPlaceholder) - { - if (!$oPlaceholder->bIsValid) - { - if (count($aParamTypes) == 0) - { + foreach ($this->m_aPlaceholders as $oPlaceholder) { + if (!$oPlaceholder->bIsValid) { + if (count($aParamTypes) == 0) { return false; } - if (array_key_exists($oPlaceholder->sParamName, $aParamTypes)) - { + if (array_key_exists($oPlaceholder->sParamName, $aParamTypes)) { return false; } } @@ -146,39 +140,31 @@ class TemplateString * * @return string */ - public function Render($aParamValues = array()) + public function Render($aParamValues = []) { - $aParamTypes = array(); - foreach($aParamValues as $sParamName => $value) - { + $aParamTypes = []; + foreach ($aParamValues as $sParamName => $value) { $aParamTypes[$sParamName] = get_class($value); } $this->Analyze($aParamTypes); - $aSearch = array(); - $aReplace = array(); - foreach($this->m_aPlaceholders as $oPlaceholder) - { - if (array_key_exists($oPlaceholder->sParamName, $aParamValues)) - { + $aSearch = []; + $aReplace = []; + foreach ($this->m_aPlaceholders as $oPlaceholder) { + if (array_key_exists($oPlaceholder->sParamName, $aParamValues)) { $oRef = $aParamValues[$oPlaceholder->sParamName]; - try - { + try { $value = $oRef->Get($oPlaceholder->sAttCode); $aSearch[] = '$'.$oPlaceholder->sToken.'$'; $aReplace[] = $value; $oPlaceholder->bIsValid = true; - } - catch(Exception $e) - { + } catch (Exception $e) { $oPlaceholder->bIsValid = false; } - } - else - { + } else { $oPlaceholder->bIsValid = false; } } return str_replace($aSearch, $aReplace, $this->m_sRaw); } -} \ No newline at end of file +} diff --git a/core/userrights.class.inc.php b/core/userrights.class.inc.php index 735c440a1..d29aa7742 100644 --- a/core/userrights.class.inc.php +++ b/core/userrights.class.inc.php @@ -50,7 +50,7 @@ abstract class UserRightsAddOnAPI * * @return mixed */ - abstract public function GetSelectFilter($sLogin, $sClass, $aSettings = array()); // returns a filter object + abstract public function GetSelectFilter($sLogin, $sClass, $aSettings = []); // returns a filter object /** * @param \User $oUser @@ -110,7 +110,7 @@ abstract class UserRightsAddOnAPI */ public function ListProfiles($oUser) { - return array(); + return []; } /** @@ -127,14 +127,12 @@ abstract class UserRightsAddOnAPI * @throws \MySQLException * @throws \MySQLHasGoneAwayException */ - public function MakeSelectFilter($sClass, $aAllowedOrgs, $aSettings = array(), $sAttCode = null) + public function MakeSelectFilter($sClass, $aAllowedOrgs, $aSettings = [], $sAttCode = null) { - if ($sAttCode == null) - { + if ($sAttCode == null) { $sAttCode = $this->GetOwnerOrganizationAttCode($sClass); } - if (empty($sAttCode)) - { + if (empty($sAttCode)) { return $oFilter = new DBObjectSearch($sClass); } @@ -147,10 +145,8 @@ abstract class UserRightsAddOnAPI $oCondition = $oNullCondition->LogOr($oInCondition); $oFilter->AddConditionExpression($oCondition); - if ($this->HasSharing()) - { - if (($sAttCode == 'id') && isset($aSettings['bSearchMode']) && $aSettings['bSearchMode']) - { + if ($this->HasSharing()) { + if (($sAttCode == 'id') && isset($aSettings['bSearchMode']) && $aSettings['bSearchMode']) { // Querying organizations (or derived) // and the expected list of organizations will be used as a search criteria // Therefore the query can also return organization having objects shared with the allowed organizations @@ -164,22 +160,19 @@ abstract class UserRightsAddOnAPI $oSearchSharers = new DBObjectSearch('Organization'); $oSearchSharers->AllowAllData(); $oSearchSharers->AddCondition_ReferencedBy($oShareSearch, 'sharing_org_id'); - $aSharers = array(); - foreach($oSearchSharers->SelectAttributeToArray('id') as $aRow) - { + $aSharers = []; + foreach ($oSearchSharers->SelectAttributeToArray('id') as $aRow) { $aSharers[] = $aRow['id']; } // 2) Enlarge the overall results: ... OR id IN(id1, id2, id3) - if (count($aSharers) > 0) - { + if (count($aSharers) > 0) { $oSharersList = ListExpression::FromScalars($aSharers); $oFilter->MergeConditionExpression(new BinaryExpression($oExpression, 'IN', $oSharersList)); } } $aShareProperties = SharedObject::GetSharedClassProperties($sClass); - if ($aShareProperties) - { + if ($aShareProperties) { $sShareClass = $aShareProperties['share_class']; $sShareAttCode = $aShareProperties['attcode']; @@ -189,13 +182,11 @@ abstract class UserRightsAddOnAPI $sHierarchicalKeyCode = MetaModel::IsHierarchicalClass('Organization'); $oOrgField = new FieldExpression('org_id', $sShareClass); $oSearchShares->AddConditionExpression(new BinaryExpression($oOrgField, 'IN', $oListExpr)); - $aShared = array(); - foreach($oSearchShares->SelectAttributeToArray($sShareAttCode) as $aRow) - { + $aShared = []; + foreach ($oSearchShares->SelectAttributeToArray($sShareAttCode) as $aRow) { $aShared[] = $aRow[$sShareAttCode]; } - if (count($aShared) > 0) - { + if (count($aShared) > 0) { $oObjId = new FieldExpression('id', $sClass); $oSharedIdList = ListExpression::FromScalars($aShared); $oFilter->MergeConditionExpression(new BinaryExpression($oObjId, 'IN', $oSharedIdList)); @@ -207,7 +198,6 @@ abstract class UserRightsAddOnAPI } } - require_once(APPROOT.'/application/cmdbabstract.class.inc.php'); abstract class User extends cmdbAbstractObject { @@ -216,31 +206,31 @@ abstract class User extends cmdbAbstractObject */ public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core,grant_by_profile,silo", "key_type" => "autoincrement", "name_attcode" => "login", "state_attcode" => "status", - "reconc_keys" => array(), + "reconc_keys" => [], "db_table" => "priv_user", "db_key_field" => "id", "db_finalclass_field" => "", "style" => new ormStyle("ibo-dm-class--User", "ibo-dm-class-alt--User", "var(--ibo-dm-class--User--main-color)", "var(--ibo-dm-class--User--complementary-color)", null, "itop-structure/../../images/icons/icons8-security-pass.svg"), - ); + ]; MetaModel::Init_Params($aParams); //MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeExternalKey("contactid", array("targetclass" => "Person", "allowed_values" => null, "sql" => "contactid", "is_null_allowed" => true, "on_target_delete" => DEL_MANUAL, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeExternalField("last_name", array("allowed_values" => null, "extkey_attcode" => 'contactid', "target_attcode" => "name"))); - MetaModel::Init_AddAttribute(new AttributeExternalField("first_name", array("allowed_values" => null, "extkey_attcode" => 'contactid', "target_attcode" => "first_name"))); - MetaModel::Init_AddAttribute(new AttributeExternalField("email", array("allowed_values" => null, "extkey_attcode" => 'contactid', "target_attcode" => "email"))); - MetaModel::Init_AddAttribute(new AttributeExternalField("org_id", array("allowed_values" => null, "extkey_attcode" => 'contactid', "target_attcode" => "org_id"))); + MetaModel::Init_AddAttribute(new AttributeExternalKey("contactid", ["targetclass" => "Person", "allowed_values" => null, "sql" => "contactid", "is_null_allowed" => true, "on_target_delete" => DEL_MANUAL, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeExternalField("last_name", ["allowed_values" => null, "extkey_attcode" => 'contactid', "target_attcode" => "name"])); + MetaModel::Init_AddAttribute(new AttributeExternalField("first_name", ["allowed_values" => null, "extkey_attcode" => 'contactid', "target_attcode" => "first_name"])); + MetaModel::Init_AddAttribute(new AttributeExternalField("email", ["allowed_values" => null, "extkey_attcode" => 'contactid', "target_attcode" => "email"])); + MetaModel::Init_AddAttribute(new AttributeExternalField("org_id", ["allowed_values" => null, "extkey_attcode" => 'contactid', "target_attcode" => "org_id"])); - MetaModel::Init_AddAttribute(new AttributeString("login", array("allowed_values" => null, "sql" => "login", "default_value" => null, "is_null_allowed" => false, "depends_on" => array()))); + MetaModel::Init_AddAttribute(new AttributeString("login", ["allowed_values" => null, "sql" => "login", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); - MetaModel::Init_AddAttribute(new AttributeApplicationLanguage("language", array("sql" => "language", "default_value" => "EN US", "is_null_allowed" => false, "depends_on" => array()))); - MetaModel::Init_AddAttribute(new AttributeEnum("status", array( + MetaModel::Init_AddAttribute(new AttributeApplicationLanguage("language", ["sql" => "language", "default_value" => "EN US", "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeEnum("status", [ "allowed_values" => new ValueSetEnum('enabled,disabled'), "styled_values" => [ 'enabled' => new ormStyle('ibo-dm-enum--User-status-enabled', 'ibo-dm-enum-alt--User-status-enabled', 'var(--ibo-dm-enum--User-status-enabled--main-color)', 'var(--ibo-dm-enum--User-status-enabled--complementary-color)', null, null), @@ -249,19 +239,19 @@ abstract class User extends cmdbAbstractObject "sql" => "status", "default_value" => "enabled", "is_null_allowed" => false, - "depends_on" => array(), - ))); + "depends_on" => [], + ])); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("profile_list",array("linked_class" => "URP_UserProfile", "ext_key_to_me" => "userid", "ext_key_to_remote" => "profileid", "allowed_values" => null, "count_min" => 1, "count_max" => 0, "depends_on" => array(), "display_style" => 'property', "with_php_constraint" => true, "with_php_computation" => true))); - MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("allowed_org_list", array("linked_class" => "URP_UserOrg", "ext_key_to_me" => "userid", "ext_key_to_remote" => "allowed_org_id", "allowed_values" => null, "count_min" => 1, "count_max" => 0, "depends_on" => array(), 'with_php_constraint' => true))); - MetaModel::Init_AddAttribute(new AttributeCaseLog("log", array("sql" => 'log', "is_null_allowed" => true, "default_value" => '', "allowed_values" => null, "depends_on" => array(), "always_load_in_tables" => false))); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("profile_list", ["linked_class" => "URP_UserProfile", "ext_key_to_me" => "userid", "ext_key_to_remote" => "profileid", "allowed_values" => null, "count_min" => 1, "count_max" => 0, "depends_on" => [], "display_style" => 'property', "with_php_constraint" => true, "with_php_computation" => true])); + MetaModel::Init_AddAttribute(new AttributeLinkedSetIndirect("allowed_org_list", ["linked_class" => "URP_UserOrg", "ext_key_to_me" => "userid", "ext_key_to_remote" => "allowed_org_id", "allowed_values" => null, "count_min" => 1, "count_max" => 0, "depends_on" => [], 'with_php_constraint' => true])); + MetaModel::Init_AddAttribute(new AttributeCaseLog("log", ["sql" => 'log', "is_null_allowed" => true, "default_value" => '', "allowed_values" => null, "depends_on" => [], "always_load_in_tables" => false])); // Display lists - MetaModel::Init_SetZListItems('details', array('contactid', 'org_id', 'email', 'login', 'language', 'status', 'profile_list', 'allowed_org_list', 'log')); // Unused as it's an abstract class ! - MetaModel::Init_SetZListItems('list', array('finalclass', 'first_name', 'last_name', 'status', 'org_id')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['contactid', 'org_id', 'email', 'login', 'language', 'status', 'profile_list', 'allowed_org_list', 'log']); // Unused as it's an abstract class ! + MetaModel::Init_SetZListItems('list', ['finalclass', 'first_name', 'last_name', 'status', 'org_id']); // Attributes to be displayed for a list // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('login', 'contactid', 'email', 'language', 'status', 'org_id')); // Criteria of the std search form - MetaModel::Init_SetZListItems('default_search', array('login', 'contactid', 'status', 'org_id')); // Default criteria of the search banner + MetaModel::Init_SetZListItems('standard_search', ['login', 'contactid', 'email', 'language', 'status', 'org_id']); // Criteria of the std search form + MetaModel::Init_SetZListItems('default_search', ['login', 'contactid', 'status', 'org_id']); // Default criteria of the search banner } protected function RegisterEventListeners() @@ -290,25 +280,18 @@ abstract class User extends cmdbAbstractObject */ public function GetFriendlyName() { - if (!MetaModel::IsValidAttCode(get_class($this), 'contactid')) - { + if (!MetaModel::IsValidAttCode(get_class($this), 'contactid')) { return $this->Get('login'); } - if ($this->Get('contactid') != 0) - { + if ($this->Get('contactid') != 0) { $sFirstName = $this->Get('first_name'); $sLastName = $this->Get('last_name'); $sEmail = $this->Get('email'); - if (strlen($sFirstName) > 0) - { + if (strlen($sFirstName) > 0) { return "$sFirstName $sLastName"; - } - elseif (strlen($sEmail) > 0) - { + } elseif (strlen($sEmail) > 0) { return "$sLastName <$sEmail>"; - } - else - { + } else { return $sLastName; } } @@ -345,10 +328,8 @@ abstract class User extends cmdbAbstractObject */ public function GetContactObject() { - if (is_null($this->oContactObject)) - { - if (MetaModel::IsValidAttCode(get_class($this), 'contactid') && ($this->Get('contactid') != 0)) - { + if (is_null($this->oContactObject)) { + if (MetaModel::IsValidAttCode(get_class($this), 'contactid') && ($this->Get('contactid') != 0)) { $this->oContactObject = null; // The User Contact is generally a Person, so try it first if (MetaModel::IsValidClass('Person')) { @@ -375,13 +356,13 @@ abstract class User extends cmdbAbstractObject $aChanges = $this->ListChanges(); if (array_key_exists('login', $aChanges)) { // Check login uniqueness - if ( $this->GetOriginal('login') === null || strcasecmp($this->Get('login'), $this->GetOriginal('login')) !== 0) { + if ($this->GetOriginal('login') === null || strcasecmp($this->Get('login'), $this->GetOriginal('login')) !== 0) { $sNewLogin = $aChanges['login']; $oSearch = DBObjectSearch::FromOQL_AllData("SELECT User WHERE login = :newlogin"); if (!$this->IsNew()) { $oSearch->AddCondition('id', $this->GetKey(), '!='); } - $oSet = new DBObjectSet($oSearch, array(), array('newlogin' => $sNewLogin)); + $oSet = new DBObjectSet($oSearch, [], ['newlogin' => $sNewLogin]); if ($oSet->Count() > 0) { $this->m_aCheckIssues[] = Dict::Format('Class:User/Error:LoginMustBeUnique', $sNewLogin); } @@ -459,7 +440,7 @@ abstract class User extends cmdbAbstractObject } // Warning if the user has no associated contact elseif (empty($this->Get('contactid'))) { - $this->AddCheckWarning(Dict::S('Class:User/Warning:NoContactHasImpact')); + $this->AddCheckWarning(Dict::S('Class:User/Warning:NoContactHasImpact')); } // Allowed orgs must contain the user org (if any) @@ -539,7 +520,7 @@ abstract class User extends cmdbAbstractObject } } - function GetGrantAsHtml($sClass, $iAction) + public function GetGrantAsHtml($sClass, $iAction) { if (UserRights::IsActionAllowed($sClass, $iAction, null, $this)) { return ''.Dict::S('UI:UserManagement:ActionAllowed:Yes').''; @@ -548,10 +529,9 @@ abstract class User extends cmdbAbstractObject } } - function DoShowGrantSumary($oPage, $sClassCategory) + public function DoShowGrantSumary($oPage, $sClassCategory) { - if (UserRights::IsAdministrator($this)) - { + if (UserRights::IsAdministrator($this)) { // Looks dirty, but ok that's THE ONE $oPage->p(Dict::S('UI:UserManagement:AdminProfile+')); return; @@ -559,28 +539,22 @@ abstract class User extends cmdbAbstractObject $oKPI = new ExecutionKPI(); - $aDisplayData = array(); - foreach (MetaModel::GetClasses($sClassCategory) as $sClass) - { + $aDisplayData = []; + foreach (MetaModel::GetClasses($sClassCategory) as $sClass) { $aClassStimuli = MetaModel::EnumStimuli($sClass); - if (count($aClassStimuli) > 0) - { - $aStimuli = array(); - foreach ($aClassStimuli as $sStimulusCode => $oStimulus) - { - if (UserRights::IsStimulusAllowed($sClass, $sStimulusCode, null, $this)) - { + if (count($aClassStimuli) > 0) { + $aStimuli = []; + foreach ($aClassStimuli as $sStimulusCode => $oStimulus) { + if (UserRights::IsStimulusAllowed($sClass, $sStimulusCode, null, $this)) { $aStimuli[] = ''.utils::EscapeHtml($oStimulus->GetLabel()).''; } } $sStimuli = implode(', ', $aStimuli); - } - else - { + } else { $sStimuli = ''.Dict::S('UI:UserManagement:NoLifeCycleApplicable').''; } - $aDisplayData[] = array( + $aDisplayData[] = [ 'class' => MetaModel::GetName($sClass), 'read' => $this->GetGrantAsHtml($sClass, UR_ACTION_READ), 'bulkread' => $this->GetGrantAsHtml($sClass, UR_ACTION_BULK_READ), @@ -589,24 +563,24 @@ abstract class User extends cmdbAbstractObject 'delete' => $this->GetGrantAsHtml($sClass, UR_ACTION_DELETE), 'bulkdelete' => $this->GetGrantAsHtml($sClass, UR_ACTION_BULK_DELETE), 'stimuli' => $sStimuli, - ); + ]; } $oKPI->ComputeAndReport('Computation of user rights'); - $aDisplayConfig = array(); - $aDisplayConfig['class'] = array('label' => Dict::S('UI:UserManagement:Class'), 'description' => Dict::S('UI:UserManagement:Class+')); - $aDisplayConfig['read'] = array('label' => Dict::S('UI:UserManagement:Action:Read'), 'description' => Dict::S('UI:UserManagement:Action:Read+')); - $aDisplayConfig['bulkread'] = array('label' => Dict::S('UI:UserManagement:Action:BulkRead'), 'description' => Dict::S('UI:UserManagement:Action:BulkRead+')); - $aDisplayConfig['write'] = array('label' => Dict::S('UI:UserManagement:Action:Modify'), 'description' => Dict::S('UI:UserManagement:Action:Modify+')); - $aDisplayConfig['bulkwrite'] = array('label' => Dict::S('UI:UserManagement:Action:BulkModify'), 'description' => Dict::S('UI:UserManagement:Action:BulkModify+')); - $aDisplayConfig['delete'] = array('label' => Dict::S('UI:UserManagement:Action:Delete'), 'description' => Dict::S('UI:UserManagement:Action:Delete+')); - $aDisplayConfig['bulkdelete'] = array('label' => Dict::S('UI:UserManagement:Action:BulkDelete'), 'description' => Dict::S('UI:UserManagement:Action:BulkDelete+')); - $aDisplayConfig['stimuli'] = array('label' => Dict::S('UI:UserManagement:Action:Stimuli'), 'description' => Dict::S('UI:UserManagement:Action:Stimuli+')); + $aDisplayConfig = []; + $aDisplayConfig['class'] = ['label' => Dict::S('UI:UserManagement:Class'), 'description' => Dict::S('UI:UserManagement:Class+')]; + $aDisplayConfig['read'] = ['label' => Dict::S('UI:UserManagement:Action:Read'), 'description' => Dict::S('UI:UserManagement:Action:Read+')]; + $aDisplayConfig['bulkread'] = ['label' => Dict::S('UI:UserManagement:Action:BulkRead'), 'description' => Dict::S('UI:UserManagement:Action:BulkRead+')]; + $aDisplayConfig['write'] = ['label' => Dict::S('UI:UserManagement:Action:Modify'), 'description' => Dict::S('UI:UserManagement:Action:Modify+')]; + $aDisplayConfig['bulkwrite'] = ['label' => Dict::S('UI:UserManagement:Action:BulkModify'), 'description' => Dict::S('UI:UserManagement:Action:BulkModify+')]; + $aDisplayConfig['delete'] = ['label' => Dict::S('UI:UserManagement:Action:Delete'), 'description' => Dict::S('UI:UserManagement:Action:Delete+')]; + $aDisplayConfig['bulkdelete'] = ['label' => Dict::S('UI:UserManagement:Action:BulkDelete'), 'description' => Dict::S('UI:UserManagement:Action:BulkDelete+')]; + $aDisplayConfig['stimuli'] = ['label' => Dict::S('UI:UserManagement:Action:Stimuli'), 'description' => Dict::S('UI:UserManagement:Action:Stimuli+')]; $oPage->table($aDisplayConfig, $aDisplayData); } - function DisplayBareRelations(WebPage $oPage, $bEditMode = false) + public function DisplayBareRelations(WebPage $oPage, $bEditMode = false) { parent::DisplayBareRelations($oPage, $bEditMode); @@ -614,8 +588,7 @@ abstract class User extends cmdbAbstractObject $this->DoShowGrantSumary($oPage, 'bizmodel,grant_by_profile'); // debug - if (false) - { + if (false) { $oPage->SetCurrentTab('More on user rigths (dev only)'); $oPage->add("

        User rights

        \n"); $this->DoShowGrantSumary($oPage, 'addon/userrights'); @@ -629,23 +602,21 @@ abstract class User extends cmdbAbstractObject } } - public function CheckToDelete(&$oDeletionPlan) - { - if (MetaModel::GetConfig()->Get('demo_mode')) - { + public function CheckToDelete(&$oDeletionPlan) + { + if (MetaModel::GetConfig()->Get('demo_mode')) { // Users deletion is NOT allowed in demo mode $oDeletionPlan->AddToDelete($this, null); - $oDeletionPlan->SetDeletionIssues($this, array('deletion not allowed in demo mode.'), true); + $oDeletionPlan->SetDeletionIssues($this, ['deletion not allowed in demo mode.'], true); $oDeletionPlan->ComputeResults(); return false; } return parent::CheckToDelete($oDeletionPlan); - } + } protected function DBDeleteSingleObject() { - if (MetaModel::GetConfig()->Get('demo_mode')) - { + if (MetaModel::GetConfig()->Get('demo_mode')) { // Users deletion is NOT allowed in demo mode return; } @@ -679,28 +650,28 @@ abstract class UserInternal extends User // Nothing special, just a base class to categorize this type of authenticated users public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "core,grant_by_profile,silo", "key_type" => "autoincrement", "name_attcode" => "login", "state_attcode" => "", - "reconc_keys" => array('login'), + "reconc_keys" => ['login'], "db_table" => "priv_internaluser", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); // When set, this token allows for password reset - MetaModel::Init_AddAttribute(new AttributeOneWayPassword("reset_pwd_token", array("allowed_values" => null, "default_value" => null, "is_null_allowed" => true, "depends_on" => array()))); + MetaModel::Init_AddAttribute(new AttributeOneWayPassword("reset_pwd_token", ["allowed_values" => null, "default_value" => null, "is_null_allowed" => true, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', array('contactid', 'org_id', 'email', 'login', 'status', 'language', 'profile_list', 'allowed_org_list', 'log')); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('finalclass', 'first_name', 'last_name', 'status', 'org_id')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('details', ['contactid', 'org_id', 'email', 'login', 'status', 'language', 'profile_list', 'allowed_org_list', 'log']); // Attributes to be displayed for the complete details + MetaModel::Init_SetZListItems('list', ['finalclass', 'first_name', 'last_name', 'status', 'org_id']); // Attributes to be displayed for a list // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('login', 'contactid', 'status', 'org_id')); // Criteria of the std search form + MetaModel::Init_SetZListItems('standard_search', ['login', 'contactid', 'status', 'org_id']); // Criteria of the std search form } /** @@ -716,28 +687,23 @@ abstract class UserInternal extends User */ public function GetResetPasswordEmail() { - if (!MetaModel::IsValidAttCode(get_class($this), 'contactid')) - { + if (!MetaModel::IsValidAttCode(get_class($this), 'contactid')) { throw new Exception(Dict::S('UI:ResetPwd-Error-NoContact')); } $iContactId = $this->Get('contactid'); - if ($iContactId == 0) - { + if ($iContactId == 0) { throw new Exception(Dict::S('UI:ResetPwd-Error-NoContact')); } $oContact = MetaModel::GetObject('Contact', $iContactId); // Determine the email attribute (the first one will be our choice) - foreach (MetaModel::ListAttributeDefs(get_class($oContact)) as $sAttCode => $oAttDef) - { - if ($oAttDef instanceof AttributeEmailAddress) - { + foreach (MetaModel::ListAttributeDefs(get_class($oContact)) as $sAttCode => $oAttDef) { + if ($oAttDef instanceof AttributeEmailAddress) { $sEmailAttCode = $sAttCode; // we've got one, exit the loop break; } } - if (!isset($sEmailAttCode)) - { + if (!isset($sEmailAttCode)) { throw new Exception(Dict::S('UI:ResetPwd-Error-NoEmailAtt')); } $sRes = trim($oContact->Get($sEmailAttCode)); @@ -781,11 +747,11 @@ interface iSelfRegister */ class UserRights { - const DEFAULT_USER_CONTACT_ID_ATTCODE = 'contactid'; - const DEFAULT_CONTACT_ORG_ID_ATTCODE = 'org_id'; - const DEFAULT_CONTACT_ORG_ID_FRIENDLYNAME_ATTCODE = self::DEFAULT_CONTACT_ORG_ID_ATTCODE.'_friendlyname'; - const DEFAULT_CONTACT_FIRSTNAME_ATTCODE = 'first_name'; - const DEFAULT_CONTACT_PICTURE_ATTCODE = 'picture'; + public const DEFAULT_USER_CONTACT_ID_ATTCODE = 'contactid'; + public const DEFAULT_CONTACT_ORG_ID_ATTCODE = 'org_id'; + public const DEFAULT_CONTACT_ORG_ID_FRIENDLYNAME_ATTCODE = self::DEFAULT_CONTACT_ORG_ID_ATTCODE.'_friendlyname'; + public const DEFAULT_CONTACT_FIRSTNAME_ATTCODE = 'first_name'; + public const DEFAULT_CONTACT_PICTURE_ATTCODE = 'picture'; public static $m_aCacheUsers; /** @var array Associative array of user's ID => user's picture URL */ @@ -795,8 +761,8 @@ class UserRights protected static $m_oUser = null; protected static $m_oRealUser = null; protected static $m_sSelfRegisterAddOn = null; - protected static $m_aAdmins = array(); - protected static $m_aPortalUsers = array(); + protected static $m_aAdmins = []; + protected static $m_aPortalUsers = []; /** @var array array('sName' => $sName, 'bSuccess' => $bSuccess); */ private static $m_sLastLoginStatus = null; @@ -819,15 +785,13 @@ class UserRights */ public static function SelectModule($sModuleName) { - if (!class_exists($sModuleName)) - { + if (!class_exists($sModuleName)) { throw new CoreException("Could not select this module, '$sModuleName' in not a valid class name"); } - if (!is_subclass_of($sModuleName, 'UserRightsAddOnAPI')) - { + if (!is_subclass_of($sModuleName, 'UserRightsAddOnAPI')) { throw new CoreException("Could not select this module, the class '$sModuleName' is not derived from UserRightsAddOnAPI"); } - self::$m_oAddOn = new $sModuleName; + self::$m_oAddOn = new $sModuleName(); self::$m_oAddOn->Init(); self::ResetCurrentUserData(); } @@ -840,8 +804,7 @@ class UserRights */ public static function SelectSelfRegister($sModuleName) { - if (!class_exists($sModuleName)) - { + if (!class_exists($sModuleName)) { throw new CoreException("Could not select the class, '$sModuleName' for self register, is not a valid class name"); } self::$m_sSelfRegisterAddOn = $sModuleName; @@ -876,12 +839,9 @@ class UserRights */ public static function IsLoggedIn() { - if (self::$m_oUser == null) - { + if (self::$m_oUser == null) { return false; - } - else - { + } else { return true; } } @@ -901,14 +861,12 @@ class UserRights self::ResetCurrentUserData(); $oUser = self::FindUser($sLogin, $sAuthentication); - if (is_null($oUser)) - { + if (is_null($oUser)) { return false; } self::$m_oUser = $oUser; - if (Session::IsSet('impersonate_user')) - { + if (Session::IsSet('impersonate_user')) { self::$m_oRealUser = self::$m_oUser; self::$m_oUser = self::FindUser(Session::Get('impersonate_user')); } @@ -942,31 +900,26 @@ class UserRights public static function CheckCredentials($sLogin, $sPassword, $sLoginMode = 'form', $sAuthentication = 'any') { $oUser = self::FindUser($sLogin, $sAuthentication); - if (is_null($oUser)) - { + if (is_null($oUser)) { // Check if the user does not exist at all or if it is just disabled - if (self::FindUser($sLogin, $sAuthentication, true) == null) - { + if (self::FindUser($sLogin, $sAuthentication, true) == null) { // User does not exist at all $bCheckCredentialsAndCreateUser = self::CheckCredentialsAndCreateUser($sLogin, $sPassword, $sLoginMode, $sAuthentication); - self::$m_sLastLoginStatus = array('sName' => $sLogin, 'bSuccess' => $bCheckCredentialsAndCreateUser); + self::$m_sLastLoginStatus = ['sName' => $sLogin, 'bSuccess' => $bCheckCredentialsAndCreateUser]; return $bCheckCredentialsAndCreateUser; - } - else - { + } else { // User is actually disabled - self::$m_sLastLoginStatus = array('sName' => $sLogin, 'bSuccess' => false); + self::$m_sLastLoginStatus = ['sName' => $sLogin, 'bSuccess' => false]; return false; } } - if (!$oUser->CheckCredentials($sPassword)) - { - self::$m_sLastLoginStatus = array('sName' => $sLogin, 'bSuccess' => false); + if (!$oUser->CheckCredentials($sPassword)) { + self::$m_sLastLoginStatus = ['sName' => $sLogin, 'bSuccess' => false]; return false; } self::UpdateUser($oUser, $sLoginMode, $sAuthentication); - self::$m_sLastLoginStatus = array('sName' => $sLogin, 'bSuccess' => true); + self::$m_sLastLoginStatus = ['sName' => $sLogin, 'bSuccess' => true]; return true; } @@ -981,9 +934,8 @@ class UserRights */ public static function CheckCredentialsAndCreateUser($sName, $sPassword, $sLoginMode, $sAuthentication) { - if (self::$m_sSelfRegisterAddOn != null) - { - return call_user_func(array(self::$m_sSelfRegisterAddOn, 'CheckCredentialsAndCreateUser'), $sName, $sPassword, $sLoginMode, $sAuthentication); + if (self::$m_sSelfRegisterAddOn != null) { + return call_user_func([self::$m_sSelfRegisterAddOn, 'CheckCredentialsAndCreateUser'], $sName, $sPassword, $sLoginMode, $sAuthentication); } } @@ -994,9 +946,8 @@ class UserRights */ public static function UpdateUser($oUser, $sLoginMode, $sAuthentication) { - if (self::$m_sSelfRegisterAddOn != null) - { - call_user_func(array(self::$m_sSelfRegisterAddOn, 'UpdateUser'), $oUser, $sLoginMode, $sAuthentication); + if (self::$m_sSelfRegisterAddOn != null) { + call_user_func([self::$m_sSelfRegisterAddOn, 'UpdateUser'], $oUser, $sLoginMode, $sAuthentication); } } @@ -1005,12 +956,9 @@ class UserRights */ public static function TrustWebServerContext() { - if (!is_null(self::$m_oUser)) - { - return self::$m_oUser->TrustWebServerContext(); - } - else - { + if (!is_null(self::$m_oUser)) { + return self::$m_oUser->TrustWebServerContext(); + } else { return false; } } @@ -1023,16 +971,11 @@ class UserRights */ public static function CanBrowseArchive() { - if (is_null(self::$m_oUser)) - { + if (is_null(self::$m_oUser)) { $bRet = false; - } - elseif (Session::IsSet('archive_allowed')) - { + } elseif (Session::IsSet('archive_allowed')) { $bRet = Session::Get('archive_allowed'); - } - else - { + } else { // As of now, anybody can switch to the archive mode as soon as there is an archivable class $bRet = (count(MetaModel::EnumArchivableClasses()) > 0); Session::Set('archive_allowed', $bRet); @@ -1045,17 +988,13 @@ class UserRights */ public static function CanChangePassword() { - if (MetaModel::DBIsReadOnly()) - { + if (MetaModel::DBIsReadOnly()) { return false; } - if (!is_null(self::$m_oUser)) - { - return self::$m_oUser->CanChangePassword(); - } - else - { + if (!is_null(self::$m_oUser)) { + return self::$m_oUser->CanChangePassword(); + } else { return false; } } @@ -1070,21 +1009,15 @@ class UserRights */ public static function ChangePassword($sOldPassword, $sNewPassword, $sLogin = '') { - if (empty($sLogin)) - { + if (empty($sLogin)) { $oUser = self::$m_oUser; - } - else - { + } else { // find the id out of the login string $oUser = self::FindUser($sLogin); } - if (is_null($oUser)) - { + if (is_null($oUser)) { return false; - } - else - { + } else { $oUser->AllowWrite(true); return $oUser->ChangePassword($sOldPassword, $sNewPassword); } @@ -1099,25 +1032,22 @@ class UserRights */ public static function Impersonate($sLogin) { - if (!self::CheckLogin()) return false; + if (!self::CheckLogin()) { + return false; + } $bRet = false; $oUser = self::FindUser($sLogin); - if ($oUser) - { + if ($oUser) { $bRet = true; - if (is_null(self::$m_oRealUser)) - { + if (is_null(self::$m_oRealUser)) { // First impersonation self::$m_oRealUser = self::$m_oUser; } - if (self::$m_oRealUser && (self::$m_oRealUser->GetKey() == $oUser->GetKey())) - { + if (self::$m_oRealUser && (self::$m_oRealUser->GetKey() == $oUser->GetKey())) { // Equivalent to "Deimpersonate" self::Deimpersonate(); - } - else - { + } else { // Do impersonate! self::$m_oUser = $oUser; Dict::SetUserLanguage(self::GetUserLanguage()); @@ -1138,8 +1068,7 @@ class UserRights */ public static function Deimpersonate() { - if (!is_null(self::$m_oRealUser)) - { + if (!is_null(self::$m_oRealUser)) { self::$m_oUser = self::$m_oRealUser; //N°5135 - fix IsImpersonated() after calling Deimpersonate() self::$m_oRealUser = null; @@ -1158,12 +1087,9 @@ class UserRights */ public static function GetUser() { - if (is_null(self::$m_oUser)) - { + if (is_null(self::$m_oUser)) { return ''; - } - else - { + } else { return self::$m_oUser->Get('login'); } } @@ -1173,12 +1099,9 @@ class UserRights */ public static function GetUserObject() { - if (is_null(self::$m_oUser)) - { + if (is_null(self::$m_oUser)) { return null; - } - else - { + } else { return self::$m_oUser; } } @@ -1200,8 +1123,8 @@ class UserRights $sUserSearch = 'SELECT User WHERE contactid = :id'; $oUserSearch = DBObjectSearch::FromOQL($sUserSearch); $oUserSearch->AllowAllData(); - $oUserSet = new DBObjectSet($oUserSearch, array(), array('id' => $oPerson->GetKey())); - if($oUserSet->Count() > 0 && !($oUserSet->Count() > 1 && $bMustBeUnique)){ + $oUserSet = new DBObjectSet($oUserSearch, [], ['id' => $oPerson->GetKey()]); + if ($oUserSet->Count() > 0 && !($oUserSet->Count() > 1 && $bMustBeUnique)) { return $oUserSet->Fetch(); } return null; @@ -1212,13 +1135,10 @@ class UserRights */ public static function GetUserLanguage() { - if (is_null(self::$m_oUser)) - { + if (is_null(self::$m_oUser)) { return 'EN US'; - } - else - { + } else { return self::$m_oUser->Get('language'); } } @@ -1231,21 +1151,16 @@ class UserRights */ public static function GetUserId($sLogin = '') { - if (empty($sLogin)) - { + if (empty($sLogin)) { // return current user id - if (is_null(self::$m_oUser)) - { + if (is_null(self::$m_oUser)) { return null; } return self::$m_oUser->GetKey(); - } - else - { + } else { // find the id out of the login string $oUser = self::FindUser($sLogin); - if (is_null($oUser)) - { + if (is_null($oUser)) { return null; } return $oUser->GetKey(); @@ -1338,20 +1253,15 @@ class UserRights */ public static function GetContactId($sLogin = '') { - if (empty($sLogin)) - { + if (empty($sLogin)) { $oUser = self::$m_oUser; - } - else - { + } else { $oUser = self::FindUser($sLogin); } - if (is_null($oUser)) - { + if (is_null($oUser)) { return ''; } - if (!MetaModel::IsValidAttCode(get_class($oUser), static::DEFAULT_USER_CONTACT_ID_ATTCODE)) - { + if (!MetaModel::IsValidAttCode(get_class($oUser), static::DEFAULT_USER_CONTACT_ID_ATTCODE)) { return ''; } return $oUser->Get(static::DEFAULT_USER_CONTACT_ID_ATTCODE); @@ -1370,8 +1280,7 @@ class UserRights $sOrgFriendlyname = null; $oContact = static::GetContactObject(); - if(!is_null($oContact) && MetaModel::IsValidAttCode(get_class($oContact), static::DEFAULT_CONTACT_ORG_ID_FRIENDLYNAME_ATTCODE)) - { + if (!is_null($oContact) && MetaModel::IsValidAttCode(get_class($oContact), static::DEFAULT_CONTACT_ORG_ID_FRIENDLYNAME_ATTCODE)) { $sOrgFriendlyname = $oContact->Get(static::DEFAULT_CONTACT_ORG_ID_FRIENDLYNAME_ATTCODE); } @@ -1391,8 +1300,7 @@ class UserRights $sFirstname = null; $oContact = static::GetContactObject(); - if(!is_null($oContact) && MetaModel::IsValidAttCode(get_class($oContact), static::DEFAULT_CONTACT_FIRSTNAME_ATTCODE)) - { + if (!is_null($oContact) && MetaModel::IsValidAttCode(get_class($oContact), static::DEFAULT_CONTACT_FIRSTNAME_ATTCODE)) { $sFirstname = $oContact->Get(static::DEFAULT_CONTACT_FIRSTNAME_ATTCODE); } @@ -1412,8 +1320,7 @@ class UserRights $sFriendlyname = null; $oContact = static::GetContactObject(); - if(!is_null($oContact)) - { + if (!is_null($oContact)) { $sFriendlyname = $oContact->GetRawName(); } @@ -1425,12 +1332,9 @@ class UserRights */ public static function GetContactObject() { - if (is_null(self::$m_oUser)) - { + if (is_null(self::$m_oUser)) { return null; - } - else - { + } else { return self::$m_oUser->GetContactObject(); } } @@ -1445,16 +1349,12 @@ class UserRights */ public static function GetUserFriendlyName($sLogin = '') { - if (empty($sLogin)) - { + if (empty($sLogin)) { $oUser = self::$m_oUser; - } - else - { + } else { $oUser = self::FindUser($sLogin); } - if (is_null($oUser)) - { + if (is_null($oUser)) { return ''; } return $oUser->GetFriendlyName(); @@ -1488,8 +1388,7 @@ class UserRights */ public static function IsImpersonated() { - if (is_null(self::$m_oRealUser)) - { + if (is_null(self::$m_oRealUser)) { return false; } return true; @@ -1500,8 +1399,7 @@ class UserRights */ public static function GetRealUser() { - if (is_null(self::$m_oRealUser)) - { + if (is_null(self::$m_oRealUser)) { return ''; } return self::$m_oRealUser->Get('login'); @@ -1519,7 +1417,8 @@ class UserRights * @return int|string ID of the connected user : if impersonate then use {@see m_oRealUser}, else {@see m_oUser}. If no user set then return '' * @since 2.6.5 2.7.6 3.0.0 N°4289 method creation */ - public static function GetConnectedUserId() { + public static function GetConnectedUserId() + { if (false === is_null(static::$m_oRealUser)) { return static::$m_oRealUser->GetKey(); } @@ -1535,8 +1434,7 @@ class UserRights */ public static function GetRealUserId() { - if (is_null(self::$m_oRealUser)) - { + if (is_null(self::$m_oRealUser)) { return ''; } return self::$m_oRealUser->GetKey(); @@ -1547,8 +1445,7 @@ class UserRights */ public static function GetRealUserFriendlyName() { - if (is_null(self::$m_oRealUser)) - { + if (is_null(self::$m_oRealUser)) { return ''; } return self::$m_oRealUser->GetFriendlyName(); @@ -1559,8 +1456,7 @@ class UserRights */ protected static function CheckLogin() { - if (!self::IsLoggedIn()) - { + if (!self::IsLoggedIn()) { //throw new UserRightException('No user logged in', array()); return false; } @@ -1575,26 +1471,25 @@ class UserRights * * @return bool|\Expression */ - public static function GetSelectFilter($sClass, $aSettings = array()) + public static function GetSelectFilter($sClass, $aSettings = []) { // When initializing, we need to let everything pass trough - if (!self::CheckLogin()) {return true;} + if (!self::CheckLogin()) { + return true; + } - if (self::IsAdministrator()) {return true;} + if (self::IsAdministrator()) { + return true; + } - try - { + try { // Check Bug 1436 for details - if (MetaModel::HasCategory($sClass, 'bizmodel') || MetaModel::HasCategory($sClass, 'silo') || MetaModel::HasCategory($sClass, 'filter')) - { + if (MetaModel::HasCategory($sClass, 'bizmodel') || MetaModel::HasCategory($sClass, 'silo') || MetaModel::HasCategory($sClass, 'filter')) { return self::$m_oAddOn->GetSelectFilter(self::$m_oUser, $sClass, $aSettings); - } - else - { + } else { return true; } - } catch (Exception $e) - { + } catch (Exception $e) { return false; } } @@ -1611,50 +1506,61 @@ class UserRights public static function IsActionAllowed($sClass, $iActionCode, $oInstanceSet = null, $oUser = null) { // When initializing, we need to let everything pass trough - if (!self::CheckLogin()) return UR_ALLOWED_YES; - - if (MetaModel::DBIsReadOnly()) - { - if ($iActionCode == UR_ACTION_CREATE) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_MODIFY) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_BULK_MODIFY) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_DELETE) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_BULK_DELETE) return UR_ALLOWED_NO; + if (!self::CheckLogin()) { + return UR_ALLOWED_YES; } - $aPredefinedObjects = call_user_func(array($sClass, 'GetPredefinedObjects')); - if ($aPredefinedObjects != null) - { + if (MetaModel::DBIsReadOnly()) { + if ($iActionCode == UR_ACTION_CREATE) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_MODIFY) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_BULK_MODIFY) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_DELETE) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_BULK_DELETE) { + return UR_ALLOWED_NO; + } + } + + $aPredefinedObjects = call_user_func([$sClass, 'GetPredefinedObjects']); + if ($aPredefinedObjects != null) { // As opposed to the read-only DB, modifying an object is allowed // (the constant columns will be marked as read-only) // - if ($iActionCode == UR_ACTION_CREATE) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_DELETE) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_BULK_DELETE) return UR_ALLOWED_NO; + if ($iActionCode == UR_ACTION_CREATE) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_DELETE) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_BULK_DELETE) { + return UR_ALLOWED_NO; + } } - if (self::IsAdministrator($oUser)) return UR_ALLOWED_YES; + if (self::IsAdministrator($oUser)) { + return UR_ALLOWED_YES; + } - if (MetaModel::HasCategory($sClass, 'bizmodel') || MetaModel::HasCategory($sClass, 'grant_by_profile')) - { - if (is_null($oUser)) - { + if (MetaModel::HasCategory($sClass, 'bizmodel') || MetaModel::HasCategory($sClass, 'grant_by_profile')) { + if (is_null($oUser)) { $oUser = self::$m_oUser; } - if ($iActionCode == UR_ACTION_CREATE) - { + if ($iActionCode == UR_ACTION_CREATE) { // The addons currently DO NOT handle the case "CREATE" // Therefore it is considered to be equivalent to "MODIFY" $iActionCode = UR_ACTION_MODIFY; } return self::$m_oAddOn->IsActionAllowed($oUser, $sClass, $iActionCode, $oInstanceSet); - } - elseif(($iActionCode == UR_ACTION_READ) && MetaModel::HasCategory($sClass, 'view_in_gui')) - { + } elseif (($iActionCode == UR_ACTION_READ) && MetaModel::HasCategory($sClass, 'view_in_gui')) { return UR_ALLOWED_YES; - } - else - { + } else { // Other classes could be edited/listed by the administrators return UR_ALLOWED_NO; } @@ -1672,25 +1578,24 @@ class UserRights public static function IsStimulusAllowed($sClass, $sStimulusCode, /*dbObjectSet*/ $oInstanceSet = null, $oUser = null) { // When initializing, we need to let everything pass trough - if (!self::CheckLogin()) return true; + if (!self::CheckLogin()) { + return true; + } - if (MetaModel::DBIsReadOnly()) - { + if (MetaModel::DBIsReadOnly()) { return false; } - if (self::IsAdministrator($oUser)) return true; + if (self::IsAdministrator($oUser)) { + return true; + } - if (MetaModel::HasCategory($sClass, 'bizmodel')) - { - if (is_null($oUser)) - { + if (MetaModel::HasCategory($sClass, 'bizmodel')) { + if (is_null($oUser)) { $oUser = self::$m_oUser; } return self::$m_oAddOn->IsStimulusAllowed($oUser, $sClass, $sStimulusCode, $oInstanceSet); - } - else - { + } else { // Other classes could be edited/listed by the administrators return false; } @@ -1709,34 +1614,44 @@ class UserRights public static function IsActionAllowedOnAttribute($sClass, $sAttCode, $iActionCode, /*dbObjectSet*/$oInstanceSet = null, $oUser = null) { // When initializing, we need to let everything pass trough - if (!self::CheckLogin()) return UR_ALLOWED_YES; - - if (MetaModel::DBIsReadOnly()) - { - if ($iActionCode == UR_ACTION_MODIFY) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_DELETE) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_BULK_MODIFY) return UR_ALLOWED_NO; - if ($iActionCode == UR_ACTION_BULK_DELETE) return UR_ALLOWED_NO; + if (!self::CheckLogin()) { + return UR_ALLOWED_YES; } - if (self::IsAdministrator($oUser)) return UR_ALLOWED_YES; + if (MetaModel::DBIsReadOnly()) { + if ($iActionCode == UR_ACTION_MODIFY) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_DELETE) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_BULK_MODIFY) { + return UR_ALLOWED_NO; + } + if ($iActionCode == UR_ACTION_BULK_DELETE) { + return UR_ALLOWED_NO; + } + } - if (MetaModel::HasCategory($sClass, 'bizmodel') || MetaModel::HasCategory($sClass, 'grant_by_profile')) - { - if (is_null($oUser)) - { + if (self::IsAdministrator($oUser)) { + return UR_ALLOWED_YES; + } + + if (MetaModel::HasCategory($sClass, 'bizmodel') || MetaModel::HasCategory($sClass, 'grant_by_profile')) { + if (is_null($oUser)) { $oUser = self::$m_oUser; } return self::$m_oAddOn->IsActionAllowedOnAttribute($oUser, $sClass, $sAttCode, $iActionCode, $oInstanceSet); } // this module is forbidden for non admins - if (MetaModel::HasCategory($sClass, 'addon/userrights')) return UR_ALLOWED_NO; + if (MetaModel::HasCategory($sClass, 'addon/userrights')) { + return UR_ALLOWED_NO; + } // the rest is allowed return UR_ALLOWED_YES; - } /** @@ -1746,15 +1661,15 @@ class UserRights */ public static function IsAdministrator($oUser = null) { - if (!self::CheckLogin()) return false; + if (!self::CheckLogin()) { + return false; + } - if (is_null($oUser)) - { + if (is_null($oUser)) { $oUser = self::$m_oUser; } $iUser = $oUser->GetKey(); - if (!isset(self::$m_aAdmins[$iUser])) - { + if (!isset(self::$m_aAdmins[$iUser])) { self::$m_aAdmins[$iUser] = self::$m_oAddOn->IsAdministrator($oUser); } return self::$m_aAdmins[$iUser]; @@ -1767,15 +1682,15 @@ class UserRights */ public static function IsPortalUser($oUser = null) { - if (!self::CheckLogin()) return false; + if (!self::CheckLogin()) { + return false; + } - if (is_null($oUser)) - { + if (is_null($oUser)) { $oUser = self::$m_oUser; } $iUser = $oUser->GetKey(); - if (!isset(self::$m_aPortalUsers[$iUser])) - { + if (!isset(self::$m_aPortalUsers[$iUser])) { self::$m_aPortalUsers[$iUser] = self::$m_oAddOn->IsPortalUser($oUser); } return self::$m_aPortalUsers[$iUser]; @@ -1785,29 +1700,26 @@ class UserRights * @return array */ public static function GetAllowedPortals() - { - $aAllowedPortals = array(); - $aPortalsConf = PortalDispatcherData::GetData(); - $aDispatchers = array(); - foreach ($aPortalsConf as $sPortalId => $aConf) - { - $sHandlerClass = $aConf['handler']; - $aDispatchers[$sPortalId] = new $sHandlerClass($sPortalId); - } + { + $aAllowedPortals = []; + $aPortalsConf = PortalDispatcherData::GetData(); + $aDispatchers = []; + foreach ($aPortalsConf as $sPortalId => $aConf) { + $sHandlerClass = $aConf['handler']; + $aDispatchers[$sPortalId] = new $sHandlerClass($sPortalId); + } - foreach ($aDispatchers as $sPortalId => $oDispatcher) - { - if ($oDispatcher->IsUserAllowed()) - { - $aAllowedPortals[] = array( - 'id' => $sPortalId, - 'label' => $oDispatcher->GetLabel(), - 'url' => $oDispatcher->GetUrl(), - ); - } - } - return $aAllowedPortals; - } + foreach ($aDispatchers as $sPortalId => $oDispatcher) { + if ($oDispatcher->IsUserAllowed()) { + $aAllowedPortals[] = [ + 'id' => $sPortalId, + 'label' => $oDispatcher->GetLabel(), + 'url' => $oDispatcher->GetUrl(), + ]; + } + } + return $aAllowedPortals; + } /** * @see UR_ACTION_READ, UR_ACTION_MODIFY, ... @@ -1821,60 +1733,48 @@ class UserRights * @throws \DictExceptionMissingString * @throws \CoreException */ - public static function GetAllowedClasses($iActionCode, $aCategories = array('bizmodel'), $bWithLabels = false, $oUser = null) - { - $aAllowedClasses = []; - foreach(MetaModel::GetClasses(implode(',', $aCategories)) as $sClass) - { - if(static::IsActionAllowed($sClass, $iActionCode, null, $oUser) === UR_ALLOWED_YES) - { - if($bWithLabels) - { - $aAllowedClasses[$sClass] = MetaModel::GetName($sClass); - } - else - { - $aAllowedClasses[] = $sClass; - } - } - } + public static function GetAllowedClasses($iActionCode, $aCategories = ['bizmodel'], $bWithLabels = false, $oUser = null) + { + $aAllowedClasses = []; + foreach (MetaModel::GetClasses(implode(',', $aCategories)) as $sClass) { + if (static::IsActionAllowed($sClass, $iActionCode, null, $oUser) === UR_ALLOWED_YES) { + if ($bWithLabels) { + $aAllowedClasses[$sClass] = MetaModel::GetName($sClass); + } else { + $aAllowedClasses[] = $sClass; + } + } + } - // Sort by label - if($bWithLabels) - { - asort($aAllowedClasses); - } + // Sort by label + if ($bWithLabels) { + asort($aAllowedClasses); + } - return $aAllowedClasses; - } + return $aAllowedClasses; + } /** * @param \User|null $oUser * * @return array|mixed */ - public static function ListProfiles($oUser = null) + public static function ListProfiles($oUser = null) { - if (is_null($oUser)) - { + if (is_null($oUser)) { $oUser = self::$m_oUser; } - if ($oUser === null) - { + if ($oUser === null) { // Not logged in: no profile at all - $aProfiles = array(); - } - elseif ((self::$m_oUser !== null) && ($oUser->GetKey() == self::$m_oUser->GetKey())) - { + $aProfiles = []; + } elseif ((self::$m_oUser !== null) && ($oUser->GetKey() == self::$m_oUser->GetKey())) { // Data about the current user can be found into the session data - if (Session::IsSet('profile_list')) - { + if (Session::IsSet('profile_list')) { $aProfiles = Session::Get('profile_list'); } } - if (!isset($aProfiles)) - { + if (!isset($aProfiles)) { $aProfiles = self::$m_oAddOn->ListProfiles($oUser); } return $aProfiles; @@ -1899,14 +1799,12 @@ class UserRights */ public static function FlushPrivileges($bResetAdminCache = false) { - if ($bResetAdminCache) - { - self::$m_aAdmins = array(); - self::$m_aPortalUsers = array(); + if ($bResetAdminCache) { + self::$m_aAdmins = []; + self::$m_aPortalUsers = []; } self::_ResetSessionCache(); - if (self::$m_oAddOn) - { + if (self::$m_oAddOn) { self::$m_oAddOn->FlushPrivileges(); } } @@ -1937,25 +1835,25 @@ class UserRights } if (! isset(self::$m_aCacheUsers[$sAuthentication]) || ! array_key_exists($sLogin, self::$m_aCacheUsers[$sAuthentication])) { - switch($sAuthentication) { + switch ($sAuthentication) { case 'external': - $sBaseClass = 'UserExternal'; - break; + $sBaseClass = 'UserExternal'; + break; case 'internal': - $sBaseClass = 'UserInternal'; - break; + $sBaseClass = 'UserInternal'; + break; default: - echo "

        sAuthentication = $sAuthentication

        \n"; - assert(false); // should never happen + echo "

        sAuthentication = $sAuthentication

        \n"; + assert(false); // should never happen } $oSearch = DBObjectSearch::FromOQL("SELECT $sBaseClass WHERE login = :login"); $oSearch->AllowAllData(); if (!$bAllowDisabledUsers) { $oSearch->AddCondition('status', 'enabled'); } - $oSet = new DBObjectSet($oSearch, array(), array('login' => $sLogin)); + $oSet = new DBObjectSet($oSearch, [], ['login' => $sLogin]); $oUser = $oSet->fetch(); self::$m_aCacheUsers[$sAuthentication][$sLogin] = $oUser; @@ -1972,7 +1870,7 @@ class UserRights { self::$m_aCacheUsers = [ 'internal' => [], 'external' => [] ]; } - + /** * @param string$sClass * @param array $aAllowedOrgs @@ -1985,7 +1883,7 @@ class UserRights * @throws \MySQLException * @throws \MySQLHasGoneAwayException */ - public static function MakeSelectFilter($sClass, $aAllowedOrgs, $aSettings = array(), $sAttCode = null) + public static function MakeSelectFilter($sClass, $aAllowedOrgs, $aSettings = [], $sAttCode = null) { return self::$m_oAddOn->MakeSelectFilter($sClass, $aAllowedOrgs, $aSettings, $sAttCode); } @@ -1997,15 +1895,14 @@ class UserRights $oConfig = MetaModel::GetConfig(); $bSessionIdRegeneration = $oConfig->Get('regenerate_session_id_enabled'); - if ($bSessionIdRegeneration) - { + if ($bSessionIdRegeneration) { // Protection against session fixation/injection: generate a new session id. // Alas a PHP bug (technically a bug in the memcache session handler, https://bugs.php.net/bug.php?id=71187) // causes session_regenerate_id to fail with a catchable fatal error in PHP 7.0 if the session handler is memcache(d). // The bug has been fixed in PHP 7.2, but in case session_regenerate_id() // fails we just silently ignore the error and keep the same session id... - $old_error_handler = set_error_handler(array(__CLASS__, 'VoidErrorHandler')); + $old_error_handler = set_error_handler([__CLASS__, 'VoidErrorHandler']); Session::RegenerateId(true); if ($old_error_handler !== null) { set_error_handler($old_error_handler); @@ -2046,10 +1943,10 @@ class UserRights */ class ActionChecker { - var $oFilter; - var $iActionCode; - var $iAllowedCount = null; - var $aAllowedIDs = null; + public $oFilter; + public $iActionCode; + public $iAllowedCount = null; + public $aAllowedIDs = null; public function __construct(DBSearch $oFilter, $iActionCode) { @@ -2065,7 +1962,9 @@ class ActionChecker */ public function GetAllowedCount() { - if ($this->iAllowedCount == null) $this->CheckObjects(); + if ($this->iAllowedCount == null) { + $this->CheckObjects(); + } return $this->iAllowedCount; } @@ -2076,7 +1975,9 @@ class ActionChecker */ public function GetAllowedIDs() { - if ($this->aAllowedIDs == null) $this->IsAllowed(); + if ($this->aAllowedIDs == null) { + $this->IsAllowed(); + } return $this->aAllowedIDs; } @@ -2089,36 +1990,27 @@ class ActionChecker $sClass = $this->oFilter->GetClass(); $oSet = new DBObjectSet($this->oFilter); $iActionAllowed = UserRights::IsActionAllowed($sClass, $this->iActionCode, $oSet); - if ($iActionAllowed == UR_ALLOWED_DEPENDS) - { + if ($iActionAllowed == UR_ALLOWED_DEPENDS) { // Check for each object if the action is allowed or not - $this->aAllowedIDs = array(); + $this->aAllowedIDs = []; $oSet->Rewind(); $this->iAllowedCount = 0; - while($oObj = $oSet->Fetch()) - { - $oObjSet = DBObjectSet::FromArray($sClass, array($oObj)); - if (UserRights::IsActionAllowed($sClass, $this->iActionCode, $oObjSet) == UR_ALLOWED_NO) - { + while ($oObj = $oSet->Fetch()) { + $oObjSet = DBObjectSet::FromArray($sClass, [$oObj]); + if (UserRights::IsActionAllowed($sClass, $this->iActionCode, $oObjSet) == UR_ALLOWED_NO) { $this->aAllowedIDs[$oObj->GetKey()] = false; - } - else - { + } else { // Assume UR_ALLOWED_YES, since there is just one object ! $this->aAllowedIDs[$oObj->GetKey()] = true; $this->iAllowedCount++; } } - } - else if ($iActionAllowed == UR_ALLOWED_YES) - { + } elseif ($iActionAllowed == UR_ALLOWED_YES) { $this->iAllowedCount = $oSet->Count(); - $this->aAllowedIDs = array(); // Optimization: not filled when Ok for all objects - } - else // UR_ALLOWED_NO - { + $this->aAllowedIDs = []; // Optimization: not filled when Ok for all objects + } else { // UR_ALLOWED_NO $this->iAllowedCount = 0; - $this->aAllowedIDs = array(); + $this->aAllowedIDs = []; } return $iActionAllowed; } @@ -2129,7 +2021,7 @@ class ActionChecker */ class StimulusChecker extends ActionChecker { - var $sState = null; + public $sState = null; public mixed $iState = null; @@ -2146,59 +2038,49 @@ class StimulusChecker extends ActionChecker public function IsAllowed() { $sClass = $this->oFilter->GetClass(); - if (MetaModel::IsAbstract($sClass)) return UR_ALLOWED_NO; // Safeguard, not implemented if the base class of the set is abstract ! + if (MetaModel::IsAbstract($sClass)) { + return UR_ALLOWED_NO; + } // Safeguard, not implemented if the base class of the set is abstract ! $oSet = new DBObjectSet($this->oFilter); - $iActionAllowed = UserRights::IsStimulusAllowed($sClass, $this->iActionCode, $oSet); - if ($iActionAllowed == UR_ALLOWED_NO) - { + $iActionAllowed = UserRights::IsStimulusAllowed($sClass, $this->iActionCode, $oSet); + if ($iActionAllowed == UR_ALLOWED_NO) { $this->iAllowedCount = 0; - $this->aAllowedIDs = array(); - } - else // Even if UR_ALLOWED_YES, we need to check if each object is in the appropriate state - { + $this->aAllowedIDs = []; + } else { // Even if UR_ALLOWED_YES, we need to check if each object is in the appropriate state // Hmmm, may not be needed right now because we limit the "multiple" action to object in // the same state... may be useful later on if we want to extend this behavior... // Check for each object if the action is allowed or not - $this->aAllowedIDs = array(); + $this->aAllowedIDs = []; $oSet->Rewind(); $iAllowedCount = 0; $iActionAllowed = UR_ALLOWED_DEPENDS; - while($oObj = $oSet->Fetch()) - { + while ($oObj = $oSet->Fetch()) { $aTransitions = $oObj->EnumTransitions(); - if (array_key_exists($this->iActionCode, $aTransitions)) - { + if (array_key_exists($this->iActionCode, $aTransitions)) { // Temporary optimization possible: since the current implementation // of IsActionAllowed does not perform a 'per instance' check, we could // skip this second validation phase and assume it would return UR_ALLOWED_YES - $oObjSet = DBObjectSet::FromArray($sClass, array($oObj)); - if (!UserRights::IsStimulusAllowed($sClass, $this->iActionCode, $oObjSet)) - { + $oObjSet = DBObjectSet::FromArray($sClass, [$oObj]); + if (!UserRights::IsStimulusAllowed($sClass, $this->iActionCode, $oObjSet)) { $this->aAllowedIDs[$oObj->GetKey()] = false; - } - else - { + } else { // Assume UR_ALLOWED_YES, since there is just one object ! $this->aAllowedIDs[$oObj->GetKey()] = true; $this->iState = $oObj->GetState(); $this->iAllowedCount++; } - } - else - { + } else { $this->aAllowedIDs[$oObj->GetKey()] = false; } } } - if ($this->iAllowedCount == $oSet->Count()) - { + if ($this->iAllowedCount == $oSet->Count()) { $iActionAllowed = UR_ALLOWED_YES; } - if ($this->iAllowedCount == 0) - { + if ($this->iAllowedCount == 0) { $iActionAllowed = UR_ALLOWED_NO; } diff --git a/core/xmlbulkexport.class.inc.php b/core/xmlbulkexport.class.inc.php index 5a61eb87d..c31968f3d 100644 --- a/core/xmlbulkexport.class.inc.php +++ b/core/xmlbulkexport.class.inc.php @@ -1,4 +1,5 @@ array('xml_no_options'))); + return array_merge(parent::EnumFormParts(), ['xml_options' => ['xml_no_options']]); } /** @@ -63,17 +64,17 @@ class XMLBulkExport extends BulkExport break; default: - return parent:: GetFormPart($oP, $sPartId); + return parent::GetFormPart($oP, $sPartId); } } - + public function ReadParameters() { parent::ReadParameters(); - + $this->aStatusInfo['linksets'] = (utils::ReadParam('linksets', 0) == 1); } - + protected function GetSampleData($oObj, $sAttCode) { $sRet = ($sAttCode == 'id') ? $oObj->GetKey() : $oObj->GetAsXML($sAttCode); @@ -83,10 +84,8 @@ class XMLBulkExport extends BulkExport public function GetHeader() { // Check permissions - foreach($this->oSearch->GetSelectedClasses() as $sAlias => $sClass) - { - if (UserRights::IsActionAllowed($sClass, UR_ACTION_BULK_READ) != UR_ALLOWED_YES) - { + foreach ($this->oSearch->GetSelectedClasses() as $sAlias => $sClass) { + if (UserRights::IsActionAllowed($sClass, UR_ACTION_BULK_READ) != UR_ALLOWED_YES) { throw new Exception("You do not have enough permissions to bulk read data of class '$sClass' (alias: $sAlias)"); } } @@ -105,36 +104,28 @@ class XMLBulkExport extends BulkExport $iCount = 0; $sData = ''; - + $oSet = new DBObjectSet($this->oSearch); $oSet->SetLimit($this->iChunkSize, $this->aStatusInfo['position']); - + $aClasses = $this->oSearch->GetSelectedClasses(); - $aAuthorizedClasses = array(); - $aClass2Attributes = array(); - foreach($aClasses as $sAlias => $sClassName) - { - if (UserRights::IsActionAllowed($sClassName, UR_ACTION_BULK_READ, $oSet) != UR_ALLOWED_NO) - { + $aAuthorizedClasses = []; + $aClass2Attributes = []; + foreach ($aClasses as $sAlias => $sClassName) { + if (UserRights::IsActionAllowed($sClassName, UR_ACTION_BULK_READ, $oSet) != UR_ALLOWED_NO) { $aAuthorizedClasses[$sAlias] = $sClassName; - $aAttributes = array(); - foreach(MetaModel::ListAttributeDefs($sClassName) as $sAttCode=>$oAttDef) - { - if ($oAttDef->IsLinkSet() && !$this->aStatusInfo['linksets']) - { + $aAttributes = []; + foreach (MetaModel::ListAttributeDefs($sClassName) as $sAttCode => $oAttDef) { + if ($oAttDef->IsLinkSet() && !$this->aStatusInfo['linksets']) { continue; } - if ($oAttDef->IsExternalField()) - { + if ($oAttDef->IsExternalField()) { continue; } $aAttributes[$sAttCode] = $oAttDef; - if ($oAttDef->IsExternalKey()) - { - foreach(MetaModel::ListAttributeDefs($sClassName) as $sSubAttCode=>$oSubAttDef) - { - if ($oSubAttDef->IsExternalField() && ($oSubAttDef->GetKeyAttCode() == $sAttCode)) - { + if ($oAttDef->IsExternalKey()) { + foreach (MetaModel::ListAttributeDefs($sClassName) as $sSubAttCode => $oSubAttDef) { + if ($oSubAttDef->IsExternalField() && ($oSubAttDef->GetKeyAttCode() == $sAttCode)) { $aAttributes[$sAttCode.'_friendlyname'] = MetaModel::GetAttributeDef($sClassName, $sAttCode.'_friendlyname'); $aAttributes[$sSubAttCode] = $oSubAttDef; } @@ -147,64 +138,49 @@ class XMLBulkExport extends BulkExport $iPreviousTimeLimit = ini_get('max_execution_time'); $iLoopTimeLimit = MetaModel::GetConfig()->Get('max_execution_time_per_loop'); - - while ($aObjects = $oSet->FetchAssoc()) - { + + while ($aObjects = $oSet->FetchAssoc()) { set_time_limit(intval($iLoopTimeLimit)); - if (count($aAuthorizedClasses) > 1) - { + if (count($aAuthorizedClasses) > 1) { $sData .= "\n"; } - foreach($aAuthorizedClasses as $sAlias => $sClassName) - { + foreach ($aAuthorizedClasses as $sAlias => $sClassName) { $oObj = $aObjects[$sAlias]; - if (is_null($oObj)) - { + if (is_null($oObj)) { $sData .= "<$sClassName alias=\"$sAlias\" id=\"null\">\n"; - } - else - { + } else { $sClassName = get_class($oObj); $sData .= "<$sClassName alias=\"$sAlias\" id=\"".$oObj->GetKey()."\">\n"; } - foreach($aClass2Attributes[$sAlias] as $sAttCode=>$oAttDef) - { - if (is_null($oObj)) - { + foreach ($aClass2Attributes[$sAlias] as $sAttCode => $oAttDef) { + if (is_null($oObj)) { $sData .= "<$sAttCode>null\n"; - } - else - { + } else { $sValue = $oObj->GetAsXML($sAttCode, $this->bLocalizeOutput); $sData .= "<$sAttCode>$sValue\n"; } } $sData .= "\n"; } - if (count($aAuthorizedClasses) > 1) - { + if (count($aAuthorizedClasses) > 1) { $sData .= "\n"; } $iCount++; } - + set_time_limit(intval($iPreviousTimeLimit)); $this->aStatusInfo['position'] += $this->iChunkSize; - if ($this->aStatusInfo['total'] == 0) - { + if ($this->aStatusInfo['total'] == 0) { $iPercentage = 100; - } - else - { - $iPercentage = floor(min(100.0, 100.0*$this->aStatusInfo['position']/$this->aStatusInfo['total'])); + } else { + $iPercentage = floor(min(100.0, 100.0 * $this->aStatusInfo['position'] / $this->aStatusInfo['total'])); } - if ($iCount < $this->iChunkSize) - { + if ($iCount < $this->iChunkSize) { $sRetCode = 'done'; } - $aStatus = array('code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage); + $aStatus = ['code' => $sRetCode, 'message' => Dict::S('Core:BulkExport:RetrievingData'), 'percentage' => $iPercentage]; return $sData; } @@ -217,7 +193,7 @@ class XMLBulkExport extends BulkExport public function GetSupportedFormats() { - return array('xml' => Dict::S('Core:BulkExport:XMLFormat')); + return ['xml' => Dict::S('Core:BulkExport:XMLFormat')]; } public function GetMimeType() diff --git a/datamodels/2.x/authent-cas/dictionaries/cs.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/cs.dict.authent-cas.php index 6786003c8..ff1316346 100644 --- a/datamodels/2.x/authent-cas/dictionaries/cs.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/cs.dict.authent-cas.php @@ -1,16 +1,17 @@ 'Uživatel není oprávněn', 'CAS:Login:SignIn' => 'Přihlásit se prostřednictvím CAS', 'CAS:Login:SignInTooltip' => 'Klikni zde pro příhlášení prostřednictvím CAS serveru', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/da.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/da.dict.authent-cas.php index e1e399ae2..3947deb07 100644 --- a/datamodels/2.x/authent-cas/dictionaries/da.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/da.dict.authent-cas.php @@ -1,16 +1,17 @@ 'User not allowed~~', 'CAS:Login:SignIn' => 'Sign in with CAS~~', 'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server~~', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/de.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/de.dict.authent-cas.php index adba31af2..1e47de290 100644 --- a/datamodels/2.x/authent-cas/dictionaries/de.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/de.dict.authent-cas.php @@ -1,16 +1,17 @@ 'Benutzer ist nicht zugelassen', 'CAS:Login:SignIn' => 'Anmeldung mit CAS', 'CAS:Login:SignInTooltip' => 'Hier klicken, um sich am CAS-Server zu authentifizieren', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/en.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/en.dict.authent-cas.php index ceff23433..514a7798d 100644 --- a/datamodels/2.x/authent-cas/dictionaries/en.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/en.dict.authent-cas.php @@ -1,4 +1,5 @@ 'User not allowed', 'CAS:Login:SignIn' => 'Sign in with CAS', 'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/en_gb.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/en_gb.dict.authent-cas.php index c41eceabb..47c06b8c0 100644 --- a/datamodels/2.x/authent-cas/dictionaries/en_gb.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/en_gb.dict.authent-cas.php @@ -1,4 +1,5 @@ 'User not allowed', 'CAS:Login:SignIn' => 'Sign in with CAS', 'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/es_cr.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/es_cr.dict.authent-cas.php index 294418d1f..315e49c6e 100644 --- a/datamodels/2.x/authent-cas/dictionaries/es_cr.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/es_cr.dict.authent-cas.php @@ -1,14 +1,15 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'CAS:Error:UserNotAllowed' => 'Usuario no permitido', 'CAS:Login:SignIn' => 'Iniciar sesión con CAS', 'CAS:Login:SignInTooltip' => 'Click para autenticarse con servidor CAS', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/fr.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/fr.dict.authent-cas.php index 39ed72684..cf2efb79f 100644 --- a/datamodels/2.x/authent-cas/dictionaries/fr.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/fr.dict.authent-cas.php @@ -1,16 +1,17 @@ 'Utilisateur non autorisé', 'CAS:Login:SignIn' => 'S\'identifier avec CAS', 'CAS:Login:SignInTooltip' => 'Cliquer ici pour s\'identifier avec le serveur CAS', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/hu.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/hu.dict.authent-cas.php index 0040a0e41..5b69248f0 100644 --- a/datamodels/2.x/authent-cas/dictionaries/hu.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/hu.dict.authent-cas.php @@ -1,16 +1,17 @@ 'Nem engedélyezett felhasználó', 'CAS:Login:SignIn' => 'Bejelentkezés CAS szerverrel', 'CAS:Login:SignInTooltip' => 'Kattintson ide az azonosításhoz a CAS szerveren', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/it.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/it.dict.authent-cas.php index 9f7d0ace2..5a20d8229 100644 --- a/datamodels/2.x/authent-cas/dictionaries/it.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/it.dict.authent-cas.php @@ -1,16 +1,17 @@ 'Utente non autorizzato', 'CAS:Login:SignIn' => 'Accedi con CAS', 'CAS:Login:SignInTooltip' => 'Clicca qui per autenticarti con il server CAS', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/ja.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/ja.dict.authent-cas.php index 947cf59ab..1b9f12aeb 100644 --- a/datamodels/2.x/authent-cas/dictionaries/ja.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/ja.dict.authent-cas.php @@ -1,16 +1,17 @@ 'User not allowed~~', 'CAS:Login:SignIn' => 'Sign in with CAS~~', 'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server~~', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/nl.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/nl.dict.authent-cas.php index ee095a33d..de8291ab1 100644 --- a/datamodels/2.x/authent-cas/dictionaries/nl.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/nl.dict.authent-cas.php @@ -1,17 +1,18 @@ (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'CAS:Error:UserNotAllowed' => 'Gebruiker heeft onvoldoende rechten.', 'CAS:Login:SignIn' => 'Inloggen met CAS', 'CAS:Login:SignInTooltip' => 'Klik hier om aan te melden via de CAS-server', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/pl.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/pl.dict.authent-cas.php index e61644cda..d814d8bef 100644 --- a/datamodels/2.x/authent-cas/dictionaries/pl.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/pl.dict.authent-cas.php @@ -1,16 +1,17 @@ 'Użytkownik niedozwolony', 'CAS:Login:SignIn' => 'Zaloguj się za pomocą CAS', 'CAS:Login:SignInTooltip' => 'Kliknij tutaj, aby uwierzytelnić się na serwerze CAS', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/pt_br.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/pt_br.dict.authent-cas.php index b823f19f6..25307081a 100644 --- a/datamodels/2.x/authent-cas/dictionaries/pt_br.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/pt_br.dict.authent-cas.php @@ -1,16 +1,17 @@ 'Usuário não permitido', 'CAS:Login:SignIn' => 'Autenticar com CAS', 'CAS:Login:SignInTooltip' => 'Clique aqui para se autenticar no servidor CAS', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/ru.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/ru.dict.authent-cas.php index a2f065dad..c3833d2d5 100644 --- a/datamodels/2.x/authent-cas/dictionaries/ru.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/ru.dict.authent-cas.php @@ -1,17 +1,18 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'CAS:Error:UserNotAllowed' => 'Вход не разрешён', 'CAS:Login:SignIn' => 'Вход через CAS', 'CAS:Login:SignInTooltip' => 'Нажмите здесь, чтобы войти через CAS сервер', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/sk.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/sk.dict.authent-cas.php index 18457a026..13ab799f1 100644 --- a/datamodels/2.x/authent-cas/dictionaries/sk.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/sk.dict.authent-cas.php @@ -1,16 +1,17 @@ 'User not allowed~~', 'CAS:Login:SignIn' => 'Sign in with CAS~~', 'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server~~', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/tr.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/tr.dict.authent-cas.php index a74c65a06..1d29cf6fe 100644 --- a/datamodels/2.x/authent-cas/dictionaries/tr.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/tr.dict.authent-cas.php @@ -1,16 +1,17 @@ 'User not allowed~~', 'CAS:Login:SignIn' => 'Sign in with CAS~~', 'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server~~', -)); +]); diff --git a/datamodels/2.x/authent-cas/dictionaries/zh_cn.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/zh_cn.dict.authent-cas.php index be6675f5b..1fc970f5d 100644 --- a/datamodels/2.x/authent-cas/dictionaries/zh_cn.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/zh_cn.dict.authent-cas.php @@ -1,12 +1,13 @@ '用户被禁止登录', 'CAS:Login:SignIn' => '使用CAS登录', 'CAS:Login:SignInTooltip' => '点击这里使用CAS服务器认证', -)); +]); diff --git a/datamodels/2.x/authent-cas/src/CASLog.php b/datamodels/2.x/authent-cas/src/CASLog.php index 86b41b692..f06a5dae1 100644 --- a/datamodels/2.x/authent-cas/src/CASLog.php +++ b/datamodels/2.x/authent-cas/src/CASLog.php @@ -1,4 +1,5 @@ LogAPI::LEVEL_DEBUG, ]; - public function emergency($message, array $context = array()):void + public function emergency($message, array $context = []): void { CASLog::Error('EMERGENCY: '.$message, CASLog::CHANNEL_DEFAULT, $context); IssueLog::Error('EMERGENCY: '.$message, CASLog::CHANNEL_DEFAULT, $context); } - public function alert($message, array $context = array()):void + public function alert($message, array $context = []): void { CASLog::Error('ALERT: '.$message, CASLog::CHANNEL_DEFAULT, $context); IssueLog::Error('ALERT: '.$message, CASLog::CHANNEL_DEFAULT, $context); } - public function critical($message, array $context = array()):void + public function critical($message, array $context = []): void { CASLog::Error('CRITICAL: '.$message, CASLog::CHANNEL_DEFAULT, $context); IssueLog::Error('CRITICAL: '.$message, CASLog::CHANNEL_DEFAULT, $context); } - public function error($message, array $context = array()):void + public function error($message, array $context = []): void { CASLog::Error('ERROR: '.$message, CASLog::CHANNEL_DEFAULT, $context); IssueLog::Error('ERROR: '.$message, CASLog::CHANNEL_DEFAULT, $context); } - public function warning($message, array $context = array()):void + public function warning($message, array $context = []): void { CASLog::Warning('WARNING: '.$message, CASLog::CHANNEL_DEFAULT, $context); } - public function notice($message, array $context = array()):void + public function notice($message, array $context = []): void { CASLog::Info('NOTICE: '.$message, CASLog::CHANNEL_DEFAULT, $context); } - public function info($message, array $context = array()):void + public function info($message, array $context = []): void { CASLog::Info('INFO: '.$message, CASLog::CHANNEL_DEFAULT, $context); } - public function debug($message, array $context = array()):void + public function debug($message, array $context = []): void { CASLog::Debug('DEBUG: '.$message, CASLog::CHANNEL_DEFAULT, $context); } - public function log($level, $message, array $context = array()):void + public function log($level, $message, array $context = []): void { $sLevel = self::LEVEL_COMPAT[$level] ?? LogAPI::LEVEL_ERROR; CASLog::Log($sLevel, strtoupper($level).": $message", CASLog::CHANNEL_DEFAULT, $context); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/authent-cas/src/CASLoginExtension.php b/datamodels/2.x/authent-cas/src/CASLoginExtension.php index 447b71295..d7825d5e7 100644 --- a/datamodels/2.x/authent-cas/src/CASLoginExtension.php +++ b/datamodels/2.x/authent-cas/src/CASLoginExtension.php @@ -1,4 +1,5 @@ DisplayLogoutPage(false, Dict::S('CAS:Error:UserNotAllowed')); exit(); @@ -135,8 +122,7 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte protected function OnConnected(&$iErrorCode) { - if (Session::Get('login_mode') == static::LOGIN_MODE) - { + if (Session::Get('login_mode') == static::LOGIN_MODE) { Session::Set('can_logoff', true); return LoginWebPage::CheckLoggedUser($iErrorCode); } @@ -149,8 +135,7 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte public function LogoutAction() { $sCASLogoutUrl = Config::Get('cas_logout_redirect_service'); - if (empty($sCASLogoutUrl)) - { + if (empty($sCASLogoutUrl)) { $sCASLogoutUrl = utils::GetAbsoluteUrlAppRoot().'pages/UI.php'; } static::InitCASClient(); @@ -193,8 +178,8 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte // explode the host list separated by comma and use the first host $hosts = explode(',', $_SERVER['HTTP_X_FORWARDED_HOST']); // see rfc7239#5.3 and rfc7230#2.7.1: port is in HTTP_X_FORWARDED_HOST if non default - return $protocol . $hosts[0]; - } else if (!empty($_SERVER['HTTP_X_FORWARDED_SERVER'])) { + return $protocol.$hosts[0]; + } elseif (!empty($_SERVER['HTTP_X_FORWARDED_SERVER'])) { $server_url = $_SERVER['HTTP_X_FORWARDED_SERVER']; } else { if (empty($_SERVER['SERVER_NAME'])) { @@ -214,23 +199,20 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte $server_url .= ':'; $server_url .= $server_port; } - return $protocol . $server_url; + return $protocol.$server_url; } private function DoUserProvisioning($sLogin) { $bCASUserSynchro = Config::Get('cas_user_synchro'); - if (!$bCASUserSynchro) - { + if (!$bCASUserSynchro) { return; } CMDBObject::SetTrackInfo('CAS/LDAP Synchro'); $oUser = LoginWebPage::FindUser($sLogin, false); - if ($oUser) - { - if ($oUser->Get('status') == 'enabled') - { + if ($oUser) { + if ($oUser->Get('status') == 'enabled') { CASUserProvisioning::UpdateUser($oUser); } return; @@ -246,11 +228,11 @@ class CASLoginExtension extends AbstractLoginFSMExtension implements iLogoutExte $oLoginContext = new LoginTwigContext(); $oLoginContext->SetLoaderPath(APPROOT.'env-'.utils::GetCurrentEnvironment().'/authent-cas/view'); - $aData = array( + $aData = [ 'sLoginMode' => static::LOGIN_MODE, 'sLabel' => Dict::S('CAS:Login:SignIn'), 'sTooltip' => Dict::S('CAS:Login:SignInTooltip'), - ); + ]; $oLoginContext->AddBlockExtension('login_sso_buttons', new LoginBlockExtension('cas_sso_button.html.twig', $aData)); return $oLoginContext; @@ -284,84 +266,66 @@ class CASUserProvisioning $sCASMemberships = Config::Get('cas_memberof'); $bFound = false; - if (!empty($sCASMemberships)) - { + if (!empty($sCASMemberships)) { $sCASMemberOfName = Config::Get('cas_memberof_attribute_name', 'memberOf'); - if (phpCAS::hasAttribute($sCASMemberOfName)) - { + if (phpCAS::hasAttribute($sCASMemberOfName)) { // A list of groups is specified, the user must a be member of (at least) one of them to pass - $aCASMemberships = array(); + $aCASMemberships = []; $aTmp = explode(';', $sCASMemberships); setlocale(LC_ALL, "en_US.utf8"); // !!! WARNING: this is needed to have the iconv //TRANSLIT working fine below !!! - foreach($aTmp as $sGroupName) - { + foreach ($aTmp as $sGroupName) { $aCASMemberships[] = trim(iconv('UTF-8', 'ASCII//TRANSLIT', $sGroupName)); // Just in case remove accents and spaces... } $aMemberOf = phpCAS::getAttribute($sCASMemberOfName); - if (!is_array($aMemberOf)) $aMemberOf = array($aMemberOf); // Just one entry, turn it into an array - $aFilteredGroupNames = array(); - foreach($aMemberOf as $sGroupName) - { + if (!is_array($aMemberOf)) { + $aMemberOf = [$aMemberOf]; + } // Just one entry, turn it into an array + $aFilteredGroupNames = []; + foreach ($aMemberOf as $sGroupName) { phpCAS::log("Info: user if a member of the group: ".$sGroupName); $sGroupName = trim(iconv('UTF-8', 'ASCII//TRANSLIT', $sGroupName)); // Remove accents and spaces as well $aFilteredGroupNames[] = $sGroupName; $bIsMember = false; - foreach($aCASMemberships as $sCASPattern) - { - if (self::IsPattern($sCASPattern)) - { - if (preg_match($sCASPattern, $sGroupName)) - { + foreach ($aCASMemberships as $sCASPattern) { + if (self::IsPattern($sCASPattern)) { + if (preg_match($sCASPattern, $sGroupName)) { $bIsMember = true; break; } - } - else if ($sCASPattern == $sGroupName) - { + } elseif ($sCASPattern == $sGroupName) { $bIsMember = true; break; } } - if ($bIsMember) - { + if ($bIsMember) { // If needed create a new user for this email/profile $bOk = self::CreateCASUser(phpCAS::getUser(), $aMemberOf); - if($bOk) - { + if ($bOk) { $bFound = true; - } - else - { + } else { phpCAS::log("User ".phpCAS::getUser()." cannot be created in iTop. Logging off..."); } break; } } - if($bOk && !$bFound) - { + if ($bOk && !$bFound) { phpCAS::log("User ".phpCAS::getUser().", none of his/her groups (".implode('; ', $aFilteredGroupNames).") match any of the required groups: ".implode('; ', $aCASMemberships)); } - } - else - { + } else { // Too bad, the user is not part of any of the group => not allowed phpCAS::log("No '$sCASMemberOfName' attribute found for user ".phpCAS::getUser().". Are you using the SAML protocol (S1) ?"); } - } - else - { + } else { // No membership: no way to create the user that should exist prior to authentication phpCAS::log("User ".phpCAS::getUser().": missing user account in iTop (or iTop badly configured, Cf setting cas_memberof)"); $bFound = false; } - if (!$bFound) - { + if (!$bFound) { // The user is not part of the allowed groups, => log out $sCASLogoutUrl = Config::Get('cas_logout_redirect_service'); - if (empty($sCASLogoutUrl)) - { + if (empty($sCASLogoutUrl)) { $sCASLogoutUrl = utils::GetAbsoluteUrlAppRoot().'pages/UI.php'; } phpCAS::logoutWithRedirectService($sCASLogoutUrl); // Redirects to the CAS logout page @@ -385,10 +349,11 @@ class CASUserProvisioning { $bCASUpdateProfiles = Config::Get('cas_update_profiles'); $sCASMemberOfName = Config::Get('cas_memberof_attribute_name', 'memberOf'); - if ($bCASUpdateProfiles && (phpCAS::hasAttribute($sCASMemberOfName))) - { + if ($bCASUpdateProfiles && (phpCAS::hasAttribute($sCASMemberOfName))) { $aMemberOf = phpCAS::getAttribute($sCASMemberOfName); - if (!is_array($aMemberOf)) $aMemberOf = array($aMemberOf); // Just one entry, turn it into an array + if (!is_array($aMemberOf)) { + $aMemberOf = [$aMemberOf]; + } // Just one entry, turn it into an array self::SetProfilesFromCAS($oUser, $aMemberOf); } @@ -410,30 +375,24 @@ class CASUserProvisioning */ protected static function CreateCASUser($sLogin, $aGroups) { - if (!MetaModel::IsValidClass('URP_Profiles')) - { + if (!MetaModel::IsValidClass('URP_Profiles')) { phpCAS::log("URP_Profiles is not a valid class. Automatic creation of Users is not supported in this context, sorry."); return false; } $oUser = MetaModel::GetObjectByName('UserExternal', $sLogin, false); - if ($oUser == null) - { + if ($oUser == null) { // Create the user, link it to a contact - if (phpCAS::hasAttribute('mail')) - { + if (phpCAS::hasAttribute('mail')) { $sEmail = phpCAS::getAttribute('mail'); - } - else - { + } else { $sEmail = $sLogin; } phpCAS::log("Info: the user '$sLogin' does not exist. A new UserExternal will be created."); $oSearch = new DBObjectSearch('Person'); $oSearch->AddCondition('email', $sEmail); $oSet = new DBObjectSet($oSearch); - switch($oSet->Count()) - { + switch ($oSet->Count()) { case 0: phpCAS::log("Error: found no contact with the email: '$sEmail'. Cannot create the user in iTop."); return false; @@ -453,9 +412,7 @@ class CASUserProvisioning $oUser->Set('login', $sLogin); $oUser->Set('contactid', $iContactId); $oUser->Set('language', MetaModel::GetConfig()->GetDefaultLanguage()); - } - else - { + } else { phpCAS::log("Info: the user '$sLogin' already exists (id=".$oUser->GetKey().")."); } @@ -474,8 +431,7 @@ class CASUserProvisioning */ protected static function SetProfilesFromCAS($oUser, $aGroups) { - if (!MetaModel::IsValidClass('URP_Profiles')) - { + if (!MetaModel::IsValidClass('URP_Profiles')) { phpCAS::log("URP_Profiles is not a valid class. Automatic creation of Users is not supported in this context, sorry."); return false; } @@ -483,56 +439,42 @@ class CASUserProvisioning // read all the existing profiles $oProfilesSearch = new DBObjectSearch('URP_Profiles'); $oProfilesSet = new DBObjectSet($oProfilesSearch); - $aAllProfiles = array(); - while($oProfile = $oProfilesSet->Fetch()) - { + $aAllProfiles = []; + while ($oProfile = $oProfilesSet->Fetch()) { $aAllProfiles[mb_strtolower($oProfile->GetName())] = $oProfile->GetKey(); } // Translate the CAS/LDAP group names into iTop profile names - $aProfiles = array(); + $aProfiles = []; $sPattern = Config::Get('cas_profile_pattern'); - foreach($aGroups as $sGroupName) - { - if (preg_match($sPattern, $sGroupName, $aMatches)) - { - if (array_key_exists(mb_strtolower($aMatches[1]), $aAllProfiles)) - { + foreach ($aGroups as $sGroupName) { + if (preg_match($sPattern, $sGroupName, $aMatches)) { + if (array_key_exists(mb_strtolower($aMatches[1]), $aAllProfiles)) { $aProfiles[] = $aAllProfiles[mb_strtolower($aMatches[1])]; phpCAS::log("Info: Adding the profile '{$aMatches[1]}' from CAS."); - } - else - { + } else { phpCAS::log("Warning: {$aMatches[1]} is not a valid iTop profile (extracted from group name: '$sGroupName'). Ignored."); } - } - else - { + } else { phpCAS::log("Info: The CAS group '$sGroupName' does not seem to match an iTop pattern. Ignored."); } } - if (count($aProfiles) == 0) - { + if (count($aProfiles) == 0) { phpCAS::log("Info: The user '".$oUser->GetName()."' has no profiles retrieved from CAS. Default profile(s) will be used."); // Second attempt: check if there is/are valid default profile(s) $sCASDefaultProfiles = Config::Get('cas_default_profiles'); $aCASDefaultProfiles = explode(';', $sCASDefaultProfiles); - foreach($aCASDefaultProfiles as $sDefaultProfileName) - { - if (array_key_exists(mb_strtolower($sDefaultProfileName), $aAllProfiles)) - { + foreach ($aCASDefaultProfiles as $sDefaultProfileName) { + if (array_key_exists(mb_strtolower($sDefaultProfileName), $aAllProfiles)) { $aProfiles[] = $aAllProfiles[mb_strtolower($sDefaultProfileName)]; phpCAS::log("Info: Adding the default profile '".$aAllProfiles[mb_strtolower($sDefaultProfileName)]."' from CAS."); - } - else - { + } else { phpCAS::log("Warning: the default profile {$sDefaultProfileName} is not a valid iTop profile. Ignored."); } } - if (count($aProfiles) == 0) - { + if (count($aProfiles) == 0) { phpCAS::log("Error: The user '".$oUser->GetName()."' has no profiles in iTop, and therefore cannot be created."); return false; } @@ -542,8 +484,7 @@ class CASUserProvisioning LoginWebPage::SynchronizeProfiles($oUser, $aProfiles, 'CAS/LDAP Synchro'); phpCAS::log("Info: the user '".$oUser->GetName()."' (id=".$oUser->GetKey().") now has the following profiles: '".implode("', '", $aProfiles)."'."); - if ($oUser->IsModified()) - { + if ($oUser->IsModified()) { $oUser->DBWrite(); } @@ -557,13 +498,10 @@ class CASUserProvisioning */ protected static function IsPattern($sCASPattern) { - if ((substr($sCASPattern, 0, 1) == '/') && (substr($sCASPattern, -1) == '/')) - { + if ((substr($sCASPattern, 0, 1) == '/') && (substr($sCASPattern, -1) == '/')) { // the string is enclosed by slashes, let's assume it's a pattern return true; - } - else - { + } else { return false; } } diff --git a/datamodels/2.x/authent-cas/src/Config.php b/datamodels/2.x/authent-cas/src/Config.php index fb447fa83..5d77f7035 100644 --- a/datamodels/2.x/authent-cas/src/Config.php +++ b/datamodels/2.x/authent-cas/src/Config.php @@ -1,4 +1,5 @@ Get($sName); } - if (empty($sValue)) - { + if (empty($sValue)) { return $sDefaultValue; } return $sValue; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/authent-external/dictionaries/cs.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/cs.dict.authent-external.php index dd1c13528..b97173643 100644 --- a/datamodels/2.x/authent-external/dictionaries/cs.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/cs.dict.authent-external.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:UserExternal' => 'Externí uživatel', 'Class:UserExternal+' => 'Uživatel definovaný mimo '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/da.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/da.dict.authent-external.php index a7e5a551c..e498fe75b 100644 --- a/datamodels/2.x/authent-external/dictionaries/da.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/da.dict.authent-external.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:UserExternal' => 'Extern Bruger', 'Class:UserExternal+' => 'Bruger udenfor '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/de.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/de.dict.authent-external.php index 8b1e32aa1..2dc3f1e2b 100644 --- a/datamodels/2.x/authent-external/dictionaries/de.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/de.dict.authent-external.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:UserExternal' => 'Externer Benutzer', 'Class:UserExternal+' => 'Extern authentifizierter '.ITOP_APPLICATION_SHORT.'-Benutzer', -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/en.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/en.dict.authent-external.php index e6a585036..881bb4316 100644 --- a/datamodels/2.x/authent-external/dictionaries/en.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/en.dict.authent-external.php @@ -1,4 +1,5 @@ 'External user', 'Class:UserExternal+' => 'User authentified outside of '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/en_gb.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/en_gb.dict.authent-external.php index 591f5891a..d47bd1665 100644 --- a/datamodels/2.x/authent-external/dictionaries/en_gb.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/en_gb.dict.authent-external.php @@ -1,4 +1,5 @@ 'External user', 'Class:UserExternal+' => 'User authentified outside of '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/es_cr.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/es_cr.dict.authent-external.php index 8e45454f2..83496e280 100644 --- a/datamodels/2.x/authent-external/dictionaries/es_cr.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/es_cr.dict.authent-external.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:UserExternal' => 'Usuario externo', 'Class:UserExternal+' => 'Usuario autenticado fuera de '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/fr.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/fr.dict.authent-external.php index 036bd5f0d..bc40e834f 100644 --- a/datamodels/2.x/authent-external/dictionaries/fr.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/fr.dict.authent-external.php @@ -1,15 +1,16 @@ 'Utilisateur externe à '.ITOP_APPLICATION_SHORT, 'Class:UserExternal+' => 'Utilisateur authentifié à l\'extérieur de '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/hu.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/hu.dict.authent-external.php index 82eaa787a..542ea1627 100644 --- a/datamodels/2.x/authent-external/dictionaries/hu.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/hu.dict.authent-external.php @@ -1,15 +1,16 @@ 'Külső felhasználó', 'Class:UserExternal+' => '', -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/it.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/it.dict.authent-external.php index 9d5cf11e2..39b87d2f4 100644 --- a/datamodels/2.x/authent-external/dictionaries/it.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/it.dict.authent-external.php @@ -1,15 +1,16 @@ 'Esterno utente', 'Class:UserExternal+' => 'Utente autenticato al di fuori di '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/ja.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/ja.dict.authent-external.php index b1bf9b30e..806afaf2d 100644 --- a/datamodels/2.x/authent-external/dictionaries/ja.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/ja.dict.authent-external.php @@ -1,16 +1,17 @@ * */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:UserExternal' => '外部ユーザー', 'Class:UserExternal+' => '外部認証ユーザー', -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/nl.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/nl.dict.authent-external.php index 18629d91c..587c7836e 100644 --- a/datamodels/2.x/authent-external/dictionaries/nl.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/nl.dict.authent-external.php @@ -1,16 +1,17 @@ (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:UserExternal' => 'Externe gebruiker', 'Class:UserExternal+' => 'Gebruiker aangemeld via externe authenticatie', -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/pl.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/pl.dict.authent-external.php index 1c0a75976..54e791cb7 100644 --- a/datamodels/2.x/authent-external/dictionaries/pl.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/pl.dict.authent-external.php @@ -1,15 +1,16 @@ 'Użytkownik zewnętrzny', 'Class:UserExternal+' => 'Użytkownik uwierzytelniony poza '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/pt_br.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/pt_br.dict.authent-external.php index b6cb6b369..c7b0275b6 100644 --- a/datamodels/2.x/authent-external/dictionaries/pt_br.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/pt_br.dict.authent-external.php @@ -1,15 +1,16 @@ 'Usuário externo', 'Class:UserExternal+' => '', -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/ru.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/ru.dict.authent-external.php index a31c71b19..61336b211 100644 --- a/datamodels/2.x/authent-external/dictionaries/ru.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/ru.dict.authent-external.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:UserExternal' => 'Внешний пользователь', 'Class:UserExternal+' => 'Пользователь, аутентифицируемый вне '.ITOP_APPLICATION_SHORT, -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/sk.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/sk.dict.authent-external.php index 98fa70a59..0dcc89901 100644 --- a/datamodels/2.x/authent-external/dictionaries/sk.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/sk.dict.authent-external.php @@ -1,15 +1,16 @@ 'Externý užívateľ', 'Class:UserExternal+' => 'User authentified outside of '.ITOP_APPLICATION_SHORT.'~~', -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/tr.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/tr.dict.authent-external.php index 3352e129f..fd2ea3955 100644 --- a/datamodels/2.x/authent-external/dictionaries/tr.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/tr.dict.authent-external.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:UserExternal' => 'Harici kullanıcı', 'Class:UserExternal+' => ITOP_APPLICATION_SHORT.' dışında yetki kontrolü yapılan kullanıcı', -)); +]); diff --git a/datamodels/2.x/authent-external/dictionaries/zh_cn.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/zh_cn.dict.authent-external.php index 1fef0be90..a1405c56a 100644 --- a/datamodels/2.x/authent-external/dictionaries/zh_cn.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/zh_cn.dict.authent-external.php @@ -1,4 +1,5 @@ '外部用户', 'Class:UserExternal+' => '用户在'.ITOP_APPLICATION_SHORT.'外部验证身份', -)); +]); diff --git a/datamodels/2.x/authent-external/model.authent-external.php b/datamodels/2.x/authent-external/model.authent-external.php index 7c35044d6..81f427b9e 100755 --- a/datamodels/2.x/authent-external/model.authent-external.php +++ b/datamodels/2.x/authent-external/model.authent-external.php @@ -1,9 +1,10 @@ - /** * Authent External * User authentication Module, for authentication outside of the iTop application @@ -30,44 +30,44 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - class UserExternal extends User { public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "addon/authentication,grant_by_profile,silo", "key_type" => "autoincrement", "name_attcode" => "login", "state_attcode" => "", - "reconc_keys" => array('login'), + "reconc_keys" => ['login'], "db_table" => "", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); // Display lists - MetaModel::Init_SetZListItems('details', - array( + MetaModel::Init_SetZListItems( + 'details', + [ 'col:col1' => - array( - 'fieldset:User:info' => array('contactid', 'org_id', 'email', 'login', 'language', 'status'), - ), + [ + 'fieldset:User:info' => ['contactid', 'org_id', 'email', 'login', 'language', 'status'], + ], 'col:col2' => - array( - 'fieldset:User:profiles' => array('profile_list'), - ), + [ + 'fieldset:User:profiles' => ['profile_list'], + ], 'allowed_org_list', 'log', - ) + ] ); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('first_name', 'last_name', 'login', 'status')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('list', ['first_name', 'last_name', 'login', 'status']); // Attributes to be displayed for a list // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('login', 'contactid', 'status', 'org_id')); // Criteria of the std search form - MetaModel::Init_SetZListItems('advanced_search', array('login', 'contactid', 'status', 'org_id')); // Criteria of the advanced search form + MetaModel::Init_SetZListItems('standard_search', ['login', 'contactid', 'status', 'org_id']); // Criteria of the std search form + MetaModel::Init_SetZListItems('advanced_search', ['login', 'contactid', 'status', 'org_id']); // Criteria of the advanced search form } /** @@ -97,6 +97,3 @@ class UserExternal extends User return false; } } - - -?> diff --git a/datamodels/2.x/authent-ldap/dictionaries/cs.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/cs.dict.authent-ldap.php index 6174f897b..5c885fa19 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/cs.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/cs.dict.authent-ldap.php @@ -1,27 +1,28 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:UserLDAP' => 'LDAP uživatel', 'Class:UserLDAP+' => 'Uživatel ověřen přes LDAP', 'UserLDAP:server' => 'Specifika LDAP', -)); +]); // // Class: UserLDAP // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/da.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/da.dict.authent-ldap.php index c85699a2d..b63d0677c 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/da.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/da.dict.authent-ldap.php @@ -1,26 +1,27 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:UserLDAP' => 'LDAP-Bruger', 'Class:UserLDAP+' => 'Bruger der godkendes via LDAP', 'UserLDAP:server' => 'LDAP specifics~~', -)); +]); // // Class: UserLDAP // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/de.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/de.dict.authent-ldap.php index 5232e0007..1e52fb4c6 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/de.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/de.dict.authent-ldap.php @@ -1,26 +1,27 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:UserLDAP' => 'LDAP-Benutzer', 'Class:UserLDAP+' => 'Benutzer, der via LDAP authentifiziert wird', 'UserLDAP:server' => 'LDAP-Einstellungen', -)); +]); // // Class: UserLDAP // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:UserLDAP/Attribute:ldap_server' => 'LDAP-Server', 'Class:UserLDAP/Attribute:ldap_server+' => 'Optional: LDAP-Server, der zur Authentifizierung verwendet werden soll, falls mehrere LDAP-Server konfiguriert sind.', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/en.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/en.dict.authent-ldap.php index 05847874f..9a422246c 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/en.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/en.dict.authent-ldap.php @@ -1,4 +1,5 @@ 'LDAP user', 'Class:UserLDAP+' => 'User authenticated by LDAP', 'UserLDAP:server' => 'LDAP specifics', -)); +]); // // Class: UserLDAP // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server', 'Class:UserLDAP/Attribute:ldap_server+' => '', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/en_gb.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/en_gb.dict.authent-ldap.php index 82cd17108..e25d03e56 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/en_gb.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/en_gb.dict.authent-ldap.php @@ -1,4 +1,5 @@ 'LDAP user', 'Class:UserLDAP+' => 'User authenticated by LDAP', 'UserLDAP:server' => 'LDAP specifics', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/es_cr.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/es_cr.dict.authent-ldap.php index ebbf6fb17..4c1c8002a 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/es_cr.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/es_cr.dict.authent-ldap.php @@ -1,23 +1,24 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:UserLDAP' => 'Usuario LDAP', 'Class:UserLDAP+' => 'Usuario autenticado vía LDAP', 'UserLDAP:server' => 'Especificaciones LDAP', -)); +]); // // Class: UserLDAP // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/fr.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/fr.dict.authent-ldap.php index 9a34d5a6e..be0a57a20 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/fr.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/fr.dict.authent-ldap.php @@ -1,25 +1,26 @@ 'Utilisateur LDAP', 'Class:UserLDAP+' => 'Utilisateur authentifié par un serveur LDAP', 'UserLDAP:server' => 'Champs spécifiques pour LDAP', -)); +]); // // Class: UserLDAP // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/hu.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/hu.dict.authent-ldap.php index bc6665ee2..ad3165d9a 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/hu.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/hu.dict.authent-ldap.php @@ -1,25 +1,26 @@ 'LDAP felhasználó', 'Class:UserLDAP+' => 'LDAP vagy AD felhasználó', 'UserLDAP:server' => 'LDAP specifics~~', -)); +]); // // Class: UserLDAP // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/it.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/it.dict.authent-ldap.php index 35fc89014..5573a9193 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/it.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/it.dict.authent-ldap.php @@ -1,25 +1,26 @@ 'Utente LDAP', 'Class:UserLDAP+' => 'Utente autenticato da LDAP', 'UserLDAP:server' => 'Specifiche LDAP', -)); +]); // // Class: UserLDAP // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/ja.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/ja.dict.authent-ldap.php index f22ec305e..5387fdef9 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/ja.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/ja.dict.authent-ldap.php @@ -1,26 +1,27 @@ * */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:UserLDAP' => 'LDAP ユーザー', 'Class:UserLDAP+' => 'LDAP認証ユーザー', 'UserLDAP:server' => 'LDAP specifics~~', -)); +]); // // Class: UserLDAP // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/nl.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/nl.dict.authent-ldap.php index 184b44810..502370f54 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/nl.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/nl.dict.authent-ldap.php @@ -1,26 +1,27 @@ * @author Jeffrey Bostoen (2018 - 2022) */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:UserLDAP' => 'LDAP-gebruiker', 'Class:UserLDAP+' => 'Gebruiker die aanmeldt via LDAP', 'UserLDAP:server' => 'LDAP informatie', -)); +]); // // Class: UserLDAP // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/pl.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/pl.dict.authent-ldap.php index f29cc7105..758477b47 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/pl.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/pl.dict.authent-ldap.php @@ -1,25 +1,26 @@ 'Użytkownik LDAP', 'Class:UserLDAP+' => 'Użytkownik uwierzytelniony przez LDAP', 'UserLDAP:server' => 'Serwer LDAP', -)); +]); // // Class: UserLDAP // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/pt_br.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/pt_br.dict.authent-ldap.php index 149280dc9..a4ab118cc 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/pt_br.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/pt_br.dict.authent-ldap.php @@ -1,25 +1,26 @@ 'Usuário externo via LDAP', 'Class:UserLDAP+' => '', 'UserLDAP:server' => 'LDAP specifics~~', -)); +]); // // Class: UserLDAP // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/ru.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/ru.dict.authent-ldap.php index f43e15d8d..5aa3153d2 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/ru.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/ru.dict.authent-ldap.php @@ -1,26 +1,27 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:UserLDAP' => 'Пользователь LDAP', 'Class:UserLDAP+' => 'Пользователь, аутентифицируемый через LDAP', 'UserLDAP:server' => 'LDAP specifics~~', -)); +]); // // Class: UserLDAP // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/sk.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/sk.dict.authent-ldap.php index d3546c975..50d232a51 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/sk.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/sk.dict.authent-ldap.php @@ -1,25 +1,26 @@ 'LDAP užívateľ', 'Class:UserLDAP+' => 'User authenticated by LDAP~~', 'UserLDAP:server' => 'LDAP specifics~~', -)); +]); // // Class: UserLDAP // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/tr.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/tr.dict.authent-ldap.php index 15362fbb8..e45293a7b 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/tr.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/tr.dict.authent-ldap.php @@ -1,26 +1,27 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:UserLDAP' => 'LDAP kullanıcısı', 'Class:UserLDAP+' => 'Yetki kontrolü LDAP tarafından yapılan', 'UserLDAP:server' => 'LDAP specifics~~', -)); +]); // // Class: UserLDAP // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-ldap/dictionaries/zh_cn.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/zh_cn.dict.authent-ldap.php index 17ce45749..77b70b879 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/zh_cn.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/zh_cn.dict.authent-ldap.php @@ -1,4 +1,5 @@ 'LDAP用户', 'Class:UserLDAP+' => '用户身份由LDAP认证', 'UserLDAP:server' => 'LDAP详情', -)); +]); // // Class: UserLDAP // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:UserLDAP/Attribute:ldap_server' => 'Ldap server~~', 'Class:UserLDAP/Attribute:ldap_server+' => '~~', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/cs.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/cs.dict.authent-local.php index 30ed27bd9..7f1c83b66 100644 --- a/datamodels/2.x/authent-local/dictionaries/cs.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/cs.dict.authent-local.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:UserLocal' => 'interní uživatel '.ITOP_APPLICATION_SHORT, 'Class:UserLocal+' => 'Uživatel ověřen interně v '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Heslo', @@ -31,4 +32,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Heslo musí obsahovat minimálně 8 znaků a musí obsahovat minimálně jedno velké písmeno, jedno malé písmeno, jedno číslo a speciální znak.', 'UserLocal:password:expiration' => 'Níže uvedená pole vyžadují rozšíření', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Nastavení exspirace "Jednorázového hesla" nelze u vlastního účtu uživatele.', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/da.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/da.dict.authent-local.php index 0494ea256..79c5c7339 100644 --- a/datamodels/2.x/authent-local/dictionaries/da.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/da.dict.authent-local.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:UserLocal' => ITOP_APPLICATION_SHORT.'-Bruger', 'Class:UserLocal+' => 'Bruger der godkendes af '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Password', @@ -30,4 +31,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Password must be at least 8 characters and include uppercase, lowercase, numeric and special characters.~~', 'UserLocal:password:expiration' => 'The fields below require an extension~~', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User~~', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/de.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/de.dict.authent-local.php index 753b10214..269105507 100644 --- a/datamodels/2.x/authent-local/dictionaries/de.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/de.dict.authent-local.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:UserLocal' => ITOP_APPLICATION_SHORT.'-Benutzer', 'Class:UserLocal+' => 'Benutzer, der von '.ITOP_APPLICATION_SHORT.' authentifiziert wird', 'Class:UserLocal/Attribute:password' => 'Passwort', @@ -30,4 +31,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Das Passwort entspricht nicht dem in den Konfigurationsregeln hinterlegten RegEx-Ausdruck', 'UserLocal:password:expiration' => 'Die folgenden Felder benötigen eine '.ITOP_APPLICATION_SHORT.' Erweiterung', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Das setzen des Passwortablaufs auf "Einmalpasswort" ist für den eigenen Benutzer nicht erlaubt.', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/en.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/en.dict.authent-local.php index cd3a825f4..1e588bd5e 100644 --- a/datamodels/2.x/authent-local/dictionaries/en.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/en.dict.authent-local.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT.' user', 'Class:UserLocal+' => 'User authentified by '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Password', @@ -57,4 +58,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Password must be at least 8 characters and include uppercase, lowercase, numeric and special characters.', 'UserLocal:password:expiration' => 'The fields below require an extension', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/en_gb.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/en_gb.dict.authent-local.php index b3695a5f4..bc57f4b4e 100644 --- a/datamodels/2.x/authent-local/dictionaries/en_gb.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/en_gb.dict.authent-local.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT.' user', 'Class:UserLocal+' => 'User authentified by '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Password', @@ -57,4 +58,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Password must be at least 8 characters and include uppercase, lowercase, numeric and special characters.', 'UserLocal:password:expiration' => 'The fields below require an extension', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/es_cr.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/es_cr.dict.authent-local.php index 2d7442b15..adda854d0 100644 --- a/datamodels/2.x/authent-local/dictionaries/es_cr.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/es_cr.dict.authent-local.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:UserLocal' => 'Usuario de '.ITOP_APPLICATION_SHORT, 'Class:UserLocal+' => 'Usuario Autenticado vía '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Contraseña', @@ -27,4 +28,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'La contraseña debe ser de al menos 8 caracteres e incluír mayúsculas, minúsculas, números y caracteres especiales.', 'UserLocal:password:expiration' => 'El siguiente campo requiere una extensión', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Configurar expiración de contraseña para "ontraseña de un solo uso" no está permitido para su propio Usuario', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/fr.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/fr.dict.authent-local.php index 2b6bad021..71bd50a88 100644 --- a/datamodels/2.x/authent-local/dictionaries/fr.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/fr.dict.authent-local.php @@ -1,15 +1,16 @@ 'Utilisateur '.ITOP_APPLICATION_SHORT, 'Class:UserLocal+' => 'Utilisateur authentifié par '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Mot de passe', @@ -29,4 +30,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Le mot de passe doit contenir au moins 8 caractères, avec minuscule, majuscule, nombre et caractère spécial.', 'UserLocal:password:expiration' => 'Les champs ci-dessous nécessitent une extension', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Impossible de mettre "Usage unique" comme validité du mot de passe pour son propre utilisateur.', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/hu.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/hu.dict.authent-local.php index 6a6746f42..270ece0e4 100644 --- a/datamodels/2.x/authent-local/dictionaries/hu.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/hu.dict.authent-local.php @@ -1,15 +1,16 @@ ITOP_APPLICATION_SHORT.' felhasználó', 'Class:UserLocal+' => 'Rendszeren belül létrehozott felhasználó', 'Class:UserLocal/Attribute:password' => 'Jelszó', @@ -29,4 +30,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'A jelszónak legalább 8 karakterből kell állnia, és tartalmaznia kell nagybetűket, kisbetűket, numerikus és speciális karaktereket.', 'UserLocal:password:expiration' => 'Az alábbi mezőkhöz egy bővítmény szükséges', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'A jelszó lejárati idejének beállítása "Egyszeri jelszóra" nem engedélyezett a saját Felhasználó számára.', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/it.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/it.dict.authent-local.php index 7ef879aae..3bfd3414c 100644 --- a/datamodels/2.x/authent-local/dictionaries/it.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/it.dict.authent-local.php @@ -1,15 +1,16 @@ 'Utente '.ITOP_APPLICATION_SHORT, 'Class:UserLocal+' => 'Utente autenticato da '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Password', @@ -29,4 +30,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'La password deve essere di almeno 8 caratteri e includere lettere maiuscole, minuscole, numeri e caratteri speciali.', 'UserLocal:password:expiration' => 'I campi sottostanti richiedono un\'estensione', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Impostare la scadenza della password su "Password monouso" non è consentito per il proprio utente', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/ja.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/ja.dict.authent-local.php index 42298d14e..bc47d26b3 100644 --- a/datamodels/2.x/authent-local/dictionaries/ja.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/ja.dict.authent-local.php @@ -1,16 +1,17 @@ * */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:UserLocal' => ITOP_APPLICATION_SHORT.'ユーザー', 'Class:UserLocal+' => ITOP_APPLICATION_SHORT.'ローカル認証ユーザー', 'Class:UserLocal/Attribute:password' => 'パスワード', @@ -30,4 +31,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Password must be at least 8 characters and include uppercase, lowercase, numeric and special characters.~~', 'UserLocal:password:expiration' => 'The fields below require an extension~~', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User~~', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/nl.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/nl.dict.authent-local.php index 76f8e26e0..71a666179 100644 --- a/datamodels/2.x/authent-local/dictionaries/nl.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/nl.dict.authent-local.php @@ -1,16 +1,17 @@ (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:UserLocal' => ITOP_APPLICATION_SHORT.'-gebruiker', 'Class:UserLocal+' => 'Gebruiker die aanmeldt met gegevens aangemaakt in het gebruikersbeheer van '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Wachtwoord', @@ -30,4 +31,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Het wachtwoord bestaat uit minstens 8 tekens en bestaat uit een mix van minstens 1 hoofdletter, kleine letter, cijfer en speciaal teken.', 'UserLocal:password:expiration' => 'De velden hieronder vereisen een extensie.', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Je kan geen eenmalig wachtwoord instellen voor je eigen gebruiker.', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/pl.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/pl.dict.authent-local.php index 62d4408d6..e671940ee 100644 --- a/datamodels/2.x/authent-local/dictionaries/pl.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/pl.dict.authent-local.php @@ -1,15 +1,16 @@ 'Użytkownik '.ITOP_APPLICATION_SHORT, 'Class:UserLocal+' => 'Użytkownik uwierzytelniony przez '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Hasło', @@ -29,4 +30,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Hasło musi mieć co najmniej 8 znaków i zawierać duże, małe litery, cyfry i znaki specjalne.', 'UserLocal:password:expiration' => 'Poniższe pola wymagają rozszerzenia', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Ustawienie wygaśnięcia hasła "Hasło jednorazowe" nie jest dozwolone dla własnego użytkownika', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/pt_br.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/pt_br.dict.authent-local.php index a1be15c2e..0667daf68 100644 --- a/datamodels/2.x/authent-local/dictionaries/pt_br.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/pt_br.dict.authent-local.php @@ -1,15 +1,16 @@ 'Usuário local', 'Class:UserLocal+' => '', 'Class:UserLocal/Attribute:password' => 'Senha', @@ -29,4 +30,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'A senha deve conter no mínimo 8 caracteres e incluir letras maiúsculas, minúsculas, números e símbolos', 'UserLocal:password:expiration' => 'O campo abaixo requer uma extensão', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Definir a expiração da senha para One-Time Password (OTP) não é permitido para o seu próprio usuário', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/ru.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/ru.dict.authent-local.php index 70cfca1fb..94b55aa42 100644 --- a/datamodels/2.x/authent-local/dictionaries/ru.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/ru.dict.authent-local.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:UserLocal' => 'Пользователь '.ITOP_APPLICATION_SHORT, 'Class:UserLocal+' => 'Пользователь, аутентифицируемый через '.ITOP_APPLICATION_SHORT, 'Class:UserLocal/Attribute:password' => 'Пароль', @@ -30,4 +31,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Пароль должен содержать не менее 8 символов и включать прописные, строчные, числовые и специальные символы.', 'UserLocal:password:expiration' => 'Поля требуют наличия доп. расширения', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User~~', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/sk.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/sk.dict.authent-local.php index 21b731614..4042476a3 100644 --- a/datamodels/2.x/authent-local/dictionaries/sk.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/sk.dict.authent-local.php @@ -1,15 +1,16 @@ ITOP_APPLICATION_SHORT.' užívateľ', 'Class:UserLocal+' => 'User authentified by '.ITOP_APPLICATION_SHORT.'~~', 'Class:UserLocal/Attribute:password' => 'Heslo', @@ -29,4 +30,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Password must be at least 8 characters and include uppercase, lowercase, numeric and special characters.~~', 'UserLocal:password:expiration' => 'The fields below require an extension~~', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User~~', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/tr.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/tr.dict.authent-local.php index e5056ea00..58c46cf82 100644 --- a/datamodels/2.x/authent-local/dictionaries/tr.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/tr.dict.authent-local.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:UserLocal' => ITOP_APPLICATION_SHORT.' kullanıcısı', 'Class:UserLocal+' => 'Yetki kontorlünü '.ITOP_APPLICATION_SHORT.' tarafından yapılan kullanıcı', 'Class:UserLocal/Attribute:password' => 'Şifre', @@ -30,4 +31,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Password must be at least 8 characters and include uppercase, lowercase, numeric and special characters.~~', 'UserLocal:password:expiration' => 'The fields below require an extension~~', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => 'Setting password expiration to "One-time password" is not allowed for your own User~~', -)); +]); diff --git a/datamodels/2.x/authent-local/dictionaries/zh_cn.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/zh_cn.dict.authent-local.php index 269e8ee26..c7da16e7f 100644 --- a/datamodels/2.x/authent-local/dictionaries/zh_cn.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/zh_cn.dict.authent-local.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT.' 用户', 'Class:UserLocal+' => '用户由'.ITOP_APPLICATION_SHORT.'验证身份', 'Class:UserLocal/Attribute:password' => '密码', @@ -53,4 +54,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => '密码必须至少8个字符, 包含大小写, 数字和特殊字符.', 'UserLocal:password:expiration' => '下面的区域需要插件扩展', 'Class:UserLocal/Error:OneTimePasswordChangeIsNotAllowed' => '不允许用户为自己设置 "一次性密码" 的失效期限', -)); +]); diff --git a/datamodels/2.x/authent-local/model.authent-local.php b/datamodels/2.x/authent-local/model.authent-local.php index 8b7b5992f..bf8888c59 100755 --- a/datamodels/2.x/authent-local/model.authent-local.php +++ b/datamodels/2.x/authent-local/model.authent-local.php @@ -1,4 +1,5 @@ - /** * Authent Local * User authentication Module, password stored in the local database @@ -25,7 +25,6 @@ * @license http://opensource.org/licenses/AGPL-3.0 */ - class UserLocalPasswordValidity { /** @var bool */ @@ -53,7 +52,6 @@ class UserLocalPasswordValidity return $this->m_bPasswordValidity; } - /** * @return string */ @@ -65,55 +63,56 @@ class UserLocalPasswordValidity class UserLocal extends UserInternal { - const EXPIRE_CAN = 'can_expire'; - const EXPIRE_NEVER = 'never_expire'; - const EXPIRE_FORCE = 'force_expire'; - const EXPIRE_ONE_TIME_PWD = 'otp_expire'; + public const EXPIRE_CAN = 'can_expire'; + public const EXPIRE_NEVER = 'never_expire'; + public const EXPIRE_FORCE = 'force_expire'; + public const EXPIRE_ONE_TIME_PWD = 'otp_expire'; /** @var UserLocalPasswordValidity|null */ protected $m_oPasswordValidity = null; public static function Init() { - $aParams = array - ( + $aParams = + [ "category" => "addon/authentication,grant_by_profile,silo", "key_type" => "autoincrement", "name_attcode" => "login", "state_attcode" => "", - "reconc_keys" => array('login'), + "reconc_keys" => ['login'], "db_table" => "priv_user_local", "db_key_field" => "id", "db_finalclass_field" => "", - ); + ]; MetaModel::Init_Params($aParams); MetaModel::Init_InheritAttributes(); - MetaModel::Init_AddAttribute(new AttributeOneWayPassword("password", array("allowed_values"=>null, "sql"=>"pwd", "default_value"=>null, "is_null_allowed"=>false, "depends_on"=>array()))); + MetaModel::Init_AddAttribute(new AttributeOneWayPassword("password", ["allowed_values" => null, "sql" => "pwd", "default_value" => null, "is_null_allowed" => false, "depends_on" => []])); - $sExpireEnum = implode(',', array(self::EXPIRE_CAN, self::EXPIRE_NEVER, self::EXPIRE_FORCE, self::EXPIRE_ONE_TIME_PWD)); - MetaModel::Init_AddAttribute(new AttributeEnum("expiration", array("allowed_values"=>new ValueSetEnum($sExpireEnum), "sql"=>"expiration", "default_value"=>self::EXPIRE_NEVER, "is_null_allowed"=>false, "depends_on"=>array()))); - MetaModel::Init_AddAttribute(new AttributeDate("password_renewed_date", array("allowed_values"=>null, "sql"=>"password_renewed_date", "default_value"=>"", "is_null_allowed"=>true, "depends_on"=>array()))); + $sExpireEnum = implode(',', [self::EXPIRE_CAN, self::EXPIRE_NEVER, self::EXPIRE_FORCE, self::EXPIRE_ONE_TIME_PWD]); + MetaModel::Init_AddAttribute(new AttributeEnum("expiration", ["allowed_values" => new ValueSetEnum($sExpireEnum), "sql" => "expiration", "default_value" => self::EXPIRE_NEVER, "is_null_allowed" => false, "depends_on" => []])); + MetaModel::Init_AddAttribute(new AttributeDate("password_renewed_date", ["allowed_values" => null, "sql" => "password_renewed_date", "default_value" => "", "is_null_allowed" => true, "depends_on" => []])); // Display lists - MetaModel::Init_SetZListItems('details', - array( + MetaModel::Init_SetZListItems( + 'details', + [ 'col:col1' => - array( - 'fieldset:User:info' => array('contactid', 'org_id', 'email', 'login', 'password', 'language', 'status'), - ), + [ + 'fieldset:User:info' => ['contactid', 'org_id', 'email', 'login', 'password', 'language', 'status'], + ], 'col:col2' => - array( - 'fieldset:User:profiles' => array('profile_list',), - 'fieldset:UserLocal:password:expiration' => array('expiration', 'password_renewed_date',), - ), + [ + 'fieldset:User:profiles' => ['profile_list',], + 'fieldset:UserLocal:password:expiration' => ['expiration', 'password_renewed_date',], + ], 'allowed_org_list', 'log', - ) + ] ); // Attributes to be displayed for the complete details - MetaModel::Init_SetZListItems('list', array('first_name', 'last_name', 'login', 'org_id')); // Attributes to be displayed for a list + MetaModel::Init_SetZListItems('list', ['first_name', 'last_name', 'login', 'org_id']); // Attributes to be displayed for a list // Search criteria - MetaModel::Init_SetZListItems('standard_search', array('login', 'contactid', 'status', 'org_id')); // Criteria of the std search form + MetaModel::Init_SetZListItems('standard_search', ['login', 'contactid', 'status', 'org_id']); // Criteria of the std search form } public function CheckCredentials($sPassword) @@ -121,8 +120,7 @@ class UserLocal extends UserInternal $oPassword = $this->Get('password'); // ormPassword object // Cannot compare directly the values since they are hashed, so // Let's ask the password to compare the hashed values - if ($oPassword->CheckPassword($sPassword)) - { + if ($oPassword->CheckPassword($sPassword)) { return true; } return false; @@ -135,12 +133,10 @@ class UserLocal extends UserInternal public function CanChangePassword() { - if (MetaModel::GetConfig()->Get('demo_mode')) - { + if (MetaModel::GetConfig()->Get('demo_mode')) { return false; } - if($this->Get('expiration') == self::EXPIRE_ONE_TIME_PWD) - { + if ($this->Get('expiration') == self::EXPIRE_ONE_TIME_PWD) { return false; } return true; @@ -152,8 +148,7 @@ class UserLocal extends UserInternal $oPassword = $this->Get('password'); // Cannot compare directly the values since they are hashed, so // Let's ask the password to compare the hashed values - if ($oPassword->CheckPassword($sOldPassword)) - { + if ($oPassword->CheckPassword($sOldPassword)) { $this->SetPassword($sNewPassword); return $this->IsPasswordValid(); } @@ -173,8 +168,7 @@ class UserLocal extends UserInternal { $result = parent::Set($sAttCode, $value); - if ('password' == $sAttCode) - { + if ('password' == $sAttCode) { $this->ValidatePassword($value); } @@ -199,32 +193,28 @@ class UserLocal extends UserInternal protected function OnWrite() { - if (array_key_exists('password_renewed_date', $this->ListChanges())) - { + if (array_key_exists('password_renewed_date', $this->ListChanges())) { return; } - if (empty($this->m_oPasswordValidity)) - { + if (empty($this->m_oPasswordValidity)) { //password unchanged - if (is_null($this->Get('password_renewed_date'))) - { + if (is_null($this->Get('password_renewed_date'))) { //initialize password_renewed_date with User creation date $sKey = $this->GetKey(); -$sOql = <<Fetch(); - if (! is_null($oCMDBChangeOpCreate)) - { - $oUserCreationDateTime = \DateTime::createFromFormat(AttributeDateTime::GetInternalFormat(), $oCMDBChangeOpCreate->Get('date')); - $sCreationDate = $oUserCreationDateTime->format(\AttributeDate::GetInternalFormat()); - $this->Set('password_renewed_date', $sCreationDate); - } + $oCmdbChangeOpSearch = \DBObjectSearch::FromOQL($sOql); + $oSet = new \DBObjectSet($oCmdbChangeOpSearch); + $oCMDBChangeOpCreate = $oSet->Fetch(); + if (! is_null($oCMDBChangeOpCreate)) { + $oUserCreationDateTime = \DateTime::createFromFormat(AttributeDateTime::GetInternalFormat(), $oCMDBChangeOpCreate->Get('date')); + $sCreationDate = $oUserCreationDateTime->format(\AttributeDate::GetInternalFormat()); + $this->Set('password_renewed_date', $sCreationDate); + } } return; } @@ -233,10 +223,8 @@ OQL; $this->Set('password_renewed_date', $sNow); // Reset the "force" expiration flag when the user updates her/his own password! - if ($this->IsCurrentUser()) - { - if (($this->Get('expiration') == self::EXPIRE_FORCE)) - { + if ($this->IsCurrentUser()) { + if (($this->Get('expiration') == self::EXPIRE_FORCE)) { $this->Set('expiration', self::EXPIRE_CAN); } } @@ -244,8 +232,7 @@ OQL; public function IsPasswordValid() { - if (ContextTag::Check(ContextTag::TAG_SETUP)) - { + if (ContextTag::Check(ContextTag::TAG_SETUP)) { // during the setup, the admin account can have whatever password you want ... return true; } @@ -253,17 +240,14 @@ OQL; return (empty($this->m_oPasswordValidity)) || ($this->m_oPasswordValidity->isPasswordValid()); } - public function getPasswordValidityMessage() { - if (ContextTag::Check(ContextTag::TAG_SETUP)) - { + if (ContextTag::Check(ContextTag::TAG_SETUP)) { // during the setup, the admin account can have whatever password you want ... return null; } - if (empty($this->m_oPasswordValidity)) - { + if (empty($this->m_oPasswordValidity)) { return null; } @@ -281,30 +265,25 @@ OQL; */ public function ValidatePassword($proposedValue, $config = null, $aValidatorCollection = null) { - if (null == $config) - { + if (null == $config) { $config = MetaModel::GetConfig(); } //if the $proposedValue is an ormPassword, then it cannot be checked //this if is even more permissive as we can only check against strings - if (!is_string($proposedValue) && !empty($proposedValue)) - { + if (!is_string($proposedValue) && !empty($proposedValue)) { $this->m_oPasswordValidity = new UserLocalPasswordValidity(true); return; } - if (null == $aValidatorCollection) - { + if (null == $aValidatorCollection) { $aValidatorCollection = MetaModel::EnumPlugins('iModuleExtension', 'UserLocalPasswordValidator'); } - foreach ($aValidatorCollection as $oUserLocalPasswordValidator) - { + foreach ($aValidatorCollection as $oUserLocalPasswordValidator) { $this->m_oPasswordValidity = $oUserLocalPasswordValidator->ValidatePassword($proposedValue, $this, $config); - if (!$this->m_oPasswordValidity->isPasswordValid()) - { + if (!$this->m_oPasswordValidity->isPasswordValid()) { return; } } @@ -312,8 +291,7 @@ OQL; public function DoCheckToWrite() { - if (! $this->IsPasswordValid()) - { + if (! $this->IsPasswordValid()) { $this->m_aCheckIssues[] = $this->m_oPasswordValidity->getPasswordValidityMessage(); } @@ -337,13 +315,11 @@ OQL; * @return integer Flags: the binary combination of the flags applicable to this attribute * @throws \CoreException */ - public function GetAttributeFlags($sAttCode, &$aReasons = array(), $sTargetState = '') + public function GetAttributeFlags($sAttCode, &$aReasons = [], $sTargetState = '') { $iFlags = parent::GetAttributeFlags($sAttCode, $aReasons, $sTargetState); - if (MetaModel::GetConfig()->Get('demo_mode')) - { - if (strpos('contactid,login,language,password,status,profile_list,allowed_org_list', $sAttCode) !== false) - { + if (MetaModel::GetConfig()->Get('demo_mode')) { + if (strpos('contactid,login,language,password,status,profile_list,allowed_org_list', $sAttCode) !== false) { // contactid and allowed_org_list are disabled to make sure the portal remains accessible $aReasons[] = 'Sorry, this attribute is read-only in the demonstration mode!'; $iFlags |= OPT_ATT_READONLY; @@ -353,8 +329,6 @@ OQL; } } - - interface UserLocalPasswordValidator extends iModuleExtension { /** @@ -384,42 +358,32 @@ class UserPasswordPolicyRegex implements UserLocalPasswordValidator { $sPattern = $config->GetModuleSetting('authent-local', 'password_validation.pattern'); - if ('' == $sPattern) - { + if ('' == $sPattern) { return new UserLocalPasswordValidity(true); } $isMatched = preg_match("/{$sPattern}/", $proposedValue); - if ($isMatched === false) - { + if ($isMatched === false) { return new UserLocalPasswordValidity( false, 'Unknown error : Failed to check the password.' ); } - if ($isMatched === 1) - { + if ($isMatched === 1) { return new UserLocalPasswordValidity(true); } $sUserLanguage = Dict::GetUserLanguage(); $customMessages = $config->GetModuleSetting('authent-local', 'password_validation.message', null); - if (is_string($customMessages) ) - { + if (is_string($customMessages)) { $sMessage = $customMessages; - } - elseif (isset($customMessages) && array_key_exists($sUserLanguage, $customMessages)) - { + } elseif (isset($customMessages) && array_key_exists($sUserLanguage, $customMessages)) { $sMessage = $customMessages[$sUserLanguage]; - } - elseif (isset($customMessages) && array_key_exists('EN US', $customMessages)) - { + } elseif (isset($customMessages) && array_key_exists('EN US', $customMessages)) { $sMessage = $customMessages['EN US']; - } - else - { + } else { $sMessage = Dict::S('Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed'); } diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/cs.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/cs.dict.combodo-backoffice-darkmoon-theme.php index 5f7552566..3c37a1898 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/cs.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/cs.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/da.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/da.dict.combodo-backoffice-darkmoon-theme.php index 766c596d1..9b218c3b8 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/da.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/da.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/de.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/de.dict.combodo-backoffice-darkmoon-theme.php index 29da99e39..dfc216344 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/de.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/de.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/en.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/en.dict.combodo-backoffice-darkmoon-theme.php index 8e0f73f43..1ad68f4c6 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/en.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/en.dict.combodo-backoffice-darkmoon-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'theme:darkmoon' => 'Dark moon', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/en_gb.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/en_gb.dict.combodo-backoffice-darkmoon-theme.php index d83f8d624..36836b389 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/en_gb.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/en_gb.dict.combodo-backoffice-darkmoon-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'theme:darkmoon' => 'Dark moon', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/es_cr.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/es_cr.dict.combodo-backoffice-darkmoon-theme.php index fc444eb60..22b04bdcb 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/es_cr.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/es_cr.dict.combodo-backoffice-darkmoon-theme.php @@ -1,12 +1,13 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'theme:darkmoon' => 'Luna Obscura', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/fr.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/fr.dict.combodo-backoffice-darkmoon-theme.php index 4fdd0c80c..4e9cb2269 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/fr.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/fr.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/hu.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/hu.dict.combodo-backoffice-darkmoon-theme.php index dbcf9b388..ae3203405 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/hu.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/hu.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/it.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/it.dict.combodo-backoffice-darkmoon-theme.php index 471e49fe4..03c96b7ef 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/it.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/it.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Luna scura', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/ja.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/ja.dict.combodo-backoffice-darkmoon-theme.php index 37b1553fb..6408c04ad 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/ja.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/ja.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/nl.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/nl.dict.combodo-backoffice-darkmoon-theme.php index 3cb957862..2734173ef 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/nl.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/nl.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/pl.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/pl.dict.combodo-backoffice-darkmoon-theme.php index a44b8a1db..52fc1a80b 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/pl.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/pl.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Ciemny Księżyc', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/pt_br.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/pt_br.dict.combodo-backoffice-darkmoon-theme.php index fc25b1b8a..a4048cb3d 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/pt_br.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/pt_br.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/ru.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/ru.dict.combodo-backoffice-darkmoon-theme.php index 68a0f0161..21c7bfc9e 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/ru.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/ru.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/sk.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/sk.dict.combodo-backoffice-darkmoon-theme.php index 583c1698a..782b69fea 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/sk.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/sk.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/tr.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/tr.dict.combodo-backoffice-darkmoon-theme.php index 2f0ab4d7a..7308d3f8c 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/tr.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/tr.dict.combodo-backoffice-darkmoon-theme.php @@ -1,14 +1,15 @@ 'Dark moon~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/zh_cn.dict.combodo-backoffice-darkmoon-theme.php b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/zh_cn.dict.combodo-backoffice-darkmoon-theme.php index ae505ef77..45857d5b9 100644 --- a/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/zh_cn.dict.combodo-backoffice-darkmoon-theme.php +++ b/datamodels/2.x/combodo-backoffice-darkmoon-theme/dictionaries/zh_cn.dict.combodo-backoffice-darkmoon-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'theme:darkmoon' => '暗月', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index 4839b4f0d..4f1020e5d 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index d65c5042f..d1ac08d5e 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index 69a763af7..435df691f 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index 67b4c4ad5..827165ba5 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index fdc270973..de8471393 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index 8f0eff364..8cb35200c 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'theme:fullmoon-high-contrast' => 'Luna Llena (Alto Contraste)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index b46ba2eae..aa8169a70 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,14 +1,15 @@ 'Fullmoon (Contraste élevé)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index bec7dda0d..fdb41a65e 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index f1ffcab44..9db1b95ea 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index e20fcc20b..0727744d3 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index 77724ddca..4129c13ce 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index 6c6dd73e6..e4441e1cd 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'theme:fullmoon-high-contrast' => 'Pełnia księżyca (wysoki kontrast)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index b338d58e9..133ff1ef8 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index 104ed7824..393d8898a 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index c696a01d3..5061c726a 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index 19b19c5aa..de9e65c42 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-high-contrast-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-high-contrast-theme.php index f69ce11c2..de73ad883 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-high-contrast-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-high-contrast-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-high-contrast-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'theme:fullmoon-high-contrast' => 'Fullmoon (High contrast)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 1c33f9eb8..6c1c211fe 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('CS CZ', 'Czech', 'Čeština', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 2a4212157..7bf41187c 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('DA DA', 'Danish', 'Dansk', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index de617cf57..bce4d7843 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('DE DE', 'German', 'Deutsch', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('DE DE', 'German', 'Deutsch', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 47e23c5b1..d895dc8d9 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)' -)); \ No newline at end of file +Dict::Add('EN US', 'English', 'English', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 6f5ca93d9..44fb36c68 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)' -)); \ No newline at end of file +Dict::Add('EN GB', 'British English', 'British English', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index adff0d699..7c865db66 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Luna Llena (Protanopia & Deuteranopia)' -)); \ No newline at end of file +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Luna Llena (Protanopia & Deuteranopia)', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index fb43c4be8..b25ad3c63 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,14 +1,15 @@ 'Fullmoon (Protanopie et Deuteranopie)' -)); \ No newline at end of file +Dict::Add('FR FR', 'French', 'Français', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopie et Deuteranopie)', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 6970fe94b..172bd686e 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 7055a1488..117c307f8 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('IT IT', 'Italian', 'Italiano', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 0fc44ae85..206a43095 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('JA JP', 'Japanese', '日本語', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('JA JP', 'Japanese', '日本語', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index d48390b17..d5df12bc5 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index b9bccf2e8..e4ea6c7cf 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('PL PL', 'Polish', 'Polski', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Pełnia Księżyca (Protanopia i Deuteranopia)' -)); \ No newline at end of file +Dict::Add('PL PL', 'Polish', 'Polski', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Pełnia Księżyca (Protanopia i Deuteranopia)', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 598a29822..133a16ee7 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 6ee97d350..b56ad3db7 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('RU RU', 'Russian', 'Русский', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('RU RU', 'Russian', 'Русский', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 75bc5e1d8..1d3a58e95 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index ac7c86dd1..40cc3050a 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php index 3cbe35326..3d59b91f7 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-protanopia-deuteranopia-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-protanopia-deuteranopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( - 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~' -)); \ No newline at end of file +Dict::Add('ZH CN', 'Chinese', '简体中文', [ + 'theme:fullmoon-protanopia-deuteranopia' => 'Fullmoon (Protanopia & Deuteranopia)~~', +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index b06716db8..8d7ead4c8 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/cs.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 7414adfca..3cfdc9d0c 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/da.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index aace7b944..29bc5e0f1 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/de.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index c195b2006..f6b239d98 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/en.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 7b5c7e7af..bc464fc2e 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/en_gb.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 110ec71ff..7d99a8d0d 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/es_cr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'theme:fullmoon-tritanopia' => 'Luna Llena (Tritanopia)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 492829332..e7747f170 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/fr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,14 +1,15 @@ 'Fullmoon (Tritanopie)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index d4382ee2f..514c61518 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/hu.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 2a1efef4f..2e649ee36 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/it.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 5edf36581..609b12ea7 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/ja.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 26841f341..7d3c29025 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/nl.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index d85d3c6c6..7e6969fd4 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/pl.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'theme:fullmoon-tritanopia' => 'Pełnia Księżyca (Tritanopia)', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 869dab1e1..0051ae66e 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/pt_br.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 687858866..98d655479 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/ru.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index 3be79dccd..726fb2d77 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/sk.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index d9928fb8a..38d329eeb 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/tr.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-tritanopia-theme.php b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-tritanopia-theme.php index eb9e8c95a..1075b9c9f 100644 --- a/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-tritanopia-theme.php +++ b/datamodels/2.x/combodo-backoffice-fullmoon-tritanopia-theme/dictionaries/zh_cn.dict.combodo-backoffice-fullmoon-tritanopia-theme.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'theme:fullmoon-tritanopia' => 'Fullmoon (Tritanopia)~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/combodo-db-tools/bin/rebuildhk.php b/datamodels/2.x/combodo-db-tools/bin/rebuildhk.php index e69f631cd..965e562d6 100644 --- a/datamodels/2.x/combodo-db-tools/bin/rebuildhk.php +++ b/datamodels/2.x/combodo-db-tools/bin/rebuildhk.php @@ -1,4 +1,5 @@ $oAttDef) - { + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { // Check (once) all the attributes that are hierarchical keys - if ((MetaModel::GetAttributeOrigin($sClass, $sAttCode) == $sClass) && $oAttDef->IsHierarchicalKey()) - { + if ((MetaModel::GetAttributeOrigin($sClass, $sAttCode) == $sClass) && $oAttDef->IsHierarchicalKey()) { echo "Rebuild hierarchical key $sAttCode from $sClass.\n"; HierarchicalKey::Rebuild($sClass, $sAttCode, $oAttDef); } diff --git a/datamodels/2.x/combodo-db-tools/bin/report.php b/datamodels/2.x/combodo-db-tools/bin/report.php index 13fa41b6f..ae69443fd 100644 --- a/datamodels/2.x/combodo-db-tools/bin/report.php +++ b/datamodels/2.x/combodo-db-tools/bin/report.php @@ -1,4 +1,5 @@ CheckIntegrity([]); -if (empty($aResults)) -{ +if (empty($aResults)) { echo "Database OK\n"; exit(0); } diff --git a/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php b/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php index 3bfa47ad9..0dc4e346c 100644 --- a/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php +++ b/datamodels/2.x/combodo-db-tools/db_analyzer.class.inc.php @@ -1,4 +1,5 @@ iTimeLimitPerOperation)) - { + if (!is_null($this->iTimeLimitPerOperation)) { set_time_limit(intval($this->iTimeLimitPerOperation)); } $aWrongRecords = CMDBSource::QueryToArray($sSelWrongRecs.' limit '.self::LIMIT); - if (count($aWrongRecords) > 0) - { - foreach($aWrongRecords as $aRes) - { - if (!isset($aErrorsAndFixes[$sClass][$sErrorDesc])) - { - $aErrorsAndFixes[$sClass][$sErrorDesc] = array( + if (count($aWrongRecords) > 0) { + foreach ($aWrongRecords as $aRes) { + if (!isset($aErrorsAndFixes[$sClass][$sErrorDesc])) { + $aErrorsAndFixes[$sClass][$sErrorDesc] = [ 'count' => 1, 'query' => $sSelWrongRecs, - ); - if (!empty($sFixItRequest)) - { - $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'] = array($sFixItRequest); - $aErrorsAndFixes[$sClass][$sErrorDesc]['cleanup'] = array($sFixItRequest); + ]; + if (!empty($sFixItRequest)) { + $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'] = [$sFixItRequest]; + $aErrorsAndFixes[$sClass][$sErrorDesc]['cleanup'] = [$sFixItRequest]; } - } - else - { + } else { $aErrorsAndFixes[$sClass][$sErrorDesc]['count'] += 1; } - if (empty($aValueNames)) - { - $aValues = array('id' => $aRes['id']); - } - else - { - $aValues = array(); - foreach ($aValueNames as $sValueName) - { + if (empty($aValueNames)) { + $aValues = ['id' => $aRes['id']]; + } else { + $aValues = []; + foreach ($aValueNames as $sValueName) { $aValues[$sValueName] = $aRes[$sValueName]; } } - if (isset($aRes['value'])) - { + if (isset($aRes['value'])) { $value = $aRes['value']; $aValues['value'] = $value; - if (!isset($aErrorsAndFixes[$sClass][$sErrorDesc]['values'][$value])) - { + if (!isset($aErrorsAndFixes[$sClass][$sErrorDesc]['values'][$value])) { $aErrorsAndFixes[$sClass][$sErrorDesc]['values'][$value] = 1; - } - else - { + } else { $aErrorsAndFixes[$sClass][$sErrorDesc]['values'][$value] += 1; } } @@ -109,30 +95,24 @@ class DatabaseAnalyzer */ public function CheckIntegrity($aClassSelection) { - $aErrorsAndFixes = array(); + $aErrorsAndFixes = []; - if (empty($aClassSelection)) - { + if (empty($aClassSelection)) { $aClassSelection = MetaModel::GetClasses(); - } - else - { + } else { $aClasses = $aClassSelection; - foreach($aClasses as $sClass) - { + foreach ($aClasses as $sClass) { $aExpectedClasses = MetaModel::EnumChildClasses($sClass, ENUM_CHILD_CLASSES_ALL); $aClassSelection = array_merge($aClassSelection, $aExpectedClasses); } $aClassSelection = array_unique($aClassSelection); } - foreach ($aClassSelection as $sClass) - { + foreach ($aClassSelection as $sClass) { // Check uniqueness rules $this->CheckUniquenessRules($sClass, $aErrorsAndFixes); - if (!MetaModel::HasTable($sClass)) - { + if (!MetaModel::HasTable($sClass)) { continue; } @@ -140,38 +120,30 @@ class DatabaseAnalyzer $sTable = MetaModel::DBGetTable($sClass); $sKeyField = MetaModel::DBGetKey($sClass); - if (!MetaModel::IsStandaloneClass($sClass)) - { + if (!MetaModel::IsStandaloneClass($sClass)) { $sRootTable = MetaModel::DBGetTable($sRootClass); $sRootKey = MetaModel::DBGetKey($sRootClass); - if (!MetaModel::IsRootClass($sClass)) - { + if (!MetaModel::IsRootClass($sClass)) { $this->CheckRecordsInRootTable($sTable, $sKeyField, $sRootTable, $sRootKey, $sClass, $aErrorsAndFixes); $this->CheckRecordsInChildTable($sRootClass, $sClass, $sRootTable, $sRootKey, $sTable, $sKeyField, $aErrorsAndFixes); - if (!MetaModel::IsLeafClass($sClass)) - { + if (!MetaModel::IsLeafClass($sClass)) { $this->CheckIntermediateFinalClass($sRootClass, $sClass, $sRootTable, $sRootKey, $sTable, $sKeyField, $aErrorsAndFixes); } } } - foreach(MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) - { + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { // Skip this attribute if not defined in this table - if (!MetaModel::IsAttributeOrigin($sClass, $sAttCode)) - { + if (!MetaModel::IsAttributeOrigin($sClass, $sAttCode)) { continue; } - if ($oAttDef->IsExternalKey()) - { + if ($oAttDef->IsExternalKey()) { $this->CheckExternalKeys($oAttDef, $sTable, $sKeyField, $sAttCode, $sClass, $aErrorsAndFixes); if ((MetaModel::GetAttributeOrigin($sClass, $sAttCode) == $sClass) && $oAttDef->IsHierarchicalKey()) { $this->CheckHK($sClass, $sAttCode, $aErrorsAndFixes); } - } - elseif ($oAttDef->IsDirectField() && !($oAttDef instanceof AttributeSet)) - { + } elseif ($oAttDef->IsDirectField() && !($oAttDef instanceof AttributeSet)) { $this->CheckAllowedValues($sClass, $sAttCode, $oAttDef, $sTable, $sKeyField, $aErrorsAndFixes); } } @@ -196,38 +168,33 @@ class DatabaseAnalyzer private function CheckUniquenessRule($sClass, $sUniquenessRuleId, $aUniquenessRuleProperties, &$aErrorsAndFixes) { $sOqlUniquenessQuery = "SELECT $sClass"; - if (!(empty($sUniquenessFilter = $aUniquenessRuleProperties['filter']))) - { + if (!(empty($sUniquenessFilter = $aUniquenessRuleProperties['filter']))) { $sOqlUniquenessQuery .= ' WHERE '.$sUniquenessFilter; } $oUniquenessQuery = DBObjectSearch::FromOQL($sOqlUniquenessQuery); - $aValueNames = array(); - $aGroupByExpr = array(); - foreach ($aUniquenessRuleProperties['attributes'] as $sAttributeCode) - { + $aValueNames = []; + $aGroupByExpr = []; + foreach ($aUniquenessRuleProperties['attributes'] as $sAttributeCode) { $oExpr = Expression::FromOQL("$sClass.$sAttributeCode"); $aGroupByExpr[$sAttributeCode] = $oExpr; $aValueNames[] = $sAttributeCode; } - $aSelectExpr = array(); + $aSelectExpr = []; - $sSQLUniquenessQuery = $oUniquenessQuery->MakeGroupByQuery(array(), $aGroupByExpr, false, $aSelectExpr); + $sSQLUniquenessQuery = $oUniquenessQuery->MakeGroupByQuery([], $aGroupByExpr, false, $aSelectExpr); $sSQLUniquenessQuery .= ' having count(*) > 1'; $sErrorDesc = $this->GetUniquenessRuleMessage($sUniquenessRuleId); $this->ExecQuery($sSQLUniquenessQuery, '', $sErrorDesc, $sClass, $aErrorsAndFixes, $aValueNames); - if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['res'])) - { - $aFixit = array("-- In order to get the duplicates, run the following queries:"); - foreach ($aErrorsAndFixes[$sClass][$sErrorDesc]['res'] as $aValues) - { + if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['res'])) { + $aFixit = ["-- In order to get the duplicates, run the following queries:"]; + foreach ($aErrorsAndFixes[$sClass][$sErrorDesc]['res'] as $aValues) { $oFixSearch = new DBObjectSearch($sClass); - foreach ($aValues as $sAttCode => $sValue) - { + foreach ($aValues as $sAttCode => $sValue) { $oFixSearch->AddCondition($sAttCode, $sValue, '='); } $aFixit[] = $oFixSearch->MakeSelectQuery([], [], null, null, 0, 0, false, false).';'; @@ -251,13 +218,10 @@ class DatabaseAnalyzer */ private function CheckUniquenessRules($sClass, &$aErrorsAndFixes) { - if (method_exists('MetaModel', 'GetUniquenessRules')) - { + if (method_exists('MetaModel', 'GetUniquenessRules')) { $aUniquenessRules = MetaModel::GetUniquenessRules($sClass); - foreach ($aUniquenessRules as $sUniquenessRuleId => $aUniquenessRuleProperties) - { - if ($aUniquenessRuleProperties['disabled'] === true) - { + foreach ($aUniquenessRules as $sUniquenessRuleId => $aUniquenessRuleProperties) { + if ($aUniquenessRuleProperties['disabled'] === true) { continue; } $this->CheckUniquenessRule($sClass, $sUniquenessRuleId, $aUniquenessRuleProperties, $aErrorsAndFixes); @@ -375,8 +339,7 @@ class DatabaseAnalyzer $this->ExecQuery($sSelWrongRecs, '', $sErrorDesc, $sClass, $aErrorsAndFixes); $aFixIt = []; // Fix it request needs the values of the enum to generate the requests - if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['values'])) - { + if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['values'])) { if ($oAttDef->IsNullAllowed()) { $aFixIt[] = "-- Fix inconsistant values: remove the external key"; foreach (array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values']) as $sKey) { @@ -384,8 +347,7 @@ class DatabaseAnalyzer } } else { $aAdditionalFixIt = $this->GetSpecificExternalKeysFixItForNull($sTable, $sExtKeyField, $sFilter, $sJoin); - foreach ($aAdditionalFixIt as $sFixIt) - { + foreach ($aAdditionalFixIt as $sFixIt) { $aFixIt[] = $sFixIt; } @@ -411,11 +373,9 @@ class DatabaseAnalyzer $sErrorDesc = Dict::Format('DBAnalyzer-Integrity-MissingExtKey', $sAttCode, $sTable, $sExtKeyField); $this->ExecQuery($sSelWrongRecs, '', $sErrorDesc, $sClass, $aErrorsAndFixes); $aFixIt = []; - if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['count']) && ($aErrorsAndFixes[$sClass][$sErrorDesc]['count'] > 0)) - { + if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['count']) && ($aErrorsAndFixes[$sClass][$sErrorDesc]['count'] > 0)) { $aAdditionalFixIt = $this->GetSpecificExternalKeysFixItForNull($sTable, $sExtKeyField, $sFilter); - foreach ($aAdditionalFixIt as $sFixIt) - { + foreach ($aAdditionalFixIt as $sFixIt) { $aFixIt[] = $sFixIt; } $aFixIt[] = "-- Alternate fix: remove inconsistant entries:"; @@ -429,9 +389,8 @@ class DatabaseAnalyzer private function GetSpecificExternalKeysFixItForNull($sTable, $sExtKeyField, $sFilter, $sJoin = '') { - $aFixIt = array(); - if ($sTable == 'ticket' && $sExtKeyField == 'org_id') - { + $aFixIt = []; + if ($sTable == 'ticket' && $sExtKeyField == 'org_id') { $aFixIt[] = "-- Alternate fix: set the ticket org to the caller org"; $aFixIt[] = "UPDATE ticket JOIN contact AS c ON ticket.caller_id=c.id $sJoin SET ticket.org_id=c.org_id $sFilter"; } @@ -454,8 +413,7 @@ class DatabaseAnalyzer private function CheckAllowedValues($sClass, $sAttCode, AttributeDefinition $oAttDef, $sTable, $sKeyField, &$aErrorsAndFixes) { $aAllowedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode); - if (!is_null($aAllowedValues) && count($aAllowedValues) > 0) - { + if (!is_null($aAllowedValues) && count($aAllowedValues) > 0) { $aAllowedValues = array_keys($aAllowedValues); $sExpectedValues = implode(",", CMDBSource::Quote($aAllowedValues, true)); @@ -478,19 +436,14 @@ class DatabaseAnalyzer $sErrorDesc = Dict::Format('DBAnalyzer-Integrity-InvalidValue', $sAttCode, $sTable, $sMyAttributeField); $this->ExecQuery($sSelWrongRecs, $sFixItRequest, $sErrorDesc, $sClass, $aErrorsAndFixes); // Fix it request needs the values of the enum to generate the requests - if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['values'])) - { - if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'])) - { + if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['values'])) { + if (isset($aErrorsAndFixes[$sClass][$sErrorDesc]['fixit'])) { $aFixIt = $aErrorsAndFixes[$sClass][$sErrorDesc]['fixit']; $aFixIt[] = "-- Alternative: Replace enums with the appropriate value"; - } - else - { + } else { $aFixIt = ["-- Replace enums with the appropriate value"]; } - foreach (array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values']) as $sKey) - { + foreach (array_keys($aErrorsAndFixes[$sClass][$sErrorDesc]['values']) as $sKey) { foreach ($aAllowedValues as $sAllowedValue) { $aFixIt[] = "-- Replace $sKey by $sAllowedValue"; $aFixIt[] = "UPDATE `$sTable` SET `$sTable`.`$sMyAttributeField` = '$sAllowedValue' WHERE `$sTable`.`$sMyAttributeField` = '$sKey'"; diff --git a/datamodels/2.x/combodo-db-tools/dbtools.php b/datamodels/2.x/combodo-db-tools/dbtools.php index d090c5751..9bd7d8590 100644 --- a/datamodels/2.x/combodo-db-tools/dbtools.php +++ b/datamodels/2.x/combodo-db-tools/dbtools.php @@ -1,4 +1,5 @@ SetCurrentTab('DBTools:Inconsistencies'); @@ -120,7 +121,6 @@ function DisplayDBInconsistencies(iTopWebPage &$oP, ApplicationContext &$oAppCon $oForm->AddSubBlock($oInput); $oForm->AddSubBlock($oAppContext->GetForFormBlock()); - if (!empty($sClassSelection)) { $oForm = FormUIBlockFactory::MakeStandard(); $oP->AddUiBlock($oForm); @@ -236,7 +236,7 @@ function DisplayErrorDetails($aResults, $bVerbose) if ($iCount === DatabaseAnalyzer::LIMIT) { $iCount = "$iCount(+)"; } - $sErrorTitle = Dict::Format('DBTools:DetailedErrorTitle', MetaModel::GetName($sClass).' ('.$sClass.')', $iCount, $sErrorLabel); + $sErrorTitle = Dict::Format('DBTools:DetailedErrorTitle', MetaModel::GetName($sClass).' ('.$sClass.')', $iCount, $sErrorLabel); $oCollapsible = CollapsibleSectionUIBlockFactory::MakeStandard($sErrorTitle); $oBlock->AddSubBlock($oCollapsible); @@ -304,14 +304,14 @@ function DisplayLostAttachments(iTopWebPage &$oP, ApplicationContext &$oAppConte { // Retrieve parameters $sStepName = utils::ReadParam('step_name'); - $aRecordsToClean = utils::ReadParam('dbt-cbx', array(), false, 'raw_data'); + $aRecordsToClean = utils::ReadParam('dbt-cbx', [], false, 'raw_data'); $iRestoredItemsCount = 0; $iRecordsToCleanCount = count($aRecordsToClean); - $aErrorsReport = array(); + $aErrorsReport = []; - $bDoAnalyze = in_array($sStepName, array('analyze', 'restore')); - $bDoRestore = in_array($sStepName, array('restore')); + $bDoAnalyze = in_array($sStepName, ['analyze', 'restore']); + $bDoRestore = in_array($sStepName, ['restore']); // Build HTML $oP->SetCurrentTab('DBTools:LostAttachments'); @@ -383,8 +383,7 @@ function DisplayLostAttachments(iTopWebPage &$oP, ApplicationContext &$oAppConte $oOriginObject->DBDelete(); $iRestoredItemsCount++; - } - catch (Exception $e) { + } catch (Exception $e) { $aErrorsReport[] = 'Could not restore attachment from '.$sRecordToClean.', cause: '.$e->getMessage(); } utils::PopArchiveMode(); @@ -396,7 +395,6 @@ function DisplayLostAttachments(iTopWebPage &$oP, ApplicationContext &$oAppConte $sSelWrongRecs = 'SELECT id, secret, "InlineImage" AS current_class, id AS current_id, item_class AS target_class, item_id AS target_id, contents_filename AS filename FROM '.$sInlineImageDBTable.' WHERE contents_mimetype NOT LIKE "image/%"'; $aWrongRecords = CMDBSource::QueryToArray($sSelWrongRecs); - if (empty($aWrongRecords)) { $oAlert = AlertUIBlockFactory::MakeForSuccess(Dict::S('DBTools:LostAttachments:Step:AnalyzeResults:None')); $oForm->AddSubBlock($oAlert); @@ -449,7 +447,6 @@ function DisplayLostAttachments(iTopWebPage &$oP, ApplicationContext &$oAppConte $oButton->SetIsDisabled(true); $oPanel->AddSubBlock($oButton); - // JS to handle checkboxes and button $oP->add_ready_script( <<p(''.$e->getMessage().''); } diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/cs.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/cs.dict.combodo-db-tools.php index 5843b7695..e78162e32 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/cs.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/cs.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Integrita databáze', 'DBTools:Class' => 'Class~~', 'DBTools:Title' => 'Kontrola integrity databáze', @@ -43,17 +44,17 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~', 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`~~', 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~', -)); +]); // Database Info -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'DBTools:DatabaseInfo' => 'Database Information~~', 'DBTools:Base' => 'Base~~', 'DBTools:Size' => 'Velikost', -)); +]); // Lost attachments -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'DBTools:LostAttachments' => 'Lost attachments~~', 'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~', 'DBTools:LostAttachments:Button:Analyze' => 'Analyze~~', @@ -70,5 +71,5 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Restore results:~~', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d attachments were restored.~~', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Stored as inline image~~', - 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~' -)); + 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/da.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/da.dict.combodo-db-tools.php index e12fb3722..9728a3492 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/da.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/da.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Database integrity~~', 'DBTools:Class' => 'Class~~', 'DBTools:Title' => 'Database integrity check~~', @@ -43,17 +44,17 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~', 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`~~', 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~', -)); +]); // Database Info -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'DBTools:DatabaseInfo' => 'Database Information~~', 'DBTools:Base' => 'Base~~', 'DBTools:Size' => 'Size~~', -)); +]); // Lost attachments -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'DBTools:LostAttachments' => 'Lost attachments~~', 'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~', 'DBTools:LostAttachments:Button:Analyze' => 'Analyze~~', @@ -70,5 +71,5 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Restore results:~~', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d attachments were restored.~~', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Stored as inline image~~', - 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~' -)); + 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/de.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/de.dict.combodo-db-tools.php index 1aadf0dc3..11fd389b8 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/de.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/de.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'DB Tools', 'DBTools:Class' => 'Klasse', 'DBTools:Title' => 'Datenbankpflege-Tools', @@ -43,17 +44,17 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch-Count-Fehler in `%1$s`, %2$d Einträge geholt (fetched) / %3$d gezählt', 'DBAnalyzer-Integrity-FinalClass' => 'Das Feld `%2$s`.`%1$s` muss den gleichen Wert `%3$s`.`%1$s` haben', 'DBAnalyzer-Integrity-RootFinalClass' => 'Das Feld `%2$s`.`%1$s` muss eine gültige Klasse enthalten', -)); +]); // Database Info -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'DBTools:DatabaseInfo' => 'Datenbank-Informationen', 'DBTools:Base' => 'Datenbank', 'DBTools:Size' => 'Größe', -)); +]); // Lost attachments -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'DBTools:LostAttachments' => 'Verlorene Attachments', 'DBTools:LostAttachments:Disclaimer' => 'Hier können Sie Ihre Datenbank nach verlorenen oder falsch platzierten Attachments durchsuchen. Dies ist kein Recovery-Tool - es stellt keine gelöschten Daten wieder her.', 'DBTools:LostAttachments:Button:Analyze' => 'Analysieren', @@ -70,5 +71,5 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Restore-Ergebnisse:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d Attachments wurden wiederhergestellt.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Als Inline-Bild gespeichert', - 'DBTools:LostAttachments:History' => 'Attachment "%1$s" mit DB-Tools wiederhergestellt' -)); + 'DBTools:LostAttachments:History' => 'Attachment "%1$s" mit DB-Tools wiederhergestellt', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/en.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/en.dict.combodo-db-tools.php index dd08e6cbe..2190830a9 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/en.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/en.dict.combodo-db-tools.php @@ -1,4 +1,5 @@ 'Database integrity', 'DBTools:Class' => 'Class', @@ -60,17 +61,17 @@ Dict::Add('EN US', 'English', 'English', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted', 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class', -)); +]); // Database Info -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'DBTools:DatabaseInfo' => 'Database Information', 'DBTools:Base' => 'Base', 'DBTools:Size' => 'Size', -)); +]); // Lost attachments -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'DBTools:LostAttachments' => 'Lost attachments', 'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.', @@ -92,5 +93,5 @@ Dict::Add('EN US', 'English', 'English', array( 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d attachments were restored.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Stored as inline image', - 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools' -)); + 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/en_gb.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/en_gb.dict.combodo-db-tools.php index 12cb4e22a..fc3d275b7 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/en_gb.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/en_gb.dict.combodo-db-tools.php @@ -1,4 +1,5 @@ 'Database integrity', 'DBTools:Class' => 'Class', @@ -60,17 +61,17 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted', 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class', -)); +]); // Database Info -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'DBTools:DatabaseInfo' => 'Database Information', 'DBTools:Base' => 'Base', 'DBTools:Size' => 'Size', -)); +]); // Lost attachments -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'DBTools:LostAttachments' => 'Lost attachments', 'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.', @@ -92,5 +93,5 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d attachments were restored.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Stored as inline image', - 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools' -)); + 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/es_cr.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/es_cr.dict.combodo-db-tools.php index 5cc5bce7d..2e5da03c8 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/es_cr.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/es_cr.dict.combodo-db-tools.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:DBToolsMenu' => 'Integridad de Base de Datos', 'DBTools:Class' => 'Clase', 'DBTools:Title' => 'Herramientas de Mantenimiento de Base de Datos', @@ -41,17 +42,17 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'DBAnalyzer-Fetch-Count-Error' => 'Obtener cuenta de errores en `%1$s`, %2$d entradas recuperadas / %3$d contadas', 'DBAnalyzer-Integrity-FinalClass' => 'Campo `%2$s`.`%1$s` debe tener los mismos valores que `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => 'Campo `%2$s`.`%1$s` debe contener un caracter válido', -)); +]); // Database Info -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'DBTools:DatabaseInfo' => 'Información de Base de Datos', 'DBTools:Base' => 'Base', 'DBTools:Size' => 'Tamaño', -)); +]); // Lost attachments -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'DBTools:LostAttachments' => 'Adjuntos perdidos', 'DBTools:LostAttachments:Disclaimer' => 'Aquí usted puede buscar anexos perdidos o fuera de lugar. Esta NO es una herramienta de recuperación de datos, no obtiene datos borrados.', 'DBTools:LostAttachments:Button:Analyze' => 'Analizar', @@ -68,5 +69,5 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Resultados de restauración:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d adjuntos fueron restaurados.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Almacenado como imagen en línea', - 'DBTools:LostAttachments:History' => 'Adjunto "%1$s" restaurado con herramientas de base de datos' -)); + 'DBTools:LostAttachments:History' => 'Adjunto "%1$s" restaurado con herramientas de base de datos', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/fr.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/fr.dict.combodo-db-tools.php index e45719241..2fc59c415 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/fr.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/fr.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Intégrité base de données', 'DBTools:Class' => 'Classe', 'DBTools:Title' => 'Contrôle de l\'intégrité de la base de données', @@ -43,17 +44,17 @@ Dict::Add('FR FR', 'French', 'Français', array( 'DBAnalyzer-Fetch-Count-Error' => 'Erreur de récupération dans `%1$s`, %2$d enregistrements récupérés / %3$d comptés', 'DBAnalyzer-Integrity-FinalClass' => 'Le champ `%2$s`.`%1$s` doit avoir la même valeur que `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => 'Le champ `%2$s`.`%1$s` doit contenir une classe valide', -)); +]); // Database Info -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'DBTools:DatabaseInfo' => 'Information Base de Données', 'DBTools:Base' => 'Base', 'DBTools:Size' => 'Taille', -)); +]); // Lost attachments -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'DBTools:LostAttachments' => 'Pièces jointes perdues', 'DBTools:LostAttachments:Disclaimer' => 'Ici vous pouvez retrouver des pièces jointes perdues ou égarées dans votre base de données. Ceci n\'est PAS un outil de récupération des données, il ne récupère pas les données effacées.', 'DBTools:LostAttachments:Button:Analyze' => 'Analyser', @@ -70,5 +71,5 @@ Dict::Add('FR FR', 'French', 'Français', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Résultats de la restauration :', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d pièces jointes ont été restaurées.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Stockée comme "InlineImage"', - 'DBTools:LostAttachments:History' => 'Pièce jointe "%1$s" restaurée avec l\'outil de BDD' -)); + 'DBTools:LostAttachments:History' => 'Pièce jointe "%1$s" restaurée avec l\'outil de BDD', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/hu.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/hu.dict.combodo-db-tools.php index 41e5604ca..c8d4fe345 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/hu.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/hu.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'DB eszközök', 'DBTools:Class' => 'Osztály', 'DBTools:Title' => 'Adatbázis karbantartó eszközök', @@ -43,17 +44,17 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'DBAnalyzer-Fetch-Count-Error' => 'Lekérési hiba a `%1$s` -nál, %2$d bejegyzés lekérve / %3$d megszámlálva', 'DBAnalyzer-Integrity-FinalClass' => 'A `%2$s`.`%1$s` mezőnek ugyanolyan értékűnek kell lennie mint a `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => '`%2$s`.`%1$s` mezőnek érvényes osztályt kell tartalmaznia', -)); +]); // Database Info -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'DBTools:DatabaseInfo' => 'Adatbázis információ', 'DBTools:Base' => 'Bázis', 'DBTools:Size' => 'Méret', -)); +]); // Lost attachments -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'DBTools:LostAttachments' => 'Elveszett mellékletek', 'DBTools:LostAttachments:Disclaimer' => 'Itt kereshet az adatbázisban elveszett vagy elkeveredett mellékletek után. Ez NEM egy adat-visszaállítási eszköz, nem állítja vissza a törölt adatokat.', 'DBTools:LostAttachments:Button:Analyze' => 'Elemzés', @@ -70,5 +71,5 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Visszaállítás eredménye:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d melléklet lett visszaállítva.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Soron belüli képként tárolva', - 'DBTools:LostAttachments:History' => 'A "%1$s" melléklet visszaállítva a DB eszközzel' -)); + 'DBTools:LostAttachments:History' => 'A "%1$s" melléklet visszaállítva a DB eszközzel', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/it.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/it.dict.combodo-db-tools.php index a53507f02..6d07f0b85 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/it.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/it.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Strumenti DB', 'DBTools:Class' => 'Classe', 'DBTools:Title' => 'Strumenti di Manutenzione del Database', @@ -43,17 +44,17 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'DBAnalyzer-Fetch-Count-Error' => 'Errore di conteggio di recupero in `%1$s`, %2$d voci recuperate / %3$d conteggiate', 'DBAnalyzer-Integrity-FinalClass' => 'Il campo `%2$s`.`%1$s` deve avere lo stesso valore di `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => 'Il campo `%2$s`.`%1$s` deve contenere una classe valida', -)); +]); // Database Info -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'DBTools:DatabaseInfo' => 'Informazioni Database', 'DBTools:Base' => 'Base~~', 'DBTools:Size' => 'Size~~', -)); +]); // Lost attachments -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'DBTools:LostAttachments' => 'Allegati Persi', 'DBTools:LostAttachments:Disclaimer' => 'Qui puoi cercare nel tuo database gli allegati persi o mal posizionati. Questo NON è uno strumento di recupero dati, non recupera dati cancellati.', 'DBTools:LostAttachments:Button:Analyze' => 'Analizza', @@ -70,5 +71,5 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Risultati del ripristino:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d allegati sono stati ripristinati.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Salvato come immagine in linea', - 'DBTools:LostAttachments:History' => 'Allegato "%1$s" ripristinato con gli strumenti DB' -)); + 'DBTools:LostAttachments:History' => 'Allegato "%1$s" ripristinato con gli strumenti DB', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/ja.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/ja.dict.combodo-db-tools.php index 99813c2ac..3691028c2 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/ja.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/ja.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Database integrity~~', 'DBTools:Class' => 'Class~~', 'DBTools:Title' => 'Database integrity check~~', @@ -43,17 +44,17 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~', 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`~~', 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~', -)); +]); // Database Info -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'DBTools:DatabaseInfo' => 'Database Information~~', 'DBTools:Base' => 'Base~~', 'DBTools:Size' => 'Size~~', -)); +]); // Lost attachments -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'DBTools:LostAttachments' => 'Lost attachments~~', 'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~', 'DBTools:LostAttachments:Button:Analyze' => 'Analyze~~', @@ -70,5 +71,5 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Restore results:~~', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d attachments were restored.~~', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Stored as inline image~~', - 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~' -)); + 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/nl.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/nl.dict.combodo-db-tools.php index 96995895a..46368b9aa 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/nl.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/nl.dict.combodo-db-tools.php @@ -1,16 +1,17 @@ (2018 - 2022) * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:DBToolsMenu' => 'Databasetools', 'DBTools:Class' => 'Klasse', 'DBTools:Title' => 'Onderhoudstools voor de database', @@ -44,17 +45,17 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'DBAnalyzer-Fetch-Count-Error' => 'Opvraag-fout in "%1$s", %2$d records opgevraagd / %3$d geteld', 'DBAnalyzer-Integrity-FinalClass' => 'Veld `%2$s`.`%1$s` moet dezelfde waarde hebben als `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => 'Veld `%2$s`.`%1$s` moet een geldige klasse bevatten.', -)); +]); // Database Info -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'DBTools:DatabaseInfo' => 'Database-informatie', 'DBTools:Base' => 'Base', 'DBTools:Size' => 'Grootte', -)); +]); // Lost attachments -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'DBTools:LostAttachments' => 'Verloren bijlages', 'DBTools:LostAttachments:Disclaimer' => 'Zoek hier verloren or verkeerd geplaatste bijlages. Dit is geen recovery-tool, het kan geen gewiste data herstellen.', 'DBTools:LostAttachments:Button:Analyze' => 'Analyseer', @@ -71,5 +72,5 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Resultaten herstel:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d bijlages werden hersteld.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Opgeslagen als afbeelding in tekst', - 'DBTools:LostAttachments:History' => 'Bijlage "%1$s" werd hersteld met de databasetools' -)); + 'DBTools:LostAttachments:History' => 'Bijlage "%1$s" werd hersteld met de databasetools', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/pl.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/pl.dict.combodo-db-tools.php index ecd3eb768..3eed6bfee 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/pl.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/pl.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Integralność bazy danych', 'DBTools:Class' => 'Klasa', 'DBTools:Title' => 'Narzędzia do konserwacji bazy danych', @@ -43,17 +44,17 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'DBAnalyzer-Fetch-Count-Error' => 'Błąd liczby wpisów w `%1$s`, %2$d pobrane wpisy / %3$d obliczone', 'DBAnalyzer-Integrity-FinalClass' => 'Pole `%2$s`.`%1$s` musi mieć taką samą wartość jak `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => 'Pole `%2$s`.`%1$s` musi zawierać prawidłową klasę', -)); +]); // Database Info -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'DBTools:DatabaseInfo' => 'Informacje o bazie danych', 'DBTools:Base' => 'Baza', 'DBTools:Size' => 'Rozmiar', -)); +]); // Lost attachments -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'DBTools:LostAttachments' => 'Utracone załączniki', 'DBTools:LostAttachments:Disclaimer' => 'Tutaj możesz przeszukiwać bazę danych w poszukiwaniu zagubionych załączników. To NIE jest narzędzie do odzyskiwania danych, nie pobiera usuniętych danych.', 'DBTools:LostAttachments:Button:Analyze' => 'Analiza', @@ -70,5 +71,5 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Wyniki przywracania:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d załączniki zostały przywrócone.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Zapisane jako obraz w treści', - 'DBTools:LostAttachments:History' => 'Załącznik "%1$s" przywrócony za pomocą narzędzi DB' -)); + 'DBTools:LostAttachments:History' => 'Załącznik "%1$s" przywrócony za pomocą narzędzi DB', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/pt_br.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/pt_br.dict.combodo-db-tools.php index fd53129ef..639f407a7 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/pt_br.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/pt_br.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Ferramentas de Banco de Dados', 'DBTools:Class' => 'Classe', 'DBTools:Title' => 'Manutenção do Banco de Dados', @@ -43,17 +44,17 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'DBAnalyzer-Fetch-Count-Error' => 'Erro na busca em `%1$s`, %2$d registros buscados / %3$d contados', 'DBAnalyzer-Integrity-FinalClass' => 'Campo `%2$s`.`%1$s` precisa ter o mesmo valor que `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => 'Campo `%2$s`.`%1$s` precisa conter uma classe válida', -)); +]); // Database Info -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'DBTools:DatabaseInfo' => 'Informação do banco de dados', 'DBTools:Base' => 'Banco', 'DBTools:Size' => 'Tamanho', -)); +]); // Lost attachments -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'DBTools:LostAttachments' => 'Anexos perdidos', 'DBTools:LostAttachments:Disclaimer' => 'Aqui você procurará no seu banco de dados por anexos perdidos. Isto NÃO é uma ferramenta de recuperação de dados, pois não busca dados apagados', 'DBTools:LostAttachments:Button:Analyze' => 'Analisar', @@ -70,5 +71,5 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Resultado da restauração:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d anexo(s) recuperado(s)', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Armazenar como imagem embutida', - 'DBTools:LostAttachments:History' => 'Anexo "%1$s" recuperado com as Ferramentas de Banco de Dados' -)); + 'DBTools:LostAttachments:History' => 'Anexo "%1$s" recuperado com as Ferramentas de Banco de Dados', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/ru.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/ru.dict.combodo-db-tools.php index 18d0de306..ebf2a9f6d 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/ru.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/ru.dict.combodo-db-tools.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:DBToolsMenu' => 'Инструменты БД', 'DBTools:Class' => 'Класс', 'DBTools:Title' => 'Инструменты обслуживания базы данных', @@ -44,17 +45,17 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~', 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`~~', 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~', -)); +]); // Database Info -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'DBTools:DatabaseInfo' => 'Информация о базе данных', 'DBTools:Base' => 'База', 'DBTools:Size' => 'Размер', -)); +]); // Lost attachments -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'DBTools:LostAttachments' => 'Потерянные вложения', 'DBTools:LostAttachments:Disclaimer' => 'Здесь вы можете найти потерянные или ошибочно перемещённые вложения в вашей базе данных. Это не инструмент восстановления данных, он не восстанавливает удаленные данные.', 'DBTools:LostAttachments:Button:Analyze' => 'Анализировать', @@ -71,5 +72,5 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Результат восстановления:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d вложения были восстановлены.', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Хранится в качестве "InlineImage"', - 'DBTools:LostAttachments:History' => 'Вложение "%1$s" восстановлено с помощью инструментов обслуживания БД' -)); + 'DBTools:LostAttachments:History' => 'Вложение "%1$s" восстановлено с помощью инструментов обслуживания БД', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/sk.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/sk.dict.combodo-db-tools.php index 5e15401a5..8c4d21139 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/sk.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/sk.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Database integrity~~', 'DBTools:Class' => 'Class~~', 'DBTools:Title' => 'Database integrity check~~', @@ -43,17 +44,17 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~', 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`~~', 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~', -)); +]); // Database Info -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'DBTools:DatabaseInfo' => 'Database Information~~', 'DBTools:Base' => 'Base~~', 'DBTools:Size' => 'Size~~', -)); +]); // Lost attachments -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'DBTools:LostAttachments' => 'Lost attachments~~', 'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~', 'DBTools:LostAttachments:Button:Analyze' => 'Analyze~~', @@ -70,5 +71,5 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Restore results:~~', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d attachments were restored.~~', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Stored as inline image~~', - 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~' -)); + 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/tr.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/tr.dict.combodo-db-tools.php index 14a5d6605..b04493308 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/tr.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/tr.dict.combodo-db-tools.php @@ -1,15 +1,16 @@ 'Database integrity~~', 'DBTools:Class' => 'Class~~', 'DBTools:Title' => 'Database integrity check~~', @@ -43,17 +44,17 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~', 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`~~', 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contain a valid class~~', -)); +]); // Database Info -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'DBTools:DatabaseInfo' => 'Database Information~~', 'DBTools:Base' => 'Base~~', 'DBTools:Size' => 'Size~~', -)); +]); // Lost attachments -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'DBTools:LostAttachments' => 'Lost attachments~~', 'DBTools:LostAttachments:Disclaimer' => 'Here you can search your database for lost or misplaced attachments. This is NOT a data recovery tool, it does not retrieve deleted data.~~', 'DBTools:LostAttachments:Button:Analyze' => 'Analyze~~', @@ -70,5 +71,5 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'DBTools:LostAttachments:Step:RestoreResults' => 'Restore results:~~', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d attachments were restored.~~', 'DBTools:LostAttachments:StoredAsInlineImage' => 'Stored as inline image~~', - 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~' -)); + 'DBTools:LostAttachments:History' => 'Attachment "%1$s" restored with DB tools~~', +]); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/zh_cn.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/zh_cn.dict.combodo-db-tools.php index d8709b309..25efc74ab 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/zh_cn.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/zh_cn.dict.combodo-db-tools.php @@ -1,4 +1,5 @@ */ // Database inconsistencies -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Dictionary entries go here 'Menu:DBToolsMenu' => '数据库工具', 'DBTools:Class' => '类型', @@ -56,17 +57,17 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'DBAnalyzer-Fetch-Count-Error' => '读取计数出错于 `%1$s`, %2$d个记录已读取 / %3$d已', 'DBAnalyzer-Integrity-FinalClass' => '字段 `%2$s`.`%1$s` 必须是相同的值, 而不是 `%3$s`.`%1$s`', 'DBAnalyzer-Integrity-RootFinalClass' => '字段 `%2$s`.`%1$s` 必须包含一个有效的类型', -)); +]); // Database Info -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'DBTools:DatabaseInfo' => '数据库信息', 'DBTools:Base' => '数据库', 'DBTools:Size' => '大小', -)); +]); // Lost attachments -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'DBTools:LostAttachments' => '附件缺失', 'DBTools:LostAttachments:Disclaimer' => '可以在此搜索数据库中丢失或错放的附件. 这不是数据恢复工具, 其无法恢复已删除的数据.', 'DBTools:LostAttachments:Button:Analyze' => '分析', @@ -83,5 +84,5 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'DBTools:LostAttachments:Step:RestoreResults' => '还原结果:', 'DBTools:LostAttachments:Step:RestoreResults:Results' => '%1$d/%2$d的附件被还原.', 'DBTools:LostAttachments:StoredAsInlineImage' => '存储为内嵌图像', - 'DBTools:LostAttachments:History' => '附件 "%1$s" 已使用数据库工具还原' -)); + 'DBTools:LostAttachments:History' => '附件 "%1$s" 已使用数据库工具还原', +]); diff --git a/datamodels/2.x/combodo-db-tools/src/Service/DBAnalyzerUtils.php b/datamodels/2.x/combodo-db-tools/src/Service/DBAnalyzerUtils.php index b7c5e5ad5..289086aed 100644 --- a/datamodels/2.x/combodo-db-tools/src/Service/DBAnalyzerUtils.php +++ b/datamodels/2.x/combodo-db-tools/src/Service/DBAnalyzerUtils.php @@ -1,10 +1,10 @@ $aErrorList) - { + foreach ($aResults as $sClass => $aErrorList) { fwrite($fReport, ''); - foreach ($aErrorList as $sErrorLabel => $aError) - { + foreach ($aErrorList as $sErrorLabel => $aError) { fwrite($fReport, "\r\n-- \r\n"); fwrite($fReport, '-- Class: '.MetaModel::GetName($sClass).' ('.$sClass.")\r\n"); $iCount = $aError['count']; @@ -48,13 +46,11 @@ class DBAnalyzerUtils $sQuery = $aError['query']; fwrite($fReport, '-- Query: '.$sQuery."\r\n"); } - - if (isset($aError['fixit'])) - { + + if (isset($aError['fixit'])) { fwrite($fReport, "\r\n-- Fix it (indication):\r\n\r\n"); $aFixitQueries = $aError['fixit']; - foreach ($aFixitQueries as $sFixitQuery) - { + foreach ($aFixitQueries as $sFixitQuery) { fwrite($fReport, "$sFixitQuery\r\n"); } fwrite($fReport, "\r\n"); diff --git a/datamodels/2.x/combodo-db-tools/src/Service/DBToolsUtils.php b/datamodels/2.x/combodo-db-tools/src/Service/DBToolsUtils.php index 006e4a013..09dcf4824 100644 --- a/datamodels/2.x/combodo-db-tools/src/Service/DBToolsUtils.php +++ b/datamodels/2.x/combodo-db-tools/src/Service/DBToolsUtils.php @@ -1,13 +1,12 @@ fetch_assoc(); - $sSize = $aRow['sz']; - return (int)$sSize; - } - - return 0; - } /** * @return int * @throws \CoreException * @throws \MySQLException * @throws \MySQLHasGoneAwayException */ - public final static function GetDBDataSize() + final public static function GetDatabaseSize() + { + self::AnalyzeTables(); + $sSchema = CMDBSource::DBName(); + + $sReq = <<fetch_assoc(); + $sSize = $aRow['sz']; + return (int)$sSize; + } + + return 0; + } + /** + * @return int + * @throws \CoreException + * @throws \MySQLException + * @throws \MySQLHasGoneAwayException + */ + final public static function GetDBDataSize() { self::AnalyzeTables(); $sSchema = CMDBSource::DBName(); @@ -75,8 +73,7 @@ WHERE table_schema = '$sSchema'; EOF; $oResult = CMDBSource::Query($sReq); - if ($oResult !== false) - { + if ($oResult !== false) { $aRow = $oResult->fetch_assoc(); $sSize = $aRow['sz']; return (int)$sSize; @@ -90,7 +87,7 @@ EOF; * @throws \MySQLException * @throws \MySQLHasGoneAwayException */ - public final static function GetDBIndexSize() + final public static function GetDBIndexSize() { self::AnalyzeTables(); $sSchema = CMDBSource::DBName(); @@ -102,8 +99,7 @@ WHERE table_schema = '$sSchema'; EOF; $oResult = CMDBSource::Query($sReq); - if ($oResult !== false) - { + if ($oResult !== false) { $aRow = $oResult->fetch_assoc(); $sSize = $aRow['sz']; return (int)$sSize; @@ -112,10 +108,10 @@ EOF; return 0; } - public final static function GetDatamodelVersion() + final public static function GetDatamodelVersion() { $oFilter = DBObjectSearch::FromOQL('SELECT ModuleInstallation AS mi WHERE mi.name="datamodel"'); - $oSet = new DBObjectSet($oFilter, array('installed' => false)); // Most recent first + $oSet = new DBObjectSet($oFilter, ['installed' => false]); // Most recent first $oSet->SetLimit(1); /** @var \DBObject $oModuleInstallation */ $oModuleInstallation = $oSet->Fetch(); @@ -125,15 +121,13 @@ EOF; public static function GetPreviousInstallations($iLimitCount = 10) { $oFilter = DBObjectSearch::FromOQL('SELECT ModuleInstallation AS mi WHERE mi.parent_id=0 AND mi.name!="datamodel"'); - $oSet = new DBObjectSet($oFilter, array('installed' => false)); // Most recent first + $oSet = new DBObjectSet($oFilter, ['installed' => false]); // Most recent first $oSet->SetLimit($iLimitCount); $aRawValues = $oSet->ToArrayOfValues(); - $aValues = array(); - foreach ($aRawValues as $aRawValue) - { - $aValue = array(); - foreach ($aRawValue as $sAliasAttCode => $sValue) - { + $aValues = []; + foreach ($aRawValues as $aRawValue) { + $aValue = []; + foreach ($aRawValue as $sAliasAttCode => $sValue) { // remove 'mi.' from AttCode $sAttCode = substr($sAliasAttCode, 3); $aValue[$sAttCode] = $sValue; @@ -161,33 +155,30 @@ AND table_type = 'BASE TABLE'; EOF; $oResult = CMDBSource::Query($sReq); - if ($oResult !== false) - { + if ($oResult !== false) { return $oResult->fetch_all(MYSQLI_ASSOC); } - return array(); + return []; } public static function GetDBVariables() { $sReq = 'SHOW variables'; $oResult = CMDBSource::Query($sReq); - if ($oResult !== false) - { + if ($oResult !== false) { return $oResult->fetch_all(MYSQLI_ASSOC); } - return array(); + return []; } public static function GetDBStatus() { $sReq = 'SHOW status'; $oResult = CMDBSource::Query($sReq); - if ($oResult !== false) - { + if ($oResult !== false) { return $oResult->fetch_all(MYSQLI_ASSOC); } - return array(); + return []; } } diff --git a/datamodels/2.x/itop-attachments/ajax.itop-attachment.php b/datamodels/2.x/itop-attachments/ajax.itop-attachment.php index ad54f0330..66de967dd 100644 --- a/datamodels/2.x/itop-attachments/ajax.itop-attachment.php +++ b/datamodels/2.x/itop-attachments/ajax.itop-attachment.php @@ -1,4 +1,5 @@ SetContentType('text/html'); $oAttachmentsRenderer = AttachmentsRendererFactory::GetInstance($oPage, $sClass, $sId, $iTransactionId); @@ -45,18 +46,14 @@ function RenderAttachments(AjaxPage $oPage, $iTransactionId) $bIsReadOnlyState = (is_null($oObject)) ? false : AttachmentPlugIn::IsReadonlyState($oObject, $oObject->GetState(), AttachmentPlugIn::ENUM_GUI_BACKOFFICE); - if ($bEditMode && !$bIsReadOnlyState) - { + if ($bEditMode && !$bIsReadOnlyState) { $oAttachmentsRenderer->AddAttachmentsListContent(true, $aAttachmentsDeleted); - } - else - { + } else { $oAttachmentsRenderer->RenderViewAttachmentsList(); } } -try -{ +try { require_once APPROOT.'/application/startup.inc.php'; require_once APPROOT.'/application/loginwebpage.class.inc.php'; LoginWebPage::DoLoginEx(null /* any portal */, false); @@ -65,35 +62,27 @@ try $sOperation = utils::ReadParam('operation', ''); - switch ($sOperation) - { + switch ($sOperation) { case 'add': $oPage = new JsonPage(); $oPage->SetOutputDataOnly(true); - $aResult = array( + $aResult = [ 'error' => '', 'att_id' => 0, 'preview' => 'false', 'msg' => '', - ); + ]; $sClass = stripslashes(utils::ReadParam('obj_class', '', false, 'class')); $sTempId = utils::ReadParam('temp_id', '', false, 'transaction_id'); - if (empty($sClass)) - { + if (empty($sClass)) { $aResult['error'] = "Missing argument 'obj_class'"; - } - elseif (empty($sTempId)) - { + } elseif (empty($sTempId)) { $aResult['error'] = "Missing argument 'temp_id'"; - } - else - { - try - { + } else { + try { $oDoc = utils::ReadPostedDocument('file'); - if ($oDoc->IsEmpty()) - { + if ($oDoc->IsEmpty()) { throw new FileUploadException(Dict::S('Attachments:Error:UploadedFileEmpty')); } /** @var Attachment $oAttachment */ @@ -109,9 +98,7 @@ try $aResult['icon'] = utils::GetAbsoluteUrlAppRoot().AttachmentPlugIn::GetFileIcon($oDoc->GetFileName()); $aResult['att_id'] = $iAttId; $aResult['preview'] = $oDoc->IsPreviewAvailable() ? 'true' : 'false'; - } - catch (FileUploadException $e) - { + } catch (FileUploadException $e) { $aResult['error'] = $e->GetMessage(); } } @@ -121,9 +108,8 @@ try case 'remove': $iAttachmentId = utils::ReadParam('att_id', ''); $oSearch = DBObjectSearch::FromOQL("SELECT Attachment WHERE id = :id"); - $oSet = new DBObjectSet($oSearch, array(), array('id' => $iAttachmentId)); - while ($oAttachment = $oSet->Fetch()) - { + $oSet = new DBObjectSet($oSearch, [], ['id' => $iAttachmentId]); + while ($oAttachment = $oSet->Fetch()) { $oAttachment->DBDelete(); } break; @@ -138,8 +124,7 @@ try } $oPage->output(); -} -catch (Exception $e) { +} catch (Exception $e) { // note: transform to cope with XSS attacks echo utils::EscapeHtml($e->GetMessage()); IssueLog::Error($e->getMessage()); diff --git a/datamodels/2.x/itop-attachments/dictionaries/en_gb.dict.itop-attachments.php b/datamodels/2.x/itop-attachments/dictionaries/en_gb.dict.itop-attachments.php index 34dc682b6..bf350abeb 100644 --- a/datamodels/2.x/itop-attachments/dictionaries/en_gb.dict.itop-attachments.php +++ b/datamodels/2.x/itop-attachments/dictionaries/en_gb.dict.itop-attachments.php @@ -1,10 +1,11 @@ 'Attachments (%1$d)', 'Attachments:EmptyTabTitle' => 'Attachments', 'Attachments:FieldsetTitle' => 'Attachments', @@ -25,13 +26,13 @@ or ask your '.ITOP_APPLICATION_SHORT.' administrator if the '.ITOP_APPLICATION_S 'Attachments:Render:Icons' => 'Display as icons', 'Attachments:Render:Table' => 'Display as list', 'UI:Attachments:DropYourFileHint' => 'Drop files anywhere in this area', -)); +]); // // Class: Attachment // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Attachment' => 'Attachment', 'Class:Attachment+' => '', 'Class:Attachment/Attribute:expire' => 'Expire', @@ -46,10 +47,9 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Attachment/Attribute:item_org_id+' => '', 'Class:Attachment/Attribute:contents' => 'Contents', 'Class:Attachment/Attribute:contents+' => '', -)); +]); - -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Attachments:File:Thumbnail' => 'Icon', 'Attachments:File:Name' => 'File name', 'Attachments:File:Date' => 'Upload date', @@ -57,25 +57,25 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Attachments:File:Size' => 'Size', 'Attachments:File:MimeType' => 'Type', 'Attachments:File:DownloadsCount' => 'Downloads', -)); +]); // // Class: Attachment // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Attachment/Attribute:creation_date' => 'Creation date', 'Class:Attachment/Attribute:creation_date+' => '', 'Class:Attachment/Attribute:user_id' => 'User id', 'Class:Attachment/Attribute:user_id+' => '', 'Class:Attachment/Attribute:contact_id' => 'Contact id', 'Class:Attachment/Attribute:contact_id+' => '', -)); +]); // // Class: TriggerOnAttachmentDownload // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnAttachmentDownload' => 'Trigger (on object\'s attachment download)', 'Class:TriggerOnAttachmentDownload+' => 'Trigger on object\'s attachment download of [a child class of] the given class', -)); +]); diff --git a/datamodels/2.x/itop-attachments/renderers.itop-attachments.php b/datamodels/2.x/itop-attachments/renderers.itop-attachments.php index b521cd1cf..1ebbdf001 100644 --- a/datamodels/2.x/itop-attachments/renderers.itop-attachments.php +++ b/datamodels/2.x/itop-attachments/renderers.itop-attachments.php @@ -1,4 +1,5 @@ AllowAllData(); - $this->oAttachmentsSet = new DBObjectSet($oSearch, array(), array('class' => $sObjClass, 'item_id' => $iObjKey)); + $this->oAttachmentsSet = new DBObjectSet($oSearch, [], ['class' => $sObjClass, 'item_id' => $iObjKey]); $oSearchTemp = DBObjectSearch::FromOQL('SELECT Attachment WHERE temp_id = :temp_id'); $oSearchTemp->AllowAllData(); - $this->oTempAttachmentsSet = new DBObjectSet($oSearchTemp, array(), array('temp_id' => $this->sTransactionId)); + $this->oTempAttachmentsSet = new DBObjectSet($oSearchTemp, [], ['temp_id' => $this->sTransactionId]); } /** @@ -154,7 +152,7 @@ abstract class AbstractAttachmentsRenderer * * @return void will print using {@link oPage} */ - public function RenderEditAttachmentsList($aAttachmentsDeleted = array()) + public function RenderEditAttachmentsList($aAttachmentsDeleted = []) { $this->AddUploadButton(); @@ -174,11 +172,11 @@ abstract class AbstractAttachmentsRenderer * @throws \CoreUnexpectedValue * @throws \MySQLException */ - abstract public function AddAttachmentsListContent($bWithDeleteButton, $aAttachmentsDeleted = array()); + abstract public function AddAttachmentsListContent($bWithDeleteButton, $aAttachmentsDeleted = []); public function RenderViewAttachmentsList() { - $this->AddAttachmentsListContent(false, array()); + $this->AddAttachmentsListContent(false, []); } protected function AddUploadButton() @@ -196,12 +194,11 @@ abstract class AbstractAttachmentsRenderer $oAddButton = FileSelectUIBlockFactory::MakeStandard('file', 'file'); $oAddButton->SetShowFilename(false); $this->oPage->AddUiBlock($oAddButton); - $this->oPage->add(' ' . $sMaxUploadLabel); + $this->oPage->add(' '.$sMaxUploadLabel); $this->oPage->add(''); $this->oPage->add('
        '); $this->oPage->add(file_get_contents(APPROOT.'images/illustrations/undraw_upload.svg')); $this->oPage->add(Dict::S('UI:Attachments:DropYourFileHint').'
        '); - $this->oPage->LinkScriptFromAppRoot('node_modules/blueimp-file-upload/js/jquery.iframe-transport.js'); $this->oPage->LinkScriptFromAppRoot('node_modules/blueimp-file-upload/js/jquery.fileupload.js'); @@ -365,15 +362,18 @@ JS protected function GetDeleteAttachmentButton($iAttId) { - $oButton = ButtonUIBlockFactory::MakeIconAction('fas fa-trash', Dict::S('Attachments:DeleteBtn'), + $oButton = ButtonUIBlockFactory::MakeIconAction( + 'fas fa-trash', + Dict::S('Attachments:DeleteBtn'), '', Dict::S('Attachments:DeleteBtn'), false, - "btn_remove_".$iAttId); + "btn_remove_".$iAttId + ); $oButton->AddCSSClass('btn_hidden') ->SetOnClickJsCode("RemoveAttachment(".$iAttId.");") ->SetColor(Button::ENUM_COLOR_SCHEME_DESTRUCTIVE); - + return $oButton; } @@ -399,22 +399,19 @@ JS; } } - /** * Class TableDetailsAttachmentsRenderer */ class TableDetailsAttachmentsRenderer extends AbstractAttachmentsRenderer { - public function AddAttachmentsListContent($bWithDeleteButton, $aAttachmentsDeleted = array()) + public function AddAttachmentsListContent($bWithDeleteButton, $aAttachmentsDeleted = []) { - if ($this->GetAttachmentsCount() === 0) - { + if ($this->GetAttachmentsCount() === 0) { $this->oPage->add(Dict::S('Attachments:NoAttachment')); return; } - $sThumbnail = Dict::S('Attachments:File:Thumbnail'); $sFileName = Dict::S('Attachments:File:Name'); $sFileSize = Dict::S('Attachments:File:Size'); @@ -423,37 +420,34 @@ class TableDetailsAttachmentsRenderer extends AbstractAttachmentsRenderer $sFileType = Dict::S('Attachments:File:MimeType'); $sFileDownloadsCount = Dict::S('Attachments:File:DownloadsCount'); - if ($bWithDeleteButton) - { + if ($bWithDeleteButton) { $this->oPage->add_script($this->GetDeleteAttachmentJs()); } $bIsEven = false; $aAttachmentsDate = AttachmentsHelper::GetAttachmentsDateAddedFromDb($this->sObjClass, $this->iObjKey); - $aData = array(); - while ($oAttachment = $this->oAttachmentsSet->Fetch()) - { + $aData = []; + while ($oAttachment = $this->oAttachmentsSet->Fetch()) { $bIsEven = ($bIsEven) ? false : true; $aData[] = $this->AddAttachmentsTableLine($bWithDeleteButton, $bIsEven, $oAttachment, $aAttachmentsDate, $aAttachmentsDeleted); } - while ($oTempAttachment = $this->oTempAttachmentsSet->Fetch()) - { + while ($oTempAttachment = $this->oTempAttachmentsSet->Fetch()) { $bIsEven = ($bIsEven) ? false : true; $aData[] = $this->AddAttachmentsTableLine($bWithDeleteButton, $bIsEven, $oTempAttachment, $aAttachmentsDate, $aAttachmentsDeleted); } - $aAttribs = array( - 'icon' => array('label' => $sThumbnail, 'description' => $sThumbnail), - 'filename' => array('label' => $sFileName, 'description' => $sFileName), - 'formatted-size' => array('label' => $sFileSize, 'description' => $sFileSize), - 'upload-date' => array('label' => $sFileDate, 'description' => $sFileDate), - 'uploader' => array('label' => $sFileUploader, 'description' => $sFileUploader), - 'type' => array('label' => $sFileType, 'description' => $sFileType), - 'downloads-count' => array('label' => $sFileDownloadsCount, 'description' => $sFileDownloadsCount), - ); + $aAttribs = [ + 'icon' => ['label' => $sThumbnail, 'description' => $sThumbnail], + 'filename' => ['label' => $sFileName, 'description' => $sFileName], + 'formatted-size' => ['label' => $sFileSize, 'description' => $sFileSize], + 'upload-date' => ['label' => $sFileDate, 'description' => $sFileDate], + 'uploader' => ['label' => $sFileUploader, 'description' => $sFileUploader], + 'type' => ['label' => $sFileType, 'description' => $sFileType], + 'downloads-count' => ['label' => $sFileDownloadsCount, 'description' => $sFileDownloadsCount], + ]; if ($bWithDeleteButton) { - $aAttribs['delete'] = array('label' => '', 'description' => ''); + $aAttribs['delete'] = ['label' => '', 'description' => '']; } $oPanel = PanelUIBlockFactory::MakeNeutral(''); $oPanel->AddCSSClass('ibo-datatable-panel'); @@ -465,7 +459,7 @@ class TableDetailsAttachmentsRenderer extends AbstractAttachmentsRenderer $sTableId = $oAttachmentTableBlock->GetId(); - foreach ($aData as $aAtt){ + foreach ($aData as $aAtt) { $sJS = $aAtt['js']; $this->oPage->add_ready_script( <<GetKey(); $bIsDeletedAttachment = false; - if (in_array($iAttachmentId, $aAttachmentsDeleted, true)) - { + if (in_array($iAttachmentId, $aAttachmentsDeleted, true)) { $bIsDeletedAttachment = true; } @@ -512,11 +505,9 @@ JS $sFileFormattedSize = $oDoc->GetFormattedSize(); $bIsTempAttachment = ($oAttachment->Get('item_id') === 0); $sAttachmentDateFormatted = ''; - if (!$bIsTempAttachment) - { + if (!$bIsTempAttachment) { $sAttachmentDate = $oAttachment->Get('creation_date'); - if (empty($sAttachmentDate) && array_key_exists($iAttachmentId, $aAttachmentsDate)) - { + if (empty($sAttachmentDate) && array_key_exists($iAttachmentId, $aAttachmentsDate)) { $sAttachmentDate = $aAttachmentsDate[$iAttachmentId]; } $oAttachmentDate = DateTime::createFromFormat(AttributeDateTime::GetInternalFormat(), $sAttachmentDate); @@ -536,19 +527,16 @@ JS $sPreviewNotAvailable = Dict::S('Attachments:PreviewNotAvailable'); $sPreviewMarkup = $sPreviewNotAvailable; - if ($oDoc->IsPreviewAvailable()) - { + if ($oDoc->IsPreviewAvailable()) { $sIconClass = ' preview'; $sAttachmentPreviewUrl = $sDocDisplayUrl; - if ($oDoc->GetSize() <= $iMaxSizeForPreview) - { + if ($oDoc->GetSize() <= $iMaxSizeForPreview) { $sAttachmentThumbUrl = $sDocDisplayUrl; } $sPreviewMarkup = utils::HtmlEntities(''); } - - $aAttachmentLine = array( + $aAttachmentLine = [ '@id' => $sTrId, '@meta' => 'data-file-type="'.utils::HtmlEntities($sFileType).'" data-file-size-raw="'.utils::HtmlEntities($iFileSize).'" data-file-size-formatted="'.utils::HtmlEntities($sFileFormattedSize).'" data-file-uploader="'.utils::HtmlEntities($sAttachmentUploader).'"', 'icon' => '', @@ -559,16 +547,15 @@ JS 'type' => $sFileType, 'downloads-count' => $oDoc->GetDownloadsCount(), 'js' => '', - ); + ]; if ($bIsDeletedAttachment) { $aAttachmentLine['@class'] = 'ibo-is-hidden'; } - if ($bWithDeleteButton) - { + if ($bWithDeleteButton) { $sDeleteButton = $this->GetDeleteAttachmentButton($iAttachmentId); - + $oBlockRenderer = new BlockRenderer($sDeleteButton); $aAttachmentLine['js'] .= $oBlockRenderer->RenderJsInline($sDeleteButton::ENUM_JS_TYPE_ON_INIT); $aAttachmentLine['delete'] = $oBlockRenderer->RenderHtml(); diff --git a/datamodels/2.x/itop-attachments/src/Hook/EventListener.php b/datamodels/2.x/itop-attachments/src/Hook/EventListener.php index 114214ec5..eb23cd5f6 100644 --- a/datamodels/2.x/itop-attachments/src/Hook/EventListener.php +++ b/datamodels/2.x/itop-attachments/src/Hook/EventListener.php @@ -150,7 +150,7 @@ class EventListener implements iEventServiceSetup 'attachment->data' => $oDocument->GetData(), 'attachment->data_as_base64' => base64_encode($oDocument->GetData()), ]; - $aTriggerParams = array('class_list' => MetaModel::EnumParentClasses($oAttachment->Get('item_class'), ENUM_PARENT_CLASSES_ALL)); + $aTriggerParams = ['class_list' => MetaModel::EnumParentClasses($oAttachment->Get('item_class'), ENUM_PARENT_CLASSES_ALL)]; $oTriggerSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT $sTriggerClass AS t WHERE t.target_class IN (:class_list)"), [], $aTriggerParams); /** @var \Trigger $oTrigger */ @@ -171,4 +171,4 @@ class EventListener implements iEventServiceSetup } } } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-backup/ajax.backup.php b/datamodels/2.x/itop-backup/ajax.backup.php index 67273f7be..35dfd75a0 100644 --- a/datamodels/2.x/itop-backup/ajax.backup.php +++ b/datamodels/2.x/itop-backup/ajax.backup.php @@ -1,4 +1,5 @@ SetContentType('text/html'); - - /** * Check security */ -switch ($sOperation) -{ +switch ($sOperation) { /** * Can't use normal check methods (DoLogin for ex) as the datamodel can't be loaded here * So we're only using a token generated in the restore_token operation @@ -68,8 +62,10 @@ switch ($sOperation) case 'restore_exec': IssueLog::Enable(APPROOT.'log/error.log'); if (utils::GetConfig()->Get('demo_mode')) { - DisplayErrorAndDie($oPage, - '
        Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the feature is disabled.
        '); + DisplayErrorAndDie( + $oPage, + '
        Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the feature is disabled.
        ' + ); } $sToken = utils::ReadParam('token', '', false, 'raw_data'); @@ -93,38 +89,30 @@ switch ($sOperation) $sTransactionId = utils::ReadParam('transaction_id', '', true, 'transaction_id'); // the consumer page is not reloaded after download, we need to keep the transaction_id $bRemoveTransactionId = ($sOperation !== 'download'); - if (!utils::IsTransactionValid($sTransactionId, $bRemoveTransactionId)) - { + if (!utils::IsTransactionValid($sTransactionId, $bRemoveTransactionId)) { $sEscapedOperation = utils::HtmlEntities($sOperation); DisplayErrorAndDie($oPage, "
        Error: invalid Transaction ID. The operation '$sEscapedOperation' was NOT performed!
        "); } ApplicationMenu::CheckMenuIdEnabled('BackupStatus'); - if (utils::GetConfig()->Get('demo_mode')) - { + if (utils::GetConfig()->Get('demo_mode')) { DisplayErrorAndDie($oPage, '
        Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the feature is disabled.
        '); } break; } - /** * Backup from an interactive session */ -try -{ - switch ($sOperation) - { +try { + switch ($sOperation) { case 'backup': - try - { + try { set_time_limit(0); $oBB = new BackupExec(utils::GetDataPath().'backups/manual/', 0 /*iRetentionCount*/); $sRes = $oBB->Process(time() + 36000); // 10 hours to complete should be sufficient! - } - catch (Exception $e) - { + } catch (Exception $e) { $oPage->p('Error: '.$e->getMessage()); IssueLog::Error($sOperation.' - '.$e->getMessage()); } @@ -132,21 +120,20 @@ try $oPage->output(); break; - /* - * Fix a specific token : - * We can't load the MetaModel because in DBRestore, after restore is done we're launching a compile ! - * So as LoginWebPage::DoLogin needs a loaded DataModel, we can't use it - * Also, we can't use \utils::IsTransactionValid as it uses \MetaModel::GetConfig - * As a result we're setting a token file to make sure the restore is called by an authenticated user with the correct rights ! - */ + /* + * Fix a specific token : + * We can't load the MetaModel because in DBRestore, after restore is done we're launching a compile ! + * So as LoginWebPage::DoLogin needs a loaded DataModel, we can't use it + * Also, we can't use \utils::IsTransactionValid as it uses \MetaModel::GetConfig + * As a result we're setting a token file to make sure the restore is called by an authenticated user with the correct rights ! + */ case 'restore_get_token': $oPage = new JsonPage(); $oPage->SetOutputDataOnly(true); $sEnvironment = utils::ReadParam('environment', 'production', false, 'raw_data'); $oRestoreMutex = new iTopMutex('restore.'.$sEnvironment); - if ($oRestoreMutex->IsLocked()) - { + if ($oRestoreMutex->IsLocked()) { DisplayErrorAndDie($oPage, '

        '.Dict::S('bkp-restore-running').'

        '); } @@ -159,10 +146,10 @@ try $oPage->output(); break; - /* - * We can't call \LoginWebPage::DoLogin because DBRestore will do a compile after restoring the DB - * Authentication is checked with a token file (see $sOperation='restore_get_token') - */ + /* + * We can't call \LoginWebPage::DoLogin because DBRestore will do a compile after restoring the DB + * Authentication is checked with a token file (see $sOperation='restore_get_token') + */ case 'restore_exec': require_once(APPROOT."setup/runtimeenv.class.inc.php"); require_once(APPROOT.'/application/utils.inc.php'); @@ -170,8 +157,7 @@ try require_once(__DIR__.'/dbrestore.class.inc.php'); $sEnvironment = utils::ReadParam('environment', 'production', false, 'raw_data'); - try - { + try { set_time_limit(0); // Get the file and destroy the token (single usage) @@ -190,14 +176,10 @@ try $sRes = $oDBRS->RestoreFromCompressedBackup($sBackupFile, $sEnvironment); IssueLog::Info('Backup Restore - Done, releasing the LOCK'); - } - catch (Exception $e) - { + } catch (Exception $e) { $oPage->p('Error: '.$e->getMessage()); IssueLog::Error($sOperation.' - '.$e->getMessage()); - } - finally - { + } finally { unlink($tokenRealPath); } @@ -212,16 +194,12 @@ try $oBackup = new DBBackupScheduled(); $sBackupDir = utils::GetDataPath().'backups/'; $sBackupFilePath = utils::RealPath($sBackupDir.$sFile, $sBackupDir); - if ($sBackupFilePath === false) - { + if ($sBackupFilePath === false) { throw new CoreUnexpectedValue('Invalid file path'); } $oBackup->DownloadBackup($sBackupFilePath); break; } -} -catch (Exception $e) -{ +} catch (Exception $e) { IssueLog::Error($sOperation.' - '.$e->getMessage()); } - diff --git a/datamodels/2.x/itop-backup/backup.php b/datamodels/2.x/itop-backup/backup.php index 09f22fcc1..49c5252e6 100644 --- a/datamodels/2.x/itop-backup/backup.php +++ b/datamodels/2.x/itop-backup/backup.php @@ -1,4 +1,5 @@ p('Perform a backup of the iTop database by running mysqldump'); $oP->p('Parameters:'); - if (utils::IsModeCLI()) - { + if (utils::IsModeCLI()) { $oP->p('auth_user: login, must be administrator'); $oP->p('auth_pwd: ...'); } @@ -74,13 +71,10 @@ function Usage($oP) $oP->p('simulate [optional]: set to check the name of the file that would be created'); $oP->p('mysql_bindir [optional]: specify the path for mysqldump'); - if (utils::IsModeCLI()) - { + if (utils::IsModeCLI()) { $oP->p('Example: php -q backup.php --auth_user=admin --auth_pwd=myPassw0rd'); $oP->p('Known limitation: the current directory must be the directory of backup.php'); - } - else - { + } else { $oP->p('Example: .../backup.php?backup_file=/tmp/backup.__DB__-__SUBNAME__.%Y-%m'); } } @@ -91,67 +85,53 @@ function Usage($oP) * @throws \DictExceptionUnknownLanguage * @throws \OQLException */ -function ExecuteMainOperation($oP){ +function ExecuteMainOperation($oP) +{ - if (utils::IsModeCLI()) - { + if (utils::IsModeCLI()) { $oP->p(date('Y-m-d H:i:s')." - running backup utility"); $sAuthUser = ReadMandatoryParam($oP, 'auth_user'); $sAuthPwd = ReadMandatoryParam($oP, 'auth_pwd'); $bDownloadBackup = false; - if (UserRights::CheckCredentials($sAuthUser, $sAuthPwd)) - { + if (UserRights::CheckCredentials($sAuthUser, $sAuthPwd)) { UserRights::Login($sAuthUser); // Login & set the user's language - } - else - { + } else { ExitError($oP, "Access restricted or wrong credentials ('$sAuthUser')"); } - } - else - { + } else { require_once(APPROOT.'application/loginwebpage.class.inc.php'); LoginWebPage::DoLogin(); // Check user rights and prompt if needed $bDownloadBackup = utils::ReadParam('download', false); } - if (!UserRights::IsAdministrator()) - { + if (!UserRights::IsAdministrator()) { ExitError($oP, "Access restricted to administors"); } - if (CheckParam('?') || CheckParam('h') || CheckParam('help')) - { + if (CheckParam('?') || CheckParam('h') || CheckParam('help')) { Usage($oP); $oP->output(); exit; } - $sDefaultBackupFileName = SetupUtils::GetTmpDir().'/'."__DB__-%Y-%m-%d"; $sBackupFile = utils::ReadParam('backup_file', $sDefaultBackupFileName, true, 'raw_data'); -// Interpret strftime specifications (like %Y) and database placeholders + // Interpret strftime specifications (like %Y) and database placeholders $oBackup = new MyDBBackup($oP); $oBackup->SetMySQLBinDir(MetaModel::GetConfig()->GetModuleSetting('itop-backup', 'mysql_bindir', '')); $sBackupFile = $oBackup->MakeName($sBackupFile); $bSimulate = utils::ReadParam('simulate', false, true); $res = false; - if ($bSimulate) - { + if ($bSimulate) { $oP->p("Simulate: would create file '$sBackupFile'"); - } - elseif (MetaModel::GetConfig()->Get('demo_mode')) - { + } elseif (MetaModel::GetConfig()->Get('demo_mode')) { $oP->p("Sorry, iTop is in demonstration mode: the feature is disabled"); - } - else - { + } else { $oBackup->CreateCompressedBackup($sBackupFile); } - if ($res && $bDownloadBackup) - { + if ($res && $bDownloadBackup) { $oBackup->DownloadBackup($sBackupFile); } } diff --git a/datamodels/2.x/itop-backup/check-backup.php b/datamodels/2.x/itop-backup/check-backup.php index 2319f630f..04dfada1e 100644 --- a/datamodels/2.x/itop-backup/check-backup.php +++ b/datamodels/2.x/itop-backup/check-backup.php @@ -1,4 +1,5 @@ GetMessage()."\n"; return; } @@ -151,60 +130,52 @@ function RaiseAlarm($sMessage) $oConfig = GetConfig(); $sItopRootConfig = $oConfig->GetModuleSetting('itop-backup', 'itop_backup_incident'); - if (empty($sItopRootConfig)) - { + if (empty($sItopRootConfig)) { // by default getting self ! // we could have '' as config value... $sItopRootConfig = $oConfig->Get('app_root_url'); } - try - { + try { $sWsdlUri = $sItopRootConfig.'/webservices/itop.wsdl.php'; $aSOAPMapping = SOAPMapping::GetMapping(); ini_set("soap.wsdl_cache_enabled", "0"); $oSoapClient = new SoapClient( $sWsdlUri, - array( + [ 'trace' => 1, 'classmap' => $aSOAPMapping, // defined in itopsoaptypes.class.inc.php - ) + ] ); - } - catch (Exception $e) - { + } catch (Exception $e) { echo "ERROR: Failed to read WSDL of the target iTop ($sItopRootConfig)\n"; return; } - try - { - $oRes = $oSoapClient->CreateIncidentTicket - ( + try { + $oRes = $oSoapClient->CreateIncidentTicket( $sTicketLogin, /* login */ $sTicketPwd, /* password */ $sTicketTitle, /* title */ $sMessage, /* description */ null, /* caller */ - new SOAPExternalKeySearch(array(new SOAPSearchCondition('name', $sTicketCustomer))), /* customer */ - new SOAPExternalKeySearch(array(new SOAPSearchCondition('name', $sTicketService))), /* service */ - new SOAPExternalKeySearch(array(new SOAPSearchCondition('name', $sTicketSubcategory))), /* service subcategory */ + new SOAPExternalKeySearch([new SOAPSearchCondition('name', $sTicketCustomer)]), /* customer */ + new SOAPExternalKeySearch([new SOAPSearchCondition('name', $sTicketService)]), /* service */ + new SOAPExternalKeySearch([new SOAPSearchCondition('name', $sTicketSubcategory)]), /* service subcategory */ '', /* product */ - new SOAPExternalKeySearch(array(new SOAPSearchCondition('name', $sTicketWorkgroup))), /* workgroup */ - array( + new SOAPExternalKeySearch([new SOAPSearchCondition('name', $sTicketWorkgroup)]), /* workgroup */ + [ new SOAPLinkCreationSpec( 'Server', - array(new SOAPSearchCondition('name', $sTicketImpactedServer)), - array() + [new SOAPSearchCondition('name', $sTicketImpactedServer)], + [] ), - ), /* impacted cis */ + ], /* impacted cis */ '1', /* impact */ '1' /* urgency */ ); - } - catch(Exception $e) - { + } catch (Exception $e) { echo "The ticket could not be created: SOAP Exception = '".$e->getMessage()."'\n"; return; @@ -214,102 +185,76 @@ function RaiseAlarm($sMessage) //print_r($oRes); //echo "\n"; - if ($oRes->status) - { + if ($oRes->status) { $sTicketName = $oRes->result[0]->values[1]->value; echo "Created ticket: $sTicketName\n"; - } - else - { + } else { echo "ERROR: Failed to create the ticket in target iTop ($sItopRootConfig)\n"; - foreach ($oRes->errors->messages as $oMessage) - { + foreach ($oRes->errors->messages as $oMessage) { echo $oMessage->text."\n"; } - } + } } - ////////// // Main -try -{ +try { utils::UseParamFile(); -} -catch(Exception $e) -{ +} catch (Exception $e) { echo "Error: ".$e->GetMessage()."\n"; exit; } - -if (utils::IsModeCLI()) -{ +if (utils::IsModeCLI()) { SetupUtils::CheckPhpAndExtensionsForCli(new CLIPage('Check backup utility')); echo date('Y-m-d H:i:s')." - running check-backup utility\n"; - try - { + try { $sAuthUser = ReadMandatoryParam('auth_user'); $sAuthPwd = ReadMandatoryParam('auth_pwd'); - } - catch (Exception $e) - { + } catch (Exception $e) { $sMessage = $e->getMessage(); ToolsLog::Error($sMessage); echo $sMessage; exit; } $bDownloadBackup = false; - if (UserRights::CheckCredentials($sAuthUser, $sAuthPwd)) - { + if (UserRights::CheckCredentials($sAuthUser, $sAuthPwd)) { UserRights::Login($sAuthUser); // Login & set the user's language - } - else - { + } else { ExitError($oP, "Access restricted or wrong credentials ('$sAuthUser')"); } -} -else -{ +} else { require_once(APPROOT.'application/loginwebpage.class.inc.php'); LoginWebPage::DoLogin(); // Check user rights and prompt if needed $bDownloadBackup = utils::ReadParam('download', false); } -if (!UserRights::IsAdministrator()) -{ +if (!UserRights::IsAdministrator()) { ExitError($oP, "Access restricted to administors"); } - - // N°1802 : was moved from script param to config file (avoid direct call with untrusted param value) $sItopRootParam = utils::ReadParam('check_ticket_itop', null, true, 'raw_data'); -if (!empty($sItopRootParam)) -{ +if (!empty($sItopRootParam)) { echo "ERROR: parameter 'check_ticket_itop' should now be specified in the config file 'itop_backup_incident' parameter\n"; return; } - $sZipArchiveFile = MakeArchiveFileName().'.tar.gz'; $sZipArchiveFileForDisplay = utils::HtmlEntities($sZipArchiveFile); echo date('Y-m-d H:i:s')." - Checking file: $sZipArchiveFileForDisplay\n"; - -if (!file_exists($sZipArchiveFile)) -{ +if (!file_exists($sZipArchiveFile)) { RaiseAlarm("Missing backup file '$sZipArchiveFileForDisplay'"); return; } $aStat = stat($sZipArchiveFile); -if (!$aStat) -{ +if (!$aStat) { RaiseAlarm("Failed to stat backup file '$sZipArchiveFileForDisplay'"); return; @@ -317,37 +262,28 @@ if (!$aStat) $iSize = (int)$aStat['size']; $iMIN = utils::ReadParam('check_size_min', 0); -if ($iSize <= $iMIN) -{ +if ($iSize <= $iMIN) { RaiseAlarm("Backup file '$sZipArchiveFileForDisplay' too small (Found: $iSize, while expecting $iMIN bytes)"); return; } - echo "Found the archive\n"; $sOldArchiveFile = MakeArchiveFileName(time() - 86400).'.tar.gz'; // yesterday's archive $sOldArchiveFileForDisplay = utils::HtmlEntities($sOldArchiveFile); -if (file_exists($sOldArchiveFile)) -{ - if ($aOldStat = stat($sOldArchiveFile)) - { +if (file_exists($sOldArchiveFile)) { + if ($aOldStat = stat($sOldArchiveFile)) { echo "Comparing its size with older file: $sOldArchiveFileForDisplay\n"; $iOldSize = (int)$aOldStat['size']; $fVariationPercent = 100 * ($iSize - $iOldSize) / $iOldSize; $sVariation = round($fVariationPercent, 2)." percent(s)"; $iREDUCTIONMAX = utils::ReadParam('check_size_reduction_max'); - if ($fVariationPercent < -$iREDUCTIONMAX) - { + if ($fVariationPercent < -$iREDUCTIONMAX) { RaiseAlarm("Backup file '$sZipArchiveFileForDisplay' changed by $sVariation, expecting a reduction limited to $iREDUCTIONMAX percents of the original size"); - } - elseif ($fVariationPercent < 0) - { + } elseif ($fVariationPercent < 0) { echo "Size variation: $sVariation (the maximum allowed reduction is $iREDUCTIONMAX) \n"; - } - else - { + } else { echo "The archive grew by: $sVariation\n"; } } diff --git a/datamodels/2.x/itop-backup/common.cli-execution.php b/datamodels/2.x/itop-backup/common.cli-execution.php index 358803f23..756896066 100644 --- a/datamodels/2.x/itop-backup/common.cli-execution.php +++ b/datamodels/2.x/itop-backup/common.cli-execution.php @@ -1,4 +1,5 @@ GetMessage()); } diff --git a/datamodels/2.x/itop-backup/dictionaries/cs.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/cs.dict.itop-backup.php index 3965ef59b..2cae140fd 100644 --- a/datamodels/2.x/itop-backup/dictionaries/cs.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/cs.dict.itop-backup.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'bkp-backup-running' => 'Probíhá záloha. Vyčkejte prosím...', 'bkp-restore-running' => 'Probíhá obnova ze zálohy. Vyčkejte prosím...', 'Menu:BackupStatus' => 'Plánované zálohování', @@ -46,4 +47,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'bkp-wait-backup' => 'Vyčkejte prosím na dokončení zálohy...', 'bkp-wait-restore' => 'Vyčkejte prosím na dokončení obnovy', 'bkp-success-restore' => 'Obnova úspěšně dokončena.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/da.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/da.dict.itop-backup.php index 6f5425f9c..dd95b5385 100644 --- a/datamodels/2.x/itop-backup/dictionaries/da.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/da.dict.itop-backup.php @@ -1,15 +1,16 @@ 'A backup is running. Please wait...~~', 'bkp-restore-running' => 'A restore is running. Please wait...~~', 'Menu:BackupStatus' => 'Backups~~', @@ -44,4 +45,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'bkp-wait-backup' => 'Please wait for the backup to complete...~~', 'bkp-wait-restore' => 'Please wait for the restore to complete...~~', 'bkp-success-restore' => 'Restore successfully completed.~~', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/de.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/de.dict.itop-backup.php index 95c1228b4..bbd871757 100644 --- a/datamodels/2.x/itop-backup/dictionaries/de.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/de.dict.itop-backup.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'bkp-backup-running' => 'Backup wird durchgeführt. Bitte warten ...', 'bkp-restore-running' => 'Wiederherstellung läuft. Bitte warten ...', 'Menu:BackupStatus' => 'Geplante Backups', @@ -45,4 +46,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'bkp-wait-backup' => 'Bitte warten, bis das Backup abgeschlossen ist ...', 'bkp-wait-restore' => 'Bitte warten, bis die Wiederherstellung abgeschlossen ist ...', 'bkp-success-restore' => 'Wiederherstellung erfolgreich.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/en.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/en.dict.itop-backup.php index 2e769a829..2981bdb01 100644 --- a/datamodels/2.x/itop-backup/dictionaries/en.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/en.dict.itop-backup.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'bkp-backup-running' => 'A backup is running. Please wait...', 'bkp-restore-running' => 'A restore is running. Please wait...', @@ -58,4 +59,4 @@ Dict::Add('EN US', 'English', 'English', array( 'bkp-wait-backup' => 'Please wait for the backup to complete...', 'bkp-wait-restore' => 'Please wait for the restore to complete...', 'bkp-success-restore' => 'Restore successfully completed.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/en_gb.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/en_gb.dict.itop-backup.php index d55fa56f2..54c8e4aa1 100644 --- a/datamodels/2.x/itop-backup/dictionaries/en_gb.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/en_gb.dict.itop-backup.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'bkp-backup-running' => 'A backup is running. Please wait...', 'bkp-restore-running' => 'A restore is running. Please wait...', @@ -58,4 +59,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'bkp-wait-backup' => 'Please wait for the backup to complete...', 'bkp-wait-restore' => 'Please wait for the restore to complete...', 'bkp-success-restore' => 'Restore successfully completed.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/es_cr.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/es_cr.dict.itop-backup.php index 39264ade5..1d4a1d511 100644 --- a/datamodels/2.x/itop-backup/dictionaries/es_cr.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/es_cr.dict.itop-backup.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'bkp-backup-running' => 'Un respaldo está en ejecuión. Por favor espere...', 'bkp-restore-running' => 'Una restauración está en ejecución. Por favor espere...', 'Menu:BackupStatus' => 'Respaldos programados', @@ -42,4 +43,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'bkp-wait-backup' => 'Por favor espera a que se complete el respaldo...', 'bkp-wait-restore' => 'Por favor espera a que se complete la restauración...', 'bkp-success-restore' => 'Restauración completada exitosamente.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/fr.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/fr.dict.itop-backup.php index eafd907d1..2351c1b83 100644 --- a/datamodels/2.x/itop-backup/dictionaries/fr.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/fr.dict.itop-backup.php @@ -1,15 +1,16 @@ 'Une sauvegarde est en cours. Veuillez patienter...', 'bkp-restore-running' => 'Une restauration des données est en cours. Veuillez patienter...', 'Menu:BackupStatus' => 'Sauvegardes', @@ -44,4 +45,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'bkp-wait-backup' => 'Sauvegarde en cours...', 'bkp-wait-restore' => 'Restauration des données en cours...', 'bkp-success-restore' => 'Restauration des données terminée.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/hu.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/hu.dict.itop-backup.php index 204913831..2462fd87f 100644 --- a/datamodels/2.x/itop-backup/dictionaries/hu.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/hu.dict.itop-backup.php @@ -1,15 +1,16 @@ 'A mentés fut. Kérem várjon...', 'bkp-restore-running' => 'A visszaállítás fut. Kérem várjon...', 'Menu:BackupStatus' => 'Biztonsági mentés', @@ -44,4 +45,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'bkp-wait-backup' => 'Várjon a mentés befejezéséig...', 'bkp-wait-restore' => 'Várjon a visszaállítás befejezéséig...', 'bkp-success-restore' => 'A visszaállítás sikerült.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/it.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/it.dict.itop-backup.php index 0caba5143..4dbc18575 100644 --- a/datamodels/2.x/itop-backup/dictionaries/it.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/it.dict.itop-backup.php @@ -1,15 +1,16 @@ 'Un backup è in corso. Attendere prego...', 'bkp-restore-running' => 'Un ripristino è in corso. Attendere prego...', 'Menu:BackupStatus' => 'Backup programmati', @@ -44,4 +45,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'bkp-wait-backup' => 'Attendere il completamento del backup...', 'bkp-wait-restore' => 'Attendere il completamento del ripristino...', 'bkp-success-restore' => 'Ripristino completato con successo.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/ja.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/ja.dict.itop-backup.php index 80fe821e5..ebf8d2d9b 100644 --- a/datamodels/2.x/itop-backup/dictionaries/ja.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/ja.dict.itop-backup.php @@ -1,15 +1,16 @@ 'A backup is running. Please wait...~~', 'bkp-restore-running' => 'A restore is running. Please wait...~~', 'Menu:BackupStatus' => 'Backups~~', @@ -44,4 +45,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'bkp-wait-backup' => 'Please wait for the backup to complete...~~', 'bkp-wait-restore' => 'Please wait for the restore to complete...~~', 'bkp-success-restore' => 'Restore successfully completed.~~', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/nl.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/nl.dict.itop-backup.php index 679a57342..13d0cb64e 100644 --- a/datamodels/2.x/itop-backup/dictionaries/nl.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/nl.dict.itop-backup.php @@ -1,16 +1,17 @@ * @author Jeffrey Bostoen (2018 - 2022) */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'bkp-backup-running' => 'Er wordt een backup gemaakt. Even geduld...', 'bkp-restore-running' => 'Er wordt een herstel uitgevoerd. Even geduld...', 'Menu:BackupStatus' => 'Geplande backups', @@ -45,4 +46,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'bkp-wait-backup' => 'Wacht tot de backup gemaakt is...', 'bkp-wait-restore' => 'Wacht tot de backup hersteld is...', 'bkp-success-restore' => 'Herstel is succesvol voltooid.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/pl.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/pl.dict.itop-backup.php index 15d89d120..355651020 100644 --- a/datamodels/2.x/itop-backup/dictionaries/pl.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/pl.dict.itop-backup.php @@ -1,15 +1,16 @@ 'Kopia zapasowa jest uruchomiona. Proszę czekać...', 'bkp-restore-running' => 'Trwa przywracanie. Proszę czekać...', 'Menu:BackupStatus' => 'Kopie zapasowe', @@ -44,4 +45,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'bkp-wait-backup' => 'Poczekaj na zakończenie tworzenia kopii zapasowej...', 'bkp-wait-restore' => 'Poczekaj na zakończenie przywracania...', 'bkp-success-restore' => 'Przywracanie zakończone pomyślnie.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/pt_br.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/pt_br.dict.itop-backup.php index f5c284932..ec485b8ff 100644 --- a/datamodels/2.x/itop-backup/dictionaries/pt_br.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/pt_br.dict.itop-backup.php @@ -1,15 +1,16 @@ 'Um backup está sendo executado. Por favor, espere...', 'bkp-restore-running' => 'Uma restauração está sendo executada. Por favor, espere...', 'Menu:BackupStatus' => 'Backups agendados', @@ -44,4 +45,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'bkp-wait-backup' => 'Por favor, aguarde a conclusão do backup...', 'bkp-wait-restore' => 'Por favor, aguarde a conclusão da restauração...', 'bkp-success-restore' => 'Restauração concluída com sucesso', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/ru.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/ru.dict.itop-backup.php index dc1e09fd5..72ca9d203 100644 --- a/datamodels/2.x/itop-backup/dictionaries/ru.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/ru.dict.itop-backup.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'bkp-backup-running' => 'Выполняется резервное копирование. Пожалуйста, подождите...', 'bkp-restore-running' => 'Выполняется восстановление из резервной копии. Пожалуйста, подождите...', 'Menu:BackupStatus' => 'Резервное копирование', @@ -45,4 +46,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'bkp-wait-backup' => 'Пожалуйста, дождитесь завершения резервного копирования...', 'bkp-wait-restore' => 'Пожалуйста, дождитесь завершения восстановления...', 'bkp-success-restore' => 'Восстановление успешно завершено.', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/sk.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/sk.dict.itop-backup.php index 897753655..416736cf6 100644 --- a/datamodels/2.x/itop-backup/dictionaries/sk.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/sk.dict.itop-backup.php @@ -1,15 +1,16 @@ 'A backup is running. Please wait...~~', 'bkp-restore-running' => 'A restore is running. Please wait...~~', 'Menu:BackupStatus' => 'Backups~~', @@ -44,4 +45,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'bkp-wait-backup' => 'Please wait for the backup to complete...~~', 'bkp-wait-restore' => 'Please wait for the restore to complete...~~', 'bkp-success-restore' => 'Restore successfully completed.~~', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/tr.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/tr.dict.itop-backup.php index 563cf3ccb..1b1a064c3 100644 --- a/datamodels/2.x/itop-backup/dictionaries/tr.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/tr.dict.itop-backup.php @@ -1,15 +1,16 @@ 'A backup is running. Please wait...~~', 'bkp-restore-running' => 'A restore is running. Please wait...~~', 'Menu:BackupStatus' => 'Backups~~', @@ -44,4 +45,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'bkp-wait-backup' => 'Please wait for the backup to complete...~~', 'bkp-wait-restore' => 'Please wait for the restore to complete...~~', 'bkp-success-restore' => 'Restore successfully completed.~~', -)); +]); diff --git a/datamodels/2.x/itop-backup/dictionaries/zh_cn.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/zh_cn.dict.itop-backup.php index 5b28812ee..8837151e6 100644 --- a/datamodels/2.x/itop-backup/dictionaries/zh_cn.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/zh_cn.dict.itop-backup.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'bkp-backup-running' => '备份正在进行, 请稍候...', 'bkp-restore-running' => '还原正在进行, 请稍等...', 'Menu:BackupStatus' => '定时备份', @@ -55,4 +56,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'bkp-wait-backup' => '请等待备份完成...', 'bkp-wait-restore' => '请等待还原完成...', 'bkp-success-restore' => '还原成功.', -)); +]); diff --git a/datamodels/2.x/itop-backup/restore.php b/datamodels/2.x/itop-backup/restore.php index 9b00e2e4f..395f1c15c 100644 --- a/datamodels/2.x/itop-backup/restore.php +++ b/datamodels/2.x/itop-backup/restore.php @@ -1,4 +1,5 @@ p('Restore an iTop from a backup file'); $oP->p('Parameters:'); - if (utils::IsModeCLI()) - { + if (utils::IsModeCLI()) { $oP->p('auth_user: login, must be administrator'); $oP->p('auth_pwd: ...'); } $oP->p('backup_file [optional]: name of the file to store the backup into. Follows the PHP strftime() (https://www.php.net/manual/fr/function.strftime.php) format spec. The following placeholders are available: __HOST__, __DB__, __SUBNAME__'); $oP->p('mysql_bindir [optional]: specify the path for mysql executable'); - if (utils::IsModeCLI()) - { + if (utils::IsModeCLI()) { $oP->p('Example: php -q restore.php --auth_user=admin --auth_pwd=myPassw0rd --backup_file=/tmp/backup.zip'); $oP->p('Known limitation: the current directory must be the directory of backup.php'); - } - else - { + } else { $oP->p('Example: .../restore.php?backup_file=/tmp/backup.zip'); } } -function GetOperationName() { +function GetOperationName() +{ return "iTop - iTop Restore"; } @@ -94,39 +88,32 @@ function GetOperationName() { * @throws \DictExceptionUnknownLanguage * @throws \OQLException */ -function ExecuteMainOperation($oP){ - if (utils::IsModeCLI()) - { +function ExecuteMainOperation($oP) +{ + if (utils::IsModeCLI()) { $oP->p(date('Y-m-d H:i:s')." - running restore utility"); $sAuthUser = ReadMandatoryParam($oP, 'auth_user'); $sAuthPwd = ReadMandatoryParam($oP, 'auth_pwd'); $sBackupFile = ReadMandatoryParam($oP, 'backup_file'); - if (UserRights::CheckCredentials($sAuthUser, $sAuthPwd)) - { + if (UserRights::CheckCredentials($sAuthUser, $sAuthPwd)) { UserRights::Login($sAuthUser); // Login & set the user's language - } - else - { + } else { ExitError($oP, "Access restricted or wrong credentials ('$sAuthUser')"); } - if (!is_file($sBackupFile) || !is_readable($sBackupFile)){ + if (!is_file($sBackupFile) || !is_readable($sBackupFile)) { ExitError($oP, "Cannot access backup file ('$sBackupFile')"); } - } - else - { + } else { require_once(APPROOT.'application/loginwebpage.class.inc.php'); LoginWebPage::DoLogin(); // Check user rights and prompt if needed } - if (!UserRights::IsAdministrator()) - { + if (!UserRights::IsAdministrator()) { ExitError($oP, "Access restricted to administrators"); } - if (CheckParam('?') || CheckParam('h') || CheckParam('help')) - { + if (CheckParam('?') || CheckParam('h') || CheckParam('help')) { Usage($oP); $oP->output(); exit; @@ -136,12 +123,9 @@ function ExecuteMainOperation($oP){ $oRestore = new MyCliRestore($oP); $oRestore->SetMySQLBinDir(MetaModel::GetConfig()->GetModuleSetting('itop-backup', 'mysql_bindir', '')); - if (MetaModel::GetConfig()->Get('demo_mode')) - { + if (MetaModel::GetConfig()->Get('demo_mode')) { $oP->p("Sorry, iTop is in demonstration mode: the feature is disabled"); - } - else - { + } else { $sEnvironment = utils::ReadParam('environment', 'production', false, 'raw_data'); $oRestore->RestoreFromCompressedBackup($sBackupFile, $sEnvironment); } diff --git a/datamodels/2.x/itop-backup/status.php b/datamodels/2.x/itop-backup/status.php index 1c7fd7ffa..f185e06a2 100644 --- a/datamodels/2.x/itop-backup/status.php +++ b/datamodels/2.x/itop-backup/status.php @@ -1,4 +1,5 @@ &1"; - $aOutput = array(); + $aOutput = []; $iRetCode = 0; exec($sCommand, $aOutput, $iRetCode); if ($iRetCode == 0) { @@ -175,7 +175,7 @@ try { // Week Days // $sScheduleInfo = empty($sZipNameInfo) ? '' : $sZipNameInfo.'
        '; - $aWeekDayToString = array( + $aWeekDayToString = [ 1 => Dict::S('DayOfWeek-Monday'), 2 => Dict::S('DayOfWeek-Tuesday'), 3 => Dict::S('DayOfWeek-Wednesday'), @@ -183,8 +183,8 @@ try { 5 => Dict::S('DayOfWeek-Friday'), 6 => Dict::S('DayOfWeek-Saturday'), 7 => Dict::S('DayOfWeek-Sunday'), - ); - $aDayLabels = array(); + ]; + $aDayLabels = []; $oBackupExec = new BackupExec(); foreach ($oBackupExec->InterpretWeekDays() as $iDay) { $aDayLabels[] = $aWeekDayToString[$iDay]; @@ -202,11 +202,10 @@ try { ->SetIsCollapsible(false) ); - //--- List of backups // $aFiles = $oBackup->ListFiles($sBackupDirAuto); - $aFilesToDelete = array(); + $aFilesToDelete = []; while (count($aFiles) > $iRetention - 1) { $aFilesToDelete[] = array_shift($aFiles); } @@ -217,10 +216,10 @@ try { } else { $sDisableRestore = ''; } - $sRestore= Dict::S('bkp-button-restore-now'); + $sRestore = Dict::S('bkp-button-restore-now'); //--- 1st table: list the backups made in the background // - $aDetails = array(); + $aDetails = []; $sButtonOnClickJS = ''; foreach ($oBackup->ListFiles($sBackupDirAuto) as $sBackupFile) { $sFileName = basename($sBackupFile); @@ -228,12 +227,14 @@ try { if (MetaModel::GetConfig()->Get('demo_mode')) { $sName = $sFileName; } else { - $sAjax = utils::GetAbsoluteUrlModulePage('itop-backup', 'ajax.backup.php', - array( + $sAjax = utils::GetAbsoluteUrlModulePage( + 'itop-backup', + 'ajax.backup.php', + [ 'operation' => 'download', 'file' => $sFilePath, 'transaction_id' => $sTransactionId, - ) + ] ); $sName = "".$sFileName.''; } @@ -243,21 +244,21 @@ try { $oButton = ButtonUIBlockFactory::MakeNeutral($sRestore); $oButton->SetIsDisabled($oRestoreMutex->IsLocked()); if (in_array($sBackupFile, $aFilesToDelete)) { - $aDetails[] = array( + $aDetails[] = [ 'file' => $sName.' *', 'size' => $sSize, 'actions' => BlockRenderer::RenderBlockTemplates($oButton), - ); + ]; } else { - $aDetails[] = array('file' => $sName, 'size' => $sSize, 'actions' => BlockRenderer::RenderBlockTemplates($oButton)); + $aDetails[] = ['file' => $sName, 'size' => $sSize, 'actions' => BlockRenderer::RenderBlockTemplates($oButton)]; } $sButtonOnClickJS .= '$("#'.$oButton->GetId().'").off("click").on("click", function () {LaunchRestoreNow("'.$sFileEscaped.'", "'.$sConfirmRestore.'");});'; } - $aConfig = array( - 'file' => array('label' => Dict::S('bkp-table-file'), 'description' => Dict::S('bkp-table-file+')), - 'size' => array('label' => Dict::S('bkp-table-size'), 'description' => Dict::S('bkp-table-size+')), - 'actions' => array('label' => Dict::S('bkp-table-actions'), 'description' => Dict::S('bkp-table-actions+')), - ); + $aConfig = [ + 'file' => ['label' => Dict::S('bkp-table-file'), 'description' => Dict::S('bkp-table-file+')], + 'size' => ['label' => Dict::S('bkp-table-size'), 'description' => Dict::S('bkp-table-size+')], + 'actions' => ['label' => Dict::S('bkp-table-actions'), 'description' => Dict::S('bkp-table-actions+')], + ]; $sTableId = 'datatable_background_backups'; $oP->AddUiBlock( GenerateBackupsList( @@ -276,10 +277,9 @@ $('#$sTableId').on('init.dt draw.dt', function(){ JS ); - //--- 2nd table: list the backups made manually // - $aDetails = array(); + $aDetails = []; $sButtonOnClickJS = ''; foreach ($oBackup->ListFiles($sBackupDirManual) as $sBackupFile) { $sFileName = basename($sBackupFile); @@ -287,12 +287,14 @@ JS if (MetaModel::GetConfig()->Get('demo_mode')) { $sName = $sFileName; } else { - $sAjax = utils::GetAbsoluteUrlModulePage('itop-backup', 'ajax.backup.php', - array( + $sAjax = utils::GetAbsoluteUrlModulePage( + 'itop-backup', + 'ajax.backup.php', + [ 'operation' => 'download', 'file' => $sFilePath, 'transaction_id' => $sTransactionId, - ) + ] ); $sName = "".$sFileName.''; } @@ -301,14 +303,14 @@ JS $sFileEscaped = addslashes($sFilePath); $oButton = ButtonUIBlockFactory::MakeNeutral("$sRestore"); $oButton->SetIsDisabled($oRestoreMutex->IsLocked()); - $aDetails[] = array('file' => $sName, 'size' => $sSize, 'actions' => BlockRenderer::RenderBlockTemplates($oButton)); + $aDetails[] = ['file' => $sName, 'size' => $sSize, 'actions' => BlockRenderer::RenderBlockTemplates($oButton)]; $sButtonOnClickJS .= '$("#'.$oButton->GetId().'").off("click").on("click", function () {LaunchRestoreNow("'.$sFileEscaped.'", "'.$sConfirmRestore.'");});'; } - $aConfig = array( - 'file' => array('label' => Dict::S('bkp-table-file'), 'description' => Dict::S('bkp-table-file+')), - 'size' => array('label' => Dict::S('bkp-table-size'), 'description' => Dict::S('bkp-table-size+')), - 'actions' => array('label' => Dict::S('bkp-table-actions'), 'description' => Dict::S('bkp-table-actions+')), - ); + $aConfig = [ + 'file' => ['label' => Dict::S('bkp-table-file'), 'description' => Dict::S('bkp-table-file+')], + 'size' => ['label' => Dict::S('bkp-table-size'), 'description' => Dict::S('bkp-table-size+')], + 'actions' => ['label' => Dict::S('bkp-table-actions'), 'description' => Dict::S('bkp-table-actions+')], + ]; $sTableId = 'datatable_manual_backups'; $oP->AddUiBlock( GenerateBackupsList( @@ -327,14 +329,12 @@ $('#$sTableId').on('init.dt draw.dt', function(){ JS ); - //--- Backup now $oBlockForBackupNow = new UIContentBlock(); $oBlockForBackupNow->AddSubBlock(TitleUIBlockFactory::MakeNeutral(Dict::S('bkp-button-backup-now'), 2)); $oP->AddUiBlock($oBlockForBackupNow); - // Ongoing operation ? // $oBackupMutex = new iTopMutex('backup.'.utils::GetCurrentEnvironment()); @@ -358,15 +358,16 @@ JS // /** @var \BackgroundTask $oTask */ $oTask = MetaModel::GetObjectByName(BackgroundTask::class, BackupExec::class, false); - if ($oTask) - { + if ($oTask) { $oTimezone = new DateTimeZone(MetaModel::GetConfig()->Get('timezone')); $oNext = new DateTime($oTask->Get('next_run_date'), $oTimezone); - $sNextOccurrence = Dict::Format('bkp-next-backup', $aWeekDayToString[$oNext->Format('N')], $oNext->Format('Y-m-d'), - $oNext->Format('H:i')); - } - else - { + $sNextOccurrence = Dict::Format( + 'bkp-next-backup', + $aWeekDayToString[$oNext->Format('N')], + $oNext->Format('Y-m-d'), + $oNext->Format('H:i') + ); + } else { $sNextOccurrence = Dict::S('bkp-next-backup-unknown'); } $oBlockForBackupNow->AddSubBlock( @@ -377,7 +378,7 @@ JS // Do backup now // - $sBackUpNow= Dict::S('bkp-button-backup-now'); + $sBackUpNow = Dict::S('bkp-button-backup-now'); $oLaunchBackupButton = ButtonUIBlockFactory::MakeForPrimaryAction($sBackUpNow); $oLaunchBackupButton->SetOnClickJsCode('LaunchBackupNow();'); $oBlockForBackupNow->AddSubBlock($oLaunchBackupButton); @@ -400,7 +401,6 @@ JS $sPleaseWaitRestore = addslashes(Dict::S('bkp-wait-restore')); $sRestoreDone = addslashes(Dict::S('bkp-success-restore')); - $sMySQLBinDir = addslashes(MetaModel::GetConfig()->GetModuleSetting('itop-backup', 'mysql_bindir', '')); $sDBHost = addslashes(MetaModel::GetConfig()->Get('db_host')); $sDBUser = addslashes(MetaModel::GetConfig()->Get('db_user')); @@ -495,13 +495,10 @@ function LaunchRestoreNow(sBackupFile, sConfirmationMessage) JS ); - if (MetaModel::GetConfig()->Get('demo_mode')) - { + if (MetaModel::GetConfig()->Get('demo_mode')) { $oP->add_ready_script("$('button').prop('disabled', true).attr('title', 'Disabled in demonstration mode')"); } -} -catch(Exception $e) -{ +} catch (Exception $e) { $oP = new iTopWebPage(Dict::S('bkp-status-title')); $oP->p(''.$e->getMessage().''); } diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/cs.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/cs.dict.itop-bridge-cmdb-services.php index 3e5daacb9..f90b23f16 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/cs.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/cs.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkFunctionalCIToProviderContract' => 'Spojení (Funkční konfigurační položka / Smlouva s poskytovatelem)', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -22,13 +23,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Název konfigurační položky', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkFunctionalCIToService' => 'Spojení (Funkční konfigurační položka / Služba)', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -40,26 +41,26 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'Název konfigurační položky', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Smlouvy s poskytovateli', 'Class:FunctionalCI/Attribute:providercontracts_list+' => '', 'Class:FunctionalCI/Attribute:services_list' => 'Služby', 'Class:FunctionalCI/Attribute:services_list+' => '', -)); +]); // // Class: Document // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Document/Attribute:contracts_list' => 'Smlouvy', 'Class:Document/Attribute:contracts_list+' => 'Všechny smlouvy spojené s tímto dokumentem', 'Class:Document/Attribute:services_list' => 'Služby', 'Class:Document/Attribute:services_list+' => 'Všechny služby spojené s tímto dokumentem', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/da.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/da.dict.itop-bridge-cmdb-services.php index 8d439efb7..d06a49259 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/da.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/da.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkFunctionalCIToProviderContract' => 'Sammenhæng FunctionalCI/Leverandør Kontrakt', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -22,13 +23,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI navn', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkFunctionalCIToService' => 'Sammenhæng FunctionalCI/Ydelse', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -40,26 +41,26 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI navn', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Leverandør kontrakter', 'Class:FunctionalCI/Attribute:providercontracts_list+' => '', 'Class:FunctionalCI/Attribute:services_list' => 'Ydelser', 'Class:FunctionalCI/Attribute:services_list+' => '', -)); +]); // // Class: Document // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Document/Attribute:contracts_list' => 'Kontrakter', 'Class:Document/Attribute:contracts_list+' => 'All the contracts linked to this document~~', 'Class:Document/Attribute:services_list' => 'Ydelser', 'Class:Document/Attribute:services_list+' => 'All the services linked to this document~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/de.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/de.dict.itop-bridge-cmdb-services.php index 773c808cf..89130c183 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/de.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/de.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkFunctionalCIToProviderContract' => 'Verknüpfung FunctionalCI/Provider-Vertrag', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -22,13 +23,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI-Name', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkFunctionalCIToService' => 'Verknüpfung FunctionalCI/Service', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s', @@ -40,26 +41,26 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI-Name', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Provider-Verträge', 'Class:FunctionalCI/Attribute:providercontracts_list+' => '', 'Class:FunctionalCI/Attribute:services_list' => 'Services', 'Class:FunctionalCI/Attribute:services_list+' => '', -)); +]); // // Class: Document // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Document/Attribute:contracts_list' => 'Verträge', 'Class:Document/Attribute:contracts_list+' => 'Alle mit diesem Dokument verknüpften Verträge', 'Class:Document/Attribute:services_list' => 'Services', 'Class:Document/Attribute:services_list+' => 'Alle mit diesem Dokument verknüpften Services', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/en.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/en.dict.itop-bridge-cmdb-services.php index 9edcf479e..b0dae014c 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/en.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/en.dict.itop-bridge-cmdb-services.php @@ -1,4 +1,5 @@ 'Link FunctionalCI / ProviderContract', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -44,13 +45,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Name', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkFunctionalCIToService' => 'Link FunctionalCI / Service', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s', @@ -62,26 +63,26 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI Name', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Provider contracts', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item', 'Class:FunctionalCI/Attribute:services_list' => 'Services', 'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item', -)); +]); // // Class: Document // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Document/Attribute:contracts_list' => 'Contracts', 'Class:Document/Attribute:contracts_list+' => 'All the contracts linked to this document', 'Class:Document/Attribute:services_list' => 'Services', 'Class:Document/Attribute:services_list+' => 'All the services linked to this document', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/en_gb.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/en_gb.dict.itop-bridge-cmdb-services.php index d07dc2c98..18f5b02c6 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/en_gb.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/en_gb.dict.itop-bridge-cmdb-services.php @@ -1,4 +1,5 @@ 'Link FunctionalCI / ProviderContract', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -29,13 +30,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Name', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkFunctionalCIToService' => 'Link FunctionalCI / Service', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s', @@ -47,26 +48,26 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI Name', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Provider contracts', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item', 'Class:FunctionalCI/Attribute:services_list' => 'Services', 'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item', -)); +]); // // Class: Document // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Document/Attribute:contracts_list' => 'Contracts', 'Class:Document/Attribute:contracts_list+' => 'All the contracts linked to this document', 'Class:Document/Attribute:services_list' => 'Services', 'Class:Document/Attribute:services_list+' => 'All the services linked to this document', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/es_cr.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/es_cr.dict.itop-bridge-cmdb-services.php index e3058c5b0..ceae7cea0 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/es_cr.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/es_cr.dict.itop-bridge-cmdb-services.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkFunctionalCIToProviderContract' => 'Relación EC Funcional y Contrato con Proveedor', 'Class:lnkFunctionalCIToProviderContract+' => 'Relación EC Funcional y Contrato con Proveedor', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -19,13 +20,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => 'Elemento de Configuración', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Elemento de Configuración', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => 'Elemento de Configuración', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkFunctionalCIToService' => 'Relación EC Funcional y Servicio', 'Class:lnkFunctionalCIToService+' => 'Relación EC Funcional y Servicio', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s', @@ -37,26 +38,26 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => 'Elemento de Configuración', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'EC', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => 'Elemento de Configuración', -)); +]); // // Class: FunctionalCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Contratos', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Contratos', 'Class:FunctionalCI/Attribute:services_list' => 'Servicios', 'Class:FunctionalCI/Attribute:services_list+' => 'Servicios', -)); +]); // // Class: Document // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Document/Attribute:contracts_list' => 'Contratos', 'Class:Document/Attribute:contracts_list+' => 'Contratos Referenciados con este Documento', 'Class:Document/Attribute:services_list' => 'Servicios', 'Class:Document/Attribute:services_list+' => 'Servicios Referenciados con este Documento', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/fr.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/fr.dict.itop-bridge-cmdb-services.php index 8be11b0c0..165798d72 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/fr.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/fr.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkFunctionalCIToProviderContract' => 'Lien CI / Contrat fournisseur', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -22,13 +23,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Nom CI', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkFunctionalCIToService' => 'Lien CI / Service', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s', @@ -40,26 +41,26 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'Nom CI', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Contrats fournisseur', 'Class:FunctionalCI/Attribute:providercontracts_list+' => '', 'Class:FunctionalCI/Attribute:services_list' => 'Services', 'Class:FunctionalCI/Attribute:services_list+' => '', -)); +]); // // Class: Document // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Document/Attribute:contracts_list' => 'Contrats', 'Class:Document/Attribute:contracts_list+' => 'Tous les contrats liés à ce document', 'Class:Document/Attribute:services_list' => 'Services', 'Class:Document/Attribute:services_list+' => 'Tous les services liés à ce document', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/hu.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/hu.dict.itop-bridge-cmdb-services.php index 2d3a63a5a..e5c1c27fe 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/hu.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/hu.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkFunctionalCIToProviderContract' => 'Funkcionális CI / Szolgáltatói szerződés', 'Class:lnkFunctionalCIToProviderContract+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -22,13 +23,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI név', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkFunctionalCIToService' => 'Funkcionális CI / Szolgáltatás', 'Class:lnkFunctionalCIToService+' => '~~', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -40,26 +41,26 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI név', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Szolgáltatói szerződések', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Ehhez a konfigurációs elemhez tartozó szolgáltatói szerződések', 'Class:FunctionalCI/Attribute:services_list' => 'Szolgáltatások', 'Class:FunctionalCI/Attribute:services_list+' => 'Szolgáltatások amelyek hatással vannak erre a konfigurációs elemre', -)); +]); // // Class: Document // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Document/Attribute:contracts_list' => 'Szerződések', 'Class:Document/Attribute:contracts_list+' => 'Ehhez a dokumentumhoz kapcsolódó szerződések', 'Class:Document/Attribute:services_list' => 'Szolgáltatások', 'Class:Document/Attribute:services_list+' => 'Ehhez a dokumentumhoz kapcsolódó szolgáltatások', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/it.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/it.dict.itop-bridge-cmdb-services.php index bfe5a99ca..1b61e6d31 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/it.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/it.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkFunctionalCIToProviderContract' => 'Link FunctionalCI / ProviderContract', 'Class:lnkFunctionalCIToProviderContract+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -22,13 +23,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Nome CI', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkFunctionalCIToService' => 'Link FunctionalCI / Service', 'Class:lnkFunctionalCIToService+' => '~~', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s', @@ -40,26 +41,26 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'Nome CI ', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Contratti fornitori', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Tutti i contratti del fornitore per questo elemento di configurazione', 'Class:FunctionalCI/Attribute:services_list' => 'Servizi', 'Class:FunctionalCI/Attribute:services_list+' => 'Tutti i servizi impattati da questo elemento di configurazione', -)); +]); // // Class: Document // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Document/Attribute:contracts_list' => 'Contratti', 'Class:Document/Attribute:contracts_list+' => 'Tutti i contratti collegati a questo documento', 'Class:Document/Attribute:services_list' => 'Servizi', 'Class:Document/Attribute:services_list+' => 'Tutti i servizi collegati a questo documento', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/ja.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/ja.dict.itop-bridge-cmdb-services.php index a1f31ac45..acf893e39 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/ja.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/ja.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkFunctionalCIToProviderContract' => 'リンク 機能的CI/プロバイダー契約', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -22,13 +23,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI名', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkFunctionalCIToService' => 'リンク 機能的CI/サービス', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -40,26 +41,26 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI名', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'プロバイダー契約', 'Class:FunctionalCI/Attribute:providercontracts_list+' => '', 'Class:FunctionalCI/Attribute:services_list' => 'サービス', 'Class:FunctionalCI/Attribute:services_list+' => '', -)); +]); // // Class: Document // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Document/Attribute:contracts_list' => '契約', 'Class:Document/Attribute:contracts_list+' => 'All the contracts linked to this document~~', 'Class:Document/Attribute:services_list' => 'サービス', 'Class:Document/Attribute:services_list+' => 'All the services linked to this document~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/nl.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/nl.dict.itop-bridge-cmdb-services.php index fc450d90b..3625d88f7 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/nl.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/nl.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkFunctionalCIToProviderContract' => 'Link Functioneel CI / Leverancierscontract', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -22,13 +23,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Naam CI', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkFunctionalCIToService' => 'Link Functioneel CI / Service', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s', @@ -40,26 +41,26 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'Naam CI', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Leverancierscontracten', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Alle leverancierscontracten voor dit configuratie-item', 'Class:FunctionalCI/Attribute:services_list' => 'Services', 'Class:FunctionalCI/Attribute:services_list+' => 'Alle services die impact hebben op dit configuratie-item', -)); +]); // // Class: Document // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Document/Attribute:contracts_list' => 'Contracten', 'Class:Document/Attribute:contracts_list+' => 'Alle contracten gerelateerd aan dit document', 'Class:Document/Attribute:services_list' => 'Services', 'Class:Document/Attribute:services_list+' => 'Alle services gerelateerd aan dit document.', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/pl.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/pl.dict.itop-bridge-cmdb-services.php index e173e5c80..4b86574e8 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/pl.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/pl.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkFunctionalCIToProviderContract' => 'Połączenie Konfiguracja / Umowa z dostawcą', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -22,13 +23,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Nazwa konfiguracji', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkFunctionalCIToService' => 'Połączenie Konfiguracja / Usługa', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s', @@ -40,26 +41,26 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'Nazwa konfiguracji', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Umowy z dostawcami', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Wszystkie umowy dostawcy dla tej konfiguracji', 'Class:FunctionalCI/Attribute:services_list' => 'Usługi', 'Class:FunctionalCI/Attribute:services_list+' => 'Wszystkie usługi, na które ma wpływ tą konfigurację', -)); +]); // // Class: Document // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Document/Attribute:contracts_list' => 'Umowy', 'Class:Document/Attribute:contracts_list+' => 'Wszystkie umowy powiązane z tym dokumentem', 'Class:Document/Attribute:services_list' => 'Usługi', 'Class:Document/Attribute:services_list+' => 'Wszystkie usługi powiązane z tym dokumentem', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/pt_br.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/pt_br.dict.itop-bridge-cmdb-services.php index 28b30d4df..00d0d11c9 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/pt_br.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/pt_br.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:lnkFunctionalCIToProviderContract' => 'Link IC / Contrato de provedor', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -22,13 +23,13 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Nome do IC', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:lnkFunctionalCIToService' => 'Link IC / Serviço', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -40,26 +41,26 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'Nome do IC', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Contrato de provedor', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Todos os contratos para esse item de configuração', 'Class:FunctionalCI/Attribute:services_list' => 'Serviços', 'Class:FunctionalCI/Attribute:services_list+' => 'Todos os serviços impactados por esse item de configuração', -)); +]); // // Class: Document // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:Document/Attribute:contracts_list' => 'Contratos', 'Class:Document/Attribute:contracts_list+' => 'Todos os contratos associados a este documento', 'Class:Document/Attribute:services_list' => 'Services', 'Class:Document/Attribute:services_list+' => 'Todos os serviços associados a este documento', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/ru.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/ru.dict.itop-bridge-cmdb-services.php index 95c650ee8..5acfa0868 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/ru.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/ru.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkFunctionalCIToProviderContract' => 'Связь Функциональная КЕ/Договор с поставщиком', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -22,13 +23,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'КЕ', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkFunctionalCIToService' => 'Связь Функциональная КЕ/Услуга', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -40,26 +41,26 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'КЕ', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Договоры', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Связанные договоры', 'Class:FunctionalCI/Attribute:services_list' => 'Услуги', 'Class:FunctionalCI/Attribute:services_list+' => 'Связанные услуги', -)); +]); // // Class: Document // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Document/Attribute:contracts_list' => 'Договоры', 'Class:Document/Attribute:contracts_list+' => 'Связанные договоры', 'Class:Document/Attribute:services_list' => 'Услуги', 'Class:Document/Attribute:services_list+' => 'Связанные услуги', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/sk.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/sk.dict.itop-bridge-cmdb-services.php index 0e6a9aaf8..c6d2b1a6f 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/sk.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/sk.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkFunctionalCIToProviderContract' => 'väzba - Komponent / Poskytovateľská zmluva', 'Class:lnkFunctionalCIToProviderContract+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -22,13 +23,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Názov CI', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkFunctionalCIToService' => 'väzba - Komponent / Služba', 'Class:lnkFunctionalCIToService+' => '~~', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -40,26 +41,26 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'Názov CI', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Poskytovateľské zmluvy', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'All the provider contracts for this configuration item~~', 'Class:FunctionalCI/Attribute:services_list' => 'Služby', 'Class:FunctionalCI/Attribute:services_list+' => 'All the services impacted by this configuration item~~', -)); +]); // // Class: Document // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Document/Attribute:contracts_list' => 'Zmluvy', 'Class:Document/Attribute:contracts_list+' => 'All the contracts linked to this document~~', 'Class:Document/Attribute:services_list' => 'Služby', 'Class:Document/Attribute:services_list+' => 'All the services linked to this document~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/tr.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/tr.dict.itop-bridge-cmdb-services.php index 84f84bd91..22f698a0f 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/tr.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/tr.dict.itop-bridge-cmdb-services.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkFunctionalCIToProviderContract' => 'İşlevsel CI / Sağlayıcı Sözleşmesi bağla', 'Class:lnkFunctionalCIToProviderContract+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -22,13 +23,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Adı', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkFunctionalCIToService' => 'İşlevsel CI / servis bağla', 'Class:lnkFunctionalCIToService+' => '~~', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -40,26 +41,26 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => 'CI Adı', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => 'Tedarikçi Sözleşmeleri', 'Class:FunctionalCI/Attribute:providercontracts_list+' => 'Bu yapılandırma öğesi için tüm tedarikçi sözleşmeleri', 'Class:FunctionalCI/Attribute:services_list' => 'Hizmetler', 'Class:FunctionalCI/Attribute:services_list+' => 'Bu yapılandırma öğesinden etkilenen tüm hizmetler', -)); +]); // // Class: Document // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Document/Attribute:contracts_list' => 'Contracts~~', 'Class:Document/Attribute:contracts_list+' => 'All the contracts linked to this document~~', 'Class:Document/Attribute:services_list' => 'Services~~', 'Class:Document/Attribute:services_list+' => 'All the services linked to this document~~', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/zh_cn.dict.itop-bridge-cmdb-services.php b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/zh_cn.dict.itop-bridge-cmdb-services.php index e901cc002..7f04afd1a 100644 --- a/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/zh_cn.dict.itop-bridge-cmdb-services.php +++ b/datamodels/2.x/itop-bridge-cmdb-services/dictionaries/zh_cn.dict.itop-bridge-cmdb-services.php @@ -1,4 +1,5 @@ '关联功能配置项/供应商合同', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -42,13 +43,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => '配置项名称', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkFunctionalCIToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkFunctionalCIToService' => '关联 功能配置项/服务', 'Class:lnkFunctionalCIToService+' => '', 'Class:lnkFunctionalCIToService/Name' => '%1$s / %2$s~~', @@ -60,26 +61,26 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkFunctionalCIToService/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name' => '配置项名称', 'Class:lnkFunctionalCIToService/Attribute:functionalci_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:FunctionalCI/Attribute:providercontracts_list' => '供应商合同', 'Class:FunctionalCI/Attribute:providercontracts_list+' => '此配置项的所有供应商合同', 'Class:FunctionalCI/Attribute:services_list' => '服务', 'Class:FunctionalCI/Attribute:services_list+' => '此配置项影响的所有服务', -)); +]); // // Class: Document // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Document/Attribute:contracts_list' => '合同', 'Class:Document/Attribute:contracts_list+' => '此文档关联的所有合同', 'Class:Document/Attribute:services_list' => '服务', 'Class:Document/Attribute:services_list+' => '此文档关联的所有服务', -)); \ No newline at end of file +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/cs.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/cs.dict.itop-bridge-cmdb-ticket.php index c856c4e2d..93b89370e 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/cs.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/cs.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkFunctionalCIToTicket' => 'Spojení (Funkční konfigurační položka / Tiket)', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~', @@ -30,12 +31,12 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Přidán manuálně', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Automaticky', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Není zasažen', -)); +]); // // Class: FunctionalCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tikety', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Všechny tikety této konfigurační položky', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/da.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/da.dict.itop-bridge-cmdb-ticket.php index 704a84cd7..fdb57dd55 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/da.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/da.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkFunctionalCIToTicket' => 'Sammenhæng FunctionalCI/Ticket', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~', @@ -30,12 +31,12 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets', 'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/de.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/de.dict.itop-bridge-cmdb-ticket.php index a522698b0..545fd22aa 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/de.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/de.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkFunctionalCIToTicket' => 'Verknüpfung FunctionalCI/Ticket', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s', @@ -30,12 +31,12 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Manuell hinzugefügt', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Berechnet', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Nicht betroffen', -)); +]); // // Class: FunctionalCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Alle Ticket, die mit diesem CI verknüpft sind', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/en.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/en.dict.itop-bridge-cmdb-ticket.php index c69a8ae27..076cd5bf4 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/en.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/en.dict.itop-bridge-cmdb-ticket.php @@ -1,4 +1,5 @@ 'Link FunctionalCI / Ticket', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s', @@ -53,12 +54,12 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted', -)); +]); // // Class: FunctionalCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets', 'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/en_gb.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/en_gb.dict.itop-bridge-cmdb-ticket.php index fdcef8fba..c08edddbe 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/en_gb.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/en_gb.dict.itop-bridge-cmdb-ticket.php @@ -1,4 +1,5 @@ 'Link FunctionalCI / Ticket', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s', @@ -53,12 +54,12 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted', -)); +]); // // Class: FunctionalCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets', 'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/es_cr.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/es_cr.dict.itop-bridge-cmdb-ticket.php index 8364e3074..4954fc22d 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/es_cr.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/es_cr.dict.itop-bridge-cmdb-ticket.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkFunctionalCIToTicket' => 'Relación EC Funcional y Ticket', 'Class:lnkFunctionalCIToTicket+' => 'Relación EC Funcional y Ticket', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s', @@ -27,12 +28,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Agregado Manualmente', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Calculado', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'No impactado', -)); +]); // // Class: FunctionalCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Tickets relacionados con este EC', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/fr.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/fr.dict.itop-bridge-cmdb-ticket.php index 2382d140b..2a6d179a8 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/fr.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/fr.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkFunctionalCIToTicket' => 'Lien CI / Ticket', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s', @@ -30,12 +31,12 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Ajouté manuellement', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Calculé', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Non impacté', -)); +]); // // Class: FunctionalCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Tous les tickets de cet élément de configuration', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/hu.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/hu.dict.itop-bridge-cmdb-ticket.php index 6d6a2a40a..db489a74d 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/hu.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/hu.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkFunctionalCIToTicket' => 'Funkcionális CI / Hibajegy', 'Class:lnkFunctionalCIToTicket+' => '~~', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~', @@ -30,12 +31,12 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Kézzel hozzáadva', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Számított', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Nincs hatása', -)); +]); // // Class: FunctionalCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Hibajegyek', 'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/it.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/it.dict.itop-bridge-cmdb-ticket.php index c3625b449..160afe8a3 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/it.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/it.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkFunctionalCIToTicket' => 'Link FunctionalCI / Ticket~~', 'Class:lnkFunctionalCIToTicket+' => '~~', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~', @@ -30,12 +31,12 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Aggiunto manualmente', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Calcolato', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Non impattato', -)); +]); // // Class: FunctionalCI // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets~~', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Tutti i ticket per questo elemento di configurazione', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/ja.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/ja.dict.itop-bridge-cmdb-ticket.php index 3a4bd19ea..692b081cc 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/ja.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/ja.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkFunctionalCIToTicket' => 'リンク 機能的CI/チケット', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~', @@ -30,12 +31,12 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'チケット', 'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/nl.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/nl.dict.itop-bridge-cmdb-ticket.php index 79707f254..833c0f395 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/nl.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/nl.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkFunctionalCIToTicket' => 'Link Functioneel CI / Ticket', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s', @@ -30,12 +31,12 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Manueel toegevoegd', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Automatisch afgeleid', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Niet geïmpacteerd', -)); +]); // // Class: FunctionalCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickets', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Alle tickets voor dit configuratie-item', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/pl.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/pl.dict.itop-bridge-cmdb-ticket.php index a60c65c6c..867797b3b 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/pl.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/pl.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkFunctionalCIToTicket' => 'Połączenie Konfiguracja / Zgłoszenie', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s', @@ -30,12 +31,12 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Dodane ręcznie', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Obliczone', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Nie dotyczy', -)); +]); // // Class: FunctionalCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Zgłoszenia', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Wszystkie zgłoszenia dla tej konfiguracji', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/ru.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/ru.dict.itop-bridge-cmdb-ticket.php index a8d95d96d..f137fe68e 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/ru.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/ru.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkFunctionalCIToTicket' => 'Связь Функциональная КЕ/Тикет', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~', @@ -30,12 +31,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Добавлено вручную', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Вычислено', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Не влияет', -)); +]); // // Class: FunctionalCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Тикеты', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Связанные тикеты', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/sk.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/sk.dict.itop-bridge-cmdb-ticket.php index 0f941a8ed..e46a482ef 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/sk.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/sk.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkFunctionalCIToTicket' => 'väzba - Komponent / Ticket', 'Class:lnkFunctionalCIToTicket+' => '~~', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~', @@ -30,12 +31,12 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Added manually~~', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Computed~~', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Not impacted~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Tickety', 'Class:FunctionalCI/Attribute:tickets_list+' => 'All the tickets for this configuration item~~', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/tr.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/tr.dict.itop-bridge-cmdb-ticket.php index 6a4c00387..72f8c5743 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/tr.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/tr.dict.itop-bridge-cmdb-ticket.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkFunctionalCIToTicket' => 'İşlevsel CI / Çağrı kaydı bağla', 'Class:lnkFunctionalCIToTicket+' => '~~', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s~~', @@ -30,12 +31,12 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => 'Elle eklendi', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => 'Hesaplandı', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => 'Etkilemedi', -)); +]); // // Class: FunctionalCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:FunctionalCI/Attribute:tickets_list' => 'Çağrı Kayıtları', 'Class:FunctionalCI/Attribute:tickets_list+' => 'Bu yapılandırma öğesi için tüm çağrı kayıtları', -)); +]); diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/zh_cn.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/zh_cn.dict.itop-bridge-cmdb-ticket.php index 28b79e87d..5ec96a13f 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/zh_cn.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/zh_cn.dict.itop-bridge-cmdb-ticket.php @@ -1,4 +1,5 @@ '关联 功能配置项/工单', 'Class:lnkFunctionalCIToTicket+' => '', 'Class:lnkFunctionalCIToTicket/Name' => '%1$s / %2$s', @@ -50,12 +51,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:manual' => '手动添加', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:computed' => '自动添加', 'Class:lnkFunctionalCIToTicket/Attribute:impact_code/Value:not_impacted' => '不通知', -)); +]); // // Class: FunctionalCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:FunctionalCI/Attribute:tickets_list' => '工单', 'Class:FunctionalCI/Attribute:tickets_list+' => '此配置项包含的所有工单', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/cs.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/cs.dict.itop-change-mgmt-itil.php index d0ffcb93c..9a8032808 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/cs.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/cs.dict.itop-change-mgmt-itil.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:ChangeManagement' => 'Řízení změn', 'Menu:Change:Overview' => 'Přehled', 'Menu:Change:Overview+' => '', @@ -35,7 +36,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Změny v posledních 7 dnech podle stavu', 'Tickets:Related:OpenChanges' => 'Otevřené změny', 'Tickets:Related:RecentChanges' => 'Nedávné změny (72h)', -)); +]); // Dictionnay conventions // Class: @@ -47,12 +48,11 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Change' => 'Změna', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Stav', @@ -149,13 +149,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Ukončit', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:RoutineChange' => 'Standardní změna', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Potvrdit', @@ -180,13 +180,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Ukončit', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ApprovedChange' => 'Schválená změna', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Datum schválení', @@ -215,13 +215,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Ukončit', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:NormalChange' => 'Normální změna', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Datum přijetí', @@ -250,13 +250,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Ukončit', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:EmergencyChange' => 'Naléhavá změna', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Potvrdit', @@ -281,4 +281,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Ukončit', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/da.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/da.dict.itop-change-mgmt-itil.php index 16d7b76f1..8213673c3 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/da.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/da.dict.itop-change-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:ChangeManagement' => 'Change Management', 'Menu:Change:Overview' => 'Oversigt', 'Menu:Change:Overview+' => '', @@ -34,7 +35,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes de sidste 7 dage efter status', 'Tickets:Related:OpenChanges' => 'Open changes~~', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)~~', -)); +]); // Dictionnay conventions // Class: @@ -46,12 +47,11 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -148,13 +148,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Afslut', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:RoutineChange' => 'Rutine Ændring', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Valider', @@ -179,13 +179,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Afslut', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ApprovedChange' => 'Godkendte Changes', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Dato for godkendelse', @@ -214,13 +214,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Afslut', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:NormalChange' => 'Normal Ændring', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Dato for accept', @@ -249,13 +249,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Afslut', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:EmergencyChange' => 'Emergency Ændring', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Valider', @@ -280,4 +280,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Afslut', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/de.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/de.dict.itop-change-mgmt-itil.php index dbca03ccc..5e6a360a4 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/de.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/de.dict.itop-change-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:ChangeManagement' => 'Change Management', 'Menu:Change:Overview' => 'Übersicht', 'Menu:Change:Overview+' => '', @@ -34,7 +35,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes der letzten sieben Tage nach Status', 'Tickets:Related:OpenChanges' => 'Offene Changes', 'Tickets:Related:RecentChanges' => 'Kürzlich erfolgte Changes (72h)', -)); +]); // Dictionnay conventions // Class: @@ -46,12 +47,11 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -148,13 +148,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Abschließen', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:RoutineChange' => 'Routine Change', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Validieren', @@ -179,13 +179,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Abschließen', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ApprovedChange' => 'Genehmigte Changes', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Datum der Genehmigung', @@ -214,13 +214,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Abschließen', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:NormalChange' => 'Normaler Change', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Datum der Annahme', @@ -249,13 +249,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Abschließen', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:EmergencyChange' => 'Emergency Change', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Validieren', @@ -280,4 +280,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Abschließen', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/en.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/en.dict.itop-change-mgmt-itil.php index 330a1d415..d8b464bae 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/en.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/en.dict.itop-change-mgmt-itil.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:ChangeManagement' => 'Change management', 'Menu:Change:Overview' => 'Overview', 'Menu:Change:Overview+' => '', @@ -45,7 +46,7 @@ Dict::Add('EN US', 'English', 'English', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes by status for the last 7 days', 'Tickets:Related:OpenChanges' => 'Open changes', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)', -)); +]); // Dictionnay conventions // Class: @@ -57,12 +58,11 @@ Dict::Add('EN US', 'English', 'English', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -159,13 +159,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Finish', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:RoutineChange' => 'Routine Change', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Validate', @@ -190,13 +190,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Finish', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ApprovedChange' => 'Approved Changes', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Approval Date', @@ -225,13 +225,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Finish', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:NormalChange' => 'Normal Change', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Acceptance date', @@ -260,13 +260,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Finish', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:EmergencyChange' => 'Emergency Change', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Validate', @@ -291,4 +291,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Finish', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/en_gb.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/en_gb.dict.itop-change-mgmt-itil.php index 6a0b4bbed..cf7da1ad2 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/en_gb.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/en_gb.dict.itop-change-mgmt-itil.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:ChangeManagement' => 'Change management', 'Menu:Change:Overview' => 'Overview', 'Menu:Change:Overview+' => '', @@ -45,7 +46,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes by status for the last 7 days', 'Tickets:Related:OpenChanges' => 'Open changes', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)', -)); +]); // Dictionnay conventions // Class: @@ -57,12 +58,11 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -159,13 +159,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Finish', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:RoutineChange' => 'Routine Change', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Validate', @@ -190,13 +190,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Finish', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ApprovedChange' => 'Approved Changes', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Approval Date', @@ -225,13 +225,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Finish', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:NormalChange' => 'Normal Change', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Acceptance date', @@ -260,13 +260,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Finish', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:EmergencyChange' => 'Emergency Change', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Validate', @@ -291,4 +291,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Finish', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/es_cr.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/es_cr.dict.itop-change-mgmt-itil.php index 8f273d42e..89adf3b8d 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/es_cr.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/es_cr.dict.itop-change-mgmt-itil.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:ChangeManagement' => 'Administración de Cambios', 'Menu:Change:Overview' => 'Resumen de cambios', 'Menu:Change:Overview+' => 'Resumen de cambios', @@ -31,7 +32,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Cambios por estatus de los últimos 7 días', 'Tickets:Related:OpenChanges' => 'Cambios abiertos', 'Tickets:Related:RecentChanges' => 'Cambios recientes (72 hrs)', -)); +]); // Dictionnay conventions // Class: @@ -43,12 +44,11 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Change' => 'Cambio', 'Class:Change+' => 'Cambio', 'Class:Change/Attribute:status' => 'Estatus', @@ -145,13 +145,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Change/Stimulus:ev_monitor+' => 'Monitorear', 'Class:Change/Stimulus:ev_finish' => 'Finalizar', 'Class:Change/Stimulus:ev_finish+' => 'Finalizar', -)); +]); // // Class: RoutineChange // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:RoutineChange' => 'Cambio Rutinario', 'Class:RoutineChange+' => 'Cambio Rutinario', 'Class:RoutineChange/Stimulus:ev_validate' => 'Validar', @@ -176,13 +176,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => 'Monitorear', 'Class:RoutineChange/Stimulus:ev_finish' => 'Finalizar', 'Class:RoutineChange/Stimulus:ev_finish+' => 'Finalizar', -)); +]); // // Class: ApprovedChange // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ApprovedChange' => 'Cambios Aprobados', 'Class:ApprovedChange+' => 'Cambios Aprobados', 'Class:ApprovedChange/Attribute:approval_date' => 'Fecha de Aprobación', @@ -211,13 +211,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => 'Monitorear', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Finalizar', 'Class:ApprovedChange/Stimulus:ev_finish+' => 'Finalizar', -)); +]); // // Class: NormalChange // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:NormalChange' => 'Cambio Normal', 'Class:NormalChange+' => 'Cambio Normal', 'Class:NormalChange/Attribute:acceptance_date' => 'Fecha de Aceptación', @@ -246,13 +246,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:NormalChange/Stimulus:ev_monitor+' => 'Monitorear', 'Class:NormalChange/Stimulus:ev_finish' => 'Finalizar', 'Class:NormalChange/Stimulus:ev_finish+' => 'Finalizar', -)); +]); // // Class: EmergencyChange // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:EmergencyChange' => 'Cambio de Emergencia', 'Class:EmergencyChange+' => 'Cambio de Emergencia', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Validar', @@ -277,4 +277,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => 'Monitorear', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Finalizar', 'Class:EmergencyChange/Stimulus:ev_finish+' => 'Finalizar', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/fr.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/fr.dict.itop-change-mgmt-itil.php index dd5420085..130b2cb73 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/fr.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/fr.dict.itop-change-mgmt-itil.php @@ -1,15 +1,16 @@ 'Gestion des changements', 'Menu:Change:Overview' => 'Vue d\'ensemble', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changements par statut', 'Tickets:Related:OpenChanges' => 'Changements en cours', 'Tickets:Related:RecentChanges' => 'Changements récents (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Change' => 'Ticket de Changement', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Etat', @@ -170,14 +170,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Change/Stimulus:ev_monitor' => 'Marquer comme suivi', 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Fermer', - 'Class:Change/Stimulus:ev_finish+' => '' -)); + 'Class:Change/Stimulus:ev_finish+' => '', +]); // // Class: RoutineChange // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:RoutineChange' => 'Changement de Routine', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Valider', @@ -202,13 +202,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Fermer', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ApprovedChange' => 'Changement pré-approuvé', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Date d\'approbation', @@ -237,13 +237,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Fermer', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:NormalChange' => 'Changement Normal', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Date d\'acceptation', @@ -272,13 +272,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Fermer', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:EmergencyChange' => 'Changement urgent', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Valider', @@ -303,4 +303,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Fermer', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/hu.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/hu.dict.itop-change-mgmt-itil.php index 2067759c5..30bd09d0c 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/hu.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/hu.dict.itop-change-mgmt-itil.php @@ -1,15 +1,16 @@ 'Változáskezelés', 'Menu:Change:Overview' => 'Áttekintő', 'Menu:Change:Overview+' => 'Áttekintő oldal', @@ -33,7 +34,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Változások állapotuk szerint az elmúlt 7 napban', 'Tickets:Related:OpenChanges' => 'Nyitott változások', 'Tickets:Related:RecentChanges' => 'Legutóbbi változások (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Change' => 'Változás', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Állapot', @@ -147,13 +147,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Befejezés', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:RoutineChange' => 'Szokásos változás', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Ellenőrzés', @@ -178,13 +178,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Befejezés', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ApprovedChange' => 'Jóváhagyott változások', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Jóváhagyás dátuma', @@ -213,13 +213,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Befejezés', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:NormalChange' => 'Normál változás', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Elfogadás dátuma', @@ -248,13 +248,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Befejezés', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:EmergencyChange' => 'Sürgős változás', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Ellenőrzés', @@ -279,4 +279,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Befejezés', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/it.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/it.dict.itop-change-mgmt-itil.php index bb13366fe..4f8a4058f 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/it.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/it.dict.itop-change-mgmt-itil.php @@ -1,15 +1,16 @@ 'Gestione dei cambi', 'Menu:Change:Overview' => 'Panoramica', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Cambiamenti per stato negli ultimi 7 giorni', 'Tickets:Related:OpenChanges' => 'Cambiamenti aperti', 'Tickets:Related:RecentChanges' => 'Cambiamenti recenti (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Change' => 'Cambio', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Stato', @@ -147,13 +147,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Fine', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:RoutineChange' => 'Routine di cambi', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Convalida', @@ -178,13 +178,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Fine', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ApprovedChange' => 'Cambi approvati', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Data di approvazione', @@ -213,13 +213,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Fine', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:NormalChange' => 'Cambi normali', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Data di approvazione', @@ -248,13 +248,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Fine', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:EmergencyChange' => 'Cambi di emergenza', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Convalida', @@ -279,4 +279,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Fine', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/ja.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/ja.dict.itop-change-mgmt-itil.php index 34c84ec98..c5a3994b3 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/ja.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/ja.dict.itop-change-mgmt-itil.php @@ -1,15 +1,16 @@ '変更管理', 'Menu:Change:Overview' => '概要', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => '最近7日間の状態別変更', 'Tickets:Related:OpenChanges' => 'Open changes~~', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)~~', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Change' => '変更', 'Class:Change+' => '', 'Class:Change/Attribute:status' => '状態', @@ -147,13 +147,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => '終了', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:RoutineChange' => 'ルーチン変更', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => '受け付け', @@ -178,13 +178,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => '終了', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ApprovedChange' => '承認済の変更', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => '承認日', @@ -213,13 +213,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => '終了', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:NormalChange' => '通常変更', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => '受理日', @@ -248,13 +248,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => '終了', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:EmergencyChange' => '緊急変更', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => '受け付け', @@ -279,4 +279,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => '終了', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/nl.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/nl.dict.itop-change-mgmt-itil.php index ba63fba30..32194c4a4 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/nl.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/nl.dict.itop-change-mgmt-itil.php @@ -1,17 +1,18 @@ (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:ChangeManagement' => 'Change Management', 'Menu:Change:Overview' => 'Overzicht', 'Menu:Change:Overview+' => '', @@ -35,7 +36,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes per status van de afgelopen 7 dagen', 'Tickets:Related:OpenChanges' => 'Open changes', 'Tickets:Related:RecentChanges' => 'Recente changes (72u)', -)); +]); // Dictionnay conventions // Class: @@ -47,12 +48,11 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -149,13 +149,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Sluit af', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:RoutineChange' => 'Routine Change', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Valideer', @@ -180,13 +180,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Sluit af', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ApprovedChange' => 'Goedgekeurde Changes', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Datum goedkeuring', @@ -215,13 +215,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Sluit af', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:NormalChange' => 'Normale Change', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Datum acceptatie', @@ -250,13 +250,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Sluit af', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:EmergencyChange' => 'Dringende Change', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Valideer', @@ -281,4 +281,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Sluit af', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/pl.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/pl.dict.itop-change-mgmt-itil.php index ea8cb1fd6..8c569fb57 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/pl.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/pl.dict.itop-change-mgmt-itil.php @@ -1,15 +1,16 @@ 'Zarządzanie zmianami', 'Menu:Change:Overview' => 'Przegląd', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Zmiany według statusu z ostatnich 7 dni', 'Tickets:Related:OpenChanges' => 'Otwarte zmiany', 'Tickets:Related:RecentChanges' => 'Ostatnie zmiany (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Change' => 'Zmiana', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -147,13 +147,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Zakończona', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:RoutineChange' => 'Rutynowa zmiana', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Sprawdzona', @@ -178,13 +178,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Zakończona', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ApprovedChange' => 'Zatwierdzone zmiany', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Data zatwierdzenia', @@ -213,13 +213,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Zakończona', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:NormalChange' => 'Normalna zmiana', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Data akceptacji', @@ -248,13 +248,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Zakończona', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:EmergencyChange' => 'Awaryjna zmiana', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Sprawdzona', @@ -279,4 +279,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Zakończona', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/pt_br.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/pt_br.dict.itop-change-mgmt-itil.php index 38f9babea..97400b264 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/pt_br.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/pt_br.dict.itop-change-mgmt-itil.php @@ -1,15 +1,16 @@ 'Gerenciamento de Mudanças', 'Menu:Change:Overview' => 'Visão geral', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Mudanças por domínio nos últimos 7 dias', 'Tickets:Related:OpenChanges' => 'Mudanças abertas', 'Tickets:Related:RecentChanges' => 'Mudanças recentes (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:Change' => 'Mudança', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -147,13 +147,13 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Finalizar', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:RoutineChange' => 'Mudança de rotina', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Validar', @@ -178,13 +178,13 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Finalizar', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:ApprovedChange' => 'Mudanças aprovadas', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Data de aprovação', @@ -213,13 +213,13 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Finalizar', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:NormalChange' => 'Mudança normal', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Data de aceitação', @@ -248,13 +248,13 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Finalizar', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:EmergencyChange' => 'Mudança emergencial', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Validar', @@ -279,4 +279,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Finalizar', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/ru.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/ru.dict.itop-change-mgmt-itil.php index d5a085407..c12e14f6d 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/ru.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/ru.dict.itop-change-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:ChangeManagement' => 'Управление изменениями', 'Menu:Change:Overview' => 'Обзор', 'Menu:Change:Overview+' => 'Управление изменениями - Обзор', @@ -34,7 +35,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Изменения по статусу за 7 дней', 'Tickets:Related:OpenChanges' => 'Открытые изменения', 'Tickets:Related:RecentChanges' => 'Недавние изменения (72ч)', -)); +]); // Dictionnay conventions // Class: @@ -46,12 +47,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Change' => 'Изменение', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Статус', @@ -148,13 +148,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Закончить', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:RoutineChange' => 'Стандартное изменение', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Подтвердить', @@ -179,13 +179,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Закончить', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ApprovedChange' => 'Утверждаемые изменения', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Дата утверждения', @@ -214,13 +214,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Закончить', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:NormalChange' => 'Нормальное изменение', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Дата принятия', @@ -249,13 +249,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Закончить', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:EmergencyChange' => 'Экстренное изменение', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Подтвердить', @@ -280,4 +280,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Закончить', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/sk.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/sk.dict.itop-change-mgmt-itil.php index ea5318cd8..3c3dd1ee0 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/sk.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/sk.dict.itop-change-mgmt-itil.php @@ -1,15 +1,16 @@ 'Manažment zmien', 'Menu:Change:Overview' => 'Prehľad', 'Menu:Change:Overview+' => '~~', @@ -33,7 +34,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Zmeny podľa stavu za posledných 7 dní', 'Tickets:Related:OpenChanges' => 'Open changes~~', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)~~', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Change' => 'Zmena', 'Class:Change+' => '~~', 'Class:Change/Attribute:status' => 'Stav', @@ -147,13 +147,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Change/Stimulus:ev_monitor+' => '~~', 'Class:Change/Stimulus:ev_finish' => 'Zatvoriť', 'Class:Change/Stimulus:ev_finish+' => '~~', -)); +]); // // Class: RoutineChange // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:RoutineChange' => 'Routine Change~~', 'Class:RoutineChange+' => '~~', 'Class:RoutineChange/Stimulus:ev_validate' => 'Validate~~', @@ -178,13 +178,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '~~', 'Class:RoutineChange/Stimulus:ev_finish' => 'Finish~~', 'Class:RoutineChange/Stimulus:ev_finish+' => '~~', -)); +]); // // Class: ApprovedChange // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ApprovedChange' => 'Approved Changes~~', 'Class:ApprovedChange+' => '~~', 'Class:ApprovedChange/Attribute:approval_date' => 'Approval Date~~', @@ -213,13 +213,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '~~', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Finish~~', 'Class:ApprovedChange/Stimulus:ev_finish+' => '~~', -)); +]); // // Class: NormalChange // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:NormalChange' => 'Normal Change~~', 'Class:NormalChange+' => '~~', 'Class:NormalChange/Attribute:acceptance_date' => 'Acceptance date~~', @@ -248,13 +248,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '~~', 'Class:NormalChange/Stimulus:ev_finish' => 'Finish~~', 'Class:NormalChange/Stimulus:ev_finish+' => '~~', -)); +]); // // Class: EmergencyChange // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:EmergencyChange' => 'Emergency Change~~', 'Class:EmergencyChange+' => '~~', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Validate~~', @@ -279,4 +279,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '~~', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Finish~~', 'Class:EmergencyChange/Stimulus:ev_finish+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/tr.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/tr.dict.itop-change-mgmt-itil.php index a6104462c..54b48064d 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/tr.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/tr.dict.itop-change-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:ChangeManagement' => 'Değişiklik Yönetimi', 'Menu:Change:Overview' => 'Özet', 'Menu:Change:Overview+' => '', @@ -34,7 +35,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Son 7 gün için duruma göre değişiklikler', 'Tickets:Related:OpenChanges' => 'Açık değişiklikler', 'Tickets:Related:RecentChanges' => 'Son değişiklikler (72H)', -)); +]); // Dictionnay conventions // Class: @@ -46,12 +47,11 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Change' => 'Değişiklik', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Durumu', @@ -148,13 +148,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => 'Bitir', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:RoutineChange' => 'Sıradan değişiklik', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => 'Doğrulanan', @@ -179,13 +179,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => 'Bitir', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ApprovedChange' => 'Onaylanan değişiklik', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => 'Onay tarihi', @@ -214,13 +214,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => 'Bitir', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:NormalChange' => 'Normal değişiklik', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => 'Kabul tarihi', @@ -249,13 +249,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => 'Bitir', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:EmergencyChange' => 'Acil değişiklik', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => 'Doğrula', @@ -280,4 +280,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => 'Bitir', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/zh_cn.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/zh_cn.dict.itop-change-mgmt-itil.php index b9c3d56c4..4e1c7a201 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/zh_cn.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/zh_cn.dict.itop-change-mgmt-itil.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:ChangeManagement' => '变更管理', 'Menu:Change:Overview' => '概况', 'Menu:Change:Overview+' => '', @@ -44,7 +45,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => '最近一周的变更 (按状态)', 'Tickets:Related:OpenChanges' => '打开的变更', 'Tickets:Related:RecentChanges' => '最近的变更 (72小时)', -)); +]); // Dictionnay conventions // Class: @@ -56,12 +57,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Change' => '变更', 'Class:Change+' => '', 'Class:Change/Attribute:status' => '状态', @@ -158,13 +158,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Change/Stimulus:ev_monitor+' => '', 'Class:Change/Stimulus:ev_finish' => '完成', 'Class:Change/Stimulus:ev_finish+' => '', -)); +]); // // Class: RoutineChange // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:RoutineChange' => '例行变更', 'Class:RoutineChange+' => '', 'Class:RoutineChange/Stimulus:ev_validate' => '同意', @@ -189,13 +189,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:RoutineChange/Stimulus:ev_monitor+' => '', 'Class:RoutineChange/Stimulus:ev_finish' => '完成', 'Class:RoutineChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: ApprovedChange // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ApprovedChange' => '已批准的变更', 'Class:ApprovedChange+' => '', 'Class:ApprovedChange/Attribute:approval_date' => '批准日期', @@ -224,13 +224,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ApprovedChange/Stimulus:ev_monitor+' => '', 'Class:ApprovedChange/Stimulus:ev_finish' => '完成', 'Class:ApprovedChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: NormalChange // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:NormalChange' => '正常变更', 'Class:NormalChange+' => '', 'Class:NormalChange/Attribute:acceptance_date' => '审核日期', @@ -259,13 +259,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:NormalChange/Stimulus:ev_monitor+' => '', 'Class:NormalChange/Stimulus:ev_finish' => '完成', 'Class:NormalChange/Stimulus:ev_finish+' => '', -)); +]); // // Class: EmergencyChange // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:EmergencyChange' => '紧急变更', 'Class:EmergencyChange+' => '', 'Class:EmergencyChange/Stimulus:ev_validate' => '同意', @@ -290,4 +290,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:EmergencyChange/Stimulus:ev_monitor+' => '', 'Class:EmergencyChange/Stimulus:ev_finish' => '完成', 'Class:EmergencyChange/Stimulus:ev_finish+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/cs.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/cs.dict.itop-change-mgmt.php index e84f21e46..63d619c9b 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/cs.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/cs.dict.itop-change-mgmt.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:ChangeManagement' => 'Řízení změn', 'Menu:Change:Overview' => 'Přehled', 'Menu:Change:Overview+' => '', @@ -35,7 +36,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Změny v posledních 7 dnech podle stavu', 'Tickets:Related:OpenChanges' => 'Otevřené změny', 'Tickets:Related:RecentChanges' => 'Nedávné změny (72h)', -)); +]); // Dictionnay conventions // Class: @@ -47,12 +48,11 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Change' => 'Změna', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Stav', @@ -127,4 +127,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Ano', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/da.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/da.dict.itop-change-mgmt.php index 0c137e803..8ac59adbb 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/da.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/da.dict.itop-change-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:ChangeManagement' => 'Change Management', 'Menu:Change:Overview' => 'Oversigt', 'Menu:Change:Overview+' => '', @@ -34,7 +35,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes de sidste 7 dage efter status', 'Tickets:Related:OpenChanges' => 'Open changes~~', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)~~', -)); +]); // Dictionnay conventions // Class: @@ -46,12 +47,11 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -126,4 +126,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Change/Attribute:outage/Value:no+' => '~~', 'Class:Change/Attribute:outage/Value:yes' => 'Ja', 'Class:Change/Attribute:outage/Value:yes+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/de.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/de.dict.itop-change-mgmt.php index 105155257..43104ecf9 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/de.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/de.dict.itop-change-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:ChangeManagement' => 'Change Management', 'Menu:Change:Overview' => 'Übersicht', 'Menu:Change:Overview+' => '', @@ -34,7 +35,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes der letzten sieben Tage nach Status', 'Tickets:Related:OpenChanges' => 'Offene Changes', 'Tickets:Related:RecentChanges' => 'Kürzlich erfolgte Changes (72h)', -)); +]); // Dictionnay conventions // Class: @@ -46,12 +47,11 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -126,4 +126,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Ja', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/en.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/en.dict.itop-change-mgmt.php index 8ffa07117..9324d8b04 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/en.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/en.dict.itop-change-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:ChangeManagement' => 'Change management', 'Menu:Change:Overview' => 'Overview', 'Menu:Change:Overview+' => '', @@ -45,7 +46,7 @@ Dict::Add('EN US', 'English', 'English', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes by status for the last 7 days', 'Tickets:Related:OpenChanges' => 'Open changes', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)', -)); +]); // Dictionnay conventions // Class: @@ -57,12 +58,11 @@ Dict::Add('EN US', 'English', 'English', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -137,4 +137,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Yes', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/en_gb.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/en_gb.dict.itop-change-mgmt.php index 00da2d6ca..35427ccad 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/en_gb.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/en_gb.dict.itop-change-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:ChangeManagement' => 'Change management', 'Menu:Change:Overview' => 'Overview', 'Menu:Change:Overview+' => '', @@ -45,7 +46,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes by status for the last 7 days', 'Tickets:Related:OpenChanges' => 'Open changes', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)', -)); +]); // Dictionnay conventions // Class: @@ -57,12 +58,11 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -137,4 +137,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Yes', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/es_cr.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/es_cr.dict.itop-change-mgmt.php index 1414bd03b..91c0d5575 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/es_cr.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/es_cr.dict.itop-change-mgmt.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:ChangeManagement' => 'Administración de Cambios', 'Menu:Change:Overview' => 'Resumen de Cambios', 'Menu:Change:Overview+' => 'Resumen de Cambios', @@ -31,7 +32,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Cambios por Estatus de los Últimos 7 días', 'Tickets:Related:OpenChanges' => 'Cambios Abiertos', 'Tickets:Related:RecentChanges' => 'Cambios Recientes (72 hrs)', -)); +]); // Dictionnay conventions // Class: @@ -43,12 +44,11 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Change' => 'Cambio', 'Class:Change+' => 'Cambio', 'Class:Change/Attribute:status' => 'Estatus', @@ -123,4 +123,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Change/Attribute:outage/Value:no+' => 'No', 'Class:Change/Attribute:outage/Value:yes' => 'Si', 'Class:Change/Attribute:outage/Value:yes+' => 'Si', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/fr.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/fr.dict.itop-change-mgmt.php index 06f4f24e7..2a4bf9fb0 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/fr.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/fr.dict.itop-change-mgmt.php @@ -1,15 +1,16 @@ 'Gestion des changements', 'Menu:Change:Overview' => 'Vue d\'ensemble', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changements par statut', 'Tickets:Related:OpenChanges' => 'Changements en cours', 'Tickets:Related:RecentChanges' => 'Changements récents (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Change' => 'Ticket de Changement', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Etat', @@ -148,5 +148,5 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Change/Attribute:outage/Value:no' => 'Non', 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Oui', - 'Class:Change/Attribute:outage/Value:yes+' => '' -)); + 'Class:Change/Attribute:outage/Value:yes+' => '', +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/hu.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/hu.dict.itop-change-mgmt.php index f6cb1f74f..e2857a54a 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/hu.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/hu.dict.itop-change-mgmt.php @@ -1,15 +1,16 @@ 'Változáskezelés', 'Menu:Change:Overview' => 'Áttekintő', 'Menu:Change:Overview+' => 'Áttekintő oldal', @@ -33,7 +34,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Változások állapotuk szerint az elmúlt 7 napban', 'Tickets:Related:OpenChanges' => 'Nyitott változások', 'Tickets:Related:RecentChanges' => 'Legutóbbi változások (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Change' => 'Változás', 'Class:Change+' => '~~', 'Class:Change/Attribute:status' => 'Állapot', @@ -125,4 +125,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Change/Attribute:outage/Value:no+' => '~~', 'Class:Change/Attribute:outage/Value:yes' => 'Igen', 'Class:Change/Attribute:outage/Value:yes+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/it.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/it.dict.itop-change-mgmt.php index c694d45ea..4cf2e12b6 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/it.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/it.dict.itop-change-mgmt.php @@ -1,15 +1,16 @@ 'Gestione dei cambi', 'Menu:Change:Overview' => 'Panoramica', 'Menu:Change:Overview+' => '~~', @@ -33,7 +34,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Cambiamenti per stato negli ultimi 7 giorni', 'Tickets:Related:OpenChanges' => 'Cambiamenti aperti', 'Tickets:Related:RecentChanges' => 'Cambiamenti recenti (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Change' => 'Cambio', 'Class:Change+' => '~~', 'Class:Change/Attribute:status' => 'Stato', @@ -125,4 +125,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Change/Attribute:outage/Value:no+' => '~~', 'Class:Change/Attribute:outage/Value:yes' => 'Si', 'Class:Change/Attribute:outage/Value:yes+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/ja.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/ja.dict.itop-change-mgmt.php index 08a6b91e9..2cf1eea0e 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/ja.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/ja.dict.itop-change-mgmt.php @@ -1,15 +1,16 @@ '変更管理', 'Menu:Change:Overview' => '概要', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => '最近7日間の状態別変更', 'Tickets:Related:OpenChanges' => 'Open changes~~', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)~~', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Change' => '変更', 'Class:Change+' => '', 'Class:Change/Attribute:status' => '状態', @@ -125,4 +125,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Change/Attribute:outage/Value:no+' => '~~', 'Class:Change/Attribute:outage/Value:yes' => 'はい', 'Class:Change/Attribute:outage/Value:yes+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/nl.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/nl.dict.itop-change-mgmt.php index ca4ddb219..6197896a9 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/nl.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/nl.dict.itop-change-mgmt.php @@ -1,17 +1,18 @@ * @author Jeffrey Bostoen (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:ChangeManagement' => 'Change Management', 'Menu:Change:Overview' => 'Overzicht', 'Menu:Change:Overview+' => '', @@ -35,7 +36,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Changes per status van de afgelopen 7 dagen', 'Tickets:Related:OpenChanges' => 'Open changes', 'Tickets:Related:RecentChanges' => 'Recente changes (72u)', -)); +]); // Dictionnay conventions // Class: @@ -47,12 +48,11 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Change' => 'Change', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -127,4 +127,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Ja', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/pl.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/pl.dict.itop-change-mgmt.php index c400f73c5..295b5a9b7 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/pl.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/pl.dict.itop-change-mgmt.php @@ -1,15 +1,16 @@ 'Zarządzanie zmianami', 'Menu:Change:Overview' => 'Przegląd', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Zmiany według statusu z ostatnich 7 dni', 'Tickets:Related:OpenChanges' => 'Otwarte zmiany', 'Tickets:Related:RecentChanges' => 'Ostatnie zmiany (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Change' => 'Zmiana', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -125,4 +125,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Tak', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/pt_br.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/pt_br.dict.itop-change-mgmt.php index 23e35d4e9..923e9a82b 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/pt_br.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/pt_br.dict.itop-change-mgmt.php @@ -1,15 +1,16 @@ 'Gerenciamento de mudanças', 'Menu:Change:Overview' => 'Visão geral', 'Menu:Change:Overview+' => '', @@ -33,7 +34,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Mudanças por status nos últimos 7 dias', 'Tickets:Related:OpenChanges' => 'Mudanças abertas', 'Tickets:Related:RecentChanges' => 'Mudanças recentes (72h)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:Change' => 'Mudança', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Status', @@ -125,4 +125,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Sim', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/ru.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/ru.dict.itop-change-mgmt.php index f0b2e1ff3..e75d1a0f6 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/ru.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/ru.dict.itop-change-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:ChangeManagement' => 'Управление изменениями', 'Menu:Change:Overview' => 'Обзор', 'Menu:Change:Overview+' => 'Управление изменениями - Обзор', @@ -34,7 +35,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Изменения по статусу за 7 дней', 'Tickets:Related:OpenChanges' => 'Открытые изменения', 'Tickets:Related:RecentChanges' => 'Недавние изменения (72ч)', -)); +]); // Dictionnay conventions // Class: @@ -46,12 +47,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Change' => 'Изменение', 'Class:Change+' => '', 'Class:Change/Attribute:status' => 'Статус', @@ -126,4 +126,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => 'Да', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/sk.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/sk.dict.itop-change-mgmt.php index eddbfd09f..0c2831ce2 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/sk.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/sk.dict.itop-change-mgmt.php @@ -1,15 +1,16 @@ 'Manažment zmien', 'Menu:Change:Overview' => 'Prehľad', 'Menu:Change:Overview+' => '~~', @@ -33,7 +34,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Zmeny podľa stavu za posledných 7 dní', 'Tickets:Related:OpenChanges' => 'Open changes~~', 'Tickets:Related:RecentChanges' => 'Recent changes (72h)~~', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Change' => 'Zmena', 'Class:Change+' => '~~', 'Class:Change/Attribute:status' => 'Stav', @@ -125,4 +125,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Change/Attribute:outage/Value:no+' => '~~', 'Class:Change/Attribute:outage/Value:yes' => 'Yes~~', 'Class:Change/Attribute:outage/Value:yes+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/tr.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/tr.dict.itop-change-mgmt.php index 66561be5b..e12737655 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/tr.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/tr.dict.itop-change-mgmt.php @@ -1,15 +1,16 @@ 'Değişiklik yönetimi', 'Menu:Change:Overview' => 'Özet', 'Menu:Change:Overview+' => '~~', @@ -33,7 +34,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => 'Son 7 gün için duruma göre değişiklikler', 'Tickets:Related:OpenChanges' => 'Açık değişiklikler', 'Tickets:Related:RecentChanges' => 'Son değişiklikler (72H)', -)); +]); // Dictionnay conventions // Class: @@ -45,12 +46,11 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Change' => 'Değişiklik', 'Class:Change+' => '~~', 'Class:Change/Attribute:status' => 'Durumu', @@ -125,4 +125,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Change/Attribute:outage/Value:no+' => '~~', 'Class:Change/Attribute:outage/Value:yes' => 'Evet', 'Class:Change/Attribute:outage/Value:yes+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/zh_cn.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/zh_cn.dict.itop-change-mgmt.php index b665f9cd6..7422b8883 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/zh_cn.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/zh_cn.dict.itop-change-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:ChangeManagement' => '变更管理', 'Menu:Change:Overview' => '概况', 'Menu:Change:Overview+' => '', @@ -44,7 +45,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI-ChangeManagementOverview-ChangeByStatus-last-7-days' => '最近一周的变更 (按状态)', 'Tickets:Related:OpenChanges' => '打开的变更', 'Tickets:Related:RecentChanges' => '最近的变更 (72小时)', -)); +]); // Dictionnay conventions // Class: @@ -56,12 +57,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Class:/Stimulus: // Class:/Stimulus:+ - // // Class: Change // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Change' => '变更', 'Class:Change+' => '', 'Class:Change/Attribute:status' => '状态', @@ -136,4 +136,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Change/Attribute:outage/Value:no+' => '', 'Class:Change/Attribute:outage/Value:yes' => '是', 'Class:Change/Attribute:outage/Value:yes+' => '', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/cs.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/cs.dict.itop-config-mgmt.php index 793f75851..902afc29a 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/cs.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/cs.dict.itop-config-mgmt.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Relation:impacts/Description' => 'Prvky ovlivněné objektem', 'Relation:impacts/DownStream' => 'Dopad na', 'Relation:impacts/DownStream+' => 'Elements impacted by~~', @@ -23,8 +24,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Relation:impacts/LoadData' => 'Load data~~', 'Relation:impacts/NoFilteredData' => 'please select objects and load data~~', 'Relation:impacts/FilteredData' => 'Filtered data~~', -)); - +]); // Dictionnay conventions // Class: @@ -67,7 +67,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( // Class: lnkContactToFunctionalCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContactToFunctionalCI' => 'Spojení (Kontakt / Funkční konfigurační položka)', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -79,13 +79,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Název kontaktu', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:FunctionalCI' => 'Funkční konfigurační položka', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Název', @@ -118,13 +118,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:FunctionalCI/Attribute:finalclass+' => '', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Aktivní tikety', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~', -)); +]); // // Class: PhysicalDevice // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:PhysicalDevice' => 'Fyzické zařízení', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -158,13 +158,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Konec záruky', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -174,64 +174,64 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Rack/Attribute:device_list+' => 'Všechna zařízení umístěná v tomto racku', 'Class:Rack/Attribute:enclosure_list' => 'Šasi', 'Class:Rack/Attribute:enclosure_list+' => 'Všechna šasi umístěná v tomto racku', -)); +]); // // Class: TelephonyCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:TelephonyCI' => 'Konfigurační položka Telefonie', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Telefonní číslo', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Phone' => 'Telefon', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:MobilePhone' => 'Mobilní telefon', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'Hardware PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:IPPhone' => 'IP telefon', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ConnectableCI' => 'Připojitelná konfigurační položka', 'Class:ConnectableCI+' => '', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -239,13 +239,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Všechny síťová zařízení, která jsou připojena k tomuto zařízení', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Síťová rozhraní', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Všechna fyzická síťové rozhraní', -)); +]); // // Class: DatacenterDevice // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DatacenterDevice' => 'Zařízení datového centra', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -277,13 +277,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'Zařízení je v provozu, pokud je funkční alespoň jeden zdroj', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'Zařízení je v provozu, pouze pokud jsou funknčí všechny zdroje', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'Zařízení je v provozu, pokud je alespoň %1$s %% zdrojů funkčních', -)); +]); // // Class: NetworkDevice // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:NetworkDevice' => 'Síťový prvek', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -299,13 +299,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Server' => 'Server', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -327,61 +327,61 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Logické svazky', 'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~', -)); +]); // // Class: StorageSystem // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:StorageSystem' => 'Úložný systém', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logické svazky', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Všechny logické svazky připojené k tomuto úložnému systému', -)); +]); // // Class: SANSwitch // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:SANSwitch' => 'SAN Switch', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Zařízení', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Všechna zařízení připojená k tomuto SAN switchi', -)); +]); // // Class: TapeLibrary // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:TapeLibrary' => 'Pásková knihovna', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~', 'Class:TapeLibrary/Attribute:tapes_list' => 'Pásky', 'Class:TapeLibrary/Attribute:tapes_list+' => 'Všechny pásky v této páskové knihovně', -)); +]); // // Class: NAS // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s~~', 'Class:NAS/Attribute:nasfilesystem_list' => 'Souborové systémy', 'Class:NAS/Attribute:nasfilesystem_list+' => 'Všechny souborové systémy na tomto NASu', -)); +]); // // Class: PC // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s~~', @@ -403,45 +403,45 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:PC/Attribute:type/Value:desktop+' => 'desktop', 'Class:PC/Attribute:type/Value:laptop' => 'notebook', 'Class:PC/Attribute:type/Value:laptop+' => 'notebook', -)); +]); // // Class: Printer // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Printer' => 'Tiskárna', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:PowerConnection' => 'Připojení k napájení', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:PowerSource' => 'Zdroj napájení', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', 'Class:PowerSource/Attribute:pdus_list' => 'PDU', 'Class:PowerSource/Attribute:pdus_list+' => 'Všechny jednotky pro rozvod energie využívající tento zdroj napájení', -)); +]); // // Class: PDU // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s~~', @@ -453,23 +453,23 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Název zdroje energie', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Peripheral' => 'Periferie', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: Enclosure // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Enclosure' => 'Šasi', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -481,13 +481,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => 'Zařízení', 'Class:Enclosure/Attribute:device_list+' => 'Všechna zařízení v tom to šasi', -)); +]); // // Class: ApplicationSolution // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ApplicationSolution' => 'Aplikační řešení', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'Konfigurační položky', @@ -504,13 +504,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'Řešení je v provozu, pokud jsou funkční všechny konfigurační položky', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'Řešení je v provozu, pokud je funkčních alespoň %1$s konfiguračních položek', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'Řešení je v provozu, pokud je funkčních alespoň %1$s %% konfiguračních položek', -)); +]); // // Class: BusinessProcess // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:BusinessProcess' => 'Obchodní proces', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Aplikační řešení', @@ -521,13 +521,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => '', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'neaktivní', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => '', -)); +]); // // Class: SoftwareInstance // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:SoftwareInstance' => 'Instance softwaru', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'Systém', @@ -550,64 +550,64 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => '', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'neaktivní', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => '', -)); +]); // // Class: Middleware // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Instance middlewaru', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'Všechny instance tohoto middlewaru', -)); +]); // // Class: DBServer // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DBServer' => 'DB Server', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'DB schémata', 'Class:DBServer/Attribute:dbschema_list+' => 'Všechna DB schémata pro tento DB server', -)); +]); // // Class: WebServer // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:WebServer' => 'Web server', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Web aplikace', 'Class:WebServer/Attribute:webapp_list+' => 'Všechny webové aplikace dostupné na tomto web serveru', -)); +]); // // Class: PCSoftware // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:PCSoftware' => 'PC Software', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:OtherSoftware' => 'Ostatní Software', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:MiddlewareInstance' => 'Instance middlewaru', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -615,13 +615,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Název middlewaru', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DatabaseSchema' => 'DB Schéma', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -629,13 +629,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'Název DB serveru', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:WebApplication' => 'Web aplikace', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -645,14 +645,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:VirtualDevice' => 'Virtuální zařízení', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => 'Stav', @@ -667,24 +666,24 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => '', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logické svazky', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Všechny logické svazky používané tímto zařízením', -)); +]); // // Class: VirtualHost // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:VirtualHost' => 'Virtual host', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtuální stroje (VM)', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Všechny virtuální stroje hostované na tomto virtual hostu', -)); +]); // // Class: Hypervisor // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'Farma', @@ -695,13 +694,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Název serveru', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Farm' => 'Farma', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisory', @@ -710,13 +709,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Farm/Attribute:redundancy/disabled' => 'Farma je v provozu, pouze pokud jsou funknční všechny Hypervisory', 'Class:Farm/Attribute:redundancy/count' => 'Farma je v provozu, pokud je funkčních alespoň %1$s Hypervisorů', 'Class:Farm/Attribute:redundancy/percent' => 'Farma je v provozu, pokud je funkčních alespoň %1$s %% Hypervisorů', -)); +]); // // Class: VirtualMachine // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:VirtualMachine' => 'Virtuální stroj (VM)', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -744,13 +743,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Síťová rozhraní', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Všechna logická síťová rozhraní', -)); +]); // // Class: LogicalVolume // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:LogicalVolume' => 'Logický svazek', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => 'Název', @@ -771,13 +770,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Všechny servery užívající tento svazek', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuální zařízení', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Všechna virtuální zařízení užívající tento svazek', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkServerToVolume' => 'Spojení (Server / Svazek)', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~', @@ -791,13 +790,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Využitá velikost', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkVirtualDeviceToVolume' => 'Spojení (Virtuální zařízení / Svazek)', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -811,13 +810,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Využitá velikost', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkSanToDatacenterDevice' => 'Spojení (SAN / Zařízení datového centra)', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~', @@ -833,13 +832,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'FC zařízení', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Tape' => 'Páska', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => 'Název', @@ -852,13 +851,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Název páskové knihovny', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:NASFileSystem' => 'Souborový systém nas', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => 'Název', @@ -873,13 +872,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'Název NAS', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Software' => 'Software', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s~~', @@ -909,13 +908,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Software/Attribute:softwarepatch_list+' => 'Všechny záplaty (patche) pro tento software', 'Class:Software/Attribute:softwarelicence_list' => 'Licence softwaru', 'Class:Software/Attribute:softwarelicence_list+' => 'Všechny licence pro tento software', -)); +]); // // Class: Patch // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Patch' => 'Záplata (patch)', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Název', @@ -926,13 +925,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Typ', 'Class:Patch/Attribute:finalclass+' => '', -)); +]); // // Class: OSPatch // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:OSPatch' => 'Záplata (patch) OS', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Zařízení', @@ -941,13 +940,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'Název verze OS', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:SoftwarePatch' => 'Záplata (patch) softwaru', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'Software', @@ -956,13 +955,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Instance softwaru', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Všechny systémy, kde je tato záplata (patch) softwaru instalována', -)); +]); // // Class: Licence // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Licence' => 'Licence', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => 'Název', @@ -991,13 +990,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => '', 'Class:Licence/Attribute:finalclass' => 'Typ', 'Class:Licence/Attribute:finalclass+' => '', -)); +]); // // Class: OSLicence // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:OSLicence' => 'Licence OS', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1009,13 +1008,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'Všechny virtuální stroje (VM), kde je tato licence použita', 'Class:OSLicence/Attribute:servers_list' => 'Servery', 'Class:OSLicence/Attribute:servers_list+' => 'Všechny servery, kde je tato licence použita', -)); +]); // // Class: SoftwareLicence // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:SoftwareLicence' => 'Licence softwaru', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1025,13 +1024,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Instance softwaru', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Všechny systémy, kde je tato licence použita', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDocumentToLicence' => 'Spojení (Dokument / Licence)', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~', @@ -1043,35 +1042,35 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Název dokumentu', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:OSVersion' => 'Verze OS', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'Rodina OS', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'Název rodiny OS', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:OSFamily' => 'Rodina OS', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Brand' => 'Výrobce', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1080,13 +1079,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'Všechna fyzická zařízení odpovídající této značce', 'Class:Brand/UniquenessRule:name+' => 'Jméno značky musí být unikátní', 'Class:Brand/UniquenessRule:name' => 'Tato značka již existuje', -)); +]); // // Class: Model // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Model' => 'Model', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s~~', @@ -1138,37 +1137,37 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Model/Attribute:physicaldevices_list+' => 'Všechna fyzická zařízení odpovídající tomuto modelu', 'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~', 'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:NetworkDeviceType' => 'Typ síťového zařízení', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Síťová zařízení', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Všechna síťová zařízení odpovídající tomuto typu', -)); +]); // // Class: IOSVersion // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:IOSVersion' => 'Verze IOS', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Výrobce', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Název výrobce', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDocumentToPatch' => 'Spojení (Dokument / Záplata (patch))', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~', @@ -1180,13 +1179,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Název dokumentu', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Spojení (Instance softwaru / Záplata (patch) softwaru)', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~', @@ -1198,13 +1197,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Název instance softwaru', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkFunctionalCIToOSPatch' => 'Spojení (Funkční konfigurační položka / Záplata (patch) OS)', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~', @@ -1216,13 +1215,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Název funkční konfigurační položky', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDocumentToSoftware' => 'Spojení (Dokument / Software)', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~', @@ -1234,13 +1233,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Název dokumentu', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Subnet' => 'Podsíť (subnet)', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s~~', @@ -1259,13 +1258,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLAN', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag', @@ -1280,13 +1279,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:VLAN/Attribute:subnets_list+' => '', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Fyzická síťová rozhraní', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkSubnetToVLAN' => 'Spojení (Podsíť (subnet) / VLAN)', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1300,26 +1299,26 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:NetworkInterface' => 'Síťové rozhraní', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Název', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'Typ', 'Class:NetworkInterface/Attribute:finalclass+' => '', -)); +]); // // Class: IPInterface // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:IPInterface' => 'IP rozhraní', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IP adresa', @@ -1334,13 +1333,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Rychlost', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:PhysicalInterface' => 'Fyzické rozhraní', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1350,13 +1349,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLAN', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Spojení (Fyzické rozhraní / VLAN)', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~', @@ -1372,27 +1371,26 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:LogicalInterface' => 'Logické rozhraní', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtuální stroj (VM)', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Název virtuálního stroje (VM)', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:FiberChannelInterface' => 'FC rozhraní', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Rychlost', @@ -1405,13 +1403,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Název zařízení', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Spojení (Připojitelná konfigurační položka / Síťový prvek)', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~', @@ -1433,13 +1431,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'down link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'up link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'up link', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Spojení (Aplikační řešení / Funkční konfigurační položka)', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1451,13 +1449,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Název funkční konfigurační položky', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Spojení (Aplikační řešení / Obchodní proces)', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~', @@ -1469,13 +1467,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Název aplikačního řešení', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Group' => 'Skupina', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1505,13 +1503,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Group/Attribute:ci_list+' => 'Všechny konfigurační položky spojené s touto skupinou', 'Class:Group/Attribute:parent_id_friendlyname' => 'Nadřazená skupina', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkGroupToCI' => 'Spojení (Skupina / Konfigurační položka)', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~', @@ -1525,11 +1523,11 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Důvod', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Server:baseinfo' => 'Obecné informace', 'Server:Date' => 'Data', 'Server:moreinfo' => 'Více informací', @@ -1542,14 +1540,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Počet volných adres: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Tady je výčet volných IP adres (10)', 'Class:Document:PreviewTab' => 'Náhled', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDocumentToFunctionalCI' => 'Spojení (Dokument / Funkční konfigurační položka)', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1561,13 +1558,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Název dokumentu', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:Application' => 'Aplikace', 'Menu:Application+' => 'Všechny aplikace', 'Menu:DBServer' => 'Databázové servery', @@ -1612,15 +1609,15 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Katalog softwaru', 'Menu:Software+' => 'Katalog softwaru', -)); +]); // // Class: PhysicalInterface // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/da.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/da.dict.itop-config-mgmt.php index dc9b35d33..888320caa 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/da.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/da.dict.itop-config-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Relation:impacts/Description' => 'Elementer berørt af ...', 'Relation:impacts/DownStream' => 'Påvrikning ...', 'Relation:impacts/DownStream+' => 'Elements impacted by~~', @@ -22,8 +23,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Relation:impacts/LoadData' => 'Load data~~', 'Relation:impacts/NoFilteredData' => 'please select objects and load data~~', 'Relation:impacts/FilteredData' => 'Filtered data~~', -)); - +]); // Dictionnay conventions // Class: @@ -66,7 +66,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( // Class: lnkContactToFunctionalCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContactToFunctionalCI' => 'Sammenhæng Kontakt/FunctionalCI', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -78,13 +78,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Kontakt navn', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:FunctionalCI' => 'Funktionelle CI', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Navn', @@ -117,13 +117,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:FunctionalCI/Attribute:finalclass+' => '', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~', -)); +]); // // Class: PhysicalDevice // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:PhysicalDevice' => 'Fysiske enheder', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -157,13 +157,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Udløb garanti', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s~~', @@ -173,64 +173,64 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack~~', 'Class:Rack/Attribute:enclosure_list' => 'Enclosures', 'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack~~', -)); +]); // // Class: TelephonyCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:TelephonyCI' => 'Telefoni CI', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Telefonnummer', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Phone' => 'Telefon', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:MobilePhone' => 'Mobiltelefon', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'Hardware PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:IPPhone' => 'IP-Telefon', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ConnectableCI' => 'Forbindbare CI', 'Class:ConnectableCI+' => 'Fysiske CI', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s~~', @@ -238,13 +238,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device~~', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Netværks interfaces', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces~~', -)); +]); // // Class: DatacenterDevice // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DatacenterDevice' => 'Datacenterenhed', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -276,13 +276,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'The device %2$s is up if at least one power connection (A or B) is up~~', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'The device %2$s is up if all its power connections are up~~', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'The device %2$s is up if at least %1$s %% of its power connections are up~~', -)); +]); // // Class: NetworkDevice // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:NetworkDevice' => 'Netværks enhed', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -298,13 +298,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Server' => 'Server', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s~~', @@ -326,61 +326,61 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Logical Volumes', 'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~', -)); +]); // // Class: StorageSystem // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:StorageSystem' => 'Storage-System', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logical Volumes', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system~~', -)); +]); // // Class: SANSwitch // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:SANSwitch' => 'SAN-Switch', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s~~', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Enhed', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch~~', -)); +]); // // Class: TapeLibrary // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:TapeLibrary' => 'Tape-Library', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~', 'Class:TapeLibrary/Attribute:tapes_list' => 'Bånd', 'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library~~', -)); +]); // // Class: NAS // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s~~', 'Class:NAS/Attribute:nasfilesystem_list' => 'NAS filsystem liste', 'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS~~', -)); +]); // // Class: PC // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s~~', @@ -402,45 +402,45 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:PC/Attribute:type/Value:desktop+' => '', 'Class:PC/Attribute:type/Value:laptop' => 'Bærbar', 'Class:PC/Attribute:type/Value:laptop+' => '', -)); +]); // // Class: Printer // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Printer' => 'Printer', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerConnection // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:PowerConnection' => 'Strømtilslutning', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerSource // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:PowerSource' => 'Strømkilde', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s~~', 'Class:PowerSource/Attribute:pdus_list' => 'PDUs', 'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source~~', -)); +]); // // Class: PDU // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s~~', @@ -452,23 +452,23 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Power start navn', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Peripheral' => 'Perifer enhed', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: Enclosure // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Enclosure' => 'Enclosure', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -480,13 +480,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => 'Enhed', 'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure~~', -)); +]); // // Class: ApplicationSolution // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ApplicationSolution' => 'Anvendelsområde', 'Class:ApplicationSolution+' => 'Hvilken applikations løsning anvendes den i?', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs', @@ -503,13 +503,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'The solution is up if all CIs are up~~', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'The solution is up if at least %1$s CI(s) is(are) up~~', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'The solution is up if at least %1$s %% of the CIs are up~~', -)); +]); // // Class: BusinessProcess // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:BusinessProcess' => 'Forretningsproces', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Anvendelsområder', @@ -520,13 +520,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => '', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'Inaktiv', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => '', -)); +]); // // Class: SoftwareInstance // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:SoftwareInstance' => 'Software instans', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'System', @@ -549,64 +549,64 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => '', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'Inaktiv', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => '', -)); +]); // // Class: Middleware // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware-Instans(er)', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware~~', -)); +]); // // Class: DBServer // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DBServer' => 'DB Server', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'DB Schema', 'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server~~', -)); +]); // // Class: WebServer // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:WebServer' => 'Web Server', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Web Applikationer', 'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server~~', -)); +]); // // Class: PCSoftware // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:PCSoftware' => 'PC-Software', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:OtherSoftware' => 'Andet Software', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:MiddlewareInstance' => 'Middleware instans', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s~~', @@ -614,13 +614,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Middleware navn', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DatabaseSchema' => 'Datenbase schema', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s~~', @@ -628,13 +628,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'DB servernavn', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:WebApplication' => 'Webapplikation', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s~~', @@ -644,14 +644,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:VirtualDevice' => 'Virtuel enhed', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => 'Status', @@ -666,24 +665,24 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => '', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logiske Volumes', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device~~', -)); +]); // // Class: VirtualHost // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:VirtualHost' => 'Host', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtuelle Maskiner', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host~~', -)); +]); // // Class: Hypervisor // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'Farm', @@ -694,13 +693,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Servernavn', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Farm' => 'Farm', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisorer', @@ -709,13 +708,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Farm/Attribute:redundancy/disabled' => 'The farm is up if all the hypervisors are up~~', 'Class:Farm/Attribute:redundancy/count' => 'The farm is up if at least %1$s hypervisor(s) is(are) up~~', 'Class:Farm/Attribute:redundancy/percent' => 'The farm is up if at least %1$s %% of the hypervisors are up~~', -)); +]); // // Class: VirtualMachine // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:VirtualMachine' => 'Virtuel Maskine', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s~~', @@ -743,13 +742,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:VirtualMachine/Attribute:managementip+' => '~~', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Netværks interface', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:LogicalVolume' => 'Logical Volume', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => 'Navn', @@ -770,13 +769,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume~~', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuelle enheder', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume~~', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkServerToVolume' => 'Sammenhæng Server/Volume', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~', @@ -790,13 +789,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Størrelse anvendt', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkVirtualDeviceToVolume' => 'Sammenhæng virtuel enhed/volume', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s~~', @@ -810,13 +809,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Størrelse anvendt', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkSanToDatacenterDevice' => 'Sammenhæng SAN/Datacenterenhed', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~', @@ -832,13 +831,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Enhed FC', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Tape' => 'Bånd', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => 'Navn', @@ -851,13 +850,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Tape Library navn', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:NASFileSystem' => 'NAS filsystem', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => 'Navn', @@ -872,13 +871,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS navn', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Software' => 'Software', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s~~', @@ -908,13 +907,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software~~', 'Class:Software/Attribute:softwarelicence_list' => 'Software Licenser', 'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software~~', -)); +]); // // Class: Patch // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Patch' => 'Patch', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Navn', @@ -925,13 +924,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Type', 'Class:Patch/Attribute:finalclass+' => '', -)); +]); // // Class: OSPatch // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:OSPatch' => 'OS-Patch', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Enhed', @@ -940,13 +939,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'OS versionsnavn', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:SoftwarePatch' => 'Software-Patch', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'Software', @@ -955,13 +954,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Software Instanser', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed~~', -)); +]); // // Class: Licence // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Licence' => 'Licens', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => 'Navn', @@ -990,13 +989,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => '', 'Class:Licence/Attribute:finalclass' => 'Type', 'Class:Licence/Attribute:finalclass+' => '', -)); +]); // // Class: OSLicence // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:OSLicence' => 'OS-Licens', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1008,13 +1007,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used~~', 'Class:OSLicence/Attribute:servers_list' => 'Server', 'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used~~', -)); +]); // // Class: SoftwareLicence // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:SoftwareLicence' => 'Software-Licens', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1024,13 +1023,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Software Instanser', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used~~', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDocumentToLicence' => 'Sammenhæng Dokument/Licens', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~', @@ -1042,35 +1041,35 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Dokumentnavn', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:OSVersion' => 'OS-Version', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'OS-Familie', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'OS familienavn', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:OSFamily' => 'OS-Familie', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Brand' => 'Mærke', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1079,13 +1078,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand~~', 'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~', 'Class:Brand/UniquenessRule:name' => 'This brand already exists~~', -)); +]); // // Class: Model // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Model' => 'Model', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s~~', @@ -1137,37 +1136,37 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model~~', 'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~', 'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:NetworkDeviceType' => 'Netværksenhed type', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Netværks enheder', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type~~', -)); +]); // // Class: IOSVersion // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:IOSVersion' => 'IOS-Version', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Mærke', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Mærkenavn', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDocumentToPatch' => 'Sammenhæng Dokument/Patch', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~', @@ -1179,13 +1178,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Dokumentnavn', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Sammenhæng Software-Instans/Softeware-Patch', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~', @@ -1197,13 +1196,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Software Instans navn', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkFunctionalCIToOSPatch' => 'Sammenhæng FunctionalCI/OS-Patch', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~', @@ -1215,13 +1214,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'FunctionalCI navn', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDocumentToSoftware' => 'Sammenhæng Dokument/Software', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~', @@ -1233,13 +1232,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Dokumentnavn', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Subnet' => 'Subnet', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s~~', @@ -1258,13 +1257,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLANs~~', 'Class:Subnet/Attribute:vlans_list+' => '~~', -)); +]); // // Class: VLAN // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:VLAN' => 'VLAN~~', 'Class:VLAN+' => '~~', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag~~', @@ -1279,13 +1278,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:VLAN/Attribute:subnets_list+' => '~~', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Physical network interfaces~~', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '~~', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkSubnetToVLAN' => 'Link Subnet / VLAN~~', 'Class:lnkSubnetToVLAN+' => '~~', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s~~', @@ -1299,26 +1298,26 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag~~', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '~~', -)); +]); // // Class: NetworkInterface // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:NetworkInterface' => 'Netværks interface', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Navn', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'Type', 'Class:NetworkInterface/Attribute:finalclass+' => '', -)); +]); // // Class: IPInterface // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:IPInterface' => 'IP-Interface', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IP Adresse', @@ -1333,13 +1332,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Hastighed', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:PhysicalInterface' => 'Fysiske interface', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s~~', @@ -1349,13 +1348,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLANs~~', 'Class:PhysicalInterface/Attribute:vlans_list+' => '~~', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Link PhysicalInterface / VLAN~~', 'Class:lnkPhysicalInterfaceToVLAN+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~', @@ -1371,27 +1370,26 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag~~', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '~~', -)); - +]); // // Class: LogicalInterface // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:LogicalInterface' => 'Logiske interface', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtuel maskine', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Virtuel maskinnavn', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:FiberChannelInterface' => 'Fiber Channel Interface', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Hastighed', @@ -1404,13 +1402,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Enhedsnavn', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Sammenhæng ConnectableCI/NetworkDevice', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~', @@ -1432,13 +1430,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => '', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'Uplink', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => '', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Sammenhæng Applikationssuite/FunctionalCI', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1450,13 +1448,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'FunctionalCI navn', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Sammenhæng Applikationssuite/Forretningsproces', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~', @@ -1468,13 +1466,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Applikations løsning navn', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Group' => 'Gruppe', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s~~', @@ -1504,13 +1502,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~', 'Class:Group/Attribute:parent_id_friendlyname' => 'Parent Gruppe', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkGroupToCI' => 'Gruppe/CI', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~', @@ -1524,11 +1522,11 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Årsag', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Server:baseinfo' => 'Almindelig Informationen', 'Server:Date' => 'Dato', 'Server:moreinfo' => 'Yderligere Information', @@ -1541,14 +1539,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Ledige IP: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Her er et udtræk af 10 ledige IP adresser', 'Class:Document:PreviewTab' => 'Preview~~', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDocumentToFunctionalCI' => 'Sammenhæng Dokument/FunctionalCI', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1560,13 +1557,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Dokument navn', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:Application' => 'Anvendelse', 'Menu:Application+' => 'Alle Anvendelser', 'Menu:DBServer' => 'Database server', @@ -1611,15 +1608,15 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Menu:OSVersion+' => '~~', 'Menu:Software' => 'Software Katalog', 'Menu:Software+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/de.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/de.dict.itop-config-mgmt.php index 54e16a1c3..4f930e8aa 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/de.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/de.dict.itop-config-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Relation:impacts/Description' => 'Elemente betroffen von', 'Relation:impacts/DownStream' => 'Auswirkung ...', 'Relation:impacts/DownStream+' => 'Elemente betroffen von', @@ -22,8 +23,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Relation:impacts/LoadData' => 'Daten laden', 'Relation:impacts/NoFilteredData' => 'Bitte wählen Sie Objekte', 'Relation:impacts/FilteredData' => 'Daten sind über den Tab "Grafische Ansicht" gefiltert', -)); - +]); // Dictionnay conventions // Class: @@ -66,7 +66,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( // Class: lnkContactToFunctionalCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContactToFunctionalCI' => 'Verknüpfung Kontakt/FunctionalCI', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s', @@ -78,13 +78,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Kontakt-Name', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:FunctionalCI' => 'Funktionales CI', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Name', @@ -117,13 +117,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:FunctionalCI/Attribute:finalclass+' => 'Name der instanziierbaren Klasse', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Offene Tickets', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Offene Tickets, die sich auf dieses CI auswirken', -)); +]); // // Class: PhysicalDevice // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:PhysicalDevice' => 'Physisches Gerät', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s', @@ -157,13 +157,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Garantieende', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -173,64 +173,64 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Rack/Attribute:device_list+' => 'Alle physischen Geräte, die in dieses Rack eingebaut sind', 'Class:Rack/Attribute:enclosure_list' => 'Enclosures', 'Class:Rack/Attribute:enclosure_list+' => 'Alle Enclosures in diesem Rack', -)); +]); // // Class: TelephonyCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:TelephonyCI' => 'Telefonie-CI', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Telefonnummer', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Phone' => 'Telefon', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:MobilePhone' => 'Mobiltelefon', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'Hardware-PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:IPPhone' => 'IP-Telefon', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ConnectableCI' => 'Verknüpfbares CI', 'Class:ConnectableCI+' => 'Physisches CI', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -238,13 +238,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Alle Netzwerkgeräte, die mit diesem Gerät verbunden sind', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Netzwerkinterfaces', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Alle physischen Netzwerkinterfaces des Geräts', -)); +]); // // Class: DatacenterDevice // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DatacenterDevice' => 'Datacenter-Gerät', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -276,13 +276,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'Das Gerät läuft, wenn mindestens eine der Stromversorgungen (A oder B) läuft.', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'Das Gerät läuft, wenn alle seine Stromversorgungen laufen.', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'Das Gerät läuft, wenn mindestens %1$s %% seiner Stromversorgungen laufen.', -)); +]); // // Class: NetworkDevice // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:NetworkDevice' => 'Netzwerk-Gerät', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s', @@ -298,13 +298,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Server' => 'Server', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -326,61 +326,61 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Logische Volumes', 'Class:Server/Attribute:logicalvolumes_list+' => 'Alle mit diesem Server verbundenen logischen Volumes', -)); +]); // // Class: StorageSystem // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:StorageSystem' => 'Storage-System', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logische Volumes', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Alle logischen Volumes in diesem Storage-System', -)); +]); // // Class: SANSwitch // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:SANSwitch' => 'SAN-Switch', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Geräte', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Alle Geräte, die mit diesem SAN-Switche verbundenen sind', -)); +]); // // Class: TapeLibrary // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:TapeLibrary' => 'Tape-Library', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s', 'Class:TapeLibrary/Attribute:tapes_list' => 'Tapes', 'Class:TapeLibrary/Attribute:tapes_list+' => 'Alle Tapes in der Tape-Library', -)); +]); // // Class: NAS // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s', 'Class:NAS/Attribute:nasfilesystem_list' => 'Dateisysteme', 'Class:NAS/Attribute:nasfilesystem_list+' => 'Alle Dateisysteme in diesem NAS', -)); +]); // // Class: PC // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s', @@ -402,45 +402,45 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:PC/Attribute:type/Value:desktop+' => 'Desktop', 'Class:PC/Attribute:type/Value:laptop' => 'Laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'Laptop', -)); +]); // // Class: Printer // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Printer' => 'Drucker', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:PowerConnection' => 'Stromverbindung', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:PowerSource' => 'Stromquelle', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', 'Class:PowerSource/Attribute:pdus_list' => 'PDUs', 'Class:PowerSource/Attribute:pdus_list+' => 'Alle PDUs, die diese Stromquelle nutzen', -)); +]); // // Class: PDU // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s', @@ -452,23 +452,23 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Eingangs-Stromverbindung', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Peripheral' => 'Peripheriegerät', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: Enclosure // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Enclosure' => 'Enclosure', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -480,13 +480,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => 'Geräte', 'Class:Enclosure/Attribute:device_list+' => 'Alle Geräte in diesem Enclosure', -)); +]); // // Class: ApplicationSolution // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ApplicationSolution' => 'Anwendungslösung', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs', @@ -503,13 +503,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'Die Lösung läuft, wenn alle ihre CIs laufen.', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'Die Lösung läuft, wenn mindestens %1$s CI(s) laufen.', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'Die Lösung läuft, wenn mindestens %1$s %% der CIs laufen.', -)); +]); // // Class: BusinessProcess // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:BusinessProcess' => 'Business-Prozess', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Anwendungslösungen', @@ -520,13 +520,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => '', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'inaktiv', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => '', -)); +]); // // Class: SoftwareInstance // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:SoftwareInstance' => 'Software-Instanz', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'System', @@ -549,64 +549,64 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => '', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'Inaktiv', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => '', -)); +]); // // Class: Middleware // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware-Instanzen', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'Alle Middleware-Instanzen, die von dieser Middleware bereitgestellt werden', -)); +]); // // Class: DBServer // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DBServer' => 'DB Server', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'DB Schemata', 'Class:DBServer/Attribute:dbschema_list+' => 'Alle Datenbankschemata für diesen DB-Server', -)); +]); // // Class: WebServer // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:WebServer' => 'Web Server', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Webapplikationen', 'Class:WebServer/Attribute:webapp_list+' => 'Alle auf diesem Webserver verfügbaren Webanwendungen', -)); +]); // // Class: PCSoftware // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:PCSoftware' => 'PC-Software', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:OtherSoftware' => 'Andere Software', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:MiddlewareInstance' => 'Middleware-Instanz', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -614,13 +614,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Middleware-Name', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DatabaseSchema' => 'Datenbank-Schema', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -628,13 +628,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'DB-Servername', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:WebApplication' => 'Webapplikation', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -644,14 +644,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:VirtualDevice' => 'Virtuelles Gerät', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => 'Status', @@ -666,24 +665,24 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => '', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logische Volumes', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Alle von diesem Gerät verwendeten logischen Volumes', -)); +]); // // Class: VirtualHost // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:VirtualHost' => 'Host', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtuelle Maschinen', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Alle virtuellen Maschinen, die von diesem Host gehostet werden', -)); +]); // // Class: Hypervisor // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'Farm', @@ -694,13 +693,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Servername', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Farm' => 'Farm', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisoren', @@ -709,13 +708,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Farm/Attribute:redundancy/disabled' => 'Die Farm läuft, wenn alle Hypervisoren laufen.', 'Class:Farm/Attribute:redundancy/count' => 'Die Farm läuft, wenn mindestens %1$s Hypervisor(en) läuft/laufen.', 'Class:Farm/Attribute:redundancy/percent' => 'Die Farm läuft, wenn mindestens %1$s %% der Hypervisoren laufen.', -)); +]); // // Class: VirtualMachine // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:VirtualMachine' => 'Virtuelle Maschine', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -743,13 +742,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Netzwerk-Interfaces', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Alle logischen Netzwerk-Interfaces', -)); +]); // // Class: LogicalVolume // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:LogicalVolume' => 'Logisches Volume', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => 'Name', @@ -770,13 +769,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Alle Server, die dieses Volume verwenden', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuelle Geräte', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Alle virtuellen Maschinen, die dieses Volume verwenden', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkServerToVolume' => 'Verknüpfung Server/Volume', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s', @@ -790,13 +789,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Größe verwendet', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkVirtualDeviceToVolume' => 'Verknüpfung Virtuelles Gerät/Volume', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -810,13 +809,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Größe verwendet', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkSanToDatacenterDevice' => 'Verknüpfung SAN/Datacenter-Gerät', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s', @@ -832,13 +831,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Gerät FC', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Tape' => 'Tape', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => 'Name', @@ -851,13 +850,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Tape-Library-Name', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:NASFileSystem' => 'NAS-Dateisystem', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => 'Name', @@ -872,13 +871,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS-Name', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Software' => 'Software', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s', @@ -908,13 +907,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Software/Attribute:softwarepatch_list+' => 'Alle Software-Patches für diese Software', 'Class:Software/Attribute:softwarelicence_list' => 'Softwarelizenzen', 'Class:Software/Attribute:softwarelicence_list+' => 'Alle Lizenzen für diese Software', -)); +]); // // Class: Patch // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Patch' => 'Patch', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Name', @@ -925,13 +924,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Typ', 'Class:Patch/Attribute:finalclass+' => '', -)); +]); // // Class: OSPatch // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:OSPatch' => 'OS-Patch', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Geräte', @@ -940,13 +939,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'OS-Versionsname', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:SoftwarePatch' => 'Software-Patch', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'Software', @@ -955,13 +954,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Software-Instanzen', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Alle Systeme, auf denen dieser Software-Patch installiert ist', -)); +]); // // Class: Licence // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Licence' => 'Lizenz', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => 'Name', @@ -990,13 +989,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'ja', 'Class:Licence/Attribute:finalclass' => 'Typ', 'Class:Licence/Attribute:finalclass+' => 'Name der instanziierbaren Klasse', -)); +]); // // Class: OSLicence // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:OSLicence' => 'OS-Lizenz', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s', @@ -1008,13 +1007,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'Alle virtuellen Maschinen, auf denen diese Lizenz verwendet wird', 'Class:OSLicence/Attribute:servers_list' => 'Server', 'Class:OSLicence/Attribute:servers_list+' => 'Alle Server, auf denen diese Lizenz verwendet wird', -)); +]); // // Class: SoftwareLicence // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:SoftwareLicence' => 'Software-Lizenz', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s', @@ -1024,13 +1023,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Software-Instanzen', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Alle Systeme, in denen diese Lizenz verwendet wird', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDocumentToLicence' => 'Verknüpfung Dokument/Lizenz', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s', @@ -1042,35 +1041,35 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Dokumenten-Name', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:OSVersion' => 'OS-Version', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'OS-Familie', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'OS-Familienname', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:OSFamily' => 'OS-Familie', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Brand' => 'Marke', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1079,13 +1078,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'Alle physischen Geräte dieser Marke', 'Class:Brand/UniquenessRule:name+' => 'Der Name muss eindeutig sein', 'Class:Brand/UniquenessRule:name' => 'Diese Marke existiert bereits', -)); +]); // // Class: Model // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Model' => 'Modell', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s', @@ -1137,37 +1136,37 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Model/Attribute:physicaldevices_list+' => 'Alle physischen Geräte, die diesem Modell entsprechen', 'Class:Model/UniquenessRule:name_brand+' => 'Der Modellname für eine Marke muss eindeutig sein', 'Class:Model/UniquenessRule:name_brand' => 'Es existiert bereits ein Modell mit diesem Namen für diese Marke', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:NetworkDeviceType' => 'Netzwerkgerätetyp', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Netzwerkgeräte', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Alle Netzwerkgeräte, die diesem Typ entsprechen', -)); +]); // // Class: IOSVersion // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:IOSVersion' => 'IOS-Version', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Marke', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Markenname', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDocumentToPatch' => 'Verknüpfung Dokument/Patch', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s', @@ -1179,13 +1178,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Dokument-Name', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Verknüpfung Software-Instanz/Softeware-Patch', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s', @@ -1197,13 +1196,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Software-Instanz-Name', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkFunctionalCIToOSPatch' => 'Verknüpfung FunctionalCI/OS-Patch', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s', @@ -1215,13 +1214,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'FunctionalCI-Name', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDocumentToSoftware' => 'Verknüpfung Dokument/Software', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s', @@ -1233,13 +1232,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Dokument-Name', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Subnet' => 'Subnetz', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s', @@ -1258,13 +1257,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLANs', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN-Tag', @@ -1279,13 +1278,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:VLAN/Attribute:subnets_list+' => '', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Physische Interfaces', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkSubnetToVLAN' => 'Verknüpfung Subnetz/VLAN', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1299,26 +1298,26 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:NetworkInterface' => 'Netzwerk-Interface', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Name', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'Typ', 'Class:NetworkInterface/Attribute:finalclass+' => 'Name der instanziierbaren Klasse', -)); +]); // // Class: IPInterface // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:IPInterface' => 'IP-Interface', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IP-Adresse', @@ -1333,13 +1332,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Geschwindigkeit', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:PhysicalInterface' => 'Physisches Interface', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1349,13 +1348,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLANs', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Verknüpfung Physisches Interface / VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s', @@ -1371,27 +1370,26 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:LogicalInterface' => 'Logisches Interface', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtuelle Maschine', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Virtuelle Maschine-Name', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:FiberChannelInterface' => 'Fiber Channel Interface', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Geschwindigkeit', @@ -1404,13 +1402,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Gerätename', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Verknüpfung ConnectableCI/NetworkDevice', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s', @@ -1432,13 +1430,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => '', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'Uplink', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => '', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Verknüpfung Anwendungslösung/FunctionalCI', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s', @@ -1450,13 +1448,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'FunctionalCI-Name', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Verknüpfung Anwendungslösung/Business-Prozess', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s', @@ -1468,13 +1466,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Anwendungslösung-Name', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Group' => 'Gruppe', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1504,13 +1502,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Group/Attribute:ci_list+' => 'Alle mit dieser Gruppe verknüpften CIs', 'Class:Group/Attribute:parent_id_friendlyname' => 'Parent-Gruppe', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkGroupToCI' => 'Gruppe/CI', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s', @@ -1524,11 +1522,11 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Grund', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Server:baseinfo' => 'Allgemeine Informationen', 'Server:Date' => 'Datum', 'Server:moreinfo' => 'Weitere Informationen', @@ -1541,14 +1539,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Freie IPs: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Hier ist eine Auflistung von 10 freien IP Adressen', 'Class:Document:PreviewTab' => 'Vorschau', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDocumentToFunctionalCI' => 'Verknüpfung Dokument/FunctionalCI', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s', @@ -1560,13 +1557,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Dokument-Name', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:Application' => 'Anwendungen', 'Menu:Application+' => 'Alle Anwendungen', 'Menu:DBServer' => 'Datenbank-Server', @@ -1611,15 +1608,15 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Software-Katalog', 'Menu:Software+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/en.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/en.dict.itop-config-mgmt.php index aac80aee8..70843b1f2 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/en.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/en.dict.itop-config-mgmt.php @@ -1,4 +1,5 @@ 'Elements impacted by', 'Relation:impacts/DownStream' => 'Impacts...', 'Relation:impacts/DownStream+' => 'Elements impacted by', @@ -39,8 +40,7 @@ Dict::Add('EN US', 'English', 'English', array( 'Relation:impacts/LoadData' => 'Load data', 'Relation:impacts/NoFilteredData' => 'please select objects and load data', 'Relation:impacts/FilteredData' => 'Filtered data', -)); - +]); // Dictionnay conventions // Class: @@ -83,7 +83,7 @@ Dict::Add('EN US', 'English', 'English', array( // Class: lnkContactToFunctionalCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContactToFunctionalCI' => 'Link Contact / FunctionalCI', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s', @@ -95,13 +95,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Contact name', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:FunctionalCI' => 'Functional CI', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Name', @@ -134,13 +134,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:FunctionalCI/Attribute:finalclass+' => 'Name of the final class', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI', -)); +]); // // Class: PhysicalDevice // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:PhysicalDevice' => 'Physical Device', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s', @@ -174,13 +174,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'End of warranty', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -190,64 +190,64 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack', 'Class:Rack/Attribute:enclosure_list' => 'Enclosures', 'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack', -)); +]); // // Class: TelephonyCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:TelephonyCI' => 'Telephony CI', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Phone number', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Phone' => 'Phone', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:MobilePhone' => 'Mobile Phone', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'Hardware PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:IPPhone' => 'IP Phone', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ConnectableCI' => 'Connectable CI', 'Class:ConnectableCI+' => 'Physical CI', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -255,13 +255,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Network interfaces', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces', -)); +]); // // Class: DatacenterDevice // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DatacenterDevice' => 'Datacenter Device', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -294,13 +294,13 @@ Dict::Add('EN US', 'English', 'English', array( // Unused yet 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'The device %2$s is up if all its power connections are up', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'The device %2$s is up if at least %1$s %% of its power connections are up', -)); +]); // // Class: NetworkDevice // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:NetworkDevice' => 'Network Device', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s', @@ -316,13 +316,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Server' => 'Server', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -344,61 +344,61 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Logical volumes', 'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server', -)); +]); // // Class: StorageSystem // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:StorageSystem' => 'Storage System', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logical volumes', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system', -)); +]); // // Class: SANSwitch // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:SANSwitch' => 'SAN Switch', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Devices', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch', -)); +]); // // Class: TapeLibrary // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:TapeLibrary' => 'Tape Library', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s', 'Class:TapeLibrary/Attribute:tapes_list' => 'Tapes', 'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library', -)); +]); // // Class: NAS // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s', 'Class:NAS/Attribute:nasfilesystem_list' => 'Filesystems', 'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS', -)); +]); // // Class: PC // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s', @@ -420,45 +420,45 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:PC/Attribute:type/Value:desktop+' => 'desktop', 'Class:PC/Attribute:type/Value:laptop' => 'laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'laptop', -)); +]); // // Class: Printer // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Printer' => 'Printer', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:PowerConnection' => 'Power Connection', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:PowerSource' => 'Power Source', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', 'Class:PowerSource/Attribute:pdus_list' => 'PDUs', 'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source', -)); +]); // // Class: PDU // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s', @@ -470,23 +470,23 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Power start name', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Peripheral' => 'Peripheral', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: Enclosure // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Enclosure' => 'Enclosure', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -498,13 +498,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => 'Devices', 'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure', -)); +]); // // Class: ApplicationSolution // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ApplicationSolution' => 'Application Solution', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs', @@ -521,13 +521,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'The solution is up if all CIs are up', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'The solution is up if at least %1$s CI(s) is(are) up', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'The solution is up if at least %1$s %% of the CIs are up', -)); +]); // // Class: BusinessProcess // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:BusinessProcess' => 'Business Process', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Application solutions', @@ -538,13 +538,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'active', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'inactive', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'inactive', -)); +]); // // Class: SoftwareInstance // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:SoftwareInstance' => 'Software Instance', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'System', @@ -567,64 +567,64 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'active', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'inactive', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => 'inactive', -)); +]); // // Class: Middleware // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware instances', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware', -)); +]); // // Class: DBServer // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DBServer' => 'DB Server', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'DB schemas', 'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server', -)); +]); // // Class: WebServer // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:WebServer' => 'Web server', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Web applications', 'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server', -)); +]); // // Class: PCSoftware // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:PCSoftware' => 'PC Software', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:OtherSoftware' => 'Other Software', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:MiddlewareInstance' => 'Middleware Instance', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -632,13 +632,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Middleware name', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DatabaseSchema' => 'Database Schema', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -646,13 +646,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'DB server name', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:WebApplication' => 'Web Application', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -662,14 +662,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:VirtualDevice' => 'Virtual Device', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => 'Status', @@ -684,24 +683,24 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'stock', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logical volumes', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device', -)); +]); // // Class: VirtualHost // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:VirtualHost' => 'Virtual Host', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtual machines', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host', -)); +]); // // Class: Hypervisor // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'Farm', @@ -712,13 +711,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Server name', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Farm' => 'Farm', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisors', @@ -727,13 +726,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Farm/Attribute:redundancy/disabled' => 'The farm is up if all the hypervisors are up', 'Class:Farm/Attribute:redundancy/count' => 'The farm is up if at least %1$s hypervisor(s) is(are) up', 'Class:Farm/Attribute:redundancy/percent' => 'The farm is up if at least %1$s %% of the hypervisors are up', -)); +]); // // Class: VirtualMachine // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:VirtualMachine' => 'Virtual Machine', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -761,13 +760,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Network Interfaces', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces', -)); +]); // // Class: LogicalVolume // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:LogicalVolume' => 'Logical Volume', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => 'Name', @@ -788,13 +787,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtual devices', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkServerToVolume' => 'Link Server / Volume', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s', @@ -808,13 +807,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Size used', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkVirtualDeviceToVolume' => 'Link Virtual Device / Volume', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -828,13 +827,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Size used', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkSanToDatacenterDevice' => 'Link SAN / Datacenter Device', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s', @@ -850,13 +849,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Device fc', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Tape' => 'Tape', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => 'Name', @@ -869,13 +868,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Tape library name', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:NASFileSystem' => 'NAS File System', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => 'Name', @@ -890,13 +889,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS name', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Software' => 'Software', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s', @@ -926,13 +925,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software', 'Class:Software/Attribute:softwarelicence_list' => 'Software Licenses', 'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software', -)); +]); // // Class: Patch // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Patch' => 'Patch', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Name', @@ -943,13 +942,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Patch sub-class', 'Class:Patch/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: OSPatch // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:OSPatch' => 'OS Patch', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Devices', @@ -958,13 +957,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'OS version name', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:SoftwarePatch' => 'Software Patch', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'Software', @@ -973,13 +972,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Software instances', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed', -)); +]); // // Class: Licence // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Licence' => 'License', 'Class:Licence+' => '', @@ -1009,13 +1008,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'yes', 'Class:Licence/Attribute:finalclass' => 'License sub-class', 'Class:Licence/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: OSLicence // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:OSLicence' => 'OS License', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s', @@ -1027,13 +1026,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used', 'Class:OSLicence/Attribute:servers_list' => 'Servers', 'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used', -)); +]); // // Class: SoftwareLicence // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:SoftwareLicence' => 'Software License', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s', @@ -1043,13 +1042,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Software instances', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDocumentToLicence' => 'Link Document / License', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s', @@ -1061,35 +1060,35 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Document name', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:OSVersion' => 'OS Version', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'OS family', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'OS family name', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:OSFamily' => 'OS Family', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Brand' => 'Brand', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo', @@ -1098,13 +1097,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand', 'Class:Brand/UniquenessRule:name+' => 'The name must be unique', 'Class:Brand/UniquenessRule:name' => 'This brand already exists', -)); +]); // // Class: Model // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Model' => 'Model', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s', @@ -1156,37 +1155,37 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model', 'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand', 'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:NetworkDeviceType' => 'Network Device Type', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Network devices', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type', -)); +]); // // Class: IOSVersion // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:IOSVersion' => 'IOS Version', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Brand', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Brand name', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDocumentToPatch' => 'Link Document / Patch', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s', @@ -1198,13 +1197,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Document name', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Link Software Instance / Software Patch', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s', @@ -1216,13 +1215,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Software instance name', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkFunctionalCIToOSPatch' => 'Link FunctionalCI / OS patch', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s', @@ -1234,13 +1233,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Functionalci name', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDocumentToSoftware' => 'Link Document / Software', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s', @@ -1252,13 +1251,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Document name', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Subnet' => 'Subnet', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s', @@ -1277,13 +1276,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLANs', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag', @@ -1298,13 +1297,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:VLAN/Attribute:subnets_list+' => '', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Physical network interfaces', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkSubnetToVLAN' => 'Link Subnet / VLAN', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1318,32 +1317,31 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:NetworkInterface' => 'Network Interface', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Name', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'NetworkInterface sub-class', 'Class:NetworkInterface/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: IPInterface // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:IPInterface' => 'IP Interface', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IP address', 'Class:IPInterface/Attribute:ipaddress+' => '', - 'Class:IPInterface/Attribute:macaddress' => 'MAC address', 'Class:IPInterface/Attribute:macaddress+' => '', 'Class:IPInterface/Attribute:comment' => 'Comment', @@ -1354,13 +1352,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Speed', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:PhysicalInterface' => 'Physical Interface', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1370,13 +1368,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLANs', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Link PhysicalInterface / VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s', @@ -1392,27 +1390,26 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:LogicalInterface' => 'Logical Interface', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtual machine', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Virtual machine name', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:FiberChannelInterface' => 'Fiber Channel Interface', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Speed', @@ -1425,13 +1422,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Device name', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Link ConnectableCI / NetworkDevice', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s', @@ -1453,13 +1450,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'down link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'up link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'up link', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Link ApplicationSolution / FunctionalCI', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s', @@ -1471,13 +1468,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Functionalci name', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Link ApplicationSolution / BusinessProcess', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s', @@ -1489,13 +1486,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Application solution name', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Group' => 'Group', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1526,13 +1523,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group', 'Class:Group/Attribute:parent_id_friendlyname' => 'Parent Group', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkGroupToCI' => 'Link Group / CI', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s', @@ -1546,11 +1543,11 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Reason', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Server:baseinfo' => 'General information', 'Server:Date' => 'Dates', 'Server:moreinfo' => 'More information', @@ -1563,14 +1560,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Free IPs: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Here is an extract of 10 free IP addresses', 'Class:Document:PreviewTab' => 'Preview', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDocumentToFunctionalCI' => 'Link Document / FunctionalCI', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s', @@ -1582,13 +1578,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Document name', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:Application' => 'Applications', 'Menu:Application+' => 'All applications', 'Menu:DBServer' => 'Database servers', @@ -1633,15 +1629,15 @@ Dict::Add('EN US', 'English', 'English', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Software catalog', 'Menu:Software+' => 'Software catalog', -)); +]); // // Class: PhysicalInterface // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id', 'Class:PhysicalInterface/Attribute:org_id+' => '', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id', 'Class:PhysicalInterface/Attribute:location_id+' => '', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/en_gb.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/en_gb.dict.itop-config-mgmt.php index 3f55ece4a..3f3e74dd4 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/en_gb.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/en_gb.dict.itop-config-mgmt.php @@ -1,4 +1,5 @@ 'Elements impacted by', 'Relation:impacts/DownStream' => 'Impacts...', 'Relation:impacts/DownStream+' => 'Elements impacted by', @@ -39,8 +40,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Relation:impacts/LoadData' => 'Load data', 'Relation:impacts/NoFilteredData' => 'please select objects and load data', 'Relation:impacts/FilteredData' => 'Filtered data', -)); - +]); // Dictionnay conventions // Class: @@ -83,7 +83,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Class: lnkContactToFunctionalCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkContactToFunctionalCI' => 'Link Contact / FunctionalCI', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s', @@ -95,13 +95,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Contact name', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:FunctionalCI' => 'Functional CI', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Name', @@ -134,13 +134,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:FunctionalCI/Attribute:finalclass+' => 'Name of the final class', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI', -)); +]); // // Class: PhysicalDevice // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:PhysicalDevice' => 'Physical Device', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s', @@ -174,13 +174,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'End of warranty', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -190,64 +190,64 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack', 'Class:Rack/Attribute:enclosure_list' => 'Enclosures', 'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack', -)); +]); // // Class: TelephonyCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TelephonyCI' => 'Telephony CI', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Phone number', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Phone' => 'Phone', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:MobilePhone' => 'Mobile Phone', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'Hardware PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:IPPhone' => 'IP Phone', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ConnectableCI' => 'Connectable CI', 'Class:ConnectableCI+' => 'Physical CI', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -255,13 +255,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Network interfaces', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces', -)); +]); // // Class: DatacenterDevice // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DatacenterDevice' => 'Datacentre Device', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -294,13 +294,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Unused yet 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'The device %2$s is up if all its power connections are up', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'The device %2$s is up if at least %1$s %% of its power connections are up', -)); +]); // // Class: NetworkDevice // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:NetworkDevice' => 'Network Device', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s', @@ -316,13 +316,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Server' => 'Server', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -344,61 +344,61 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Logical volumes', 'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server', -)); +]); // // Class: StorageSystem // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:StorageSystem' => 'Storage System', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logical volumes', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system', -)); +]); // // Class: SANSwitch // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SANSwitch' => 'SAN Switch', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Devices', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch', -)); +]); // // Class: TapeLibrary // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TapeLibrary' => 'Tape Library', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s', 'Class:TapeLibrary/Attribute:tapes_list' => 'Tapes', 'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library', -)); +]); // // Class: NAS // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s', 'Class:NAS/Attribute:nasfilesystem_list' => 'Filesystems', 'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS', -)); +]); // // Class: PC // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s', @@ -420,45 +420,45 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:PC/Attribute:type/Value:desktop+' => 'desktop', 'Class:PC/Attribute:type/Value:laptop' => 'laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'laptop', -)); +]); // // Class: Printer // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Printer' => 'Printer', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:PowerConnection' => 'Power Connection', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:PowerSource' => 'Power Source', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', 'Class:PowerSource/Attribute:pdus_list' => 'PDUs', 'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source', -)); +]); // // Class: PDU // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s', @@ -470,23 +470,23 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Power start name', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Peripheral' => 'Peripheral', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: Enclosure // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Enclosure' => 'Enclosure', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -498,13 +498,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => 'Devices', 'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure', -)); +]); // // Class: ApplicationSolution // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ApplicationSolution' => 'Application Solution', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs', @@ -521,13 +521,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'The solution is up if all CIs are up', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'The solution is up if at least %1$s CI(s) is(are) up', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'The solution is up if at least %1$s %% of the CIs are up', -)); +]); // // Class: BusinessProcess // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:BusinessProcess' => 'Business Process', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Application solutions', @@ -538,13 +538,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'active', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'inactive', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'inactive', -)); +]); // // Class: SoftwareInstance // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SoftwareInstance' => 'Software Instance', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'System', @@ -567,64 +567,64 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'active', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'inactive', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => 'inactive', -)); +]); // // Class: Middleware // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware instances', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware', -)); +]); // // Class: DBServer // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DBServer' => 'DB Server', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'DB schemas', 'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server', -)); +]); // // Class: WebServer // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:WebServer' => 'Web server', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Web applications', 'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server', -)); +]); // // Class: PCSoftware // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:PCSoftware' => 'PC Software', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:OtherSoftware' => 'Other Software', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:MiddlewareInstance' => 'Middleware Instance', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -632,13 +632,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Middleware name', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DatabaseSchema' => 'Database Schema', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -646,13 +646,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'DB server name', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:WebApplication' => 'Web Application', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -662,14 +662,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:VirtualDevice' => 'Virtual Device', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => 'Status', @@ -684,24 +683,24 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'stock', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logical volumes', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device', -)); +]); // // Class: VirtualHost // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:VirtualHost' => 'Virtual Host', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtual machines', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host', -)); +]); // // Class: Hypervisor // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'Farm', @@ -712,13 +711,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Server name', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Farm' => 'Farm', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisors', @@ -727,13 +726,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Farm/Attribute:redundancy/disabled' => 'The farm is up if all the hypervisors are up', 'Class:Farm/Attribute:redundancy/count' => 'The farm is up if at least %1$s hypervisor(s) is(are) up', 'Class:Farm/Attribute:redundancy/percent' => 'The farm is up if at least %1$s %% of the hypervisors are up', -)); +]); // // Class: VirtualMachine // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:VirtualMachine' => 'Virtual Machine', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -761,13 +760,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Network Interfaces', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces', -)); +]); // // Class: LogicalVolume // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:LogicalVolume' => 'Logical Volume', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => 'Name', @@ -788,13 +787,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtual devices', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkServerToVolume' => 'Link Server / Volume', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s', @@ -808,13 +807,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Size used', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkVirtualDeviceToVolume' => 'Link Virtual Device / Volume', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -828,13 +827,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Size used', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkSanToDatacenterDevice' => 'Link SAN / Datacentre Device', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s', @@ -850,13 +849,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Device fc', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Tape' => 'Tape', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => 'Name', @@ -869,13 +868,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Tape library name', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:NASFileSystem' => 'NAS File System', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => 'Name', @@ -890,13 +889,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS name', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Software' => 'Software', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s', @@ -926,13 +925,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Software/Attribute:softwarepatch_list+' => 'All the patches for this software', 'Class:Software/Attribute:softwarelicence_list' => 'Software Licences', 'Class:Software/Attribute:softwarelicence_list+' => 'All the licences for this software', -)); +]); // // Class: Patch // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Patch' => 'Patch', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Name', @@ -943,13 +942,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Patch sub-class', 'Class:Patch/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: OSPatch // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:OSPatch' => 'OS Patch', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Devices', @@ -958,13 +957,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'OS version name', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SoftwarePatch' => 'Software Patch', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'Software', @@ -973,13 +972,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Software instances', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed', -)); +]); // // Class: Licence // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Licence' => 'Licence', 'Class:Licence+' => '', @@ -1009,13 +1008,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'yes', 'Class:Licence/Attribute:finalclass' => 'Licence sub-class', 'Class:Licence/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: OSLicence // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:OSLicence' => 'OS Licence', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s', @@ -1027,13 +1026,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this licence is used', 'Class:OSLicence/Attribute:servers_list' => 'Servers', 'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this licence is used', -)); +]); // // Class: SoftwareLicence // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SoftwareLicence' => 'Software Licence', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s', @@ -1043,13 +1042,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Software instances', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this licence is used', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDocumentToLicence' => 'Link Document / Licence', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s', @@ -1061,35 +1060,35 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Document name', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:OSVersion' => 'OS Version', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'OS family', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'OS family name', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:OSFamily' => 'OS Family', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Brand' => 'Brand', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo', @@ -1098,13 +1097,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand', 'Class:Brand/UniquenessRule:name+' => 'The name must be unique', 'Class:Brand/UniquenessRule:name' => 'This brand already exists', -)); +]); // // Class: Model // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Model' => 'Model', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s', @@ -1156,37 +1155,37 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model', 'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand', 'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:NetworkDeviceType' => 'Network Device Type', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Network devices', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type', -)); +]); // // Class: IOSVersion // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:IOSVersion' => 'IOS Version', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Brand', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Brand name', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDocumentToPatch' => 'Link Document / Patch', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s', @@ -1198,13 +1197,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Document name', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Link Software Instance / Software Patch', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s', @@ -1216,13 +1215,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Software instance name', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkFunctionalCIToOSPatch' => 'Link FunctionalCI / OS patch', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s', @@ -1234,13 +1233,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Functionalci name', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDocumentToSoftware' => 'Link Document / Software', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s', @@ -1252,13 +1251,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Document name', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Subnet' => 'Subnet', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s', @@ -1277,13 +1276,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLANs', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag', @@ -1298,13 +1297,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:VLAN/Attribute:subnets_list+' => '', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Physical network interfaces', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkSubnetToVLAN' => 'Link Subnet / VLAN', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1318,32 +1317,31 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:NetworkInterface' => 'Network Interface', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Name', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'NetworkInterface sub-class', 'Class:NetworkInterface/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: IPInterface // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:IPInterface' => 'IP Interface', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IP address', 'Class:IPInterface/Attribute:ipaddress+' => '', - 'Class:IPInterface/Attribute:macaddress' => 'MAC address', 'Class:IPInterface/Attribute:macaddress+' => '', 'Class:IPInterface/Attribute:comment' => 'Comment', @@ -1354,13 +1352,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Speed', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:PhysicalInterface' => 'Physical Interface', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1370,13 +1368,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLANs', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Link PhysicalInterface / VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s', @@ -1392,27 +1390,26 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:LogicalInterface' => 'Logical Interface', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtual machine', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Virtual machine name', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:FiberChannelInterface' => 'Fibre Channel Interface', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Speed', @@ -1425,13 +1422,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Device name', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Link ConnectableCI / NetworkDevice', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s', @@ -1453,13 +1450,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'down link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'up link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'up link', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Link ApplicationSolution / FunctionalCI', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s', @@ -1471,13 +1468,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Functionalci name', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Link ApplicationSolution / BusinessProcess', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s', @@ -1489,13 +1486,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Application solution name', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Group' => 'Group', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1526,13 +1523,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group', 'Class:Group/Attribute:parent_id_friendlyname' => 'Parent Group', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkGroupToCI' => 'Link Group / CI', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s', @@ -1546,11 +1543,11 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Reason', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Server:baseinfo' => 'General information', 'Server:Date' => 'Dates', 'Server:moreinfo' => 'More information', @@ -1563,14 +1560,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Free IPs: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Here is an extract of 10 free IP addresses', 'Class:Document:PreviewTab' => 'Preview', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDocumentToFunctionalCI' => 'Link Document / FunctionalCI', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s', @@ -1582,13 +1578,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Document name', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:Application' => 'Applications', 'Menu:Application+' => 'All applications', 'Menu:DBServer' => 'Database servers', @@ -1633,5 +1629,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Software catalogue', 'Menu:Software+' => 'Software catalogue', -)); -?> +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/es_cr.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/es_cr.dict.itop-config-mgmt.php index 42261df42..a9690d96b 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/es_cr.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/es_cr.dict.itop-config-mgmt.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Relation:impacts/Description' => 'Elementos Impactados por', 'Relation:impacts/DownStream' => 'Impacto...', 'Relation:impacts/DownStream+' => 'Elementos Impactados por', @@ -19,8 +20,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Relation:impacts/LoadData' => 'Cargar datos', 'Relation:impacts/NoFilteredData' => 'por favor seleccione objetos y cargue datos', 'Relation:impacts/FilteredData' => 'Datos filtrados', -)); - +]); // Dictionnay conventions // Class: @@ -63,7 +63,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( // Class: lnkContactToFunctionalCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContactToFunctionalCI' => 'Relación Contacto y EC Funcional', 'Class:lnkContactToFunctionalCI+' => 'Relación Contacto y EC Funcional', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s', @@ -75,13 +75,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => 'Contacto', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Contacto', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => 'Contacto', -)); +]); // // Class: FunctionalCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:FunctionalCI' => 'EC Funcional', 'Class:FunctionalCI+' => 'Elemento de Configuración Funcional', 'Class:FunctionalCI/Attribute:name' => 'Nombre', @@ -114,13 +114,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:FunctionalCI/Attribute:finalclass+' => 'Clase', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Tickets Activos', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Tickets activos que están impactando este EC funcional', -)); +]); // // Class: PhysicalDevice // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:PhysicalDevice' => 'Dispositivo Físico', 'Class:PhysicalDevice+' => 'Dispositivo Físico', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s', @@ -154,13 +154,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => 'Fecha de Compra', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Vencimiento de Garantía', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => 'Vencimiento de Garantía', -)); +]); // // Class: Rack // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -170,64 +170,64 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Rack/Attribute:device_list+' => 'Dispositivos', 'Class:Rack/Attribute:enclosure_list' => 'Enclosures', 'Class:Rack/Attribute:enclosure_list+' => 'Enclosures', -)); +]); // // Class: TelephonyCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:TelephonyCI' => 'EC Telefónico', 'Class:TelephonyCI+' => 'EC Telefónico', 'Class:TelephonyCI/Attribute:phonenumber' => 'Número Telefónico', 'Class:TelephonyCI/Attribute:phonenumber+' => 'Número Telefónico', -)); +]); // // Class: Phone // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Phone' => 'Teléfono', 'Class:Phone+' => 'Teléfono', -)); +]); // // Class: MobilePhone // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:MobilePhone' => 'Teléfono Móvil', 'Class:MobilePhone+' => 'Teléfono Móvil', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => 'IMEI', 'Class:MobilePhone/Attribute:hw_pin' => 'PIN', 'Class:MobilePhone/Attribute:hw_pin+' => 'PIN', -)); +]); // // Class: IPPhone // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:IPPhone' => 'Teléfono IP', 'Class:IPPhone+' => 'Teléfono IP', -)); +]); // // Class: Tablet // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Tablet' => 'Tableta', 'Class:Tablet+' => 'Tableta', -)); +]); // // Class: ConnectableCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ConnectableCI' => 'EC Conectable', 'Class:ConnectableCI+' => 'EC Físico', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -235,13 +235,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Dispositivos de Red', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Interfases de Red', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Interfases de Red', -)); +]); // // Class: DatacenterDevice // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DatacenterDevice' => 'Dispositivos de Centro de Datos', 'Class:DatacenterDevice+' => 'Dispositivos de Centro de Datos', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -273,13 +273,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'El dispositivo está arriba si almenos una conexión eléctrica (A o B) está arriba', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'El dispositivo está arriba si todas la conexiones eléctricas están arriba', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'El dispositivo está arriba si al menos %1$s %% de sus conexiones eléctricas están arriba', -)); +]); // // Class: NetworkDevice // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:NetworkDevice' => 'Dispositivo de Red', 'Class:NetworkDevice+' => 'Dispositivo de Red', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s', @@ -295,13 +295,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => 'Versión IOS', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => 'RAM', -)); +]); // // Class: Server // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Server' => 'Servidor', 'Class:Server+' => 'Servidor', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -323,61 +323,61 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Server/Attribute:ram+' => 'RAM', 'Class:Server/Attribute:logicalvolumes_list' => 'Volumenes Lógicos', 'Class:Server/Attribute:logicalvolumes_list+' => 'Volumenes Lógicos', -)); +]); // // Class: StorageSystem // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:StorageSystem' => 'Sistema de Almacenamiento', 'Class:StorageSystem+' => 'Sistema de Almacenamiento', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Volumenes Lógicos', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Volumenes Lógicos', -)); +]); // // Class: SANSwitch // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:SANSwitch' => 'Switch de SAN', 'Class:SANSwitch+' => 'Switch de SAN', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Dispositivos', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Dispositivos', -)); +]); // // Class: TapeLibrary // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:TapeLibrary' => 'Libreria de Cintas', 'Class:TapeLibrary+' => 'Libreria de Cintas', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s', 'Class:TapeLibrary/Attribute:tapes_list' => 'Cintas', 'Class:TapeLibrary/Attribute:tapes_list+' => 'Cintas', -)); +]); // // Class: NAS // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => 'NAS', 'Class:NAS/ComplementaryName' => '%1$s - %2$s', 'Class:NAS/Attribute:nasfilesystem_list' => 'Filesystems', 'Class:NAS/Attribute:nasfilesystem_list+' => 'Filesystems', -)); +]); // // Class: PC // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:PC' => 'PC/Laptop', 'Class:PC+' => 'PC/Laptop', 'Class:PC/ComplementaryName' => '%1$s - %2$s', @@ -399,45 +399,45 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:PC/Attribute:type/Value:desktop+' => 'Escritorio', 'Class:PC/Attribute:type/Value:laptop' => 'Laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'Laptop', -)); +]); // // Class: Printer // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Printer' => 'Impresora', 'Class:Printer+' => 'Impresora', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:PowerConnection' => 'Conexión Eléctrica', 'Class:PowerConnection+' => 'Conexión Eléctrica', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:PowerSource' => 'Fuente de Poder', 'Class:PowerSource+' => 'Fuente de Poder', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', 'Class:PowerSource/Attribute:pdus_list' => 'PDUs', 'Class:PowerSource/Attribute:pdus_list+' => 'PDUs', -)); +]); // // Class: PDU // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => 'PDU', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s', @@ -449,23 +449,23 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:PDU/Attribute:powerstart_id+' => 'Conector de Poder', 'Class:PDU/Attribute:powerstart_name' => 'Conector de Poder', 'Class:PDU/Attribute:powerstart_name+' => 'Conector de Poder', -)); +]); // // Class: Peripheral // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Peripheral' => 'Periférico', 'Class:Peripheral+' => 'Periférico', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: Enclosure // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Enclosure' => 'Enclosure', 'Class:Enclosure+' => 'Enclosure', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -477,13 +477,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Enclosure/Attribute:nb_u+' => 'Unidades de Rack', 'Class:Enclosure/Attribute:device_list' => 'Dispositivos', 'Class:Enclosure/Attribute:device_list+' => 'Dispositivos', -)); +]); // // Class: ApplicationSolution // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ApplicationSolution' => 'Solución Aplicativa', 'Class:ApplicationSolution+' => 'Solución Aplicativa', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'ECs', @@ -500,13 +500,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'La solución está arriba si todos los ECs están arriba', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'La solución está arriba si al menos %1$s EC(s) está(n) arriba', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'La solución está arriba si al menos %1$s %% de los ECs están arriba', -)); +]); // // Class: BusinessProcess // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:BusinessProcess' => 'Proceso de Negocio', 'Class:BusinessProcess+' => 'Proceso de Negocio', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Soluciones Aplicativas', @@ -517,13 +517,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'Activo', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'Inactivo', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'Inactivo', -)); +]); // // Class: SoftwareInstance // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:SoftwareInstance' => 'Instalación de Software', 'Class:SoftwareInstance+' => 'Instalación de Software', 'Class:SoftwareInstance/Attribute:system_id' => 'Sistema', @@ -546,64 +546,64 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'Activo', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'Inactivo', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => 'Inactivo', -)); +]); // // Class: Middleware // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => 'Middleware', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Instalaciones de Middleware', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'Instalaciones de Middleware', -)); +]); // // Class: DBServer // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DBServer' => 'Servidor de Base de Datos', 'Class:DBServer+' => 'Servidor de Base de Datos', 'Class:DBServer/Attribute:dbschema_list' => 'Esquema de BD', 'Class:DBServer/Attribute:dbschema_list+' => 'Esquema de BD', -)); +]); // // Class: WebServer // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:WebServer' => 'Servidor Web', 'Class:WebServer+' => 'Servidor Web', 'Class:WebServer/Attribute:webapp_list' => 'Aplicaciones Web', 'Class:WebServer/Attribute:webapp_list+' => 'Aplicaciones Web', -)); +]); // // Class: PCSoftware // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:PCSoftware' => 'Software de PC', 'Class:PCSoftware+' => 'Software de PC', -)); +]); // // Class: OtherSoftware // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:OtherSoftware' => 'Otro Software', 'Class:OtherSoftware+' => 'Otro Software', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:MiddlewareInstance' => 'Instalación de Middleware', 'Class:MiddlewareInstance+' => 'Instalación de Middleware', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -611,13 +611,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => 'Middleware', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Middleware', 'Class:MiddlewareInstance/Attribute:middleware_name+' => 'Middleware', -)); +]); // // Class: DatabaseSchema // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DatabaseSchema' => 'Esquema de Base de Datos', 'Class:DatabaseSchema+' => 'Esquema de Base de Datos', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -625,13 +625,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => 'Servidor de Base de Datos', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'Servidor de Base de Datos', 'Class:DatabaseSchema/Attribute:dbserver_name+' => 'Servidor de Base de Datos', -)); +]); // // Class: WebApplication // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:WebApplication' => 'Aplicación Web', 'Class:WebApplication+' => 'Aplicación Web', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -641,14 +641,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:WebApplication/Attribute:webserver_name+' => 'Servidor Web', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => 'URL de Uso', -)); - +]); // // Class: VirtualDevice // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:VirtualDevice' => 'Dispositivo Virtual', 'Class:VirtualDevice+' => 'Dispositivo Virtual', 'Class:VirtualDevice/Attribute:status' => 'Estatus', @@ -663,24 +662,24 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'En inventario', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Volumenes Lógicos', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Volumenes Lógicos', -)); +]); // // Class: VirtualHost // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:VirtualHost' => 'Host Virtual', 'Class:VirtualHost+' => 'Host Virtual', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Máquinas Virtuales', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Máquinas Virtuales', -)); +]); // // Class: Hypervisor // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => 'Hypervisor', 'Class:Hypervisor/Attribute:farm_id' => 'Granja', @@ -691,13 +690,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Hypervisor/Attribute:server_id+' => 'Servidor', 'Class:Hypervisor/Attribute:server_name' => 'Servidor', 'Class:Hypervisor/Attribute:server_name+' => 'Servidor', -)); +]); // // Class: Farm // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Farm' => 'Granja', 'Class:Farm+' => 'Granja', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisores', @@ -706,13 +705,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Farm/Attribute:redundancy/disabled' => 'La granja está arriba si todos los hipervisores están arriba', 'Class:Farm/Attribute:redundancy/count' => 'La granja está arriba si al menos %1$s hipervisor(es) está(n) arriba', 'Class:Farm/Attribute:redundancy/percent' => 'La granja está arriba si al menos %1$s %% de los hipervisores están arriba', -)); +]); // // Class: VirtualMachine // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:VirtualMachine' => 'Máquina Virtual', 'Class:VirtualMachine+' => 'Máquina Virtual', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -740,13 +739,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:VirtualMachine/Attribute:managementip+' => 'IP', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Interfases de Red', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Interfases de Red', -)); +]); // // Class: LogicalVolume // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:LogicalVolume' => 'Volumen Lógico', 'Class:LogicalVolume+' => 'Volumen Lógico', 'Class:LogicalVolume/Attribute:name' => 'Nombre', @@ -767,13 +766,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Servidores', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Dispositivos Virtuales', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Dispositivos Virtuales', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkServerToVolume' => 'Relación Servidor y Volumen', 'Class:lnkServerToVolume+' => 'Relación Servidor y Volumen', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s', @@ -787,13 +786,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkServerToVolume/Attribute:server_name+' => 'Servidor', 'Class:lnkServerToVolume/Attribute:size_used' => 'Tamaño Asignado', 'Class:lnkServerToVolume/Attribute:size_used+' => 'Tamaño Asignado', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkVirtualDeviceToVolume' => 'Relación Dispositivo Virtual y Volumen', 'Class:lnkVirtualDeviceToVolume+' => 'Relación Dispositivo Virtual y Volumen', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -807,13 +806,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => 'Dispositivo Virtual', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Tamaño Asignado', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => 'Tamaño Asignado', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkSanToDatacenterDevice' => 'Relación SAN y Dispositivo del Centro de Datos', 'Class:lnkSanToDatacenterDevice+' => 'Relación SAN y Dispositivo del Centro de Datos', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s', @@ -829,13 +828,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => 'FC en SAN', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'FC en Dispositivo', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => 'FC en Dispositivo', -)); +]); // // Class: Tape // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Tape' => 'Cinta', 'Class:Tape+' => 'Cinta', 'Class:Tape/Attribute:name' => 'Nombre', @@ -848,13 +847,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Tape/Attribute:tapelibrary_id+' => 'Liberia de Cintas', 'Class:Tape/Attribute:tapelibrary_name' => 'Liberia de Cintas', 'Class:Tape/Attribute:tapelibrary_name+' => 'Liberia de Cintas', -)); +]); // // Class: NASFileSystem // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:NASFileSystem' => 'Filesysten en NAS', 'Class:NASFileSystem+' => 'Filesysten en NAS', 'Class:NASFileSystem/Attribute:name' => 'Nombre', @@ -869,13 +868,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:NASFileSystem/Attribute:nas_id+' => 'NAS', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS', 'Class:NASFileSystem/Attribute:nas_name+' => 'NAS', -)); +]); // // Class: Software // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Software' => 'Software', 'Class:Software+' => 'Software', 'Class:Software/ComplementaryName' => '%1$s - %2$s', @@ -905,13 +904,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Software/Attribute:softwarepatch_list+' => 'Parches de Software', 'Class:Software/Attribute:softwarelicence_list' => 'Licencias de Software', 'Class:Software/Attribute:softwarelicence_list+' => 'Licencias de Software', -)); +]); // // Class: Patch // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Patch' => 'Parche', 'Class:Patch+' => 'Parche', 'Class:Patch/Attribute:name' => 'Nombre', @@ -922,13 +921,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Patch/Attribute:description+' => 'Descripción', 'Class:Patch/Attribute:finalclass' => 'Clase', 'Class:Patch/Attribute:finalclass+' => 'Clase', -)); +]); // // Class: OSPatch // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:OSPatch' => 'Parche de SO', 'Class:OSPatch+' => 'Parche de SO', 'Class:OSPatch/Attribute:functionalcis_list' => 'Dispositivos', @@ -937,13 +936,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:OSPatch/Attribute:osversion_id+' => 'Versión de SO', 'Class:OSPatch/Attribute:osversion_name' => 'Versión de SO', 'Class:OSPatch/Attribute:osversion_name+' => 'Versión de SO', -)); +]); // // Class: SoftwarePatch // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:SoftwarePatch' => 'Parche de Software', 'Class:SoftwarePatch+' => 'Parche de Software', 'Class:SoftwarePatch/Attribute:software_id' => 'Software', @@ -952,13 +951,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:SoftwarePatch/Attribute:software_name+' => 'Software', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Instalaciones de Software', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Instalaciones de Software', -)); +]); // // Class: Licence // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Licence' => 'Licencia', 'Class:Licence+' => 'Licencia', 'Class:Licence/Attribute:name' => 'Nombre', @@ -987,13 +986,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'Si', 'Class:Licence/Attribute:finalclass' => 'Clase', 'Class:Licence/Attribute:finalclass+' => 'Clase', -)); +]); // // Class: OSLicence // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:OSLicence' => 'Licencia de SO', 'Class:OSLicence+' => 'Licencia de SO', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s', @@ -1005,13 +1004,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'Máquinas Virtuales', 'Class:OSLicence/Attribute:servers_list' => 'Servidores', 'Class:OSLicence/Attribute:servers_list+' => 'Servidores', -)); +]); // // Class: SoftwareLicence // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:SoftwareLicence' => 'Licencia de Software', 'Class:SoftwareLicence+' => 'Licencia de Software', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s', @@ -1021,13 +1020,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:SoftwareLicence/Attribute:software_name+' => 'Software', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Instalaciones de Software', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Instalaciones de Software', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDocumentToLicence' => 'Relación Documento y Licencia', 'Class:lnkDocumentToLicence+' => 'Relación Documento y Licencia', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s', @@ -1039,35 +1038,35 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => 'Documento', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Documento', 'Class:lnkDocumentToLicence/Attribute:document_name+' => 'Documento', -)); +]); // // Class: OSVersion // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:OSVersion' => 'Versión de SO', 'Class:OSVersion+' => 'Versión de SO', 'Class:OSVersion/Attribute:osfamily_id' => 'Familia de SO', 'Class:OSVersion/Attribute:osfamily_id+' => 'Familia de SO', 'Class:OSVersion/Attribute:osfamily_name' => 'Familia de SO', 'Class:OSVersion/Attribute:osfamily_name+' => 'Familia de SO', -)); +]); // // Class: OSFamily // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:OSFamily' => 'Familia de SO', 'Class:OSFamily+' => 'Familia de SO', -)); +]); // // Class: Brand // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Brand' => 'Marca', 'Class:Brand+' => 'Marca', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1076,13 +1075,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'Dispositivo Físico', 'Class:Brand/UniquenessRule:name+' => 'El nombre debe ser único', 'Class:Brand/UniquenessRule:name' => 'Esta Marca ya existe', -)); +]); // // Class: Model // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Model' => 'Modelo', 'Class:Model+' => 'Modelo', 'Class:Model/ComplementaryName' => '%1$s - %2$s', @@ -1134,37 +1133,37 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Model/Attribute:physicaldevices_list+' => 'Dispositivo Físico', 'Class:Model/UniquenessRule:name_brand+' => 'El nombre debe ser único dentro de la Marca', 'Class:Model/UniquenessRule:name_brand' => 'este modelo ya existe para esta Marca', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:NetworkDeviceType' => 'Tipo Dispositivo de Red', 'Class:NetworkDeviceType+' => 'Tipo de Dispositivo de Red', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Dispositivos de Red', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Dispositivos de Red', -)); +]); // // Class: IOSVersion // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:IOSVersion' => 'Versión de IOS', 'Class:IOSVersion+' => 'Versión de IOS', 'Class:IOSVersion/Attribute:brand_id' => 'Marca', 'Class:IOSVersion/Attribute:brand_id+' => 'Marca', 'Class:IOSVersion/Attribute:brand_name' => 'Marca', 'Class:IOSVersion/Attribute:brand_name+' => 'Marca', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDocumentToPatch' => 'Relación Documentos y Parche', 'Class:lnkDocumentToPatch+' => 'Relación Documentos y Parche', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s', @@ -1176,13 +1175,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => 'Documento', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Documento', 'Class:lnkDocumentToPatch/Attribute:document_name+' => 'Documento', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Relación Instalación de Software y Parche de Software', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => 'Relación Instalación de Software y Parche de Software', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s', @@ -1194,13 +1193,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => 'Instalación de Software', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Instalación de Software', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => 'Instalación de Software', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkFunctionalCIToOSPatch' => 'Relación EC Funcional y Parche de SO', 'Class:lnkFunctionalCIToOSPatch+' => 'Relación EC Funcional y Parche de SO', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s', @@ -1212,13 +1211,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => 'EC Funcional', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'EC Funcional', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => 'EC Funcional', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDocumentToSoftware' => 'Relación Documento y Software', 'Class:lnkDocumentToSoftware+' => 'Relación Documento y Software', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s', @@ -1230,13 +1229,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => 'Documento', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Documento', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => 'Documento', -)); +]); // // Class: Subnet // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Subnet' => 'SubRed', 'Class:Subnet+' => 'SubRed', 'Class:Subnet/Name' => '%1$s/%2$s', @@ -1255,13 +1254,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'vLANs', 'Class:Subnet/Attribute:vlans_list+' => 'Virtual LANs', -)); +]); // // Class: VLAN // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:VLAN' => 'vLAN', 'Class:VLAN+' => 'Red Virtual de Área Local', 'Class:VLAN/Attribute:vlan_tag' => 'Etiqueta vLAN', @@ -1276,13 +1275,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:VLAN/Attribute:subnets_list+' => 'Subredes', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Interfases Físicas de Red', 'Class:VLAN/Attribute:physicalinterfaces_list+' => 'Interfases Físicas de Red', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkSubnetToVLAN' => 'Relación Subred / vLAN', 'Class:lnkSubnetToVLAN+' => 'Relación Subred / vLAN', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1296,26 +1295,26 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => 'vLAN', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'Etiqueta vLAN', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => 'Etiqueta vLAN', -)); +]); // // Class: NetworkInterface // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:NetworkInterface' => 'Interfaz de Red', 'Class:NetworkInterface+' => 'Interfaz de Red', 'Class:NetworkInterface/Attribute:name' => 'Nombre', 'Class:NetworkInterface/Attribute:name+' => 'Nombre de la Interfaz de Red', 'Class:NetworkInterface/Attribute:finalclass' => 'Clase', 'Class:NetworkInterface/Attribute:finalclass+' => 'Clase', -)); +]); // // Class: IPInterface // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:IPInterface' => 'Interfaz IP', 'Class:IPInterface+' => 'Interfaz IP', 'Class:IPInterface/Attribute:ipaddress' => 'Dirección IP', @@ -1330,13 +1329,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:IPInterface/Attribute:ipmask+' => 'Máscara de Red', 'Class:IPInterface/Attribute:speed' => 'Velocidad', 'Class:IPInterface/Attribute:speed+' => 'Velocidad', -)); +]); // // Class: PhysicalInterface // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:PhysicalInterface' => 'Interfaz Física', 'Class:PhysicalInterface+' => 'Interfaz Física', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1346,13 +1345,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => 'Dispositivo', 'Class:PhysicalInterface/Attribute:vlans_list' => 'vLANs', 'Class:PhysicalInterface/Attribute:vlans_list+' => 'vLANS', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Relación Interfaz Física / VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => 'Relación Interfaz Física / VLAN', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s', @@ -1368,27 +1367,26 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => 'vLAN', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'Etiqueta VLAN', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => 'Etiqueta VLAN', -)); - +]); // // Class: LogicalInterface // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:LogicalInterface' => 'Interfaz Lógica', 'Class:LogicalInterface+' => 'Interfaz Lógica', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Máquina Virtual', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => 'Máquina Virtual', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Máquina Virtual', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => 'Máquina Virtual', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:FiberChannelInterface' => 'Intefaz de Fibra Óptica', 'Class:FiberChannelInterface+' => 'Intefaz de Fibra Óptica', 'Class:FiberChannelInterface/Attribute:speed' => 'Velocidad', @@ -1401,13 +1399,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => 'Dispositivo', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Dispositivo', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => 'Dispositivo', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Relación EC Conectable y Dispositivo de Red', 'Class:lnkConnectableCIToNetworkDevice+' => 'Relación EC Conectable y Dispositivo de Red', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s', @@ -1429,13 +1427,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'Down Link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'Up Link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'Up Link', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Relación Solución Aplicativa y EC Funcional', 'Class:lnkApplicationSolutionToFunctionalCI+' => 'Relación Solución Aplicativa y EC Funcional', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s', @@ -1447,13 +1445,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => 'EC Funcional', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'EC Funcional', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => 'EC Funcional', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Relación Solución Aplicativa y Proceso de Negocio', 'Class:lnkApplicationSolutionToBusinessProcess+' => 'Relación Solución Aplicativa y Proceso de Negocio', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s', @@ -1465,13 +1463,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => 'Solución Aplicativa', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Solución Aplicativa', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => 'Solución Aplicativa', -)); +]); // // Class: Group // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Group' => 'Grupo', 'Class:Group+' => 'Grupo', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1501,13 +1499,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Group/Attribute:ci_list+' => 'ECs Relacionados', 'Class:Group/Attribute:parent_id_friendlyname' => 'Grupo Padre', 'Class:Group/Attribute:parent_id_friendlyname+' => 'Grupo Padre', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkGroupToCI' => 'Relación Grupo y EC', 'Class:lnkGroupToCI+' => 'Relación Grupo y EC', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s', @@ -1521,11 +1519,11 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => 'Elemento de Configuración', 'Class:lnkGroupToCI/Attribute:reason' => 'Motivo', 'Class:lnkGroupToCI/Attribute:reason+' => 'Motivo', -)); +]); // Add translation for Fieldsets -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Server:baseinfo' => 'Información General', 'Server:Date' => 'Fecha', 'Server:moreinfo' => 'Más Información', @@ -1538,14 +1536,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Subnet/Tab:FreeIPs-count' => 'IPs Libres: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Aquí está un extracto de 10 direcciones IP Libres', 'Class:Document:PreviewTab' => 'Vista Previa', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDocumentToFunctionalCI' => 'Relación Documento y EC Funcional', 'Class:lnkDocumentToFunctionalCI+' => 'Relación Documento y EC Funcional', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s', @@ -1557,13 +1554,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => 'Documento', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Documento', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => 'Documento', -)); +]); // // Application Menu // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:Application' => 'Aplicaciones', 'Menu:Application+' => 'Aplicaciones/Programas', 'Menu:DBServer' => 'Servidores de Base de Datos', @@ -1608,15 +1605,15 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Catálogo de Software', 'Menu:Software+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/fr.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/fr.dict.itop-config-mgmt.php index 42e652143..fb9829abf 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/fr.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/fr.dict.itop-config-mgmt.php @@ -1,15 +1,16 @@ 'Eléments impactés par', 'Relation:impacts/DownStream' => 'Impacte...', 'Relation:impacts/DownStream+' => 'Eléments impactés par', @@ -21,8 +22,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Relation:impacts/LoadData' => 'Charger les données', 'Relation:impacts/NoFilteredData' => 'Veuillez sélectionner des objets et lancer le chargement des données', 'Relation:impacts/FilteredData' => 'Données filtrées', -)); - +]); // Dictionnay conventions // Class: @@ -65,7 +65,7 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class: lnkContactToFunctionalCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContactToFunctionalCI' => 'Lien Contact / CI Fonctionnel', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s', @@ -77,13 +77,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Nom contact', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:FunctionalCI' => 'CI Fonctionnel', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Nom', @@ -125,14 +125,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:FunctionalCI/Attribute:finalclass' => 'Sous-classe de CI', 'Class:FunctionalCI/Attribute:finalclass+' => 'Nom de la classe instanciable', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Tickets en cours', - 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Tickets ouverts impactant cet élément de configuration' -)); + 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Tickets ouverts impactant cet élément de configuration', +]); // // Class: PhysicalDevice // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:PhysicalDevice' => 'Matériel physique', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s', @@ -166,13 +166,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Date de fin de garantie', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -193,65 +193,65 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Rack/Attribute:enclosure_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:Rack/Attribute:enclosure_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:Rack/Attribute:enclosure_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:Rack/Attribute:enclosure_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:Rack/Attribute:enclosure_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: TelephonyCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:TelephonyCI' => 'CI Téléphonie', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Numéro', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Phone' => 'Téléphone', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:MobilePhone' => 'Téléphone mobile', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:IPPhone' => 'Téléphone IP', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Tablet' => 'Tablette', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ConnectableCI' => 'CI connecté', 'Class:ConnectableCI+' => '', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -264,14 +264,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ConnectableCI/Attribute:physicalinterface_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:ConnectableCI/Attribute:physicalinterface_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:ConnectableCI/Attribute:physicalinterface_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:ConnectableCI/Attribute:physicalinterface_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:ConnectableCI/Attribute:physicalinterface_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: DatacenterDevice // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DatacenterDevice' => 'Matériel Datacenter', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -308,14 +308,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:DatacenterDevice/Attribute:redundancy' => 'Redondance', 'Class:DatacenterDevice/Attribute:redundancy/count' => 'Le %2$s est alimenté si au moins une source électrique (A ou B) est opérationnelle', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'Le %2$s est alimenté si toutes ses sources électriques sont opérationnelles', - 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'Le %2$s est alimenté si au moins %1$s %% de ses sources électriques sont opérationnelles' -)); + 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'Le %2$s est alimenté si au moins %1$s %% de ses sources électriques sont opérationnelles', +]); // // Class: NetworkDevice // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:NetworkDevice' => 'Equipement réseau', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s', @@ -331,13 +331,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Server' => 'Serveur', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -359,13 +359,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Volumes logiques', 'Class:Server/Attribute:logicalvolumes_list+' => 'Tous les volumes logiques connectés à ce serveur', -)); +]); // // Class: StorageSystem // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:StorageSystem' => 'Système de stockage', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s', @@ -376,26 +376,26 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:StorageSystem/Attribute:logicalvolume_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:StorageSystem/Attribute:logicalvolume_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:StorageSystem/Attribute:logicalvolume_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:StorageSystem/Attribute:logicalvolume_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:StorageSystem/Attribute:logicalvolume_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: SANSwitch // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:SANSwitch' => 'Switch SAN', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Matériels connectés', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Tous les matériels connectés à ce switch SAN', -)); +]); // // Class: TapeLibrary // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:TapeLibrary' => 'Bandothèque', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s', @@ -406,14 +406,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:TapeLibrary/Attribute:tapes_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:TapeLibrary/Attribute:tapes_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:TapeLibrary/Attribute:tapes_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:TapeLibrary/Attribute:tapes_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de sa %1$s' -)); + 'Class:TapeLibrary/Attribute:tapes_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de sa %1$s', +]); // // Class: NAS // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s', @@ -424,14 +424,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:NAS/Attribute:nasfilesystem_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:NAS/Attribute:nasfilesystem_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:NAS/Attribute:nasfilesystem_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:NAS/Attribute:nasfilesystem_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:NAS/Attribute:nasfilesystem_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: PC // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s', @@ -453,33 +453,33 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:PC/Attribute:type/Value:desktop+' => 'desktop', 'Class:PC/Attribute:type/Value:laptop' => 'laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'laptop', -)); +]); // // Class: Printer // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Printer' => 'Imprimante', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:PowerConnection' => 'Connexion électrique', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:PowerSource' => 'Arrivée électrique', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', @@ -490,14 +490,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:PowerSource/Attribute:pdus_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:PowerSource/Attribute:pdus_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:PowerSource/Attribute:pdus_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:PowerSource/Attribute:pdus_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:PowerSource/Attribute:pdus_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: PDU // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s', @@ -509,23 +509,23 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Nom Arrivée électrique', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Peripheral' => 'Périphérique', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: Enclosure // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Enclosure' => 'Chassis', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -542,14 +542,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Enclosure/Attribute:device_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:Enclosure/Attribute:device_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:Enclosure/Attribute:device_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:Enclosure/Attribute:device_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:Enclosure/Attribute:device_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: ApplicationSolution // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ApplicationSolution' => 'Solution applicative', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs', @@ -566,13 +566,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'La solution est opérationelle si tous les CIs qui la composent sont opérationnels', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'Nombre minimal de CIs pour que la solution soit opérationnelle : %1$s', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'Pourcentage minimal de CIs pour que la solution soit opérationnelle : %1$s %%', -)); +]); // // Class: BusinessProcess // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:BusinessProcess' => 'Processus métier', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Solutions applicatives', @@ -586,14 +586,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:BusinessProcess/Attribute:status/Value:active' => 'Actif', 'Class:BusinessProcess/Attribute:status/Value:active+' => '', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'Inactif', - 'Class:BusinessProcess/Attribute:status/Value:inactive+' => '' -)); + 'Class:BusinessProcess/Attribute:status/Value:inactive+' => '', +]); // // Class: SoftwareInstance // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:SoftwareInstance' => 'Instance logiciel', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'Système', @@ -616,13 +616,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => '', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'Inactif', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => '', -)); +]); // // Class: Middleware // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Instance Middleware', @@ -632,14 +632,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Middleware/Attribute:middlewareinstance_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:Middleware/Attribute:middlewareinstance_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:Middleware/Attribute:middlewareinstance_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:Middleware/Attribute:middlewareinstance_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:Middleware/Attribute:middlewareinstance_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: DBServer // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DBServer' => 'Serveur de base de données', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'Instances de base de données', @@ -649,14 +649,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:DBServer/Attribute:dbschema_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:DBServer/Attribute:dbschema_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:DBServer/Attribute:dbschema_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:DBServer/Attribute:dbschema_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:DBServer/Attribute:dbschema_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: WebServer // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:WebServer' => 'Serveur Web', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Application Web', @@ -666,32 +666,32 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:WebServer/Attribute:webapp_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:WebServer/Attribute:webapp_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:WebServer/Attribute:webapp_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:WebServer/Attribute:webapp_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:WebServer/Attribute:webapp_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: PCSoftware // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:PCSoftware' => 'Logiciel PC', 'Class:PCSoftware+' => 'Application logicielle sur PC', -)); +]); // // Class: OtherSoftware // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:OtherSoftware' => 'Autre logiciel', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:MiddlewareInstance' => 'Instance Middleware', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -699,13 +699,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Nom Middleware', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DatabaseSchema' => 'Instance de base de données', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -713,13 +713,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'Nom Serveur de base de données', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:WebApplication' => 'Application Web', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -729,14 +729,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:VirtualDevice' => 'Equipement Virtuel', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => 'Etat', @@ -751,13 +750,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => '', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Volumes logiques', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Tous les volumes logiques utilisés par ce matériel', -)); +]); // // Class: VirtualHost // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:VirtualHost' => 'Hôte Virtuel', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Machines virtuelles', @@ -767,14 +766,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:VirtualHost/Attribute:virtualmachine_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:VirtualHost/Attribute:virtualmachine_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:VirtualHost/Attribute:virtualmachine_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:VirtualHost/Attribute:virtualmachine_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:VirtualHost/Attribute:virtualmachine_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: Hypervisor // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Hypervisor' => 'Hyperviseur', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'vCluster', @@ -785,13 +784,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Nom serveur', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Farm' => 'vCluster', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'Hyperviseurs', @@ -805,14 +804,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Farm/Attribute:redundancy' => 'Haute disponibilité', 'Class:Farm/Attribute:redundancy/disabled' => 'Le vCluster est opérationnel si tous les hyperviseurs qui le composent sont opérationnels', 'Class:Farm/Attribute:redundancy/count' => 'Nombre minimal d\'hyperviseurs pour que le vCluster soit opérationnel : %1$s', - 'Class:Farm/Attribute:redundancy/percent' => 'Pourcentage minimal d\'hyperviseurs pour que le vCluster soit opérationnel : %1$s %%' -)); + 'Class:Farm/Attribute:redundancy/percent' => 'Pourcentage minimal d\'hyperviseurs pour que le vCluster soit opérationnel : %1$s %%', +]); // // Class: VirtualMachine // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:VirtualMachine' => 'Machine virtuelle', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -845,14 +844,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:VirtualMachine/Attribute:logicalinterface_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:VirtualMachine/Attribute:logicalinterface_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:VirtualMachine/Attribute:logicalinterface_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:VirtualMachine/Attribute:logicalinterface_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:VirtualMachine/Attribute:logicalinterface_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: LogicalVolume // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:LogicalVolume' => 'Volume logique', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => 'Nom', @@ -873,13 +872,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Tous les serveurs utilisant ce volume', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Machines virtuelles', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Toutes les machines virtuelles utilisant ce volume', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkServerToVolume' => 'Lien Serveur / Volume', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s', @@ -893,13 +892,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Taille utilisée', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkVirtualDeviceToVolume' => 'Lien Device virtuel / Volume', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -913,13 +912,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Taille utilisée', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkSanToDatacenterDevice' => 'Lien San / Device', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s', @@ -935,13 +934,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Device FC', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Tape' => 'Bande', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => 'Nom', @@ -954,13 +953,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Nom Bandothèque', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:NASFileSystem' => 'Système de fichier NAS', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => 'Nom', @@ -975,13 +974,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'Nom NAS', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Software' => 'Logiciel', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s', @@ -1028,14 +1027,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Software/Attribute:softwarelicence_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:Software/Attribute:softwarelicence_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:Software/Attribute:softwarelicence_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:Software/Attribute:softwarelicence_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:Software/Attribute:softwarelicence_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: Patch // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Patch' => 'Patch', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Nom', @@ -1046,13 +1045,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Sous-classe de Patch', 'Class:Patch/Attribute:finalclass+' => 'Nom de la classe instanciable', -)); +]); // // Class: OSPatch // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:OSPatch' => 'Patch OS', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Systèmes', @@ -1061,13 +1060,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'Nom Version OS', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:SoftwarePatch' => 'Patch Logiciel', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'Logiciel', @@ -1079,14 +1078,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:SoftwarePatch/Attribute:softwareinstances_list/UI:Links:Add:Button+' => 'Ajouter une %4$s', 'Class:SoftwarePatch/Attribute:softwareinstances_list/UI:Links:Add:Modal:Title' => 'Ajouter une %4$s à %2$s', 'Class:SoftwarePatch/Attribute:softwareinstances_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:SoftwarePatch/Attribute:softwareinstances_list/UI:Links:Remove:Modal:Title' => 'Retirer une %4$s' -)); + 'Class:SoftwarePatch/Attribute:softwareinstances_list/UI:Links:Remove:Modal:Title' => 'Retirer une %4$s', +]); // // Class: Licence // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Licence' => 'License', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => 'Nom', @@ -1120,14 +1119,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Licence/Attribute:perpetual/Value:yes' => 'oui', 'Class:Licence/Attribute:perpetual/Value:yes+' => 'oui', 'Class:Licence/Attribute:finalclass' => 'Sous-classe de License', - 'Class:Licence/Attribute:finalclass+' => 'Nom de la classe instanciable' -)); + 'Class:Licence/Attribute:finalclass+' => 'Nom de la classe instanciable', +]); // // Class: OSLicence // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:OSLicence' => 'Licence OS', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s', @@ -1150,14 +1149,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:OSLicence/Attribute:servers_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:OSLicence/Attribute:servers_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:OSLicence/Attribute:servers_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:OSLicence/Attribute:servers_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de sa %1$s' -)); + 'Class:OSLicence/Attribute:servers_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de sa %1$s', +]); // // Class: SoftwareLicence // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:SoftwareLicence' => 'Licence Logiciel', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s', @@ -1172,14 +1171,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:SoftwareLicence/Attribute:softwareinstance_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:SoftwareLicence/Attribute:softwareinstance_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:SoftwareLicence/Attribute:softwareinstance_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:SoftwareLicence/Attribute:softwareinstance_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de sa %1$s' -)); + 'Class:SoftwareLicence/Attribute:softwareinstance_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de sa %1$s', +]); // // Class: lnkDocumentToLicence // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDocumentToLicence' => 'Lien Document / Licence', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s', @@ -1191,35 +1190,35 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Nom Document', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:OSVersion' => 'Version OS', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'Famille OS', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'Nom Famille OS', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:OSFamily' => 'Famille OS', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Brand' => 'Marque', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo', @@ -1233,14 +1232,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Brand/Attribute:physicaldevices_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', 'Class:Brand/Attribute:physicaldevices_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de sa %1$s', 'Class:Brand/UniquenessRule:name+' => 'Le nom doit être unique', - 'Class:Brand/UniquenessRule:name' => 'cette marque existe déjà' -)); + 'Class:Brand/UniquenessRule:name' => 'cette marque existe déjà', +]); // // Class: Model // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Model' => 'Modèle', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s', @@ -1297,14 +1296,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Model/Attribute:physicaldevices_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', 'Class:Model/Attribute:physicaldevices_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', 'Class:Model/UniquenessRule:name_brand+' => 'Le nom doit être unique dans une marque', - 'Class:Model/UniquenessRule:name_brand' => 'ce modèle existe déjà dans cette marque' -)); + 'Class:Model/UniquenessRule:name_brand' => 'ce modèle existe déjà dans cette marque', +]); // // Class: NetworkDeviceType // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:NetworkDeviceType' => 'Type d\'équipement réseau', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Equipements réseaux', @@ -1314,27 +1313,27 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: IOSVersion // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:IOSVersion' => 'Version IOS', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Marque', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Nom Marque', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDocumentToPatch' => 'Lien Document / Patch', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s', @@ -1346,13 +1345,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Nom document', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Lien Instance logiciel / Patch logiciel', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s', @@ -1364,13 +1363,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Nom instance logicielle', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkFunctionalCIToOSPatch' => 'Lien CI Fonctionnel / Patch OS', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s', @@ -1382,13 +1381,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Nom CI', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDocumentToSoftware' => 'Lien Document / Logiciel', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s', @@ -1400,13 +1399,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Nom document', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Subnet' => 'Subnet', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s', @@ -1425,13 +1424,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLANs', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag', @@ -1449,14 +1448,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:VLAN/Attribute:physicalinterfaces_list/UI:Links:Add:Button+' => 'Ajouter une %4$s', 'Class:VLAN/Attribute:physicalinterfaces_list/UI:Links:Add:Modal:Title' => 'Ajouter une %4$s à %2$s', 'Class:VLAN/Attribute:physicalinterfaces_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:VLAN/Attribute:physicalinterfaces_list/UI:Links:Remove:Modal:Title' => 'Retirer une %4$s' -)); + 'Class:VLAN/Attribute:physicalinterfaces_list/UI:Links:Remove:Modal:Title' => 'Retirer une %4$s', +]); // // Class: lnkSubnetToVLAN // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkSubnetToVLAN' => 'Lien Subnet / VLAN', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1470,26 +1469,26 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:NetworkInterface' => 'Interface Réseau', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Nom', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'Sous-classe d\'Interface Réseau', 'Class:NetworkInterface/Attribute:finalclass+' => 'Nom de la classe instanciable', -)); +]); // // Class: IPInterface // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:IPInterface' => 'Interface IP', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'Adresse IP', @@ -1504,13 +1503,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Vitesse', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:PhysicalInterface' => 'Interface physique', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1520,13 +1519,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLANs', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Lien Interface réseau / VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s', @@ -1542,27 +1541,26 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:LogicalInterface' => 'Interface logique', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Machine virtuelle', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Nom Machine virtuelle', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:FiberChannelInterface' => 'Interface Fibre', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Vitesse', @@ -1575,13 +1573,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Nom Matériel', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Lien Device / Equipement réseau', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s', @@ -1603,13 +1601,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'lien descendant', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'lien montant', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'lien montant', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Lien Solution Applicative / CI Fonctionnel', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s', @@ -1621,13 +1619,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Nom CI', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Lien Solution Applicative / Processus métier', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s', @@ -1639,13 +1637,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Nom Solution applicative', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Group' => 'Groupe', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1675,13 +1673,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Group/Attribute:ci_list+' => 'Tous les éléments de configuration liés à ce groupe', 'Class:Group/Attribute:parent_id_friendlyname' => 'Nom usuel du parent', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkGroupToCI' => 'Lien Groupe / CI', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s', @@ -1695,11 +1693,11 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Raison', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Server:baseinfo' => 'Informations générales', 'Server:Date' => 'Dates', 'Server:moreinfo' => 'Informations complémentaires', @@ -1712,14 +1710,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Subnet/Tab:FreeIPs-count' => 'IP disponibles: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Voici un échantillon de dix addresses IP disponibles', 'Class:Document:PreviewTab' => 'Aperçu', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDocumentToFunctionalCI' => 'Lien Document / CI Fonctionnel', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s', @@ -1731,13 +1728,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Nom Document', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Menu:Application' => 'Logiciels', 'Menu:Application+' => 'Tous les logiciels', 'Menu:DBServer' => 'Serveur de base de données', @@ -1782,15 +1779,15 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Catalogue des logiciels de références', 'Menu:Software+' => 'Catalogue des logiciels de références', -)); +]); // // Class: PhysicalInterface // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/hu.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/hu.dict.itop-config-mgmt.php index 1c0bab98e..9dae7cbc6 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/hu.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/hu.dict.itop-config-mgmt.php @@ -1,15 +1,16 @@ 'Konfigurációs elem működését befolyásolják', 'Relation:impacts/DownStream' => 'Hatáselemzés', 'Relation:impacts/DownStream+' => 'Konfigurációs elem működését befolyásolják', @@ -21,8 +22,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Relation:impacts/LoadData' => 'Adat betöltés', 'Relation:impacts/NoFilteredData' => 'kérjük, válassza ki az objektumokat a grafikus nézetben', 'Relation:impacts/FilteredData' => 'Filtered data~~', -)); - +]); // Dictionnay conventions // Class: @@ -65,7 +65,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( // Class: lnkContactToFunctionalCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContactToFunctionalCI' => 'Kapcsolattartó / Funkcionális CI', 'Class:lnkContactToFunctionalCI+' => '~~', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -77,13 +77,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '~~', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Kapcsolattartó név', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:FunctionalCI' => 'Funkcionális CI', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'CI Név', @@ -116,13 +116,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:FunctionalCI/Attribute:finalclass+' => '', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Nyitott hibajegyek', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~', -)); +]); // // Class: PhysicalDevice // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:PhysicalDevice' => 'Fizikai eszköz', 'Class:PhysicalDevice+' => '~~', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -156,13 +156,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '~~', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Garanciaidő vége', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '~~', -)); +]); // // Class: Rack // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '~~', 'Class:Rack/ComplementaryName' => '%1$s - %2$s~~', @@ -172,64 +172,64 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Rack/Attribute:device_list+' => 'Minden fizikai eszköz amely ebbe a rack-be lett beszerelve', 'Class:Rack/Attribute:enclosure_list' => 'Beépítőkeretek', 'Class:Rack/Attribute:enclosure_list+' => 'Minden beépítőkeret ebben a rack-ben', -)); +]); // // Class: TelephonyCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:TelephonyCI' => 'Telefónia CI', 'Class:TelephonyCI+' => '~~', 'Class:TelephonyCI/Attribute:phonenumber' => 'Telefonszám', 'Class:TelephonyCI/Attribute:phonenumber+' => '~~', -)); +]); // // Class: Phone // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Phone' => 'Telefon', 'Class:Phone+' => '~~', -)); +]); // // Class: MobilePhone // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:MobilePhone' => 'Mobiltelefon', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:IPPhone' => 'Egyéb eszköz', 'Class:IPPhone+' => '~~', -)); +]); // // Class: Tablet // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Tablet' => 'Táblagép', 'Class:Tablet+' => '~~', -)); +]); // // Class: ConnectableCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ConnectableCI' => 'Kapcsolható CI', 'Class:ConnectableCI+' => '', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s~~', @@ -237,13 +237,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Hálózati eszközök, melyek ehhez a konfigurációs elemhez kapcsolódnak', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Hálózati csatolók', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'A konfigurációs elem fizikai hálózati csatolói', -)); +]); // // Class: DatacenterDevice // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DatacenterDevice' => 'Adatközpont eszköz', 'Class:DatacenterDevice+' => '~~', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -275,13 +275,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'A készülék akkor működik, ha legalább az egyik tápcsatlakozás (A vagy B) működik.', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'A készülék akkor működik, ha az összes tápcsatlakozása működik.', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'Az eszköz akkor működik, ha legalább %1$s a %%-ből tápcsatlakozása működik.', -)); +]); // // Class: NetworkDevice // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:NetworkDevice' => 'Hálózati eszköz', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -297,13 +297,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => 'Műveleti memória', -)); +]); // // Class: Server // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Server' => 'Szerver', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s~~', @@ -325,61 +325,61 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Server/Attribute:ram+' => 'Műveleti memória', 'Class:Server/Attribute:logicalvolumes_list' => 'Logikai kötetek', 'Class:Server/Attribute:logicalvolumes_list+' => 'Logikai kötetek, melyek ehhez a szerverhez kapcsolódnak', -)); +]); // // Class: StorageSystem // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:StorageSystem' => 'Tárolórendszer', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logikai kötetek', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Logikai kötetek ebben a tárolórendszerben', -)); +]); // // Class: SANSwitch // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:SANSwitch' => 'SAN Switch', 'Class:SANSwitch+' => 'Tárolórendszer switch', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s~~', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Kapcsolódó eszközök', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Ehhez a SAN-switch-hez csatlakozó konfigurációs elemek', -)); +]); // // Class: TapeLibrary // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:TapeLibrary' => 'Szalagos tároló', 'Class:TapeLibrary+' => 'Mágnesszalagos tároló', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~', 'Class:TapeLibrary/Attribute:tapes_list' => 'Szalagok', 'Class:TapeLibrary/Attribute:tapes_list+' => 'Szalagok (kazetták) a szalagos tárolóhoz', -)); +]); // // Class: NAS // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => 'Hálózati adattároló', 'Class:NAS/ComplementaryName' => '%1$s - %2$s~~', 'Class:NAS/Attribute:nasfilesystem_list' => 'Fájlrendszerek', 'Class:NAS/Attribute:nasfilesystem_list+' => 'A NAS fájlrendszerei', -)); +]); // // Class: PC // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:PC' => 'PC', 'Class:PC+' => 'Személyi számítógép', 'Class:PC/ComplementaryName' => '%1$s - %2$s~~', @@ -401,45 +401,45 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:PC/Attribute:type/Value:desktop+' => 'desktop~~', 'Class:PC/Attribute:type/Value:laptop' => 'Laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'laptop~~', -)); +]); // // Class: Printer // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Printer' => 'Nyomtató', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerConnection // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:PowerConnection' => 'Tápellátás', 'Class:PowerConnection+' => '~~', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerSource // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:PowerSource' => 'Áramforrás', 'Class:PowerSource+' => 'UPS, generátor, akkumulátor stb.', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s~~', 'Class:PowerSource/Attribute:pdus_list' => 'PDU-k', 'Class:PowerSource/Attribute:pdus_list+' => 'Tápelosztók amik ezt az áramforrást használják', -)); +]); // // Class: PDU // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => 'Tápelosztó a rack-ben', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s~~', @@ -451,23 +451,23 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:PDU/Attribute:powerstart_id+' => '~~', 'Class:PDU/Attribute:powerstart_name' => 'Áramforrás név', 'Class:PDU/Attribute:powerstart_name+' => '~~', -)); +]); // // Class: Peripheral // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Peripheral' => 'Periféria', 'Class:Peripheral+' => '~~', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: Enclosure // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Enclosure' => 'Beépítőkeret', 'Class:Enclosure+' => 'Rack-be szerelhető készülékszerelvény', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -479,13 +479,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Enclosure/Attribute:nb_u+' => '~~', 'Class:Enclosure/Attribute:device_list' => 'Eszközök', 'Class:Enclosure/Attribute:device_list+' => '', -)); +]); // // Class: ApplicationSolution // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ApplicationSolution' => 'Alkalmazásmegoldás', 'Class:ApplicationSolution+' => 'Több alkalmazás és CI kombinációja egy adott feladatra', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CI-k', @@ -502,13 +502,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'A megoldás akkor működik, ha minden CI működik.', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'A megoldás akkor működik, ha legalább %1$s CI működik', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'A megoldás akkor működik, ha legalább %1$s a %%-ből CI működik', -)); +]); // // Class: BusinessProcess // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:BusinessProcess' => 'Üzleti folyamat', 'Class:BusinessProcess+' => 'Személyek, szolgáltatások és CI-k értékteremtő kombinációja', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Alkalmazásmegoldások', @@ -519,13 +519,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'active~~', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'Inaktív', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'inactive~~', -)); +]); // // Class: SoftwareInstance // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:SoftwareInstance' => 'Szoftverpéldány', 'Class:SoftwareInstance+' => 'A szoftver telepített példányai', 'Class:SoftwareInstance/Attribute:system_id' => 'Rendszer', @@ -548,64 +548,64 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => '', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'Inaktív', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => '', -)); +]); // // Class: Middleware // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => 'Köztes szoftver rendszerek összekötéséhez', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware példányok', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'Middleware példányok melyeket ez a middleware biztosít', -)); +]); // // Class: DBServer // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DBServer' => 'Adatbázis szerver', 'Class:DBServer+' => 'Adatbázis kiszolgáló', 'Class:DBServer/Attribute:dbschema_list' => 'DB sémák', 'Class:DBServer/Attribute:dbschema_list+' => 'A DB szerver adatbázis sémái', -)); +]); // // Class: WebServer // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:WebServer' => 'Webszerver', 'Class:WebServer+' => 'Webkiszolgáló', 'Class:WebServer/Attribute:webapp_list' => 'Webalkalmazások', 'Class:WebServer/Attribute:webapp_list+' => 'Webalkalmazások, melyek elérhetőek ezen a webszerveren', -)); +]); // // Class: PCSoftware // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:PCSoftware' => 'PC Szoftver', 'Class:PCSoftware+' => 'Személyi számítógép szoftverei', -)); +]); // // Class: OtherSoftware // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:OtherSoftware' => 'Egyéb szoftver', 'Class:OtherSoftware+' => '~~', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:MiddlewareInstance' => 'Middleware Példány', 'Class:MiddlewareInstance+' => '~~', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s~~', @@ -613,13 +613,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '~~', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Middleware név', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '~~', -)); +]); // // Class: DatabaseSchema // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DatabaseSchema' => 'Adatbázis séma', 'Class:DatabaseSchema+' => '~~', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s~~', @@ -627,13 +627,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '~~', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'DB szerver név', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '~~', -)); +]); // // Class: WebApplication // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:WebApplication' => 'Webalkalmazás', 'Class:WebApplication+' => '~~', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s~~', @@ -643,14 +643,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:WebApplication/Attribute:webserver_name+' => '~~', 'Class:WebApplication/Attribute:url' => 'URL~~', 'Class:WebApplication/Attribute:url+' => '~~', -)); - +]); // // Class: VirtualDevice // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:VirtualDevice' => 'Virtuális eszköz', 'Class:VirtualDevice+' => '~~', 'Class:VirtualDevice/Attribute:status' => 'Állapot', @@ -665,24 +664,24 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'stock~~', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logikai kötetek', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Logikai kötetek, amiket ez az eszköz használ', -)); +]); // // Class: VirtualHost // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:VirtualHost' => 'Virtuális gazdagép', 'Class:VirtualHost+' => '~~', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtuális gépek', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Virtuális gépek, amelyeket ez a gazdagép futtat', -)); +]); // // Class: Hypervisor // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => 'Virtuális gépeket futtató szoftver', 'Class:Hypervisor/Attribute:farm_id' => 'Szerverfarm', @@ -693,13 +692,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Hypervisor/Attribute:server_id+' => '~~', 'Class:Hypervisor/Attribute:server_name' => 'Szerver név', 'Class:Hypervisor/Attribute:server_name+' => '~~', -)); +]); // // Class: Farm // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Farm' => 'Szerverfarm', 'Class:Farm+' => 'Szerverek egy klaszterben', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisor-ok', @@ -708,13 +707,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Farm/Attribute:redundancy/disabled' => 'A farm működik, ha az összes hypervisor működik.', 'Class:Farm/Attribute:redundancy/count' => 'A farm működik, ha legalább %1$s hypervisor működik', 'Class:Farm/Attribute:redundancy/percent' => 'A farm működik, ha legalább %1$s a %%-ből hypervisor működik.', -)); +]); // // Class: VirtualMachine // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:VirtualMachine' => 'Virtuális gép', 'Class:VirtualMachine+' => '~~', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s~~', @@ -742,13 +741,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:VirtualMachine/Attribute:managementip+' => '~~', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Hálózati csatolók', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Logikai hálózati csatolók', -)); +]); // // Class: LogicalVolume // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:LogicalVolume' => 'Logikai kötet', 'Class:LogicalVolume+' => '~~', 'Class:LogicalVolume/Attribute:name' => 'Név', @@ -769,13 +768,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Szerverek, melyek ezt a kötetet használják', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuális eszközök', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Virtuális eszközök, melyek ezt a kötetet használják', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkServerToVolume' => 'Szerver / Kötet', 'Class:lnkServerToVolume+' => '~~', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~', @@ -789,13 +788,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '~~', 'Class:lnkServerToVolume/Attribute:size_used' => 'Felhasznált tárhely', 'Class:lnkServerToVolume/Attribute:size_used+' => '~~', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkVirtualDeviceToVolume' => 'Virtuális eszköz / Kötet', 'Class:lnkVirtualDeviceToVolume+' => '~~', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s~~', @@ -809,13 +808,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '~~', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Felhasznált tárhely', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '~~', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkSanToDatacenterDevice' => 'SAN / Adatközpont eszköz', 'Class:lnkSanToDatacenterDevice+' => '~~', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~', @@ -831,13 +830,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '~~', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Eszköz FC port', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '~~', -)); +]); // // Class: Tape // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Tape' => 'Szalag', 'Class:Tape+' => '~~', 'Class:Tape/Attribute:name' => 'Szalag név', @@ -850,13 +849,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Tape/Attribute:tapelibrary_id+' => '~~', 'Class:Tape/Attribute:tapelibrary_name' => 'Szalagos tároló név', 'Class:Tape/Attribute:tapelibrary_name+' => '~~', -)); +]); // // Class: NASFileSystem // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:NASFileSystem' => 'NAS Fájlrendszer', 'Class:NASFileSystem+' => '~~', 'Class:NASFileSystem/Attribute:name' => 'Fájlrendszer név', @@ -871,13 +870,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:NASFileSystem/Attribute:nas_id+' => '~~', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS név', 'Class:NASFileSystem/Attribute:nas_name+' => '~~', -)); +]); // // Class: Software // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Software' => 'Szoftver', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s~~', @@ -907,13 +906,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Software/Attribute:softwarepatch_list+' => 'A szoftver javítócsomagjai', 'Class:Software/Attribute:softwarelicence_list' => 'Szoftver licencek', 'Class:Software/Attribute:softwarelicence_list+' => 'A szoftver licencei', -)); +]); // // Class: Patch // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Patch' => 'Szervizcsomag', 'Class:Patch+' => 'Szoftver patch', 'Class:Patch/Attribute:name' => 'Szervizcsomag név', @@ -924,13 +923,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Szervizcsomag típus', 'Class:Patch/Attribute:finalclass+' => 'A végső osztály neve', -)); +]); // // Class: OSPatch // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:OSPatch' => 'OS javítócsomag', 'Class:OSPatch+' => 'Operációs rendszer szervizcsomag', 'Class:OSPatch/Attribute:functionalcis_list' => 'Eszközök', @@ -939,13 +938,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:OSPatch/Attribute:osversion_id+' => '~~', 'Class:OSPatch/Attribute:osversion_name' => 'OS verzió név', 'Class:OSPatch/Attribute:osversion_name+' => '~~', -)); +]); // // Class: SoftwarePatch // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:SoftwarePatch' => 'Szoftver szervizcsomag', 'Class:SoftwarePatch+' => '~~', 'Class:SoftwarePatch/Attribute:software_id' => 'Szoftver', @@ -954,13 +953,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:SoftwarePatch/Attribute:software_name+' => '~~', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Szoftverpéldányok', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Rendszerek, amelyekre telepítve van ez a szoftverjavítás', -)); +]); // // Class: Licence // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Licence' => 'Licenc', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => 'Licenc név', @@ -989,13 +988,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'yes~~', 'Class:Licence/Attribute:finalclass' => 'Licenc típus', 'Class:Licence/Attribute:finalclass+' => 'A végső osztály neve', -)); +]); // // Class: OSLicence // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:OSLicence' => 'OS Licenc', 'Class:OSLicence+' => '~~', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1007,13 +1006,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'Virtuális gépek, melyek ezt a licencet használják', 'Class:OSLicence/Attribute:servers_list' => 'Szerverek', 'Class:OSLicence/Attribute:servers_list+' => 'Szerverek, melyek ezt a licencet használják', -)); +]); // // Class: SoftwareLicence // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:SoftwareLicence' => 'Szoftver licenc', 'Class:SoftwareLicence+' => '~~', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1023,13 +1022,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:SoftwareLicence/Attribute:software_name+' => '~~', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Szoftverpéldányok', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Rendszerek, melyek ezt a licencet használják', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDocumentToLicence' => 'Dokumentum / Licenc', 'Class:lnkDocumentToLicence+' => '~~', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~', @@ -1041,35 +1040,35 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '~~', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Dokumentum név', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '~~', -)); +]); // // Class: OSVersion // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:OSVersion' => 'OS Verzió', 'Class:OSVersion+' => '~~', 'Class:OSVersion/Attribute:osfamily_id' => 'OS család', 'Class:OSVersion/Attribute:osfamily_id+' => '~~', 'Class:OSVersion/Attribute:osfamily_name' => 'OS család név', 'Class:OSVersion/Attribute:osfamily_name+' => '~~', -)); +]); // // Class: OSFamily // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:OSFamily' => 'OS család', 'Class:OSFamily+' => '~~', -)); +]); // // Class: Brand // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Brand' => 'Gyártó', 'Class:Brand+' => '~~', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1078,13 +1077,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'Ennek a gyártónak a fizikai eszközei', 'Class:Brand/UniquenessRule:name+' => '', 'Class:Brand/UniquenessRule:name' => 'Ez a gyártó már létezik', -)); +]); // // Class: Model // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Model' => 'Modell', 'Class:Model+' => '~~', 'Class:Model/ComplementaryName' => '%1$s - %2$s~~', @@ -1136,37 +1135,37 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Model/Attribute:physicaldevices_list+' => 'Fizikai eszközök melyek ehhez a modellszámhoz tartoznak', 'Class:Model/UniquenessRule:name_brand+' => 'A névnek egyedinek kell lennie a gyártón belül', 'Class:Model/UniquenessRule:name_brand' => 'A gyártó ezen modellje már létezik', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:NetworkDeviceType' => 'Hálózati eszköz típus', 'Class:NetworkDeviceType+' => '~~', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Hálózati eszközök', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Ilyen típusú hálózati eszközök', -)); +]); // // Class: IOSVersion // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:IOSVersion' => 'IOS Verzió', 'Class:IOSVersion+' => 'A hálózati eszköz firmware-je', 'Class:IOSVersion/Attribute:brand_id' => 'Gyártó', 'Class:IOSVersion/Attribute:brand_id+' => '~~', 'Class:IOSVersion/Attribute:brand_name' => 'Gyártó név', 'Class:IOSVersion/Attribute:brand_name+' => '~~', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDocumentToPatch' => 'Dokumentum / Szervizcsomag', 'Class:lnkDocumentToPatch+' => '~~', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~', @@ -1178,13 +1177,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '~~', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Dokumentum név', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Szoftverpéldány / Szoftver szervizcsomag', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '~~', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~', @@ -1196,13 +1195,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '~~', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Szoftverpéldány név', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkFunctionalCIToOSPatch' => 'Funkcionális CI / OS szervizcsomag', 'Class:lnkFunctionalCIToOSPatch+' => '~~', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~', @@ -1214,13 +1213,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Funkcionális CI név', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDocumentToSoftware' => 'Dokumentum / Szoftver', 'Class:lnkDocumentToSoftware+' => '~~', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~', @@ -1232,13 +1231,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '~~', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Dokumentum név', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '~~', -)); +]); // // Class: Subnet // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Subnet' => 'Alhálózat', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s~~', @@ -1257,13 +1256,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLAN-ok', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '~~', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag', @@ -1278,13 +1277,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:VLAN/Attribute:subnets_list+' => '~~', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Fizikai hálózati csatolók', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '~~', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkSubnetToVLAN' => 'Alhálózat / VLAN', 'Class:lnkSubnetToVLAN+' => '~~', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s~~', @@ -1298,26 +1297,26 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '~~', -)); +]); // // Class: NetworkInterface // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:NetworkInterface' => 'Hálózati csatoló', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Név', 'Class:NetworkInterface/Attribute:name+' => '~~', 'Class:NetworkInterface/Attribute:finalclass' => 'Hálózati csatoló típus', 'Class:NetworkInterface/Attribute:finalclass+' => 'A végső osztály neve', -)); +]); // // Class: IPInterface // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:IPInterface' => 'IP csatoló', 'Class:IPInterface+' => '~~', 'Class:IPInterface/Attribute:ipaddress' => 'IP cím', @@ -1332,13 +1331,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:IPInterface/Attribute:ipmask+' => '~~', 'Class:IPInterface/Attribute:speed' => 'Sebesség', 'Class:IPInterface/Attribute:speed+' => '~~', -)); +]); // // Class: PhysicalInterface // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:PhysicalInterface' => 'Fizikai csatoló', 'Class:PhysicalInterface+' => '~~', 'Class:PhysicalInterface/Name' => '%2$s %1$s~~', @@ -1348,13 +1347,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '~~', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLAN-ok', 'Class:PhysicalInterface/Attribute:vlans_list+' => '~~', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Fizikai csatoló / VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~', @@ -1370,27 +1369,26 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '~~', -)); - +]); // // Class: LogicalInterface // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:LogicalInterface' => 'Logikai csatoló', 'Class:LogicalInterface+' => '~~', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtuális gép', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '~~', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Virtuális gép név', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:FiberChannelInterface' => 'FC csatoló', 'Class:FiberChannelInterface+' => '~~', 'Class:FiberChannelInterface/Attribute:speed' => 'Sebesség', @@ -1403,13 +1401,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '~~', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Eszköz név', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '~~', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Kapcsolható CI / Hálózati eszköz', 'Class:lnkConnectableCIToNetworkDevice+' => 'Hálózati csatlakozással rendelkező eszközök', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~', @@ -1431,13 +1429,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'bejövő link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'Kimenő', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'kimenő link', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Alkalmazásmegoldás / Funkcionális CI', 'Class:lnkApplicationSolutionToFunctionalCI+' => '~~', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1449,13 +1447,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '~~', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Funkcionális CI név', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Alkalmazásmegoldás / Üzleti folyamat', 'Class:lnkApplicationSolutionToBusinessProcess+' => '~~', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~', @@ -1467,13 +1465,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '~~', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Alkalmazásmegoldás név', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '~~', -)); +]); // // Class: Group // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Group' => 'Csoport', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s~~', @@ -1503,13 +1501,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Group/Attribute:ci_list+' => '', 'Class:Group/Attribute:parent_id_friendlyname' => 'Fölérendelt csoport név', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkGroupToCI' => 'CI csoport / CI', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~', @@ -1523,11 +1521,11 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Indoklás', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Server:baseinfo' => 'Általános információ', 'Server:Date' => 'Dátumok', 'Server:moreinfo' => 'További információ', @@ -1540,14 +1538,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Szabad IP címek: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => '10 szabad IP cím kivonata', 'Class:Document:PreviewTab' => 'Előnézet', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDocumentToFunctionalCI' => 'Dokumentum / Funkcionális CI', 'Class:lnkDocumentToFunctionalCI+' => '~~', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1559,13 +1556,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '~~', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Dokumentum név', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '~~', -)); +]); // // Application Menu // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Menu:Application' => 'Alkalmazások', 'Menu:Application+' => '', 'Menu:DBServer' => 'Adatbázis szerverek', @@ -1610,15 +1607,15 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Szoftverkatalógus', 'Menu:Software+' => 'Szoftverek', -)); +]); // // Class: PhysicalInterface // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/ja.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/ja.dict.itop-config-mgmt.php index fa5a6aafa..1851ae423 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/ja.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/ja.dict.itop-config-mgmt.php @@ -1,15 +1,16 @@ 'インパクトを受ける要素', 'Relation:impacts/DownStream' => 'インパクト...', 'Relation:impacts/DownStream+' => 'インパクトを受ける要素', @@ -21,8 +22,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Relation:impacts/LoadData' => 'Load data~~', 'Relation:impacts/NoFilteredData' => 'please select objects and load data~~', 'Relation:impacts/FilteredData' => 'Filtered data~~', -)); - +]); // Dictionnay conventions // Class: @@ -65,7 +65,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( // Class: lnkContactToFunctionalCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContactToFunctionalCI' => 'リンク 連絡先/機能的CI', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -77,13 +77,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => '連絡先名', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:FunctionalCI' => '機能的CI', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => '名前', @@ -116,13 +116,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:FunctionalCI/Attribute:finalclass+' => '', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~', -)); +]); // // Class: PhysicalDevice // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:PhysicalDevice' => '物理的デバイス', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -156,13 +156,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => '保障終了日', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Rack' => 'ラック', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s~~', @@ -172,64 +172,64 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack~~', 'Class:Rack/Attribute:enclosure_list' => 'エンクロージャ', 'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack~~', -)); +]); // // Class: TelephonyCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:TelephonyCI' => '電話 CI', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => '電話番号', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Phone' => '電話', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:MobilePhone' => '携帯電話', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'ハードウエアPIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:IPPhone' => 'IP電話', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Tablet' => 'タブレット', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ConnectableCI' => '接続可能なCI', 'Class:ConnectableCI+' => '物理的なCI', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s~~', @@ -237,13 +237,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device~~', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'ネットワークインターフェース', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces~~', -)); +]); // // Class: DatacenterDevice // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DatacenterDevice' => 'データセンターデバイス', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -275,13 +275,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'The device %2$s is up if at least one power connection (A or B) is up~~', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'The device %2$s is up if all its power connections are up~~', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'The device %2$s is up if at least %1$s %% of its power connections are up~~', -)); +]); // // Class: NetworkDevice // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:NetworkDevice' => 'ネットワークデバイス', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -297,13 +297,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Server' => 'サーバ', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s~~', @@ -325,61 +325,61 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => '論理ボリューム', 'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~', -)); +]); // // Class: StorageSystem // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:StorageSystem' => 'ストレージシステム', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~', 'Class:StorageSystem/Attribute:logicalvolume_list' => '論理ボリューム', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system~~', -)); +]); // // Class: SANSwitch // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:SANSwitch' => 'SANスイッチ', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s~~', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'デバイス', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch~~', -)); +]); // // Class: TapeLibrary // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:TapeLibrary' => 'テープライブラリ', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~', 'Class:TapeLibrary/Attribute:tapes_list' => 'テープ', 'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library~~', -)); +]); // // Class: NAS // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s~~', 'Class:NAS/Attribute:nasfilesystem_list' => 'ファイルシステム', 'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS~~', -)); +]); // // Class: PC // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s~~', @@ -401,45 +401,45 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:PC/Attribute:type/Value:desktop+' => 'デスクトップ', 'Class:PC/Attribute:type/Value:laptop' => 'ラップトップ', 'Class:PC/Attribute:type/Value:laptop+' => 'ラップトップ', -)); +]); // // Class: Printer // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Printer' => 'プリンター', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerConnection // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:PowerConnection' => '電源接続', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerSource // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:PowerSource' => '電源', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s~~', 'Class:PowerSource/Attribute:pdus_list' => 'PDU', 'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source~~', -)); +]); // // Class: PDU // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s~~', @@ -451,23 +451,23 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'パワースタート名', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Peripheral' => '周辺', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: Enclosure // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Enclosure' => 'エンクロージャ', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -479,13 +479,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => 'デバイス', 'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure~~', -)); +]); // // Class: ApplicationSolution // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ApplicationSolution' => 'アプリケーションソリューション', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CI', @@ -502,13 +502,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'The solution is up if all CIs are up~~', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'The solution is up if at least %1$s CI(s) is(are) up~~', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'The solution is up if at least %1$s %% of the CIs are up~~', -)); +]); // // Class: BusinessProcess // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:BusinessProcess' => 'ビジネスプロセス', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'アプリケーションソリューション', @@ -519,13 +519,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'アクティブ', 'Class:BusinessProcess/Attribute:status/Value:inactive' => '非アクティブ', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => '非アクティブ', -)); +]); // // Class: SoftwareInstance // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:SoftwareInstance' => 'ソフトウエアインスタンス', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'システム', @@ -548,64 +548,64 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'アクティブ', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => '非アクティブ', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => '非アクティブ', -)); +]); // // Class: Middleware // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Middleware' => 'ミドルウエア', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'ミドルウエアインスタンス', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware~~', -)); +]); // // Class: DBServer // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DBServer' => 'DBサーバ', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'DBスキーマ', 'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server~~', -)); +]); // // Class: WebServer // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:WebServer' => 'Webサーバ', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Webアプリケーション', 'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server~~', -)); +]); // // Class: PCSoftware // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:PCSoftware' => 'PCソフトウエア', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:OtherSoftware' => '他のソフトウエア', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:MiddlewareInstance' => 'ミドルウエアインスタンス', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s~~', @@ -613,13 +613,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'ミドルウエア名', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DatabaseSchema' => 'DBスキーマ', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s~~', @@ -627,13 +627,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'DBサーバ名', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:WebApplication' => 'Webアプリケーション', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s~~', @@ -643,14 +643,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:VirtualDevice' => 'バーチャルデバイス', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => '状態', @@ -665,24 +664,24 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => '保存', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => '論理ボリューム', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device~~', -)); +]); // // Class: VirtualHost // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:VirtualHost' => '仮想ホスト', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => '仮想マシン', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host~~', -)); +]); // // Class: Hypervisor // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Hypervisor' => 'ハイパーバイザー', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'ファーム', @@ -693,13 +692,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'サーバ名', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Farm' => 'ファーム', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'ハイパーバイザー', @@ -708,13 +707,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Farm/Attribute:redundancy/disabled' => 'The farm is up if all the hypervisors are up~~', 'Class:Farm/Attribute:redundancy/count' => 'The farm is up if at least %1$s hypervisor(s) is(are) up~~', 'Class:Farm/Attribute:redundancy/percent' => 'The farm is up if at least %1$s %% of the hypervisors are up~~', -)); +]); // // Class: VirtualMachine // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:VirtualMachine' => '仮想マシン', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s~~', @@ -742,13 +741,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'ネットワークインターフェース', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:LogicalVolume' => '論理ボリューム', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => '名前', @@ -769,13 +768,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume~~', 'Class:LogicalVolume/Attribute:virtualdevices_list' => '仮想デバイス', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume~~', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkServerToVolume' => 'リンクサーバ/ボリューム', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~', @@ -789,13 +788,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => '使用サイズ', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkVirtualDeviceToVolume' => 'リンク 仮想デバイス/ボリューム', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s~~', @@ -809,13 +808,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => '使用サイズ', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkSanToDatacenterDevice' => 'リンク San/データセンターデバイス', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~', @@ -831,13 +830,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'デバイスfc', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Tape' => 'テープ', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => '名前', @@ -850,13 +849,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'テープライブラリ名', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:NASFileSystem' => 'NASファイルシステム', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => '名前', @@ -871,13 +870,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS名', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Software' => 'ソフトウエア', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s~~', @@ -907,13 +906,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software~~', 'Class:Software/Attribute:softwarelicence_list' => 'ソフトウエアライセンス', 'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software~~', -)); +]); // // Class: Patch // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Patch' => 'パッチ', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => '名前', @@ -924,13 +923,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'タイプ', 'Class:Patch/Attribute:finalclass+' => '', -)); +]); // // Class: OSPatch // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:OSPatch' => 'OSパッチ', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'デバイス', @@ -939,13 +938,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'OSバージョン名', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:SoftwarePatch' => 'ソフトウエアパッチ', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'ソフトウエア', @@ -954,13 +953,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'ソフトウエアインスタンス', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed~~', -)); +]); // // Class: Licence // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Licence' => 'ライセンス', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => '名前', @@ -989,13 +988,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => '', 'Class:Licence/Attribute:finalclass' => 'タイプ', 'Class:Licence/Attribute:finalclass+' => '', -)); +]); // // Class: OSLicence // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:OSLicence' => 'OSライセンス', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1007,13 +1006,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used~~', 'Class:OSLicence/Attribute:servers_list' => 'サーバ', 'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used~~', -)); +]); // // Class: SoftwareLicence // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:SoftwareLicence' => 'ソフトウエアライセンス', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1023,13 +1022,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'ソフトウエアインスタンス', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used~~', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDocumentToLicence' => 'リンク 文書/ライセンス', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~', @@ -1041,35 +1040,35 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => '文書名', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:OSVersion' => 'OSバージョン', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'OSファミリ', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'OSファミリ名', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:OSFamily' => 'OSファミリ', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Brand' => 'ブランド', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1078,13 +1077,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand~~', 'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~', 'Class:Brand/UniquenessRule:name' => 'This brand already exists~~', -)); +]); // // Class: Model // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Model' => 'モデル', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s~~', @@ -1136,37 +1135,37 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model~~', 'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~', 'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:NetworkDeviceType' => 'ネットワークデバイスタイプ', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'ネットワークデバイス', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type~~', -)); +]); // // Class: IOSVersion // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:IOSVersion' => 'IOSバージョン', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'ブランド', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'ブランド名', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDocumentToPatch' => 'リンク 文書/パッチ', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~', @@ -1178,13 +1177,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => '文書名', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'リンク ソフトウエアインスタンス/ソフトウエアパッチ', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~', @@ -1196,13 +1195,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'ソフトウエアインスタンス名', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkFunctionalCIToOSPatch' => 'リンク 機能的CI/OSパッチ', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~', @@ -1214,13 +1213,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => '機能的ci名', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDocumentToSoftware' => 'リンク 文書/ソフトウエア', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~', @@ -1232,13 +1231,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => '文書名', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Subnet' => 'サブネット', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s~~', @@ -1257,13 +1256,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLANs~~', 'Class:Subnet/Attribute:vlans_list+' => '~~', -)); +]); // // Class: VLAN // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:VLAN' => 'VLAN~~', 'Class:VLAN+' => '~~', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag~~', @@ -1278,13 +1277,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:VLAN/Attribute:subnets_list+' => '~~', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Physical network interfaces~~', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '~~', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkSubnetToVLAN' => 'Link Subnet / VLAN~~', 'Class:lnkSubnetToVLAN+' => '~~', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s~~', @@ -1298,26 +1297,26 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag~~', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '~~', -)); +]); // // Class: NetworkInterface // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:NetworkInterface' => 'ネットワークインターフェース', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => '名前', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'タイプ', 'Class:NetworkInterface/Attribute:finalclass+' => '', -)); +]); // // Class: IPInterface // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:IPInterface' => 'IPインターフェース', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IPアドレス', @@ -1332,13 +1331,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => '速度', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:PhysicalInterface' => '物理インターフェース', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s~~', @@ -1348,13 +1347,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLANs~~', 'Class:PhysicalInterface/Attribute:vlans_list+' => '~~', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Link PhysicalInterface / VLAN~~', 'Class:lnkPhysicalInterfaceToVLAN+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~', @@ -1370,27 +1369,26 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag~~', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '~~', -)); - +]); // // Class: LogicalInterface // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:LogicalInterface' => '論理インターフェース', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => '仮想マシン', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => '仮想マシン名', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:FiberChannelInterface' => 'ファイバーチャネルインターフェース', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => '速度', @@ -1403,13 +1401,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'デバイス名', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkConnectableCIToNetworkDevice' => 'リンク 接続可能CI/ネットワークデバイス', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~', @@ -1431,13 +1429,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'ダウンリンク', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'アップリンク', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'アップリンク', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'リンク アプリケーションソリューション/機能的CI', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1449,13 +1447,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => '機能的ci名', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'リンク アプリケーション/ビジネスプロセス', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~', @@ -1467,13 +1465,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'アプリケーションソリューション名', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Group' => 'グループ', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s~~', @@ -1503,13 +1501,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~', 'Class:Group/Attribute:parent_id_friendlyname' => '親グループ', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkGroupToCI' => 'リンク グループ/CI', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~', @@ -1523,11 +1521,11 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => '理由', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Server:baseinfo' => '基本情報', 'Server:Date' => '日付', 'Server:moreinfo' => '追加情報', @@ -1540,14 +1538,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Subnet/Tab:FreeIPs-count' => 'フリーIP: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => '10個のフリーなIPアドレス', 'Class:Document:PreviewTab' => 'プレビュー', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDocumentToFunctionalCI' => 'リンク 文書/機能的CI', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1559,13 +1556,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => '文書名', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Menu:Application' => 'アプリケーション', 'Menu:Application+' => '全アプリケーション', 'Menu:DBServer' => 'DBサーバ', @@ -1610,15 +1607,15 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'ソフトウエアカタログ', 'Menu:Software+' => 'ソフトウエアカタログ', -)); +]); // // Class: PhysicalInterface // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/nl.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/nl.dict.itop-config-mgmt.php index a5d59c0de..487f54498 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/nl.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/nl.dict.itop-config-mgmt.php @@ -1,17 +1,18 @@ * @author Thomas Casteleyn * @author Jeffrey Bostoen (2018 - 2022) */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Relation:impacts/Description' => 'Elementen met impact van', 'Relation:impacts/DownStream' => 'Impact op...', 'Relation:impacts/DownStream+' => 'Elementen geïmpacteerd door', @@ -23,8 +24,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Relation:impacts/LoadData' => 'Laad data', 'Relation:impacts/NoFilteredData' => 'Gelieve objecten te selecteren en data te laden', 'Relation:impacts/FilteredData' => 'Gefilterde data', -)); - +]); // Dictionnay conventions // Class: @@ -67,7 +67,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( // Class: lnkContactToFunctionalCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContactToFunctionalCI' => 'Link Contact / Functioneel CI', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s', @@ -79,13 +79,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Naam contact', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:FunctionalCI' => 'Functioneel CI', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Naam', @@ -118,13 +118,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:FunctionalCI/Attribute:finalclass+' => '', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Actieve tickets', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Actieve tickets die dit configuratie-item impacteren', -)); +]); // // Class: PhysicalDevice // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:PhysicalDevice' => 'Fysieke Apparaat', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s', @@ -158,13 +158,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Einde garantieperiode', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Rack' => 'Rack', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -174,64 +174,64 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Rack/Attribute:device_list+' => 'Alle fysieke apparaten die zich bevinden in dit rack', 'Class:Rack/Attribute:enclosure_list' => 'Enclosures', 'Class:Rack/Attribute:enclosure_list+' => 'Alle enclosures in dit rack', -)); +]); // // Class: TelephonyCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:TelephonyCI' => 'Telefonie CI', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Telefoonnummer', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Phone' => 'Telefoon', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:MobilePhone' => 'Mobiele telefoon', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'PIN-code', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:IPPhone' => 'IP-telefoon', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ConnectableCI' => 'Aansluitbaar CI', 'Class:ConnectableCI+' => 'Fysiek CI', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -239,13 +239,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Alle netwerkapparaten die verbonden zijn met dit apparaat', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Netwerkinterfaces', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Alle fysieke netwerkinterfaces', -)); +]); // // Class: DatacenterDevice // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DatacenterDevice' => 'Datacenterapparaat', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -277,13 +277,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'Het toestel werkt zodra stroombron A of B beschikbaar is', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'Het toestel werkt zodra alle stroomverbindingen beschikbaar zijn', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'Het toestel werkt zodra minstens %1$s %% van de stroomverbindingen beschikbaar is', -)); +]); // // Class: NetworkDevice // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:NetworkDevice' => 'Netwerkapparaat', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s', @@ -299,13 +299,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Server' => 'Server', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -327,61 +327,61 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Logische volumes', 'Class:Server/Attribute:logicalvolumes_list+' => 'Alle logische volumes die verbonden zijn met deze server', -)); +]); // // Class: StorageSystem // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:StorageSystem' => 'Opslagsysteem', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logische volumes', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Alle logische volumes in dit opslagsysteem', -)); +]); // // Class: SANSwitch // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:SANSwitch' => 'SAN-switch', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Apparaten', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Alle apparaten verbonden met deze SAN-switch', -)); +]); // // Class: TapeLibrary // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:TapeLibrary' => 'Tapebibliotheek', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s', 'Class:TapeLibrary/Attribute:tapes_list' => 'Tapes', 'Class:TapeLibrary/Attribute:tapes_list+' => 'Alle tapes in de tapebibliotheek', -)); +]); // // Class: NAS // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s', 'Class:NAS/Attribute:nasfilesystem_list' => 'Bestandssysteem', 'Class:NAS/Attribute:nasfilesystem_list+' => 'Alle bestandsystemen in deze NAS', -)); +]); // // Class: PC // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s', @@ -403,45 +403,45 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:PC/Attribute:type/Value:desktop+' => 'Desktop', 'Class:PC/Attribute:type/Value:laptop' => 'Laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'Laptop', -)); +]); // // Class: Printer // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Printer' => 'Printer', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:PowerConnection' => 'Stroomverbinding', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:PowerSource' => 'Stroombron', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', 'Class:PowerSource/Attribute:pdus_list' => 'PDU\'s', 'Class:PowerSource/Attribute:pdus_list+' => 'Alle PDU\'s die gebruik maken van deze stroombron', -)); +]); // // Class: PDU // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s', @@ -453,23 +453,23 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Naam Power start', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Peripheral' => 'Randapparatuur', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: Enclosure // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Enclosure' => 'Enclosure', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -481,13 +481,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => 'Apparaten', 'Class:Enclosure/Attribute:device_list+' => 'Alle apparaten in deze enclosure', -)); +]); // // Class: ApplicationSolution // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ApplicationSolution' => 'Applicatie-oplossing', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CI\'s', @@ -504,13 +504,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'De oplossing werkt als alle configuratie-items actief zijn', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'De oplossing werkt als minstens %1$s configuratie-item(s) actief is/zijn', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'De oplossing werkt als minstens %1$s %% van de configuratie-items actief zijn', -)); +]); // // Class: BusinessProcess // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:BusinessProcess' => 'Bedrijfsproces', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Applicatie-oplossing', @@ -521,13 +521,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'Actief', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'Inactief', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'Inactief', -)); +]); // // Class: SoftwareInstance // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:SoftwareInstance' => 'Software-instantie', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'Systeem', @@ -550,64 +550,64 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'Actief', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'Inactief', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => 'Inactief', -)); +]); // // Class: Middleware // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware-instanties', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'Alle middleware-instanties die geleverd worden door deze middleware', -)); +]); // // Class: DBServer // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DBServer' => 'Databaseserver', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'Databaseschema\'s', 'Class:DBServer/Attribute:dbschema_list+' => 'Alle databaseschema\'s voor deze databaseserver', -)); +]); // // Class: WebServer // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:WebServer' => 'Webserver', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Webapplicaties', 'Class:WebServer/Attribute:webapp_list+' => 'Alle webapplicaties die beschikbaar zijn voor deze webserver', -)); +]); // // Class: PCSoftware // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:PCSoftware' => 'PC-software', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:OtherSoftware' => 'Overige software', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:MiddlewareInstance' => 'Middleware-instantie', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -615,13 +615,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Naam middleware', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DatabaseSchema' => 'Databaseschema', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -629,13 +629,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'Naam databaseserver', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:WebApplication' => 'Webapplicatie', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -645,14 +645,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'Link (URL)', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:VirtualDevice' => 'Virtueel apparaat', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => 'Status', @@ -667,24 +666,24 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'Voorraad', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Logical volumes', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Alle logische volumes die door dit apparaat gebruikt worden', -)); +]); // // Class: VirtualHost // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:VirtualHost' => 'Virtuele host', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Virtuele machines', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Alle virtuele machines die op deze host draaien', -)); +]); // // Class: Hypervisor // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'Farm', @@ -695,13 +694,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Naam server', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Farm' => 'Farm', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisors', @@ -710,13 +709,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Farm/Attribute:redundancy/disabled' => 'De farm is beschikbaar als alle hypervisors beschikbaar zijn.', 'Class:Farm/Attribute:redundancy/count' => 'De farm is beschikbaar als minstens %1$s hypervisor(s) actief is/zijn', 'Class:Farm/Attribute:redundancy/percent' => 'De farm is beschikbaar als minstens %1$s %% hypervisors beschikbaar zijn', -)); +]); // // Class: VirtualMachine // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:VirtualMachine' => 'Virtuele machine', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -744,13 +743,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Netwerkinterfaces', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Alle logische netwerkinterfaces', -)); +]); // // Class: LogicalVolume // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:LogicalVolume' => 'Logisch volume', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => 'Naam', @@ -771,13 +770,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Alle servers die dit volume gebruiken', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuele apparaten', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Alle virtuele apparaten die dit volume gebruiken', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkServerToVolume' => 'Link Server / Volume', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s', @@ -791,13 +790,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Gebruikte grootte', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkVirtualDeviceToVolume' => 'Link Virtueel apparaat / Volume', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -811,13 +810,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Gebruikte grootte', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkSanToDatacenterDevice' => 'Link SAN / Datacenterapparaat', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s', @@ -833,13 +832,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'FC-poort apparaat', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Tape' => 'Tape', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => 'Naam', @@ -852,13 +851,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Tapebibliotheek naam', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:NASFileSystem' => 'NAS-bestandssysteem', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => 'Naam', @@ -873,13 +872,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'Naam NAS', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Software' => 'Software', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s', @@ -909,13 +908,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Software/Attribute:softwarepatch_list+' => 'Alle patches voor deze software', 'Class:Software/Attribute:softwarelicence_list' => 'Softwarelicenties', 'Class:Software/Attribute:softwarelicence_list+' => 'Alle licenties voor deze software', -)); +]); // // Class: Patch // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Patch' => 'Patch', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Naam', @@ -926,13 +925,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Subklasse patch', 'Class:Patch/Attribute:finalclass+' => '', -)); +]); // // Class: OSPatch // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:OSPatch' => 'Besturingssysteempatch', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Apparaten', @@ -941,13 +940,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'Naam versie besturingssysteem', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:SoftwarePatch' => 'Softwarepatch', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'Software', @@ -956,13 +955,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Software-instanties', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Alle systemen waarop deze patch is geïnstalleerd', -)); +]); // // Class: Licence // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Licence' => 'Licentie', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => 'Naam', @@ -991,13 +990,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'Ja', 'Class:Licence/Attribute:finalclass' => 'Subklasse licentie', 'Class:Licence/Attribute:finalclass+' => '', -)); +]); // // Class: OSLicence // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:OSLicence' => 'Besturingssysteemlicentie', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s', @@ -1009,13 +1008,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'Alle virtuele machines die gebruik maken van deze licentie', 'Class:OSLicence/Attribute:servers_list' => 'Servers', 'Class:OSLicence/Attribute:servers_list+' => 'Alle servers die gebruik maken van deze licentie', -)); +]); // // Class: SoftwareLicence // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:SoftwareLicence' => 'Softwarelicentie', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s', @@ -1025,13 +1024,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Software-instanties', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Alle systemen die gebruik maken van deze licentie', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDocumentToLicence' => 'Link Document / Licentie', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s', @@ -1043,35 +1042,35 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Naam document', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:OSVersion' => 'Versie Besturingssysteem', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'Soort besturingssysteem', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'Naam soort besturingssysteem', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:OSFamily' => 'Soort Besturingssysteem', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Brand' => 'Merk', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1080,13 +1079,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'Alle fysieke apparaten van dit merk', 'Class:Brand/UniquenessRule:name+' => 'De naam van het merk moet uniek zijn', 'Class:Brand/UniquenessRule:name' => 'De naam van het merk bestaat al', -)); +]); // // Class: Model // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Model' => 'Model', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s', @@ -1138,37 +1137,37 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Model/Attribute:physicaldevices_list+' => 'Alle fysieke apparaten van dit model', 'Class:Model/UniquenessRule:name_brand+' => 'De naam van het merk moet uniek zijn', 'Class:Model/UniquenessRule:name_brand' => 'De naam van dit model bestaat al voor dit merk', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:NetworkDeviceType' => 'Soort netwerkapparaat', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Netwerkapparaten', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Alle netwerkapparaten van deze soort', -)); +]); // // Class: IOSVersion // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:IOSVersion' => 'Versie IOS', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Merk', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Naam merk', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDocumentToPatch' => 'Link Document / Patch', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s', @@ -1180,13 +1179,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Naam document', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Link Software-instantie / Softwarepatch', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s', @@ -1198,13 +1197,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Software instantie naam', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkFunctionalCIToOSPatch' => 'Link Functioneel CI / Besturingssysteempatch', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s', @@ -1216,13 +1215,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Naam functioneel CI', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDocumentToSoftware' => 'Link Document / Software', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s', @@ -1234,13 +1233,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Naam document', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Subnet' => 'Subnet', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s', @@ -1259,13 +1258,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLAN\'s', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN-tag', @@ -1280,13 +1279,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:VLAN/Attribute:subnets_list+' => '', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Fysieke netwerkinterfaces', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkSubnetToVLAN' => 'Link Subnet / VLAN', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1300,26 +1299,26 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'Tag VLAN', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:NetworkInterface' => 'Netwerkinterface', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Naam', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'Subklasse netwerkinterface', 'Class:NetworkInterface/Attribute:finalclass+' => '', -)); +]); // // Class: IPInterface // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:IPInterface' => 'IP-interface', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IP-adres', @@ -1334,13 +1333,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Snelheid', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:PhysicalInterface' => 'Fysieke interface', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1350,13 +1349,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLAN\'s', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Link Fysieke interface / VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s', @@ -1372,27 +1371,26 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'Tag VLAN', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:LogicalInterface' => 'Logische interface', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtuele machine', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Naam virtuele machine', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:FiberChannelInterface' => 'Fiber Channel-interface', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Snelheid', @@ -1405,13 +1403,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Naam apparaat', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Link ConnectableCI / Netwerkapparaat', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s', @@ -1433,13 +1431,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'downlink', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'uplink', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'uplink', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Link Applicatie-oplossing / Functioneel CI', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s', @@ -1451,13 +1449,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Naam functioneel CI', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Link ApplicationSolution / Bedrijfsproces', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s', @@ -1469,13 +1467,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Naam applicatie-oplossing', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Group' => 'Groep', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1505,13 +1503,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Group/Attribute:ci_list+' => 'Alle configuratie-items gelinkt aan deze groep', 'Class:Group/Attribute:parent_id_friendlyname' => 'Hoofdgroep', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkGroupToCI' => 'Link Groep / CI', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s', @@ -1525,11 +1523,11 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Reden', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Server:baseinfo' => 'Globale informatie', 'Server:Date' => 'Datum', 'Server:moreinfo' => 'Meer informatie', @@ -1542,14 +1540,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Beschikbare IP-adressen: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Dit zijn 10 beschikbare IP-adressen', 'Class:Document:PreviewTab' => 'Voorbeeld', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDocumentToFunctionalCI' => 'Link Document / Functioneel CI', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s', @@ -1561,13 +1558,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Naam document', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:Application' => 'Applicaties', 'Menu:Application+' => 'Alle applicaties', 'Menu:DBServer' => 'Databaseservers', @@ -1612,15 +1609,15 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Softwarecatalogus', 'Menu:Software+' => 'Softwarecatalogus', -)); +]); // // Class: PhysicalInterface // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/pl.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/pl.dict.itop-config-mgmt.php index 4f454e1e4..84bd23043 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/pl.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/pl.dict.itop-config-mgmt.php @@ -1,15 +1,16 @@ 'Elementy, na które ma wpływ', 'Relation:impacts/DownStream' => 'Wpływa na...', 'Relation:impacts/DownStream+' => 'Elementy, na które ma wpływ', @@ -21,8 +22,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Relation:impacts/LoadData' => 'Załaduj dane', 'Relation:impacts/NoFilteredData' => 'wybierz obiekty i załaduj dane', 'Relation:impacts/FilteredData' => 'Filtrowane dane', -)); - +]); // Dictionnay conventions // Class: @@ -65,7 +65,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( // Class: lnkContactToFunctionalCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContactToFunctionalCI' => 'Połączenie Kontakt / Konfiguracja', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s', @@ -77,13 +77,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Nazwa kontaktu', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:FunctionalCI' => 'Konfiguracje', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Nazwa', @@ -116,13 +116,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:FunctionalCI/Attribute:finalclass+' => 'Nazwa ostatniej klasy', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Aktywne zgłoszenia', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Aktywne zgłoszenia, które mają wpływ na ten element konfiguracji CI', -)); +]); // // Class: PhysicalDevice // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:PhysicalDevice' => 'Urządzenie fizyczne', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s', @@ -156,13 +156,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Koniec gwarancji', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Rack' => 'Szafa', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -172,64 +172,64 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Rack/Attribute:device_list+' => 'Wszystkie fizyczne urządzenia zamontowane w tej szafie', 'Class:Rack/Attribute:enclosure_list' => 'Obudowy', 'Class:Rack/Attribute:enclosure_list+' => 'Wszystkie obudowy w tej szafie', -)); +]); // // Class: TelephonyCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:TelephonyCI' => 'Konfiguracje telefoniczne', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Numer telefonu', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Phone' => 'Telefon', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:MobilePhone' => 'Telefon komórkowy', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'PIN sprzętu', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:IPPhone' => 'Telefon IP', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ConnectableCI' => 'Konfiguracje podłączeń', 'Class:ConnectableCI+' => 'Konfiguracje fizyczne', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -237,13 +237,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Wszystkie urządzenia sieciowe podłączone do tego urządzenia', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Interfejsy sieciowe', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Wszystkie fizyczne interfejsy sieciowe', -)); +]); // // Class: DatacenterDevice // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DatacenterDevice' => 'Urządzenie Datacenter', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -275,13 +275,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'Urządzenie działa, jeśli co najmniej jedno złącze zasilania (A lub B) jest włączone', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'Urządzenie działa, jeśli wszystkie jego połączenia zasilania są włączone', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'Urządzenie działa, jeśli przynajmniej %1$s %% z jego połączeń zasilania są wyłączone', -)); +]); // // Class: NetworkDevice // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:NetworkDevice' => 'Urządzenie sieciowe', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s', @@ -297,13 +297,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Server' => 'Serwer', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -325,61 +325,61 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Woluminy logiczne', 'Class:Server/Attribute:logicalvolumes_list+' => 'Wszystkie woluminy logiczne podłączone do tego serwera', -)); +]); // // Class: StorageSystem // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:StorageSystem' => 'System pamięci masowej', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Woluminy logiczne', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Wszystkie woluminy logiczne w tym systemie pamięci masowej', -)); +]); // // Class: SANSwitch // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:SANSwitch' => 'Przełącznik SAN', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Urządzenia Datacenter', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Wszystkie urządzenia Datacenter podłączone do tego przełącznika SAN', -)); +]); // // Class: TapeLibrary // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:TapeLibrary' => 'Biblioteka taśm', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s', 'Class:TapeLibrary/Attribute:tapes_list' => 'Taśmy', 'Class:TapeLibrary/Attribute:tapes_list+' => 'Wszystkie taśmy w bibliotece taśm', -)); +]); // // Class: NAS // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s', 'Class:NAS/Attribute:nasfilesystem_list' => 'Systemy plików', 'Class:NAS/Attribute:nasfilesystem_list+' => 'Wszystkie systemy plików na tym serwerze NAS', -)); +]); // // Class: PC // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:PC' => 'Komputer PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s', @@ -401,45 +401,45 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:PC/Attribute:type/Value:desktop+' => 'desktop', 'Class:PC/Attribute:type/Value:laptop' => 'laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'laptop', -)); +]); // // Class: Printer // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Printer' => 'Drukarka', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:PowerConnection' => 'Podłączenie zasilania', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:PowerSource' => 'Źródło zasilania', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', 'Class:PowerSource/Attribute:pdus_list' => 'PDU', 'Class:PowerSource/Attribute:pdus_list+' => 'Wszystkie PDU korzystające z tego źródła zasilania', -)); +]); // // Class: PDU // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s', @@ -451,23 +451,23 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Nazwa dystrybucji zasilania', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Peripheral' => 'Peryferia', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: Enclosure // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Enclosure' => 'Obudowa', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -479,13 +479,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => 'Urządzenia', 'Class:Enclosure/Attribute:device_list+' => 'Wszystkie urządzenia w tej obudowie', -)); +]); // // Class: ApplicationSolution // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ApplicationSolution' => 'Zastosowane rozwiązanie', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'Konfiguracje', @@ -502,13 +502,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'Rozwiązanie działa, jeśli wszystkie elementy konfiguracji działają', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'Rozwiązanie jest gotowe, jeśli przynajmniej %1$s element(y) konfiguracji jest(są) włączony(e)', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'Rozwiązanie jest gotowe, jeśli przynajmniej %1$s %% elementów konfiguracji jest włączonych', -)); +]); // // Class: BusinessProcess // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:BusinessProcess' => 'Proces biznesowy', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Rozwiązania aplikacyjne', @@ -519,13 +519,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'aktywny', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'nieaktywny', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'nieaktywny', -)); +]); // // Class: SoftwareInstance // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:SoftwareInstance' => 'Instancja oprogramowania', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'System', @@ -548,64 +548,64 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'aktywna', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'nieaktywna', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => 'nieaktywna', -)); +]); // // Class: Middleware // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Middleware' => 'Oprogramowanie pośredniczące', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Instancje oprogramowania pośredniczące', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'Wszystkie wystąpienia oprogramowania pośredniczącego zapewniane przez to oprogramowanie pośredniczące', -)); +]); // // Class: DBServer // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DBServer' => 'Serwer bazy danych', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => 'Schematy bazy danych', 'Class:DBServer/Attribute:dbschema_list+' => 'Wszystkie schematy bazy danych dla tego serwera bazy danych', -)); +]); // // Class: WebServer // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:WebServer' => 'Serwer WWW', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Aplikacje WWW', 'Class:WebServer/Attribute:webapp_list+' => 'Wszystkie aplikacje WWW dostępne na tym serwerze WWW', -)); +]); // // Class: PCSoftware // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:PCSoftware' => 'Oprogramowanie komputerowe', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:OtherSoftware' => 'Inne oprogramowanie', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:MiddlewareInstance' => 'Instancja oprogramowania pośredniczącego', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -613,13 +613,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Nazwa oprogramowania pośredniczącego', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DatabaseSchema' => 'Schemat bazy danych', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -627,13 +627,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'Nazwa serwera bazy danych', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:WebApplication' => 'Aplikacja WWW', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -643,14 +643,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:VirtualDevice' => 'Urządzenie wirtualne', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => 'Status', @@ -665,24 +664,24 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'na zapasie', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Woluminy logiczne', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Wszystkie woluminy logiczne używane przez to urządzenie', -)); +]); // // Class: VirtualHost // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:VirtualHost' => 'Host wirtualny', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Maszyny wirtualne', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Wszystkie maszyny wirtualne hostowane przez tego hosta', -)); +]); // // Class: Hypervisor // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Hypervisor' => 'Nadzorca (Hiperwizor)', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => 'Farma', @@ -693,13 +692,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Nazwa serwera', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Farm' => 'Farma', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => 'Nadzorcy (Hiperwizory)', @@ -708,13 +707,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Farm/Attribute:redundancy/disabled' => 'Farma działa, jeśli wszystkie hiperwizory działają', 'Class:Farm/Attribute:redundancy/count' => 'Farma działa, jeśli co najmniej %1$s hiperwizor(y) działa(ją)', 'Class:Farm/Attribute:redundancy/percent' => 'Farma działa, jeśli co najmniej %1$s %% hiperwizorów działa', -)); +]); // // Class: VirtualMachine // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:VirtualMachine' => 'Maszyna wirtualna', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -742,13 +741,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Interfejsy sieciowe', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Wszystkie logiczne interfejsy sieciowe', -)); +]); // // Class: LogicalVolume // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:LogicalVolume' => 'Wolumin logiczny', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => 'Nazwa', @@ -769,13 +768,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Wszystkie serwery korzystające z tego woluminu', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Urządzenia wirtualne', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Wszystkie urządzenia wirtualne korzystające z tego woluminu', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkServerToVolume' => 'Połączenie serwer / wolumin', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s', @@ -789,13 +788,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Używany rozmiar', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkVirtualDeviceToVolume' => 'Połączenie urządzenie wirtualne / wolumin', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -809,13 +808,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Używany rozmiar', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkSanToDatacenterDevice' => 'Połączenie przełącznik SAN / Datacenter', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s', @@ -831,13 +830,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Urządzenie fc (FibreChannel)', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Tape' => 'Taśma', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => 'Nazwa', @@ -850,13 +849,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Nazwa biblioteki taśm', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:NASFileSystem' => 'System plików NAS', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => 'Nazwa', @@ -871,13 +870,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'Nazwa NAS', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Software' => 'Oprogramowanie', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s', @@ -907,13 +906,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Software/Attribute:softwarepatch_list+' => 'Wszystkie poprawki do tego oprogramowania', 'Class:Software/Attribute:softwarelicence_list' => 'Licencje na oprogramowanie', 'Class:Software/Attribute:softwarelicence_list+' => 'Wszystkie licencje na to oprogramowanie', -)); +]); // // Class: Patch // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Patch' => 'Poprawka', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Nazwa', @@ -924,13 +923,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Podklasa poprawki', 'Class:Patch/Attribute:finalclass+' => 'Nazwa ostatniej klasy', -)); +]); // // Class: OSPatch // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:OSPatch' => 'Poprawka OS', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Urządzenia', @@ -939,13 +938,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'Nazwa wersji OS', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:SoftwarePatch' => 'Poprawka oprogramowania', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'Oprogramowanie', @@ -954,13 +953,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Instancje oprogramowania', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Wszystkie systemy, w których jest zainstalowana ta poprawka oprogramowania', -)); +]); // // Class: Licence // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Licence' => 'Licencja', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => 'Nazwa', @@ -989,13 +988,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'tak', 'Class:Licence/Attribute:finalclass' => 'Podklasa licencji', 'Class:Licence/Attribute:finalclass+' => 'Nazwa ostatniej klasy', -)); +]); // // Class: OSLicence // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:OSLicence' => 'Licencja OS', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s', @@ -1007,13 +1006,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'Wszystkie maszyny wirtualne, na których jest używana ta licencja', 'Class:OSLicence/Attribute:servers_list' => 'Serwery', 'Class:OSLicence/Attribute:servers_list+' => 'Wszystkie serwery, na których jest używana ta licencja', -)); +]); // // Class: SoftwareLicence // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:SoftwareLicence' => 'Licencja oprogramowania', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s', @@ -1023,13 +1022,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Instancje oprogramowania', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Wszystkie systemy, na których używana jest ta licencja', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDocumentToLicence' => 'Połączenie dokument / licencjia', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s', @@ -1041,35 +1040,35 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Nazwa dokumentu', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:OSVersion' => 'Wersja OS', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => 'Rodzina OS', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'Nazwa rodziny OS', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:OSFamily' => 'Rodzina OS', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Brand' => 'Marka', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1078,13 +1077,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'Wszystkie fizyczne urządzenia tej marki', 'Class:Brand/UniquenessRule:name+' => 'Nazwa musi być niepowtarzalna', 'Class:Brand/UniquenessRule:name' => 'Ta marka już istnieje', -)); +]); // // Class: Model // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Model' => 'Model', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s', @@ -1136,37 +1135,37 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Model/Attribute:physicaldevices_list+' => 'Wszystkie fizyczne urządzenia odpowiadające temu modelowi', 'Class:Model/UniquenessRule:name_brand+' => 'Nazwa musi być niepowtarzalna w ramach marki', 'Class:Model/UniquenessRule:name_brand' => 'ten model już istnieje dla tej marki', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:NetworkDeviceType' => 'Typ urządzenia sieciowego', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Urządzenia sieciowe', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Wszystkie urządzenia sieciowe odpowiadające temu typowi', -)); +]); // // Class: IOSVersion // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:IOSVersion' => 'Wersja IOS', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Marka', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Nazwa marki', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDocumentToPatch' => 'Połączenie dokument / poprawka', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s', @@ -1178,13 +1177,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Nazwa dokumentu', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Połączenie instancja oprogramowania / poprawkę oprogramowania', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s', @@ -1196,13 +1195,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Nazwa instancji oprogramowania', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkFunctionalCIToOSPatch' => 'Połączenie Konfiguracja / Poprawka OS', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s', @@ -1214,13 +1213,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Nazwa konfiguracji', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDocumentToSoftware' => 'Połączenie dokument / oprogramowanie', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s', @@ -1232,13 +1231,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Nazwa dokumentu', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Subnet' => 'Podsieć', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s', @@ -1257,13 +1256,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'Sieci VLAN', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:VLAN' => 'Sieć VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'Tag sieci VLAN', @@ -1278,13 +1277,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:VLAN/Attribute:subnets_list+' => '', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Fizyczne interfejsy sieciowe', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkSubnetToVLAN' => 'Połączenie podsieć / sieć VLAN', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1298,26 +1297,26 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'Tag sieci VLAN', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:NetworkInterface' => 'Interfejs sieciowy', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Nazwa', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'Podklasa interfejsu sieciowego', 'Class:NetworkInterface/Attribute:finalclass+' => 'Nazwa ostatniej klasy', -)); +]); // // Class: IPInterface // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:IPInterface' => 'Interfejs IP', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'Adres IP', @@ -1332,13 +1331,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Prędkość', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:PhysicalInterface' => 'Interfejs fizyczny', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1348,13 +1347,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'Sieci VLAN', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Połączenie interfejs fizyczny / sieć VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s', @@ -1370,27 +1369,26 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'Tag sieci VLAN', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:LogicalInterface' => 'Interfejs logiczny', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Maszyna wirtualna', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Nazwa maszyny wirtualnej', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:FiberChannelInterface' => 'Interfejs Fibre Channel', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Prędkość', @@ -1403,13 +1401,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Nazwa urządzenia', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Połączenie Konfiguracja podłączeń / Urządzenie sieciowe', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s', @@ -1431,13 +1429,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'rozłączone', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'połączone', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'połączone', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Połączenie Zastosowane rozwiązanie / Konfiguracja', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s', @@ -1449,13 +1447,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Nazwa konfiguracji', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Połączenie Zastosowane rozwiązanie / proces biznesowy', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s', @@ -1467,13 +1465,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Nazwa zastosowanego rozwiązania', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Group' => 'Grupa', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1503,13 +1501,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Group/Attribute:ci_list+' => 'Wszystkie elementy konfiguracji połączone z tą grupą', 'Class:Group/Attribute:parent_id_friendlyname' => 'Grupa nadrzędna', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkGroupToCI' => 'Połączenie Grupa / Konfiguracja', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s', @@ -1523,11 +1521,11 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Powód', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Server:baseinfo' => 'Informacje ogólne', 'Server:Date' => 'Daty', 'Server:moreinfo' => 'Więcej informacji', @@ -1540,14 +1538,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Wolne adresy IP: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Oto fragment 10 bezpłatnych adresów IP', 'Class:Document:PreviewTab' => 'Podgląd', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDocumentToFunctionalCI' => 'Połączenie Dokument / Konfiguracja', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s', @@ -1559,13 +1556,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Nazwa dokumentu', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Menu:Application' => 'Aplikacje', 'Menu:Application+' => 'Wszystkie aplikacje', 'Menu:DBServer' => 'Serwery baz danych', @@ -1610,15 +1607,15 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Menu:OSVersion+' => '', 'Menu:Software' => 'Katalog oprogramowania', 'Menu:Software+' => 'Katalog oprogramowania', -)); +]); // // Class: PhysicalInterface // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/ru.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/ru.dict.itop-config-mgmt.php index 393bfdd32..861fd5db7 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/ru.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/ru.dict.itop-config-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Relation:impacts/Description' => 'Элементы, на которые влияет', 'Relation:impacts/DownStream' => 'Влияет на...', 'Relation:impacts/DownStream+' => 'Элементы, на которые влияет', @@ -22,8 +23,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Relation:impacts/LoadData' => 'Load data~~', 'Relation:impacts/NoFilteredData' => 'please select objects and load data~~', 'Relation:impacts/FilteredData' => 'Filtered data~~', -)); - +]); // Dictionnay conventions // Class: @@ -66,7 +66,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( // Class: lnkContactToFunctionalCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContactToFunctionalCI' => 'Связь Контакт/Функциональная КЕ', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -78,13 +78,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Контакт', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:FunctionalCI' => 'Функциональные КЕ', 'Class:FunctionalCI+' => 'Функциональные КЕ', 'Class:FunctionalCI/Attribute:name' => 'Название', @@ -117,13 +117,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:FunctionalCI/Attribute:finalclass+' => '', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Активные тикеты', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~', -)); +]); // // Class: PhysicalDevice // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:PhysicalDevice' => 'Физические устройства', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -157,13 +157,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Окончание гарантии', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Rack' => 'Стойка', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s~~', @@ -173,64 +173,64 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Rack/Attribute:device_list+' => 'Устройства в стойке', 'Class:Rack/Attribute:enclosure_list' => 'Крейты', 'Class:Rack/Attribute:enclosure_list+' => 'Крейты в стойке', -)); +]); // // Class: TelephonyCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:TelephonyCI' => 'Телефония', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => 'Абонентский номер', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Phone' => 'Телефон', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:MobilePhone' => 'Мобильный телефон', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'Аппаратный PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:IPPhone' => 'IP-телефон', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Tablet' => 'Планшет', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ConnectableCI' => 'Подключаемые КЕ', 'Class:ConnectableCI+' => 'Подключаемые КЕ', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s~~', @@ -238,13 +238,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Связанные сетевые устройства', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Сетевые интерфейсы', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Сетевые интерфейсы', -)); +]); // // Class: DatacenterDevice // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DatacenterDevice' => 'Устройства дата-центра', 'Class:DatacenterDevice+' => 'Устройства дата-центра', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -276,13 +276,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'Устройство в работе, если по крайней мере один источник питания (А или Б) в работе', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'Устройство в работе, если все источники питания в работе', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'Устройство в работе, если по крайней мере %1$s %% источников питания в работе', -)); +]); // // Class: NetworkDevice // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:NetworkDevice' => 'Сетевое устройство', 'Class:NetworkDevice+' => 'Сетевое устройство', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -298,13 +298,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => 'ОЗУ', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Server' => 'Сервер', 'Class:Server+' => 'Сервер', 'Class:Server/ComplementaryName' => '%1$s - %2$s~~', @@ -326,61 +326,61 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Логические тома', 'Class:Server/Attribute:logicalvolumes_list+' => 'Подключенные логические тома', -)); +]); // // Class: StorageSystem // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:StorageSystem' => 'Система хранения', 'Class:StorageSystem+' => 'Система хранения', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Логические тома', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Логические тома', -)); +]); // // Class: SANSwitch // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:SANSwitch' => 'SAN коммутатор', 'Class:SANSwitch+' => 'SAN коммутатор', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s~~', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Устройства', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Подключенные устройства', -)); +]); // // Class: TapeLibrary // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:TapeLibrary' => 'Ленточная библиотека', 'Class:TapeLibrary+' => 'Ленточная библиотека', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~', 'Class:TapeLibrary/Attribute:tapes_list' => 'Ленты', 'Class:TapeLibrary/Attribute:tapes_list+' => 'Ленты', -)); +]); // // Class: NAS // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:NAS' => 'Сетевое хранилище', 'Class:NAS+' => 'Сетевое хранилище', 'Class:NAS/ComplementaryName' => '%1$s - %2$s~~', 'Class:NAS/Attribute:nasfilesystem_list' => 'Файловые системы', 'Class:NAS/Attribute:nasfilesystem_list+' => 'Файловые системы', -)); +]); // // Class: PC // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:PC' => 'Персональный компьютер', 'Class:PC+' => 'Персональный компьютер', 'Class:PC/ComplementaryName' => '%1$s - %2$s~~', @@ -402,45 +402,45 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:PC/Attribute:type/Value:desktop+' => 'Настольный', 'Class:PC/Attribute:type/Value:laptop' => 'Ноутбук', 'Class:PC/Attribute:type/Value:laptop+' => 'Ноутбук', -)); +]); // // Class: Printer // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Printer' => 'Принтер', 'Class:Printer+' => 'Принтер', 'Class:Printer/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerConnection // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:PowerConnection' => 'Электропитание', 'Class:PowerConnection+' => 'Подключения электропитания', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerSource // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:PowerSource' => 'Источник электропитания', 'Class:PowerSource+' => 'Источник электропитания', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s~~', 'Class:PowerSource/Attribute:pdus_list' => 'Распределители', 'Class:PowerSource/Attribute:pdus_list+' => 'Распределители электропитания (PDU)', -)); +]); // // Class: PDU // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:PDU' => 'Распределитель ЭП', 'Class:PDU+' => 'Распределитель электропитания', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s~~', @@ -452,23 +452,23 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => 'Источник электропитания', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Peripheral' => 'Периферийное устройство', 'Class:Peripheral+' => 'Периферийное устройство', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: Enclosure // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Enclosure' => 'Крейт', 'Class:Enclosure+' => 'Крейт, шасси и т.п.', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -480,13 +480,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Enclosure/Attribute:nb_u+' => 'Количество юнитов', 'Class:Enclosure/Attribute:device_list' => 'Устройства', 'Class:Enclosure/Attribute:device_list+' => 'Устройства в крейте', -)); +]); // // Class: ApplicationSolution // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ApplicationSolution' => 'Прикладное решение', 'Class:ApplicationSolution+' => 'Прикладное решение', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'КЕ', @@ -503,13 +503,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'Прикладное решение в работе, если все КЕ в работе', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'Прикладное решение в работе, если по крайней мере %1$s КЕ в работе', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'Прикладное решение в работе, если по крайней мере %1$s %% КЕ в работе', -)); +]); // // Class: BusinessProcess // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:BusinessProcess' => 'Бизнес-процесс', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Прикладные решения', @@ -520,13 +520,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'Активный', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'Неактивный', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'Неактивный', -)); +]); // // Class: SoftwareInstance // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:SoftwareInstance' => 'Экземпляр ПО', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'Система', @@ -549,64 +549,64 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'Активный', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'Неактивный', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => 'Неактивный', -)); +]); // // Class: Middleware // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Middleware' => 'Промежуточное ПО', 'Class:Middleware+' => 'Промежуточное программое обеспечение', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Экземпляры промежуточного ПО', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'Экземпляры этого промежуточного ПО', -)); +]); // // Class: DBServer // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DBServer' => 'Сервер БД', 'Class:DBServer+' => 'Сервер баз данных', 'Class:DBServer/Attribute:dbschema_list' => 'Схемы БД', 'Class:DBServer/Attribute:dbschema_list+' => 'Все схемы БД данного сервера', -)); +]); // // Class: WebServer // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:WebServer' => 'Веб-сервер', 'Class:WebServer+' => 'Сервер веб-приложений', 'Class:WebServer/Attribute:webapp_list' => 'Веб-приложения', 'Class:WebServer/Attribute:webapp_list+' => 'Все веб-приложения на этом сервере', -)); +]); // // Class: PCSoftware // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:PCSoftware' => 'ПО для ПК', 'Class:PCSoftware+' => 'Программое обеспечение для ПК', -)); +]); // // Class: OtherSoftware // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:OtherSoftware' => 'Другое ПО', 'Class:OtherSoftware+' => 'Другое программное обеспечение', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:MiddlewareInstance' => 'Экземпляр промежуточного ПО', 'Class:MiddlewareInstance+' => 'Экземпляр промежуточного ПО', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s~~', @@ -614,13 +614,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Промежуточное ПО', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DatabaseSchema' => 'Схема базы данных', 'Class:DatabaseSchema+' => 'Схема базы данных', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s~~', @@ -628,13 +628,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'Сервер БД', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:WebApplication' => 'Веб-приложение', 'Class:WebApplication+' => 'Веб-приложение', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s~~', @@ -644,14 +644,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:VirtualDevice' => 'Виртуальное устройство', 'Class:VirtualDevice+' => 'Виртуальное устройство', 'Class:VirtualDevice/Attribute:status' => 'Статус', @@ -666,24 +665,24 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'Резерв', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Логические тома', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Логические тома, используемые этим устройством', -)); +]); // // Class: VirtualHost // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:VirtualHost' => 'Виртуальный хост', 'Class:VirtualHost+' => 'Виртуальный хост', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Виртуальные машины', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Все виртуальные машины, размещенные на этом хосте', -)); +]); // // Class: Hypervisor // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Hypervisor' => 'Гипервизор', 'Class:Hypervisor+' => 'Гипервизор', 'Class:Hypervisor/Attribute:farm_id' => 'Ферма', @@ -694,13 +693,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => 'Сервер', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Farm' => 'Ферма', 'Class:Farm+' => 'Ферма', 'Class:Farm/Attribute:hypervisor_list' => 'Гипервизоры', @@ -709,13 +708,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Farm/Attribute:redundancy/disabled' => 'Ферма в работе, если все гипервизоры в работе', 'Class:Farm/Attribute:redundancy/count' => 'Ферма в работе, если по крайней мере %1$s гипервизор(-ов) в работе', 'Class:Farm/Attribute:redundancy/percent' => 'Ферма в работе, если по крайней мере %1$s %% гипервизоров в работе', -)); +]); // // Class: VirtualMachine // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:VirtualMachine' => 'Виртуальная машина', 'Class:VirtualMachine+' => 'Виртуальная машина', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s~~', @@ -743,13 +742,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Сетевые интерфейсы', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Сетевые интерфейсы', -)); +]); // // Class: LogicalVolume // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:LogicalVolume' => 'Логический том', 'Class:LogicalVolume+' => 'Логический том', 'Class:LogicalVolume/Attribute:name' => 'Название', @@ -770,13 +769,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Серверы, использующие этот том', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Виртуальные устройства', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Виртуальные устройства, использующие этот том', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkServerToVolume' => 'Связь Сервер/Том', 'Class:lnkServerToVolume+' => 'Связь Сервер/Том', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~', @@ -790,13 +789,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => 'Используемый размер', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkVirtualDeviceToVolume' => 'Связь Виртуальное устройство/Том', 'Class:lnkVirtualDeviceToVolume+' => 'Связь Виртуальное устройство/Том', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s~~', @@ -810,13 +809,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Используемый размер', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkSanToDatacenterDevice' => 'Связь SAN коммутатор/Устройство дата-центра', 'Class:lnkSanToDatacenterDevice+' => 'Связь SAN коммутатор/Устройство дата-центра', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~', @@ -832,13 +831,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'FC порт подкл. устр.', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Tape' => 'Лента', 'Class:Tape+' => 'Лента', 'Class:Tape/Attribute:name' => 'Название', @@ -851,13 +850,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => 'Ленточная библиотека', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:NASFileSystem' => 'Файловая система NAS', 'Class:NASFileSystem+' => 'Файловая система NAS', 'Class:NASFileSystem/Attribute:name' => 'Название', @@ -872,13 +871,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'Сетевое хранилище', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Software' => 'Программное обеспечение', 'Class:Software+' => 'Программное обеспечение', 'Class:Software/ComplementaryName' => '%1$s - %2$s~~', @@ -908,13 +907,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Software/Attribute:softwarepatch_list+' => 'Патчи для этого ПО', 'Class:Software/Attribute:softwarelicence_list' => 'Лицензии ПО', 'Class:Software/Attribute:softwarelicence_list+' => 'Лицензии для этого ПО', -)); +]); // // Class: Patch // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Patch' => 'Патч', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Название', @@ -925,13 +924,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Тип', 'Class:Patch/Attribute:finalclass+' => '', -)); +]); // // Class: OSPatch // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:OSPatch' => 'Патч ОС', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => 'Устройства', @@ -940,13 +939,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => 'Версия ОС', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:SoftwarePatch' => 'Патч ПО', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => 'ПО', @@ -955,13 +954,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Экземпляры ПО', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Экземпляры ПО, где установлен этот патч', -)); +]); // // Class: Licence // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Licence' => 'Лицензия', 'Class:Licence+' => 'Лицензия', 'Class:Licence/Attribute:name' => 'Название', @@ -990,13 +989,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'Да', 'Class:Licence/Attribute:finalclass' => 'Тип', 'Class:Licence/Attribute:finalclass+' => '', -)); +]); // // Class: OSLicence // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:OSLicence' => 'Лицензия ОС', 'Class:OSLicence+' => 'Лицензия ОС', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1008,13 +1007,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'Все виртуальные машины, где используется данная лицензия', 'Class:OSLicence/Attribute:servers_list' => 'Серверы', 'Class:OSLicence/Attribute:servers_list+' => 'Все серверы, где используется данная лицензия', -)); +]); // // Class: SoftwareLicence // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:SoftwareLicence' => 'Лицензия ПО', 'Class:SoftwareLicence+' => 'Лицензия ПО', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1024,13 +1023,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Экземпляры ПО', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Экземпляры ПО, где используется данная лицензия', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDocumentToLicence' => 'Связь Документ/Лицензия', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~', @@ -1042,35 +1041,35 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Документ', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:OSVersion' => 'Версия ОС', 'Class:OSVersion+' => 'Версия ОС', 'Class:OSVersion/Attribute:osfamily_id' => 'Семейство ОС', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => 'Семейство ОС', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:OSFamily' => 'Семейство ОС', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Brand' => 'Бренд', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1079,13 +1078,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'Все устройства этого бренда', 'Class:Brand/UniquenessRule:name+' => 'Название должно быть уникальным', 'Class:Brand/UniquenessRule:name' => 'Этот бренд уже существует', -)); +]); // // Class: Model // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Model' => 'Модель', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s~~', @@ -1137,37 +1136,37 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Model/Attribute:physicaldevices_list+' => 'Все устройства этой модели', 'Class:Model/UniquenessRule:name_brand+' => 'Название должно быть уникальным внутри бренда', 'Class:Model/UniquenessRule:name_brand' => 'эта модель уже существует для этого бренда', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:NetworkDeviceType' => 'Тип сетевого устройства', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Устройства', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Все сетевые устройства этого типа', -)); +]); // // Class: IOSVersion // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:IOSVersion' => 'Версия IOS', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => 'Бренд', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => 'Бренд', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDocumentToPatch' => 'Связь Документ/Патч', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~', @@ -1179,13 +1178,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Документ', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Связь Экземпляр ПО/Патч ПО', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~', @@ -1197,13 +1196,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Экземпляр ПО', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkFunctionalCIToOSPatch' => 'Связь Функциональная КЕ/Патч ОС', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~', @@ -1215,13 +1214,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Функциональная КЕ', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDocumentToSoftware' => 'Связь Документ/ПО', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~', @@ -1233,13 +1232,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Документ', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Subnet' => 'Подсеть', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s~~', @@ -1258,13 +1257,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLAN', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'Тег VLAN', @@ -1279,13 +1278,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:VLAN/Attribute:subnets_list+' => '', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Физические интерфейсы', 'Class:VLAN/Attribute:physicalinterfaces_list+' => 'Физические интерфейсы', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkSubnetToVLAN' => 'Связь Подсеть/VLAN', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s~~', @@ -1299,26 +1298,26 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'Тег VLAN', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:NetworkInterface' => 'Сетевой интерфейс', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'Название', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => 'Тип', 'Class:NetworkInterface/Attribute:finalclass+' => '', -)); +]); // // Class: IPInterface // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:IPInterface' => 'IP интерфейс', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IP-адрес', @@ -1333,13 +1332,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => 'Скорость', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:PhysicalInterface' => 'Физический интерфейс', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s~~', @@ -1349,13 +1348,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLAN', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Связь Физический интерфейс/VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~', @@ -1371,27 +1370,26 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'Тег VLAN', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:LogicalInterface' => 'Логический интерфейс', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Виртуальная машина', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Виртуальная машина', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:FiberChannelInterface' => 'Оптический интерфейс', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => 'Скорость', @@ -1404,13 +1402,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Устройство', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkConnectableCIToNetworkDevice' => 'Связь Подключаемая КЕ/Сетевое устройство', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~', @@ -1432,13 +1430,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'down link', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'Uplink', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'up link', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Связь Прикладное решение/Функциональная КЕ', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1450,13 +1448,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Функциональная КЕ', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Связь Прикладное решение/Бизнес-процесс', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~', @@ -1468,13 +1466,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Прикладное решение', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Group' => 'Группа', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s~~', @@ -1504,13 +1502,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Group/Attribute:ci_list+' => 'Связанные конфигурационные единицы', 'Class:Group/Attribute:parent_id_friendlyname' => 'Родительская группа', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkGroupToCI' => 'Связь Группа/КЕ', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~', @@ -1524,11 +1522,11 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Основание', 'Class:lnkGroupToCI/Attribute:reason+' => 'Основание, причина и т.п.', -)); +]); // Add translation for Fieldsets -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Server:baseinfo' => 'Основное', 'Server:Date' => 'Даты', 'Server:moreinfo' => 'Спецификация', @@ -1541,14 +1539,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Свободных IP-адресов: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Вот выборка из 10 свободных IP-адресов', 'Class:Document:PreviewTab' => 'Просмотр', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDocumentToFunctionalCI' => 'Связь Документ/Функциональная КЕ', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1560,13 +1557,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Документ', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:Application' => 'Приложения', 'Menu:Application+' => 'Все приложения', 'Menu:DBServer' => 'Серверы баз данных', @@ -1611,15 +1608,15 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Menu:OSVersion+' => 'Версия ОС', 'Menu:Software' => 'Каталог ПО', 'Menu:Software+' => 'Каталог ПО', -)); +]); // // Class: PhysicalInterface // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/sk.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/sk.dict.itop-config-mgmt.php index 1666e63a8..d1d80a81a 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/sk.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/sk.dict.itop-config-mgmt.php @@ -1,15 +1,16 @@ 'Prvky zasiahnuté', 'Relation:impacts/DownStream' => 'Impacts...~~', 'Relation:impacts/DownStream+' => 'Elements impacted by~~', @@ -21,8 +22,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Relation:impacts/LoadData' => 'Load data~~', 'Relation:impacts/NoFilteredData' => 'please select objects and load data~~', 'Relation:impacts/FilteredData' => 'Filtered data~~', -)); - +]); // Dictionnay conventions // Class: @@ -65,7 +65,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( // Class: lnkContactToFunctionalCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContactToFunctionalCI' => 'väzba - Kontakt / Komponent', 'Class:lnkContactToFunctionalCI+' => '~~', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -77,13 +77,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '~~', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Názov kontaktu', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:FunctionalCI' => 'Komponent', 'Class:FunctionalCI+' => '~~', 'Class:FunctionalCI/Attribute:name' => 'Názov', @@ -116,13 +116,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:FunctionalCI/Attribute:finalclass+' => 'Name of the final class~~', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Active Tickets~~', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~', -)); +]); // // Class: PhysicalDevice // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:PhysicalDevice' => 'Fyzické zariadenie', 'Class:PhysicalDevice+' => '~~', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -156,13 +156,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '~~', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Koniec záruky', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '~~', -)); +]); // // Class: Rack // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Rack' => 'stojan (Rack)', 'Class:Rack+' => '~~', 'Class:Rack/ComplementaryName' => '%1$s - %2$s~~', @@ -172,64 +172,64 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Rack/Attribute:device_list+' => 'All the physical devices racked into this rack~~', 'Class:Rack/Attribute:enclosure_list' => 'Kryt', 'Class:Rack/Attribute:enclosure_list+' => 'All the enclosures in this rack~~', -)); +]); // // Class: TelephonyCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:TelephonyCI' => 'Telefónne zariadenie', 'Class:TelephonyCI+' => '~~', 'Class:TelephonyCI/Attribute:phonenumber' => 'Telefónne číslo', 'Class:TelephonyCI/Attribute:phonenumber+' => '~~', -)); +]); // // Class: Phone // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Phone' => 'Telefón', 'Class:Phone+' => '~~', -)); +]); // // Class: MobilePhone // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:MobilePhone' => 'Mobilný telefón', 'Class:MobilePhone+' => '~~', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '~~', 'Class:MobilePhone/Attribute:hw_pin' => 'HW PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '~~', -)); +]); // // Class: IPPhone // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:IPPhone' => 'IP telefón', 'Class:IPPhone+' => '~~', -)); +]); // // Class: Tablet // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '~~', -)); +]); // // Class: ConnectableCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ConnectableCI' => 'Pripojiteľné zariadenie', 'Class:ConnectableCI+' => 'Physical CI~~', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s~~', @@ -237,13 +237,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'All network devices connected to this device~~', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Sieťové rozhrania', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'All the physical network interfaces~~', -)); +]); // // Class: DatacenterDevice // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DatacenterDevice' => 'Zariadenie dátového centra', 'Class:DatacenterDevice+' => '~~', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -275,13 +275,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'The device %2$s is up if at least one power connection (A or B) is up~~', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'The device %2$s is up if all its power connections are up~~', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'The device %2$s is up if at least %1$s %% of its power connections are up~~', -)); +]); // // Class: NetworkDevice // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:NetworkDevice' => 'Sieťové zariadenie', 'Class:NetworkDevice+' => '~~', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -297,13 +297,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '~~', 'Class:NetworkDevice/Attribute:ram' => 'Operačná pamäť', 'Class:NetworkDevice/Attribute:ram+' => '~~', -)); +]); // // Class: Server // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Server' => 'Server', 'Class:Server+' => '~~', 'Class:Server/ComplementaryName' => '%1$s - %2$s~~', @@ -325,61 +325,61 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Server/Attribute:ram+' => '~~', 'Class:Server/Attribute:logicalvolumes_list' => 'Logické disky', 'Class:Server/Attribute:logicalvolumes_list+' => 'All the logical volumes connected to this server~~', -)); +]); // // Class: StorageSystem // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:StorageSystem' => 'Úložiskový systém', 'Class:StorageSystem+' => '~~', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Logické disky', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'All the logical volumes in this storage system~~', -)); +]); // // Class: SANSwitch // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:SANSwitch' => 'SAN prepínač', 'Class:SANSwitch+' => '~~', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s~~', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Zariadenia', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'All the devices connected to this SAN switch~~', -)); +]); // // Class: TapeLibrary // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:TapeLibrary' => 'Pásková knižnica', 'Class:TapeLibrary+' => '~~', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~', 'Class:TapeLibrary/Attribute:tapes_list' => 'Pásky', 'Class:TapeLibrary/Attribute:tapes_list+' => 'All the tapes in the tape library~~', -)); +]); // // Class: NAS // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '~~', 'Class:NAS/ComplementaryName' => '%1$s - %2$s~~', 'Class:NAS/Attribute:nasfilesystem_list' => 'Súborové systémy', 'Class:NAS/Attribute:nasfilesystem_list+' => 'All the file systems in this NAS~~', -)); +]); // // Class: PC // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:PC' => 'PC', 'Class:PC+' => '~~', 'Class:PC/ComplementaryName' => '%1$s - %2$s~~', @@ -401,45 +401,45 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:PC/Attribute:type/Value:desktop+' => 'desktop~~', 'Class:PC/Attribute:type/Value:laptop' => 'Laptop', 'Class:PC/Attribute:type/Value:laptop+' => 'laptop~~', -)); +]); // // Class: Printer // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Printer' => 'Tlačiareň', 'Class:Printer+' => '~~', 'Class:Printer/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerConnection // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:PowerConnection' => 'Elektrická prípojka', 'Class:PowerConnection+' => '~~', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerSource // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:PowerSource' => 'Napájací zdroj', 'Class:PowerSource+' => '~~', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s~~', 'Class:PowerSource/Attribute:pdus_list' => 'Napäťové distribučné jednotky (PDU)', 'Class:PowerSource/Attribute:pdus_list+' => 'All the PDUs using this power source~~', -)); +]); // // Class: PDU // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:PDU' => 'Napäťová distribučná jednotka (PDU)', 'Class:PDU+' => '~~', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s~~', @@ -451,23 +451,23 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:PDU/Attribute:powerstart_id+' => '~~', 'Class:PDU/Attribute:powerstart_name' => 'Názov Power start-u', 'Class:PDU/Attribute:powerstart_name+' => '~~', -)); +]); // // Class: Peripheral // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Peripheral' => 'Periférie', 'Class:Peripheral+' => '~~', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: Enclosure // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Enclosure' => 'Kryt (enclosure)', 'Class:Enclosure+' => '~~', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -479,13 +479,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Enclosure/Attribute:nb_u+' => '~~', 'Class:Enclosure/Attribute:device_list' => 'Zariadenia', 'Class:Enclosure/Attribute:device_list+' => 'All the devices in this enclosure~~', -)); +]); // // Class: ApplicationSolution // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ApplicationSolution' => 'Aplikačné riešenie', 'Class:ApplicationSolution+' => '~~', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'Komponenty', @@ -502,13 +502,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'The solution is up if all CIs are up~~', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'The solution is up if at least %1$s CI(s) is(are) up~~', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'The solution is up if at least %1$s %% of the CIs are up~~', -)); +]); // // Class: BusinessProcess // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:BusinessProcess' => 'Biznis proces', 'Class:BusinessProcess+' => '~~', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Aplikačné riešenia', @@ -519,13 +519,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'active~~', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'Neaktívny', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'inactive~~', -)); +]); // // Class: SoftwareInstance // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:SoftwareInstance' => 'Softvérová inštancia', 'Class:SoftwareInstance+' => '~~', 'Class:SoftwareInstance/Attribute:system_id' => 'Systém', @@ -548,64 +548,64 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'active~~', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'neaktívna', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => 'inactive~~', -)); +]); // // Class: Middleware // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Middleware' => 'Middleware', 'Class:Middleware+' => '~~', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Middleware inštancie', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'All the middleware instances provided by this middleware~~', -)); +]); // // Class: DBServer // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DBServer' => 'DB Server', 'Class:DBServer+' => '~~', 'Class:DBServer/Attribute:dbschema_list' => 'DB schémy', 'Class:DBServer/Attribute:dbschema_list+' => 'All the database schemas for this DB server~~', -)); +]); // // Class: WebServer // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:WebServer' => 'Web server', 'Class:WebServer+' => '~~', 'Class:WebServer/Attribute:webapp_list' => 'Webové aplikácie', 'Class:WebServer/Attribute:webapp_list+' => 'All the web applications available on this web server~~', -)); +]); // // Class: PCSoftware // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:PCSoftware' => 'PC softvér', 'Class:PCSoftware+' => '~~', -)); +]); // // Class: OtherSoftware // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:OtherSoftware' => 'Iný softvér', 'Class:OtherSoftware+' => '~~', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:MiddlewareInstance' => 'Middleware inštancia', 'Class:MiddlewareInstance+' => '~~', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s~~', @@ -613,13 +613,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '~~', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Názov Middleware-u', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '~~', -)); +]); // // Class: DatabaseSchema // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DatabaseSchema' => 'Databázová schéma', 'Class:DatabaseSchema+' => '~~', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s~~', @@ -627,13 +627,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '~~', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'Názov DB serveru', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '~~', -)); +]); // // Class: WebApplication // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:WebApplication' => 'Webová Aplikácia', 'Class:WebApplication+' => '~~', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s~~', @@ -643,14 +643,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:WebApplication/Attribute:webserver_name+' => '~~', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '~~', -)); - +]); // // Class: VirtualDevice // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:VirtualDevice' => 'Virtuálne zariadenie', 'Class:VirtualDevice+' => '~~', 'Class:VirtualDevice/Attribute:status' => 'Stav', @@ -665,24 +664,24 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'stock~~', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Zoznam logických dielov', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'All the logical volumes used by this device~~', -)); +]); // // Class: VirtualHost // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:VirtualHost' => 'Virtuálny host', 'Class:VirtualHost+' => '~~', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Zoznam virtuálnych strojov', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'All the virtual machines hosted by this host~~', -)); +]); // // Class: Hypervisor // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Hypervisor' => 'Hypervisor', 'Class:Hypervisor+' => '~~', 'Class:Hypervisor/Attribute:farm_id' => 'Farma', @@ -693,13 +692,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Hypervisor/Attribute:server_id+' => '~~', 'Class:Hypervisor/Attribute:server_name' => 'Názov serveru', 'Class:Hypervisor/Attribute:server_name+' => '~~', -)); +]); // // Class: Farm // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Farm' => 'Farma', 'Class:Farm+' => '~~', 'Class:Farm/Attribute:hypervisor_list' => 'Hypervisori', @@ -708,13 +707,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Farm/Attribute:redundancy/disabled' => 'The farm is up if all the hypervisors are up~~', 'Class:Farm/Attribute:redundancy/count' => 'The farm is up if at least %1$s hypervisor(s) is(are) up~~', 'Class:Farm/Attribute:redundancy/percent' => 'The farm is up if at least %1$s %% of the hypervisors are up~~', -)); +]); // // Class: VirtualMachine // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:VirtualMachine' => 'Virtuálne zariadenie', 'Class:VirtualMachine+' => '~~', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s~~', @@ -742,13 +741,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:VirtualMachine/Attribute:managementip+' => '~~', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Zoznam sieťových rozhraní', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'All the logical network interfaces~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:LogicalVolume' => 'Logické disky', 'Class:LogicalVolume+' => '~~', 'Class:LogicalVolume/Attribute:name' => 'Názov', @@ -769,13 +768,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'All the servers using this volume~~', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Virtuálne zariadenia', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'All the virtual devices using this volume~~', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkServerToVolume' => 'väzba - Server / Logický Disk', 'Class:lnkServerToVolume+' => '~~', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~', @@ -789,13 +788,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '~~', 'Class:lnkServerToVolume/Attribute:size_used' => 'Použité miesto', 'Class:lnkServerToVolume/Attribute:size_used+' => '~~', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkVirtualDeviceToVolume' => 'väzba Virtuálne zariadenie / Logický disk', 'Class:lnkVirtualDeviceToVolume+' => '~~', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s~~', @@ -809,13 +808,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '~~', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Použité miesto', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '~~', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkSanToDatacenterDevice' => 'väzba - SAN / Zariadenie', 'Class:lnkSanToDatacenterDevice+' => '~~', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~', @@ -831,13 +830,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '~~', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => '(FC) Port zariadenia', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '~~', -)); +]); // // Class: Tape // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Tape' => 'Páska', 'Class:Tape+' => '~~', 'Class:Tape/Attribute:name' => 'Názov', @@ -850,13 +849,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Tape/Attribute:tapelibrary_id+' => '~~', 'Class:Tape/Attribute:tapelibrary_name' => 'Názov knižnice pásiek', 'Class:Tape/Attribute:tapelibrary_name+' => '~~', -)); +]); // // Class: NASFileSystem // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:NASFileSystem' => 'NAS Súborový systém', 'Class:NASFileSystem+' => '~~', 'Class:NASFileSystem/Attribute:name' => 'Názov', @@ -871,13 +870,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:NASFileSystem/Attribute:nas_id+' => '~~', 'Class:NASFileSystem/Attribute:nas_name' => 'Názov NAS', 'Class:NASFileSystem/Attribute:nas_name+' => '~~', -)); +]); // // Class: Software // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Software' => 'Softvér', 'Class:Software+' => '~~', 'Class:Software/ComplementaryName' => '%1$s - %2$s~~', @@ -907,13 +906,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Software/Attribute:softwarepatch_list+' => 'All the patchs for this software~~', 'Class:Software/Attribute:softwarelicence_list' => 'Softvérové licencie', 'Class:Software/Attribute:softwarelicence_list+' => 'All the licenses for this software~~', -)); +]); // // Class: Patch // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Patch' => 'Záplata', 'Class:Patch+' => '~~', 'Class:Patch/Attribute:name' => 'Názov', @@ -924,13 +923,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Patch/Attribute:description+' => '~~', 'Class:Patch/Attribute:finalclass' => 'Typ', 'Class:Patch/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: OSPatch // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:OSPatch' => 'Záplata OS', 'Class:OSPatch+' => '~~', 'Class:OSPatch/Attribute:functionalcis_list' => 'Zariadenia', @@ -939,13 +938,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:OSPatch/Attribute:osversion_id+' => '~~', 'Class:OSPatch/Attribute:osversion_name' => 'Názov OS verzie', 'Class:OSPatch/Attribute:osversion_name+' => '~~', -)); +]); // // Class: SoftwarePatch // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:SoftwarePatch' => 'Softvérová záplata', 'Class:SoftwarePatch+' => '~~', 'Class:SoftwarePatch/Attribute:software_id' => 'Softvér', @@ -954,13 +953,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:SoftwarePatch/Attribute:software_name+' => '~~', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Inštancie softvéru', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'All the systems where this software patch is installed~~', -)); +]); // // Class: Licence // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Licence' => 'Licencia', 'Class:Licence+' => '~~', 'Class:Licence/Attribute:name' => 'Názov', @@ -989,13 +988,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'yes~~', 'Class:Licence/Attribute:finalclass' => 'Typ', 'Class:Licence/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: OSLicence // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:OSLicence' => 'Licencia OS', 'Class:OSLicence+' => '~~', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1007,13 +1006,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'All the virtual machines where this license is used~~', 'Class:OSLicence/Attribute:servers_list' => 'Servery', 'Class:OSLicence/Attribute:servers_list+' => 'All the servers where this license is used~~', -)); +]); // // Class: SoftwareLicence // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:SoftwareLicence' => 'Softvérová licencia', 'Class:SoftwareLicence+' => '~~', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1023,13 +1022,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:SoftwareLicence/Attribute:software_name+' => '~~', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Inštancie softvéru', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'All the systems where this license is used~~', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDocumentToLicence' => 'väzba Dokument/Licencia', 'Class:lnkDocumentToLicence+' => '~~', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~', @@ -1041,35 +1040,35 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '~~', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Názov dokumentu', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '~~', -)); +]); // // Class: OSVersion // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:OSVersion' => 'Verzia OS', 'Class:OSVersion+' => '~~', 'Class:OSVersion/Attribute:osfamily_id' => 'Kategória OS', 'Class:OSVersion/Attribute:osfamily_id+' => '~~', 'Class:OSVersion/Attribute:osfamily_name' => 'Názov kategórie OS', 'Class:OSVersion/Attribute:osfamily_name+' => '~~', -)); +]); // // Class: OSFamily // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:OSFamily' => 'Kategória OS', 'Class:OSFamily+' => '~~', -)); +]); // // Class: Brand // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Brand' => 'Značka', 'Class:Brand+' => '~~', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1078,13 +1077,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this brand~~', 'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~', 'Class:Brand/UniquenessRule:name' => 'This brand already exists~~', -)); +]); // // Class: Model // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Model' => 'Model', 'Class:Model+' => '~~', 'Class:Model/ComplementaryName' => '%1$s - %2$s~~', @@ -1136,37 +1135,37 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Model/Attribute:physicaldevices_list+' => 'All the physical devices corresponding to this model~~', 'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~', 'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:NetworkDeviceType' => 'Typ sieťového zariadenia', 'Class:NetworkDeviceType+' => '~~', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Sieťové zariadenia', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'All the network devices corresponding to this type~~', -)); +]); // // Class: IOSVersion // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:IOSVersion' => 'Verzia IOSu', 'Class:IOSVersion+' => '~~', 'Class:IOSVersion/Attribute:brand_id' => 'Značka', 'Class:IOSVersion/Attribute:brand_id+' => '~~', 'Class:IOSVersion/Attribute:brand_name' => 'Názov značky', 'Class:IOSVersion/Attribute:brand_name+' => '~~', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDocumentToPatch' => 'väzba - Dokument / Záplata', 'Class:lnkDocumentToPatch+' => '~~', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~', @@ -1178,13 +1177,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '~~', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Názov dokumentu', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'väzba - Softvérová inštancia / Softvérová záplata', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '~~', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~', @@ -1196,13 +1195,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '~~', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Názov softvérovej inštancie', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkFunctionalCIToOSPatch' => 'väzba - Komponent / Záplata OS', 'Class:lnkFunctionalCIToOSPatch+' => '~~', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~', @@ -1214,13 +1213,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'Názov funkčných CI', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDocumentToSoftware' => 'väzba Dokument / Softvér', 'Class:lnkDocumentToSoftware+' => '~~', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~', @@ -1232,13 +1231,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '~~', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Názov dokumentu', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '~~', -)); +]); // // Class: Subnet // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Subnet' => 'Podsieť', 'Class:Subnet+' => '~~', 'Class:Subnet/Name' => '%1$s/%2$s~~', @@ -1257,13 +1256,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Subnet/Attribute:ip_mask+' => '~~', 'Class:Subnet/Attribute:vlans_list' => 'VLANs~~', 'Class:Subnet/Attribute:vlans_list+' => '~~', -)); +]); // // Class: VLAN // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:VLAN' => 'VLAN~~', 'Class:VLAN+' => '~~', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN Tag~~', @@ -1278,13 +1277,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:VLAN/Attribute:subnets_list+' => '~~', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Physical network interfaces~~', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '~~', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkSubnetToVLAN' => 'Link Subnet / VLAN~~', 'Class:lnkSubnetToVLAN+' => '~~', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s~~', @@ -1298,26 +1297,26 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Tag~~', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '~~', -)); +]); // // Class: NetworkInterface // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:NetworkInterface' => 'Sieťové rozhranie', 'Class:NetworkInterface+' => '~~', 'Class:NetworkInterface/Attribute:name' => 'Názov', 'Class:NetworkInterface/Attribute:name+' => '~~', 'Class:NetworkInterface/Attribute:finalclass' => 'Typ', 'Class:NetworkInterface/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: IPInterface // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:IPInterface' => 'IP rozhranie', 'Class:IPInterface+' => '~~', 'Class:IPInterface/Attribute:ipaddress' => 'IP Adresa', @@ -1332,13 +1331,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:IPInterface/Attribute:ipmask+' => '~~', 'Class:IPInterface/Attribute:speed' => 'Rýchlosť', 'Class:IPInterface/Attribute:speed+' => '~~', -)); +]); // // Class: PhysicalInterface // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:PhysicalInterface' => 'Fyzické rozhranie', 'Class:PhysicalInterface+' => '~~', 'Class:PhysicalInterface/Name' => '%2$s %1$s~~', @@ -1348,13 +1347,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '~~', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLANs~~', 'Class:PhysicalInterface/Attribute:vlans_list+' => '~~', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Link PhysicalInterface / VLAN~~', 'Class:lnkPhysicalInterfaceToVLAN+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~', @@ -1370,27 +1369,26 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN Tag~~', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '~~', -)); - +]); // // Class: LogicalInterface // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:LogicalInterface' => 'Logické rozhranie', 'Class:LogicalInterface+' => '~~', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Virtuálne zariadenie', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '~~', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Názov virtuálneho stroja', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:FiberChannelInterface' => 'Optické rozhranie', 'Class:FiberChannelInterface+' => '~~', 'Class:FiberChannelInterface/Attribute:speed' => 'Rýchlosť', @@ -1403,13 +1401,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '~~', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Názov zariadenia', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '~~', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkConnectableCIToNetworkDevice' => 'väzba - Komponent / Sieťové zariadenie', 'Class:lnkConnectableCIToNetworkDevice+' => '~~', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~', @@ -1431,13 +1429,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'down link~~', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'uplink', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'up link~~', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'väzba - Aplikačné riešenie / Komponent', 'Class:lnkApplicationSolutionToFunctionalCI+' => '~~', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1449,13 +1447,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '~~', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'Názov funkčných CI', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'väzba - Aplikačné riešenie / Biznis proces', 'Class:lnkApplicationSolutionToBusinessProcess+' => '~~', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~', @@ -1467,13 +1465,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '~~', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Názov aplikačného riešenia', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '~~', -)); +]); // // Class: Group // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Group' => 'Skupina', 'Class:Group+' => '~~', 'Class:Group/ComplementaryName' => '%1$s - %2$s~~', @@ -1503,13 +1501,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~', 'Class:Group/Attribute:parent_id_friendlyname' => 'Priateľské meno rodičovskej skupiny', 'Class:Group/Attribute:parent_id_friendlyname+' => '~~', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkGroupToCI' => 'väzba - Skupina / Zariadenie', 'Class:lnkGroupToCI+' => '~~', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~', @@ -1523,11 +1521,11 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '~~', 'Class:lnkGroupToCI/Attribute:reason' => 'Dôvod', 'Class:lnkGroupToCI/Attribute:reason+' => '~~', -)); +]); // Add translation for Fieldsets -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Server:baseinfo' => 'Všeobecné informácie', 'Server:Date' => 'Dátum', 'Server:moreinfo' => 'Viac informácií', @@ -1540,14 +1538,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Voľných IP adries: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Tu je extrakt 10 voľných IP adries', 'Class:Document:PreviewTab' => 'Preview~~', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDocumentToFunctionalCI' => 'väzba - Dokument / Komponent', 'Class:lnkDocumentToFunctionalCI+' => '~~', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1559,13 +1556,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '~~', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Názov dokumentu', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '~~', -)); +]); // // Application Menu // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Menu:Application' => 'Aplikácie', 'Menu:Application+' => 'All applications~~', 'Menu:DBServer' => 'Databázové servery', @@ -1610,15 +1607,15 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Menu:OSVersion+' => '~~', 'Menu:Software' => 'Katalóg softvéru', 'Menu:Software+' => 'Software catalog~~', -)); +]); // // Class: PhysicalInterface // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/tr.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/tr.dict.itop-config-mgmt.php index 89d42aac9..ad2b07d0c 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/tr.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/tr.dict.itop-config-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Relation:impacts/Description' => 'Etkilenen kalemler', 'Relation:impacts/DownStream' => 'Etkiler...', 'Relation:impacts/DownStream+' => 'Etkilenen kalemler', @@ -22,8 +23,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Relation:impacts/LoadData' => 'Load data~~', 'Relation:impacts/NoFilteredData' => 'please select objects and load data~~', 'Relation:impacts/FilteredData' => 'Filtered data~~', -)); - +]); // Dictionnay conventions // Class: @@ -66,7 +66,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( // Class: lnkContactToFunctionalCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContactToFunctionalCI' => 'Kişi / İşlevsel CI bağla', 'Class:lnkContactToFunctionalCI+' => '~~', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -78,13 +78,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '~~', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => 'Kişi Adı', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '~~', -)); +]); // // Class: FunctionalCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:FunctionalCI' => 'Fonksiyonel KK', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => 'Adı', @@ -117,13 +117,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:FunctionalCI/Attribute:finalclass+' => '', 'Class:FunctionalCI/Tab:OpenedTickets' => 'Aktif Çağrı Kayıtları', 'Class:FunctionalCI/Tab:OpenedTickets+' => 'Active Tickets which are impacting this functional CI~~', -)); +]); // // Class: PhysicalDevice // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:PhysicalDevice' => 'Fiziksel cihaz', 'Class:PhysicalDevice+' => '~~', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -157,13 +157,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '~~', 'Class:PhysicalDevice/Attribute:end_of_warranty' => 'Garantinin sonu', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '~~', -)); +]); // // Class: Rack // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Rack' => 'Raf', 'Class:Rack+' => '~~', 'Class:Rack/ComplementaryName' => '%1$s - %2$s~~', @@ -173,64 +173,64 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Rack/Attribute:device_list+' => 'Bu rafa yerleştirilmiş tüm fiziksel cihazlar', 'Class:Rack/Attribute:enclosure_list' => 'Muhafazalar', 'Class:Rack/Attribute:enclosure_list+' => 'Bu raftaki tüm muhafazalar', -)); +]); // // Class: TelephonyCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:TelephonyCI' => 'Telefon CI', 'Class:TelephonyCI+' => '~~', 'Class:TelephonyCI/Attribute:phonenumber' => 'Telefon numarası', 'Class:TelephonyCI/Attribute:phonenumber+' => '~~', -)); +]); // // Class: Phone // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Phone' => 'Telefon', 'Class:Phone+' => '~~', -)); +]); // // Class: MobilePhone // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:MobilePhone' => 'Cep telefonu', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => 'Hardware PIN', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:IPPhone' => 'IP telefonu', 'Class:IPPhone+' => '~~', -)); +]); // // Class: Tablet // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Tablet' => 'Tablet', 'Class:Tablet+' => '~~', -)); +]); // // Class: ConnectableCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ConnectableCI' => 'Bağlanabilir KK', 'Class:ConnectableCI+' => 'Fiziksel KK', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s~~', @@ -238,13 +238,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => 'Bu cihaza bağlı tüm ağ cihazları', 'Class:ConnectableCI/Attribute:physicalinterface_list' => 'Ağ arayüzleri', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => 'Tüm fiziksel ağ arayüzleri', -)); +]); // // Class: DatacenterDevice // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DatacenterDevice' => 'Veri merkezi cihazı', 'Class:DatacenterDevice+' => '~~', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -276,13 +276,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:DatacenterDevice/Attribute:redundancy/count' => 'En az bir güç bağlantısı (A veya B) ayakta ise, cihaz ayaktadır', 'Class:DatacenterDevice/Attribute:redundancy/disabled' => 'Tüm güç bağlantıları ayakta ise, cihaz ayaktadır', 'Class:DatacenterDevice/Attribute:redundancy/percent' => 'En az %1$s %% güç bağlantısı ayakta ise cihaz ayaktadır', -)); +]); // // Class: NetworkDevice // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:NetworkDevice' => 'Ağ Cihazı', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s~~', @@ -298,13 +298,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '~~', 'Class:NetworkDevice/Attribute:ram' => 'RAM', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Server' => 'Sunucu', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s~~', @@ -326,61 +326,61 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => 'Mantıksal depolama alanları', 'Class:Server/Attribute:logicalvolumes_list+' => 'Bu sunucuya bağlı tüm mantıksal depolama alanları', -)); +]); // // Class: StorageSystem // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:StorageSystem' => 'Depolama sistemi', 'Class:StorageSystem+' => '~~', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s~~', 'Class:StorageSystem/Attribute:logicalvolume_list' => 'Mantıksal depolama alanları', 'Class:StorageSystem/Attribute:logicalvolume_list+' => 'Bu depolama sistemindeki tüm mantıksal depolama alanları', -)); +]); // // Class: SANSwitch // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:SANSwitch' => 'SAN Anahtarı', 'Class:SANSwitch+' => '~~', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s~~', 'Class:SANSwitch/Attribute:datacenterdevice_list' => 'Cihazlar', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => 'Bu SAN anahtarına bağlı tüm cihazlar', -)); +]); // // Class: TapeLibrary // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:TapeLibrary' => 'Teyp Kütüphanesi', 'Class:TapeLibrary+' => '~~', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s~~', 'Class:TapeLibrary/Attribute:tapes_list' => 'Teypler', 'Class:TapeLibrary/Attribute:tapes_list+' => 'Teyp kitaplığındaki tüm teypler', -)); +]); // // Class: NAS // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '~~', 'Class:NAS/ComplementaryName' => '%1$s - %2$s~~', 'Class:NAS/Attribute:nasfilesystem_list' => 'Dosya sistemleri', 'Class:NAS/Attribute:nasfilesystem_list+' => 'Bu NAS\'daki tüm dosya sistemleri', -)); +]); // // Class: PC // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s~~', @@ -402,45 +402,45 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:PC/Attribute:type/Value:desktop+' => 'masaüstü', 'Class:PC/Attribute:type/Value:laptop' => 'dizüstü', 'Class:PC/Attribute:type/Value:laptop+' => 'dizüstü', -)); +]); // // Class: Printer // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Printer' => 'Yazıcı', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerConnection // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:PowerConnection' => 'Güç Bağlantısı', 'Class:PowerConnection+' => '~~', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: PowerSource // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:PowerSource' => 'Güç Kaynağı', 'Class:PowerSource+' => '~~', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s~~', 'Class:PowerSource/Attribute:pdus_list' => 'PDU\'lar', 'Class:PowerSource/Attribute:pdus_list+' => 'Bu güç kaynağını kullanan tüm PDU\'lar', -)); +]); // // Class: PDU // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '~~', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s~~', @@ -452,23 +452,23 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:PDU/Attribute:powerstart_id+' => '~~', 'Class:PDU/Attribute:powerstart_name' => 'Güç başlatıcı adı', 'Class:PDU/Attribute:powerstart_name+' => '~~', -)); +]); // // Class: Peripheral // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Peripheral' => 'Çevresel Birim', 'Class:Peripheral+' => '~~', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s~~', -)); +]); // // Class: Enclosure // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Enclosure' => 'Muhafaza', 'Class:Enclosure+' => '~~', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -480,13 +480,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Enclosure/Attribute:nb_u+' => '~~', 'Class:Enclosure/Attribute:device_list' => 'Cihazlar', 'Class:Enclosure/Attribute:device_list+' => 'Bu muhafazadaki tüm cihazlar', -)); +]); // // Class: ApplicationSolution // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ApplicationSolution' => 'Uygulama çözümleri', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => 'CIs', @@ -503,13 +503,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => 'Tüm CI\'ler hazır ise sistem hazırdır', 'Class:ApplicationSolution/Attribute:redundancy/count' => 'CI\'lerin en az %1$s \'i hazır ise sistem hazırdır', 'Class:ApplicationSolution/Attribute:redundancy/percent' => 'CI\'lerin en az %1$s %% \'i hazır ise sistem hazırdır.', -)); +]); // // Class: BusinessProcess // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:BusinessProcess' => 'İş süreci', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => 'Uygulama sistemleri', @@ -520,13 +520,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => 'Aktif', 'Class:BusinessProcess/Attribute:status/Value:inactive' => 'Aktif değil', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => 'Aktif değil', -)); +]); // // Class: SoftwareInstance // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:SoftwareInstance' => 'Yazılım Kurulumu', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => 'Sistem', @@ -549,64 +549,64 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => 'Aktif', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => 'Aktif değil', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => 'Aktif değil', -)); +]); // // Class: Middleware // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Middleware' => 'Ara katman yazılımı', 'Class:Middleware+' => '~~', 'Class:Middleware/Attribute:middlewareinstance_list' => 'Ara katman yazılımı olayları', 'Class:Middleware/Attribute:middlewareinstance_list+' => 'Bu ara katman yazılımı tarafından sağlanan tüm ara katman yazılımı olayları', -)); +]); // // Class: DBServer // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DBServer' => 'Veritabanı', 'Class:DBServer+' => 'Veritabanı yazılımı', 'Class:DBServer/Attribute:dbschema_list' => 'Veritabanı şemaları', 'Class:DBServer/Attribute:dbschema_list+' => 'Bu veritabanı sunucusu için tüm veritabanı şemaları', -)); +]); // // Class: WebServer // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:WebServer' => 'Web Sunucusu', 'Class:WebServer+' => '~~', 'Class:WebServer/Attribute:webapp_list' => 'Web Uygulamaları', 'Class:WebServer/Attribute:webapp_list+' => 'Bu web sunucusunda mevcut tüm web uygulamaları', -)); +]); // // Class: PCSoftware // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:PCSoftware' => 'PC yazılımı', 'Class:PCSoftware+' => '~~', -)); +]); // // Class: OtherSoftware // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:OtherSoftware' => 'Diğer yazılım', 'Class:OtherSoftware+' => '~~', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:MiddlewareInstance' => 'Ara katman yazılımı olayı', 'Class:MiddlewareInstance+' => '~~', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s~~', @@ -614,13 +614,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '~~', 'Class:MiddlewareInstance/Attribute:middleware_name' => 'Ara katman yazılımı adı', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '~~', -)); +]); // // Class: DatabaseSchema // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DatabaseSchema' => 'Veritabanı Şeması', 'Class:DatabaseSchema+' => '~~', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s~~', @@ -628,13 +628,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '~~', 'Class:DatabaseSchema/Attribute:dbserver_name' => 'Veritabanı sunucu adı', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '~~', -)); +]); // // Class: WebApplication // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:WebApplication' => 'Web Uygulaması', 'Class:WebApplication+' => '~~', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s~~', @@ -644,14 +644,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:WebApplication/Attribute:webserver_name+' => '~~', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '~~', -)); - +]); // // Class: VirtualDevice // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:VirtualDevice' => 'Sanal cihaz', 'Class:VirtualDevice+' => '~~', 'Class:VirtualDevice/Attribute:status' => 'Durum', @@ -666,24 +665,24 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => 'stok', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => 'Mantıksal depolama alanları', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => 'Bu cihaz tarafından kullanılan tüm mantıksal depolama alanları', -)); +]); // // Class: VirtualHost // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:VirtualHost' => 'Sanal Ana Makine', 'Class:VirtualHost+' => '~~', 'Class:VirtualHost/Attribute:virtualmachine_list' => 'Sanal Makineler', 'Class:VirtualHost/Attribute:virtualmachine_list+' => 'Bu ana makine üzerinde çalışan tüm sanal makineler', -)); +]); // // Class: Hypervisor // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Hypervisor' => 'Hipervizör', 'Class:Hypervisor+' => '~~', 'Class:Hypervisor/Attribute:farm_id' => 'Çiftlik', @@ -694,13 +693,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Hypervisor/Attribute:server_id+' => '~~', 'Class:Hypervisor/Attribute:server_name' => 'Sunucu adı', 'Class:Hypervisor/Attribute:server_name+' => '~~', -)); +]); // // Class: Farm // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Farm' => 'Çiftlik', 'Class:Farm+' => '~~', 'Class:Farm/Attribute:hypervisor_list' => 'Hipervizörler', @@ -709,13 +708,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Farm/Attribute:redundancy/disabled' => 'Tüm hipervizörler ayakta ise çiftlik ayaktadır', 'Class:Farm/Attribute:redundancy/count' => 'Hipervizörlerin en az %1$s \'i ayakta ise çiftlik ayaktadır', 'Class:Farm/Attribute:redundancy/percent' => 'Hipervizörlerin en az %1$s %% \'i ayakta ise çiftlik ayaktadır.', -)); +]); // // Class: VirtualMachine // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:VirtualMachine' => 'Sanal makine', 'Class:VirtualMachine+' => '~~', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s~~', @@ -743,13 +742,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:VirtualMachine/Attribute:managementip+' => '~~', 'Class:VirtualMachine/Attribute:logicalinterface_list' => 'Ağ arayüzleri', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => 'Tüm mantıksal ağ arayüzleri', -)); +]); // // Class: LogicalVolume // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:LogicalVolume' => 'Mantıksal Depolama Alanları', 'Class:LogicalVolume+' => '~~', 'Class:LogicalVolume/Attribute:name' => 'İsim', @@ -770,13 +769,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:LogicalVolume/Attribute:servers_list+' => 'Bu depolama alanını kullanan tüm sunucular', 'Class:LogicalVolume/Attribute:virtualdevices_list' => 'Sanal Cihazlar', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => 'Bu depolama alanını kullanan tüm sanal cihazlar', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkServerToVolume' => 'Bağlantılı sunucu / Depolama alanı', 'Class:lnkServerToVolume+' => '~~', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s~~', @@ -790,13 +789,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '~~', 'Class:lnkServerToVolume/Attribute:size_used' => 'Kullanılan boyut', 'Class:lnkServerToVolume/Attribute:size_used+' => '~~', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkVirtualDeviceToVolume' => 'Sanal cihaz / Depolama alanı bağla', 'Class:lnkVirtualDeviceToVolume+' => '~~', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s~~', @@ -810,13 +809,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '~~', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => 'Kullanılan boyut', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '~~', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkSanToDatacenterDevice' => 'SAN/ Veri merkezi cihazı bağla', 'Class:lnkSanToDatacenterDevice+' => '~~', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s~~', @@ -832,13 +831,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '~~', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => 'Cihaz FC', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '~~', -)); +]); // // Class: Tape // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Tape' => 'Teyp', 'Class:Tape+' => '~~', 'Class:Tape/Attribute:name' => 'İsim', @@ -851,13 +850,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Tape/Attribute:tapelibrary_id+' => '~~', 'Class:Tape/Attribute:tapelibrary_name' => 'Teyp Kütüphanesi Adı', 'Class:Tape/Attribute:tapelibrary_name+' => '~~', -)); +]); // // Class: NASFileSystem // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:NASFileSystem' => 'NAS dosya sistemi', 'Class:NASFileSystem+' => '~~', 'Class:NASFileSystem/Attribute:name' => 'İsim', @@ -872,13 +871,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:NASFileSystem/Attribute:nas_id+' => '~~', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS Adı', 'Class:NASFileSystem/Attribute:nas_name+' => '~~', -)); +]); // // Class: Software // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Software' => 'Yazılım', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s~~', @@ -908,13 +907,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Software/Attribute:softwarepatch_list+' => 'Bu yazılım için tüm yamalar', 'Class:Software/Attribute:softwarelicence_list' => 'Yazılım Lisansları', 'Class:Software/Attribute:softwarelicence_list+' => 'Bu yazılımın tüm lisansları', -)); +]); // // Class: Patch // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Patch' => 'Yama', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => 'Adı', @@ -925,13 +924,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => 'Tip', 'Class:Patch/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: OSPatch // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:OSPatch' => 'İşletim sistemi yaması', 'Class:OSPatch+' => '~~', 'Class:OSPatch/Attribute:functionalcis_list' => 'Cihazlar', @@ -940,13 +939,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:OSPatch/Attribute:osversion_id+' => '~~', 'Class:OSPatch/Attribute:osversion_name' => 'OS Sürüm Adı', 'Class:OSPatch/Attribute:osversion_name+' => '~~', -)); +]); // // Class: SoftwarePatch // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:SoftwarePatch' => 'Yazılım yaması', 'Class:SoftwarePatch+' => '~~', 'Class:SoftwarePatch/Attribute:software_id' => 'Yazılım', @@ -955,13 +954,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:SoftwarePatch/Attribute:software_name+' => '~~', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => 'Yazılım olayları', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => 'Bu yazılım yamasının kurulduğu tüm sistemler', -)); +]); // // Class: Licence // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Licence' => 'Lisans', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => 'Adı', @@ -990,13 +989,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => 'evet', 'Class:Licence/Attribute:finalclass' => 'Tip', 'Class:Licence/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: OSLicence // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:OSLicence' => 'OS Lisansı', 'Class:OSLicence+' => '~~', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1008,13 +1007,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => 'Bu lisansın kullanıldığı tüm sanal makineler', 'Class:OSLicence/Attribute:servers_list' => 'Sunucular', 'Class:OSLicence/Attribute:servers_list+' => 'Bu lisansın kullanıldığı tüm sunucular', -)); +]); // // Class: SoftwareLicence // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:SoftwareLicence' => 'Yazılım Lisansı', 'Class:SoftwareLicence+' => '~~', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s~~', @@ -1024,13 +1023,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:SoftwareLicence/Attribute:software_name+' => '~~', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => 'Yazılım olayları', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => 'Bu lisansın kullanıldığı tüm sistemler', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDocumentToLicence' => 'Belge / lisans bağla', 'Class:lnkDocumentToLicence+' => '~~', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s~~', @@ -1042,35 +1041,35 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '~~', 'Class:lnkDocumentToLicence/Attribute:document_name' => 'Belge Adı', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '~~', -)); +]); // // Class: OSVersion // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:OSVersion' => 'OS Sürümü', 'Class:OSVersion+' => '~~', 'Class:OSVersion/Attribute:osfamily_id' => 'OS ailesi', 'Class:OSVersion/Attribute:osfamily_id+' => '~~', 'Class:OSVersion/Attribute:osfamily_name' => 'OS Aile Adı', 'Class:OSVersion/Attribute:osfamily_name+' => '~~', -)); +]); // // Class: OSFamily // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:OSFamily' => 'OS ailesi', 'Class:OSFamily+' => '~~', -)); +]); // // Class: Brand // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Brand' => 'Marka', 'Class:Brand+' => '~~', 'Class:Brand/Attribute:logo' => 'Logo~~', @@ -1079,13 +1078,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Brand/Attribute:physicaldevices_list+' => 'Bu markaya karşılık gelen tüm fiziksel cihazlar', 'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~', 'Class:Brand/UniquenessRule:name' => 'This brand already exists~~', -)); +]); // // Class: Model // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Model' => 'Model', 'Class:Model+' => '~~', 'Class:Model/ComplementaryName' => '%1$s - %2$s~~', @@ -1137,37 +1136,37 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Model/Attribute:physicaldevices_list+' => 'Bu modele karşılık gelen tüm fiziksel cihazlar', 'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~', 'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:NetworkDeviceType' => 'Ağ Cihazı Tipi', 'Class:NetworkDeviceType+' => '~~', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => 'Ağ Aygıtları', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => 'Bu türde karşılık gelen tüm ağ aygıtları', -)); +]); // // Class: IOSVersion // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:IOSVersion' => 'IOS sürümü', 'Class:IOSVersion+' => '~~', 'Class:IOSVersion/Attribute:brand_id' => 'Marka', 'Class:IOSVersion/Attribute:brand_id+' => '~~', 'Class:IOSVersion/Attribute:brand_name' => 'Marka Adı', 'Class:IOSVersion/Attribute:brand_name+' => '~~', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDocumentToPatch' => 'Bağlantılı belge / yama', 'Class:lnkDocumentToPatch+' => '~~', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s~~', @@ -1179,13 +1178,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '~~', 'Class:lnkDocumentToPatch/Attribute:document_name' => 'Belge Adı', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => 'Yazılımı olayı / Yazılım yaması bağla', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '~~', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s~~', @@ -1197,13 +1196,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '~~', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => 'Yazılım olayı adı', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkFunctionalCIToOSPatch' => 'İşlevsel CI / OS Yaması bağla', 'Class:lnkFunctionalCIToOSPatch+' => '~~', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s~~', @@ -1215,13 +1214,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => 'İşlevsel CI Adı', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDocumentToSoftware' => 'Belge / yazılım bağla', 'Class:lnkDocumentToSoftware+' => '~~', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s~~', @@ -1233,13 +1232,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '~~', 'Class:lnkDocumentToSoftware/Attribute:document_name' => 'Belge Adı', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '~~', -)); +]); // // Class: Subnet // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Subnet' => 'Subnet', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s~~', @@ -1258,13 +1257,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLAN \'lar', 'Class:Subnet/Attribute:vlans_list+' => '~~', -)); +]); // // Class: VLAN // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:VLAN' => 'Vlan', 'Class:VLAN+' => '~~', 'Class:VLAN/Attribute:vlan_tag' => 'Vlan etiketi', @@ -1279,13 +1278,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:VLAN/Attribute:subnets_list+' => '~~', 'Class:VLAN/Attribute:physicalinterfaces_list' => 'Fiziksel Ağ Arayüzleri', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '~~', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkSubnetToVLAN' => 'Alt Ağ / VLAN bağla', 'Class:lnkSubnetToVLAN+' => '~~', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s~~', @@ -1299,26 +1298,26 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN Etiketi', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '~~', -)); +]); // // Class: NetworkInterface // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:NetworkInterface' => 'Network arayüzü', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => 'İsim', 'Class:NetworkInterface/Attribute:name+' => '~~', 'Class:NetworkInterface/Attribute:finalclass' => 'Tip', 'Class:NetworkInterface/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: IPInterface // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:IPInterface' => 'IP arayüzü', 'Class:IPInterface+' => '~~', 'Class:IPInterface/Attribute:ipaddress' => 'IP adresi', @@ -1333,13 +1332,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:IPInterface/Attribute:ipmask+' => '~~', 'Class:IPInterface/Attribute:speed' => 'Hız', 'Class:IPInterface/Attribute:speed+' => '~~', -)); +]); // // Class: PhysicalInterface // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:PhysicalInterface' => 'Fiziksel arayüz', 'Class:PhysicalInterface+' => '~~', 'Class:PhysicalInterface/Name' => '%2$s %1$s~~', @@ -1349,13 +1348,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '~~', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLAN\'lar', 'Class:PhysicalInterface/Attribute:vlans_list+' => '~~', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkPhysicalInterfaceToVLAN' => 'Fiziksel Arabirim / VLAN bağla', 'Class:lnkPhysicalInterfaceToVLAN+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s~~', @@ -1371,27 +1370,26 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '~~', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN etiketi', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '~~', -)); - +]); // // Class: LogicalInterface // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:LogicalInterface' => 'Mantıksal arabirim', 'Class:LogicalInterface+' => '~~', 'Class:LogicalInterface/Attribute:virtualmachine_id' => 'Sanal makine', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '~~', 'Class:LogicalInterface/Attribute:virtualmachine_name' => 'Sanal Makine Adı', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:FiberChannelInterface' => 'Fiber Kanal Arabirimi', 'Class:FiberChannelInterface+' => '~~', 'Class:FiberChannelInterface/Attribute:speed' => 'Hız', @@ -1404,13 +1402,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '~~', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => 'Cihaz adı', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '~~', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkConnectableCIToNetworkDevice' => 'İlişkilendirilebilir CI / Ağ cihazı bağla', 'Class:lnkConnectableCIToNetworkDevice+' => '~~', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s~~', @@ -1432,13 +1430,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => 'aşağı bağlantı', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => 'yukarı bağlantı', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => 'yukarı bağlantı', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkApplicationSolutionToFunctionalCI' => 'Uygulama Çözümü / İşlevsel CI bağla', 'Class:lnkApplicationSolutionToFunctionalCI+' => '~~', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1450,13 +1448,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '~~', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => 'İşlevsel CI Adı', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkApplicationSolutionToBusinessProcess' => 'Uygulama Çözümü / İş Süreci bağla', 'Class:lnkApplicationSolutionToBusinessProcess+' => '~~', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s~~', @@ -1468,13 +1466,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '~~', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => 'Uygulama Çözümü Adı', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '~~', -)); +]); // // Class: Group // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Group' => 'Grup', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s~~', @@ -1504,13 +1502,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Group/Attribute:ci_list+' => 'All the configuration items linked to this group~~', 'Class:Group/Attribute:parent_id_friendlyname' => 'Ana Grup', 'Class:Group/Attribute:parent_id_friendlyname+' => '~~', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkGroupToCI' => 'Grup / KK', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s~~', @@ -1524,11 +1522,11 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => 'Sebep', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Server:baseinfo' => 'Genel Bilgi', 'Server:Date' => 'Tarihler', 'Server:moreinfo' => 'Daha fazla bilgi', @@ -1541,14 +1539,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Subnet/Tab:FreeIPs-count' => 'Boş IPler: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => 'Boş IP adresleri', 'Class:Document:PreviewTab' => 'Ön görünüm', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDocumentToFunctionalCI' => 'Belge / İşlevsel CI bağla', 'Class:lnkDocumentToFunctionalCI+' => '~~', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -1560,13 +1557,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '~~', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => 'Belge Adı', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '~~', -)); +]); // // Application Menu // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:Application' => 'Uygulamalar', 'Menu:Application+' => 'Tüm Uygulamalar', 'Menu:DBServer' => 'Veritabanı sunucuları', @@ -1611,15 +1608,15 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Menu:OSVersion+' => '~~', 'Menu:Software' => 'Yazılım Kataloğu', 'Menu:Software+' => 'Yazılım Kataloğu', -)); +]); // // Class: PhysicalInterface // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php index 60a170281..19702c15e 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/zh_cn.dict.itop-config-mgmt.php @@ -1,4 +1,5 @@ '被影响的元素', 'Relation:impacts/DownStream' => '影响...', 'Relation:impacts/DownStream+' => '被影响的元素', @@ -37,8 +38,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Relation:impacts/LoadData' => '加载数据', 'Relation:impacts/NoFilteredData' => 'please select objects and load data~~', 'Relation:impacts/FilteredData' => 'Filtered data~~', -)); - +]); // Dictionnay conventions // Class: @@ -81,7 +81,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Class: lnkContactToFunctionalCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContactToFunctionalCI' => '关联联系人/功能项', 'Class:lnkContactToFunctionalCI+' => '', 'Class:lnkContactToFunctionalCI/Name' => '%1$s / %2$s', @@ -93,13 +93,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkContactToFunctionalCI/Attribute:contact_id+' => '', 'Class:lnkContactToFunctionalCI/Attribute:contact_name' => '联系人名称', 'Class:lnkContactToFunctionalCI/Attribute:contact_name+' => '', -)); +]); // // Class: FunctionalCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:FunctionalCI' => '功能配置项', 'Class:FunctionalCI+' => '', 'Class:FunctionalCI/Attribute:name' => '名称', @@ -132,13 +132,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:FunctionalCI/Attribute:finalclass+' => '根本属性的名称', 'Class:FunctionalCI/Tab:OpenedTickets' => '活跃的工单', 'Class:FunctionalCI/Tab:OpenedTickets+' => '影响当前功能配置项的活跃工单', -)); +]); // // Class: PhysicalDevice // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:PhysicalDevice' => '物理设备', 'Class:PhysicalDevice+' => '', 'Class:PhysicalDevice/ComplementaryName' => '%1$s - %2$s', @@ -172,13 +172,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:PhysicalDevice/Attribute:purchase_date+' => '', 'Class:PhysicalDevice/Attribute:end_of_warranty' => '过保日期', 'Class:PhysicalDevice/Attribute:end_of_warranty+' => '', -)); +]); // // Class: Rack // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Rack' => '机架', 'Class:Rack+' => '', 'Class:Rack/ComplementaryName' => '%1$s - %2$s', @@ -188,64 +188,64 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Rack/Attribute:device_list+' => '此机架托管的所有物理设备', 'Class:Rack/Attribute:enclosure_list' => '机柜', 'Class:Rack/Attribute:enclosure_list+' => '此机架上的所有机柜', -)); +]); // // Class: TelephonyCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TelephonyCI' => '通讯项', 'Class:TelephonyCI+' => '', 'Class:TelephonyCI/Attribute:phonenumber' => '电话号码', 'Class:TelephonyCI/Attribute:phonenumber+' => '', -)); +]); // // Class: Phone // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Phone' => '电话', 'Class:Phone+' => '', -)); +]); // // Class: MobilePhone // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:MobilePhone' => '手机', 'Class:MobilePhone+' => '', 'Class:MobilePhone/Attribute:imei' => 'IMEI', 'Class:MobilePhone/Attribute:imei+' => '', 'Class:MobilePhone/Attribute:hw_pin' => '硬件 PIN 码', 'Class:MobilePhone/Attribute:hw_pin+' => '', -)); +]); // // Class: IPPhone // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:IPPhone' => 'IP 电话', 'Class:IPPhone+' => '', -)); +]); // // Class: Tablet // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Tablet' => '平板', 'Class:Tablet+' => '', -)); +]); // // Class: ConnectableCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ConnectableCI' => '可连接的配置项', 'Class:ConnectableCI+' => '物理配置项', 'Class:ConnectableCI/ComplementaryName' => '%1$s - %2$s', @@ -253,13 +253,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ConnectableCI/Attribute:networkdevice_list+' => '所有连接到这台设备的网络设备', 'Class:ConnectableCI/Attribute:physicalinterface_list' => '网卡', 'Class:ConnectableCI/Attribute:physicalinterface_list+' => '所有物理网卡', -)); +]); // // Class: DatacenterDevice // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DatacenterDevice' => '数据中心设备', 'Class:DatacenterDevice+' => '', 'Class:DatacenterDevice/ComplementaryName' => '%1$s - %2$s', @@ -292,13 +292,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Unused yet 'Class:DatacenterDevice/Attribute:redundancy/disabled' => '所有电源正常, 此设备才正常', 'Class:DatacenterDevice/Attribute:redundancy/percent' => '至少%1$s %%路电源正常, 设备才正常', -)); +]); // // Class: NetworkDevice // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:NetworkDevice' => '网络设备', 'Class:NetworkDevice+' => '', 'Class:NetworkDevice/ComplementaryName' => '%1$s - %2$s', @@ -314,13 +314,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:NetworkDevice/Attribute:iosversion_name+' => '', 'Class:NetworkDevice/Attribute:ram' => '内存', 'Class:NetworkDevice/Attribute:ram+' => '', -)); +]); // // Class: Server // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Server' => '服务器', 'Class:Server+' => '', 'Class:Server/ComplementaryName' => '%1$s - %2$s', @@ -342,61 +342,61 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Server/Attribute:ram+' => '', 'Class:Server/Attribute:logicalvolumes_list' => '逻辑卷', 'Class:Server/Attribute:logicalvolumes_list+' => '连接到此服务器的所有逻辑卷', -)); +]); // // Class: StorageSystem // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:StorageSystem' => '存储系统', 'Class:StorageSystem+' => '', 'Class:StorageSystem/ComplementaryName' => '%1$s - %2$s', 'Class:StorageSystem/Attribute:logicalvolume_list' => '逻辑卷', 'Class:StorageSystem/Attribute:logicalvolume_list+' => '此存储系统包含的所有逻辑卷', -)); +]); // // Class: SANSwitch // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SANSwitch' => 'SAN交换机', 'Class:SANSwitch+' => '', 'Class:SANSwitch/ComplementaryName' => '%1$s - %2$s', 'Class:SANSwitch/Attribute:datacenterdevice_list' => '设备', 'Class:SANSwitch/Attribute:datacenterdevice_list+' => '连接到此SAN交换机的所有设备', -)); +]); // // Class: TapeLibrary // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TapeLibrary' => '磁带库', 'Class:TapeLibrary+' => '', 'Class:TapeLibrary/ComplementaryName' => '%1$s - %2$s', 'Class:TapeLibrary/Attribute:tapes_list' => '磁带', 'Class:TapeLibrary/Attribute:tapes_list+' => '此磁带库里的所有磁带', -)); +]); // // Class: NAS // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:NAS' => 'NAS', 'Class:NAS+' => '', 'Class:NAS/ComplementaryName' => '%1$s - %2$s', 'Class:NAS/Attribute:nasfilesystem_list' => '文件系统', 'Class:NAS/Attribute:nasfilesystem_list+' => '此NAS里的所有文件系统', -)); +]); // // Class: PC // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:PC' => 'PC', 'Class:PC+' => '', 'Class:PC/ComplementaryName' => '%1$s - %2$s', @@ -418,45 +418,45 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:PC/Attribute:type/Value:desktop+' => '台式机', 'Class:PC/Attribute:type/Value:laptop' => '笔记本', 'Class:PC/Attribute:type/Value:laptop+' => '笔记本', -)); +]); // // Class: Printer // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Printer' => '打印机', 'Class:Printer+' => '', 'Class:Printer/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerConnection // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:PowerConnection' => '供电线路', 'Class:PowerConnection+' => '', 'Class:PowerConnection/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: PowerSource // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:PowerSource' => '电源', 'Class:PowerSource+' => '', 'Class:PowerSource/ComplementaryName' => '%1$s - %2$s', 'Class:PowerSource/Attribute:pdus_list' => 'PDU', 'Class:PowerSource/Attribute:pdus_list+' => '使用此电源的所有 PDU', -)); +]); // // Class: PDU // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:PDU' => 'PDU', 'Class:PDU+' => '', 'Class:PDU/ComplementaryName' => '%1$s - %2$s - %3$s - %4$s', @@ -468,23 +468,23 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:PDU/Attribute:powerstart_id+' => '', 'Class:PDU/Attribute:powerstart_name' => '上级电源名称', 'Class:PDU/Attribute:powerstart_name+' => '', -)); +]); // // Class: Peripheral // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Peripheral' => '配件', 'Class:Peripheral+' => '', 'Class:Peripheral/ComplementaryName' => '%1$s - %2$s', -)); +]); // // Class: Enclosure // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Enclosure' => '机柜', 'Class:Enclosure+' => '', 'Class:Enclosure/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -496,13 +496,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Enclosure/Attribute:nb_u+' => '', 'Class:Enclosure/Attribute:device_list' => '设备', 'Class:Enclosure/Attribute:device_list+' => '此机柜的所有设备', -)); +]); // // Class: ApplicationSolution // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ApplicationSolution' => '应用方案', 'Class:ApplicationSolution+' => '', 'Class:ApplicationSolution/Attribute:functionalcis_list' => '配置项', @@ -519,13 +519,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ApplicationSolution/Attribute:redundancy/disabled' => '所有配置项正常, 此应用方案才正常', 'Class:ApplicationSolution/Attribute:redundancy/count' => '至少%1$s个配置项正常时此应用方案才正常', 'Class:ApplicationSolution/Attribute:redundancy/percent' => '至少%1$s %%的配置项正常, 此应用方案才正常', -)); +]); // // Class: BusinessProcess // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:BusinessProcess' => '业务流程', 'Class:BusinessProcess+' => '', 'Class:BusinessProcess/Attribute:applicationsolutions_list' => '应用方案', @@ -536,13 +536,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:BusinessProcess/Attribute:status/Value:active+' => '启用', 'Class:BusinessProcess/Attribute:status/Value:inactive' => '停用', 'Class:BusinessProcess/Attribute:status/Value:inactive+' => '停用', -)); +]); // // Class: SoftwareInstance // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SoftwareInstance' => '软件实例', 'Class:SoftwareInstance+' => '', 'Class:SoftwareInstance/Attribute:system_id' => '系统', @@ -565,64 +565,64 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:SoftwareInstance/Attribute:status/Value:active+' => '启用', 'Class:SoftwareInstance/Attribute:status/Value:inactive' => '停用', 'Class:SoftwareInstance/Attribute:status/Value:inactive+' => '停用', -)); +]); // // Class: Middleware // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Middleware' => '中间件', 'Class:Middleware+' => '', 'Class:Middleware/Attribute:middlewareinstance_list' => '中间件实例', 'Class:Middleware/Attribute:middlewareinstance_list+' => '此中间件的所有实例', -)); +]); // // Class: DBServer // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DBServer' => '数据库服务器', 'Class:DBServer+' => '', 'Class:DBServer/Attribute:dbschema_list' => '数据库', 'Class:DBServer/Attribute:dbschema_list+' => '此数据库服务器上的所有数据库架构', -)); +]); // // Class: WebServer // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:WebServer' => 'Web服务器', 'Class:WebServer+' => '', 'Class:WebServer/Attribute:webapp_list' => 'Web应用', 'Class:WebServer/Attribute:webapp_list+' => '此web服务器上的所有web应用', -)); +]); // // Class: PCSoftware // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:PCSoftware' => 'PC 软件', 'Class:PCSoftware+' => '', -)); +]); // // Class: OtherSoftware // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:OtherSoftware' => '其它软件', 'Class:OtherSoftware+' => '', -)); +]); // // Class: MiddlewareInstance // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:MiddlewareInstance' => '中间件实例', 'Class:MiddlewareInstance+' => '', 'Class:MiddlewareInstance/ComplementaryName' => '%1$s - %2$s', @@ -630,13 +630,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:MiddlewareInstance/Attribute:middleware_id+' => '', 'Class:MiddlewareInstance/Attribute:middleware_name' => '名称', 'Class:MiddlewareInstance/Attribute:middleware_name+' => '', -)); +]); // // Class: DatabaseSchema // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DatabaseSchema' => '数据库', 'Class:DatabaseSchema+' => '', 'Class:DatabaseSchema/ComplementaryName' => '%1$s - %2$s', @@ -644,13 +644,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:DatabaseSchema/Attribute:dbserver_id+' => '', 'Class:DatabaseSchema/Attribute:dbserver_name' => '名称', 'Class:DatabaseSchema/Attribute:dbserver_name+' => '', -)); +]); // // Class: WebApplication // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:WebApplication' => 'Web 应用', 'Class:WebApplication+' => '', 'Class:WebApplication/ComplementaryName' => '%1$s - %2$s', @@ -660,14 +660,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:WebApplication/Attribute:webserver_name+' => '', 'Class:WebApplication/Attribute:url' => 'URL', 'Class:WebApplication/Attribute:url+' => '', -)); - +]); // // Class: VirtualDevice // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:VirtualDevice' => '虚拟设备', 'Class:VirtualDevice+' => '', 'Class:VirtualDevice/Attribute:status' => '状态', @@ -682,24 +681,24 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:VirtualDevice/Attribute:status/Value:stock+' => '库存', 'Class:VirtualDevice/Attribute:logicalvolumes_list' => '逻辑卷', 'Class:VirtualDevice/Attribute:logicalvolumes_list+' => '此设备使用的所有逻辑卷', -)); +]); // // Class: VirtualHost // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:VirtualHost' => '宿主机', 'Class:VirtualHost+' => '', 'Class:VirtualHost/Attribute:virtualmachine_list' => '虚拟机', 'Class:VirtualHost/Attribute:virtualmachine_list+' => '此宿主机托管的所有虚拟机', -)); +]); // // Class: Hypervisor // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Hypervisor' => '虚拟机管理器', 'Class:Hypervisor+' => '', 'Class:Hypervisor/Attribute:farm_id' => '集群', @@ -710,13 +709,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Hypervisor/Attribute:server_id+' => '', 'Class:Hypervisor/Attribute:server_name' => '名称', 'Class:Hypervisor/Attribute:server_name+' => '', -)); +]); // // Class: Farm // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Farm' => '集群', 'Class:Farm+' => '', 'Class:Farm/Attribute:hypervisor_list' => '虚拟机管理器', @@ -725,13 +724,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Farm/Attribute:redundancy/disabled' => '所有虚拟机管理器正常, 集群才正常', 'Class:Farm/Attribute:redundancy/count' => '至少%1$s个虚拟机管理器是正常的, 集群才是正常的', 'Class:Farm/Attribute:redundancy/percent' => '至少%1$s %%的虚拟机管理器是正常的, 集群才正常', -)); +]); // // Class: VirtualMachine // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:VirtualMachine' => '虚拟机', 'Class:VirtualMachine+' => '', 'Class:VirtualMachine/ComplementaryName' => '%1$s - %2$s', @@ -759,13 +758,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:VirtualMachine/Attribute:managementip+' => '', 'Class:VirtualMachine/Attribute:logicalinterface_list' => '网卡', 'Class:VirtualMachine/Attribute:logicalinterface_list+' => '所有逻辑网卡', -)); +]); // // Class: LogicalVolume // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:LogicalVolume' => '逻辑卷', 'Class:LogicalVolume+' => '', 'Class:LogicalVolume/Attribute:name' => '名称', @@ -786,13 +785,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:LogicalVolume/Attribute:servers_list+' => '使用此逻辑卷的服务器', 'Class:LogicalVolume/Attribute:virtualdevices_list' => '虚拟设备', 'Class:LogicalVolume/Attribute:virtualdevices_list+' => '使用此逻辑卷的所有虚拟设备', -)); +]); // // Class: lnkServerToVolume // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkServerToVolume' => '关联服务器/逻辑卷', 'Class:lnkServerToVolume+' => '', 'Class:lnkServerToVolume/Name' => '%1$s / %2$s', @@ -806,13 +805,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkServerToVolume/Attribute:server_name+' => '', 'Class:lnkServerToVolume/Attribute:size_used' => '已用容量', 'Class:lnkServerToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkVirtualDeviceToVolume // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkVirtualDeviceToVolume' => '关联虚拟设备/逻辑卷', 'Class:lnkVirtualDeviceToVolume+' => '', 'Class:lnkVirtualDeviceToVolume/Name' => '%1$s / %2$s', @@ -826,13 +825,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkVirtualDeviceToVolume/Attribute:virtualdevice_name+' => '', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used' => '已用容量', 'Class:lnkVirtualDeviceToVolume/Attribute:size_used+' => '', -)); +]); // // Class: lnkSanToDatacenterDevice // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkSanToDatacenterDevice' => '关联 SAN/数据中心设备', 'Class:lnkSanToDatacenterDevice+' => '', 'Class:lnkSanToDatacenterDevice/Name' => '%1$s / %2$s', @@ -848,13 +847,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkSanToDatacenterDevice/Attribute:san_port+' => '', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port' => '设备光口', 'Class:lnkSanToDatacenterDevice/Attribute:datacenterdevice_port+' => '', -)); +]); // // Class: Tape // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Tape' => '磁带', 'Class:Tape+' => '', 'Class:Tape/Attribute:name' => '名称', @@ -867,13 +866,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Tape/Attribute:tapelibrary_id+' => '', 'Class:Tape/Attribute:tapelibrary_name' => '名称', 'Class:Tape/Attribute:tapelibrary_name+' => '', -)); +]); // // Class: NASFileSystem // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:NASFileSystem' => 'NAS 文件系统', 'Class:NASFileSystem+' => '', 'Class:NASFileSystem/Attribute:name' => '名称', @@ -888,13 +887,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:NASFileSystem/Attribute:nas_id+' => '', 'Class:NASFileSystem/Attribute:nas_name' => 'NAS 名称', 'Class:NASFileSystem/Attribute:nas_name+' => '', -)); +]); // // Class: Software // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Software' => '软件', 'Class:Software+' => '', 'Class:Software/ComplementaryName' => '%1$s - %2$s', @@ -924,13 +923,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Software/Attribute:softwarepatch_list+' => '此软件的所有补丁', 'Class:Software/Attribute:softwarelicence_list' => '软件许可证', 'Class:Software/Attribute:softwarelicence_list+' => '此软件的所有许可证', -)); +]); // // Class: Patch // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Patch' => '补丁', 'Class:Patch+' => '', 'Class:Patch/Attribute:name' => '名称', @@ -941,13 +940,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Patch/Attribute:description+' => '', 'Class:Patch/Attribute:finalclass' => '补丁类型', 'Class:Patch/Attribute:finalclass+' => '根本属性的名称', -)); +]); // // Class: OSPatch // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:OSPatch' => '操作系统补丁', 'Class:OSPatch+' => '', 'Class:OSPatch/Attribute:functionalcis_list' => '设备', @@ -956,13 +955,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:OSPatch/Attribute:osversion_id+' => '', 'Class:OSPatch/Attribute:osversion_name' => '名称', 'Class:OSPatch/Attribute:osversion_name+' => '', -)); +]); // // Class: SoftwarePatch // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SoftwarePatch' => '软件补丁', 'Class:SoftwarePatch+' => '', 'Class:SoftwarePatch/Attribute:software_id' => '软件', @@ -971,13 +970,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:SoftwarePatch/Attribute:software_name+' => '', 'Class:SoftwarePatch/Attribute:softwareinstances_list' => '软件实例', 'Class:SoftwarePatch/Attribute:softwareinstances_list+' => '已安装此软件补丁的所有系统', -)); +]); // // Class: Licence // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Licence' => '许可证', 'Class:Licence+' => '', 'Class:Licence/Attribute:name' => '名称', @@ -1006,13 +1005,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Licence/Attribute:perpetual/Value:yes+' => '是', 'Class:Licence/Attribute:finalclass' => '许可证类型', 'Class:Licence/Attribute:finalclass+' => '根本属性的名称', -)); +]); // // Class: OSLicence // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:OSLicence' => '操作系统许可证', 'Class:OSLicence+' => '', 'Class:OSLicence/ComplementaryName' => '%1$s - %2$s', @@ -1024,13 +1023,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:OSLicence/Attribute:virtualmachines_list+' => '使用此许可证的所有虚拟机', 'Class:OSLicence/Attribute:servers_list' => '服务器', 'Class:OSLicence/Attribute:servers_list+' => '使用此许可证的所有服务器', -)); +]); // // Class: SoftwareLicence // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SoftwareLicence' => '软件许可证', 'Class:SoftwareLicence+' => '', 'Class:SoftwareLicence/ComplementaryName' => '%1$s - %2$s', @@ -1040,13 +1039,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:SoftwareLicence/Attribute:software_name+' => '', 'Class:SoftwareLicence/Attribute:softwareinstance_list' => '软件实例', 'Class:SoftwareLicence/Attribute:softwareinstance_list+' => '使用此许可证的所有系统', -)); +]); // // Class: lnkDocumentToLicence // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDocumentToLicence' => '关联文档/许可证', 'Class:lnkDocumentToLicence+' => '', 'Class:lnkDocumentToLicence/Name' => '%1$s / %2$s', @@ -1058,35 +1057,35 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDocumentToLicence/Attribute:document_id+' => '', 'Class:lnkDocumentToLicence/Attribute:document_name' => '文档名称', 'Class:lnkDocumentToLicence/Attribute:document_name+' => '', -)); +]); // // Class: OSVersion // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:OSVersion' => '操作系统版本', 'Class:OSVersion+' => '', 'Class:OSVersion/Attribute:osfamily_id' => '操作系统家族', 'Class:OSVersion/Attribute:osfamily_id+' => '', 'Class:OSVersion/Attribute:osfamily_name' => '名称', 'Class:OSVersion/Attribute:osfamily_name+' => '', -)); +]); // // Class: OSFamily // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:OSFamily' => '操作系统家族', 'Class:OSFamily+' => '', -)); +]); // // Class: Brand // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Brand' => '品牌', 'Class:Brand+' => '', 'Class:Brand/Attribute:logo' => 'Logo', @@ -1095,13 +1094,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Brand/Attribute:physicaldevices_list+' => '此品牌的所有物理设备', 'Class:Brand/UniquenessRule:name+' => '名称必须唯一', 'Class:Brand/UniquenessRule:name' => '此品牌已存在', -)); +]); // // Class: Model // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Model' => '型号', 'Class:Model+' => '', 'Class:Model/ComplementaryName' => '%1$s - %2$s', @@ -1153,37 +1152,37 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Model/Attribute:physicaldevices_list+' => '此型号的所有物理设备', 'Class:Model/UniquenessRule:name_brand+' => '名称必须唯一', 'Class:Model/UniquenessRule:name_brand' => '此型号已存在', -)); +]); // // Class: NetworkDeviceType // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:NetworkDeviceType' => '网络设备类型', 'Class:NetworkDeviceType+' => '', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list' => '网络设备', 'Class:NetworkDeviceType/Attribute:networkdevicesdevices_list+' => '此类型的所有网络设备', -)); +]); // // Class: IOSVersion // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:IOSVersion' => 'IOS 版本', 'Class:IOSVersion+' => '', 'Class:IOSVersion/Attribute:brand_id' => '品牌', 'Class:IOSVersion/Attribute:brand_id+' => '', 'Class:IOSVersion/Attribute:brand_name' => '名称', 'Class:IOSVersion/Attribute:brand_name+' => '', -)); +]); // // Class: lnkDocumentToPatch // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDocumentToPatch' => '关联文档/补丁', 'Class:lnkDocumentToPatch+' => '', 'Class:lnkDocumentToPatch/Name' => '%1$s / %2$s', @@ -1195,13 +1194,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDocumentToPatch/Attribute:document_id+' => '', 'Class:lnkDocumentToPatch/Attribute:document_name' => '文档名称', 'Class:lnkDocumentToPatch/Attribute:document_name+' => '', -)); +]); // // Class: lnkSoftwareInstanceToSoftwarePatch // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkSoftwareInstanceToSoftwarePatch' => ' 关联软件实例/软件补丁', 'Class:lnkSoftwareInstanceToSoftwarePatch+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Name' => '%1$s / %2$s', @@ -1213,13 +1212,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_id+' => '', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name' => '软件实例名称', 'Class:lnkSoftwareInstanceToSoftwarePatch/Attribute:softwareinstance_name+' => '', -)); +]); // // Class: lnkFunctionalCIToOSPatch // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkFunctionalCIToOSPatch' => '关联功能项/操作系统补丁', 'Class:lnkFunctionalCIToOSPatch+' => '', 'Class:lnkFunctionalCIToOSPatch/Name' => '%1$s / %2$s', @@ -1231,13 +1230,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name' => '功能项名称', 'Class:lnkFunctionalCIToOSPatch/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkDocumentToSoftware // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDocumentToSoftware' => '关联文档/软件', 'Class:lnkDocumentToSoftware+' => '', 'Class:lnkDocumentToSoftware/Name' => '%1$s / %2$s', @@ -1249,13 +1248,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDocumentToSoftware/Attribute:document_id+' => '', 'Class:lnkDocumentToSoftware/Attribute:document_name' => '文档名称', 'Class:lnkDocumentToSoftware/Attribute:document_name+' => '', -)); +]); // // Class: Subnet // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Subnet' => '子网', 'Class:Subnet+' => '', 'Class:Subnet/Name' => '%1$s/%2$s', @@ -1274,13 +1273,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Subnet/Attribute:ip_mask+' => '', 'Class:Subnet/Attribute:vlans_list' => 'VLAN', 'Class:Subnet/Attribute:vlans_list+' => '', -)); +]); // // Class: VLAN // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:VLAN' => 'VLAN', 'Class:VLAN+' => '', 'Class:VLAN/Attribute:vlan_tag' => 'VLAN 标记', @@ -1295,13 +1294,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:VLAN/Attribute:subnets_list+' => '', 'Class:VLAN/Attribute:physicalinterfaces_list' => '物理网卡', 'Class:VLAN/Attribute:physicalinterfaces_list+' => '', -)); +]); // // Class: lnkSubnetToVLAN // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkSubnetToVLAN' => '关联子网/VLAN', 'Class:lnkSubnetToVLAN+' => '', 'Class:lnkSubnetToVLAN/Name' => '%1$s / %2$s', @@ -1315,26 +1314,26 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkSubnetToVLAN/Attribute:vlan_id+' => '', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag' => 'VLAN 标记', 'Class:lnkSubnetToVLAN/Attribute:vlan_tag+' => '', -)); +]); // // Class: NetworkInterface // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:NetworkInterface' => '网卡', 'Class:NetworkInterface+' => '', 'Class:NetworkInterface/Attribute:name' => '名称', 'Class:NetworkInterface/Attribute:name+' => '', 'Class:NetworkInterface/Attribute:finalclass' => '网卡类型', 'Class:NetworkInterface/Attribute:finalclass+' => '根本属性的名称', -)); +]); // // Class: IPInterface // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:IPInterface' => 'IP 接口', 'Class:IPInterface+' => '', 'Class:IPInterface/Attribute:ipaddress' => 'IP 地址', @@ -1349,13 +1348,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:IPInterface/Attribute:ipmask+' => '', 'Class:IPInterface/Attribute:speed' => '速率', 'Class:IPInterface/Attribute:speed+' => '', -)); +]); // // Class: PhysicalInterface // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:PhysicalInterface' => '物理网卡', 'Class:PhysicalInterface+' => '', 'Class:PhysicalInterface/Name' => '%2$s %1$s', @@ -1365,13 +1364,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:PhysicalInterface/Attribute:connectableci_name+' => '', 'Class:PhysicalInterface/Attribute:vlans_list' => 'VLAN', 'Class:PhysicalInterface/Attribute:vlans_list+' => '', -)); +]); // // Class: lnkPhysicalInterfaceToVLAN // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkPhysicalInterfaceToVLAN' => '关联物理网卡/VLAN', 'Class:lnkPhysicalInterfaceToVLAN+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Name' => '%1$s %2$s / %3$s', @@ -1387,27 +1386,26 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_id+' => '', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag' => 'VLAN 标记', 'Class:lnkPhysicalInterfaceToVLAN/Attribute:vlan_tag+' => '', -)); - +]); // // Class: LogicalInterface // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:LogicalInterface' => '逻辑网卡', 'Class:LogicalInterface+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_id' => '虚拟机', 'Class:LogicalInterface/Attribute:virtualmachine_id+' => '', 'Class:LogicalInterface/Attribute:virtualmachine_name' => '虚拟机名称', 'Class:LogicalInterface/Attribute:virtualmachine_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:FiberChannelInterface' => '光纤接口', 'Class:FiberChannelInterface+' => '', 'Class:FiberChannelInterface/Attribute:speed' => '速率', @@ -1420,13 +1418,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:FiberChannelInterface/Attribute:datacenterdevice_id+' => '', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name' => '设备名称', 'Class:FiberChannelInterface/Attribute:datacenterdevice_name+' => '', -)); +]); // // Class: lnkConnectableCIToNetworkDevice // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkConnectableCIToNetworkDevice' => '关联可连接项/网络设备', 'Class:lnkConnectableCIToNetworkDevice+' => '', 'Class:lnkConnectableCIToNetworkDevice/Name' => '%1$s / %2$s', @@ -1448,13 +1446,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:downlink+' => '下联', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink' => '上联', 'Class:lnkConnectableCIToNetworkDevice/Attribute:connection_type/Value:uplink+' => '上联', -)); +]); // // Class: lnkApplicationSolutionToFunctionalCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkApplicationSolutionToFunctionalCI' => '关联应用方案/功能项', 'Class:lnkApplicationSolutionToFunctionalCI+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Name' => '%1$s / %2$s', @@ -1466,13 +1464,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name' => '功能项名称', 'Class:lnkApplicationSolutionToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: lnkApplicationSolutionToBusinessProcess // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkApplicationSolutionToBusinessProcess' => '关联应用方案/业务流程', 'Class:lnkApplicationSolutionToBusinessProcess+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Name' => '%1$s / %2$s', @@ -1484,13 +1482,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_id+' => '', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name' => '应用方案名称', 'Class:lnkApplicationSolutionToBusinessProcess/Attribute:applicationsolution_name+' => '', -)); +]); // // Class: Group // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Group' => '配置组', 'Class:Group+' => '', 'Class:Group/ComplementaryName' => '%1$s - %2$s', @@ -1520,13 +1518,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Group/Attribute:ci_list+' => '此组关联的所有配置项', 'Class:Group/Attribute:parent_id_friendlyname' => '上级配置组', 'Class:Group/Attribute:parent_id_friendlyname+' => '', -)); +]); // // Class: lnkGroupToCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkGroupToCI' => '关联配置组/配置项', 'Class:lnkGroupToCI+' => '', 'Class:lnkGroupToCI/Name' => '%1$s / %2$s', @@ -1540,11 +1538,11 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkGroupToCI/Attribute:ci_name+' => '', 'Class:lnkGroupToCI/Attribute:reason' => '原因', 'Class:lnkGroupToCI/Attribute:reason+' => '', -)); +]); // Add translation for Fieldsets -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Server:baseinfo' => '基本信息', 'Server:Date' => '日期', 'Server:moreinfo' => '更多信息', @@ -1557,14 +1555,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Subnet/Tab:FreeIPs-count' => '空闲 IP: %1$s', 'Class:Subnet/Tab:FreeIPs-explain' => '以下是抽取的10个空闲 IP', 'Class:Document:PreviewTab' => '预览', -)); - +]); // // Class: lnkDocumentToFunctionalCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDocumentToFunctionalCI' => '关联文档/功能项', 'Class:lnkDocumentToFunctionalCI+' => '', 'Class:lnkDocumentToFunctionalCI/Name' => '%1$s / %2$s', @@ -1576,13 +1573,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDocumentToFunctionalCI/Attribute:document_id+' => '', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name' => '文档名称', 'Class:lnkDocumentToFunctionalCI/Attribute:document_name+' => '', -)); +]); // // Application Menu // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:Application' => '应用', 'Menu:Application+' => '所有应用', 'Menu:DBServer' => '数据库服务器', @@ -1627,15 +1624,15 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Menu:OSVersion+' => '', 'Menu:Software' => '软件清单', 'Menu:Software+' => '软件清单', -)); +]); // // Class: PhysicalInterface // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:PhysicalInterface/Attribute:org_id' => 'Org id~~', 'Class:PhysicalInterface/Attribute:org_id+' => '~~', 'Class:PhysicalInterface/Attribute:location_id' => 'Location id~~', 'Class:PhysicalInterface/Attribute:location_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-config-mgmt/main.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/main.itop-config-mgmt.php index 88c16a25a..faf7e17b2 100755 --- a/datamodels/2.x/itop-config-mgmt/main.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/main.itop-config-mgmt.php @@ -1,9 +1,10 @@ - // Starting with iTop 1.2 you can restrict the list of organizations displayed in the drop-down list // by specifying a query as shown below. Note that this is NOT a security settings, since the // choice 'All Organizations' will always be available in the menu ApplicationMenu::SetFavoriteSiloQuery('SELECT Organization'); - -?> diff --git a/datamodels/2.x/itop-config/dictionaries/cs.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/cs.dict.itop-config.php index 63d19b7cd..b5ebede28 100644 --- a/datamodels/2.x/itop-config/dictionaries/cs.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/cs.dict.itop-config.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:ConfigFileEditor' => 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Editor konfiguračního souboru', 'config-edit-intro' => 'Při úpravách konfiguračního souboru buďte velice opatrní. Nesprávné nastavení může vést k nedostupnosti '.ITOP_APPLICATION_SHORT, 'Menu:ConfigEditor' => 'Konfigurace', @@ -28,5 +29,5 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'config-error-transaction' => 'Chyba: Neplatné ID transakce. Konfigurace nebyla změněna.', 'config-error-file-changed' => 'Chyba: Konfigurační soubor se od doby, kdy jste jej otevřeli, změnil a nelze jej uložit. Obnovte a znovu použijte změny.', 'config-not-allowed-in-demo' => 'Omlouvám se, '.ITOP_APPLICATION_SHORT.' je v předváděcí režimu: Konfigurace nemůže být editována', - 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See \'config_editor\' => \'disabled\' in the configuration file.~~' -)); + 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See \'config_editor\' => \'disabled\' in the configuration file.~~', +]); diff --git a/datamodels/2.x/itop-config/dictionaries/da.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/da.dict.itop-config.php index f84848e9e..c0181a93a 100644 --- a/datamodels/2.x/itop-config/dictionaries/da.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/da.dict.itop-config.php @@ -1,15 +1,16 @@ 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Configuration File Editor~~', 'config-edit-intro' => 'Be very cautious when editing the configuration file.~~', @@ -28,4 +29,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.~~', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the configuration file cannot be edited.~~', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See \'config_editor\' => \'disabled\' in the configuration file.~~', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/de.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/de.dict.itop-config.php index 50e928963..6cc3349a8 100644 --- a/datamodels/2.x/itop-config/dictionaries/de.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/de.dict.itop-config.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:ConfigFileEditor' => 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Konfigurations-Editor', 'config-edit-intro' => 'Achtung: Eine falsche Konfiguration kann dazu führen, dass '.ITOP_APPLICATION_SHORT.' für alle Benutzer unbenutzbar ist!', @@ -29,4 +30,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'config-error-file-changed' => 'Fehler: Die Konfigurationsdatei hat sich seit dem Öffnen geändert und kann nicht gespeichert werden. Aktualisieren Sie die Datei und wenden Sie Ihre Änderungen erneut an.', 'config-not-allowed-in-demo' => 'Entschuldigung, '.ITOP_APPLICATION_SHORT.' befindet sich im Demo-Modus: Die Konfigurationsdatei kann nicht bearbeitet werden.', 'config-interactive-not-allowed' => 'Die interaktive Bearbeitung der '.ITOP_APPLICATION_SHORT.' Konfiguration wurde deaktiviert. Siehe \'config_editor\' => \'disabled\' in der Konfigurationsdatei.', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/en.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/en.dict.itop-config.php index 8c55ddbcb..946d18c1a 100644 --- a/datamodels/2.x/itop-config/dictionaries/en.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/en.dict.itop-config.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:ConfigFileEditor' => 'Plain text editor', 'itop-config/Operation:Edit/Title' => 'Configuration File Editor', @@ -40,4 +41,4 @@ Dict::Add('EN US', 'English', 'English', array( 'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the configuration file cannot be edited.', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT." interactive edition of the configuration as been disabled. See 'config_editor' => 'disabled' in the configuration file.", -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/en_gb.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/en_gb.dict.itop-config.php index d53bf08f1..678320e92 100644 --- a/datamodels/2.x/itop-config/dictionaries/en_gb.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/en_gb.dict.itop-config.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:ConfigFileEditor' => 'Plain text editor', 'itop-config/Operation:Edit/Title' => 'Configuration File Editor', @@ -40,4 +41,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the configuration file cannot be edited.', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT." interactive edition of the configuration as been disabled. See 'config_editor' => 'disabled' in the configuration file.", -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/es_cr.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/es_cr.dict.itop-config.php index a363c9d5d..ef40e8887 100644 --- a/datamodels/2.x/itop-config/dictionaries/es_cr.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/es_cr.dict.itop-config.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:ConfigFileEditor' => 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Editor de Archivo de Configuración', 'config-edit-intro' => 'Sea muy cuidadoso cuando edite el archivo de configuración. En particular, sólo los elementos superiores (ejem.: the global configuration y modules settings) deberian ser editados.', @@ -26,4 +27,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'config-error-file-changed' => 'Error: el archivo de configuración ha cambiado desde que lo abrió y no se puede guardar. Actualice y aplique sus cambios nuevamente.', 'config-not-allowed-in-demo' => 'Lo sentimos, '.ITOP_APPLICATION_SHORT.' está en modo de demostración: el archivo de configuración no se puede editar.', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' edición interactiva de la configuración como deshabilitada. Consulte \'config_editor\' => \'disabled\' en el archivo de configuración.', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/fr.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/fr.dict.itop-config.php index c20c907eb..24528e09d 100644 --- a/datamodels/2.x/itop-config/dictionaries/fr.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/fr.dict.itop-config.php @@ -1,15 +1,16 @@ 'Éditeur de texte brut', 'itop-config/Operation:Edit/Title' => 'Éditeur du Fichier de Configuration', 'config-edit-intro' => 'Attention: une configuration incorrecte peut rendre '.ITOP_APPLICATION_SHORT.' inopérant pour tous les utilisateurs!', @@ -27,4 +28,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'config-error-file-changed' => 'Erreur : La configuration a été modifiée depuis que vous l\'avez ouvert. Vos modifications ne peuvent PAS être enregistrées. Rechargez la page et recommencez.', 'config-not-allowed-in-demo' => 'Désolé, '.ITOP_APPLICATION_SHORT.' est en mode démonstration : la configuration ne peut pas être modifiée.', 'config-interactive-not-allowed' => 'La modification interactive de la configuration n\'est pas autorisée. Voir le paramètre \'config_editor\' => \'disabled\' dans le fichier de configuration.', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/hu.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/hu.dict.itop-config.php index 78542754a..08a7b29ff 100644 --- a/datamodels/2.x/itop-config/dictionaries/hu.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/hu.dict.itop-config.php @@ -1,15 +1,16 @@ 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Konfigurációs fájl szerkesztő', 'config-edit-intro' => 'Legyen nagyon óvatos a konfiguráció szerkesztésénél!', @@ -28,4 +29,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.~~', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the configuration file cannot be edited.~~', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See \'config_editor\' => \'disabled\' in the configuration file.~~', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/ja.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/ja.dict.itop-config.php index 4d52eb383..787e5bede 100644 --- a/datamodels/2.x/itop-config/dictionaries/ja.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/ja.dict.itop-config.php @@ -1,15 +1,16 @@ 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Configuration File Editor~~', 'config-edit-intro' => 'Be very cautious when editing the configuration file.~~', @@ -28,4 +29,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.~~', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the configuration file cannot be edited.~~', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See \'config_editor\' => \'disabled\' in the configuration file.~~', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/nl.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/nl.dict.itop-config.php index 548a3f30a..c939a4118 100644 --- a/datamodels/2.x/itop-config/dictionaries/nl.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/nl.dict.itop-config.php @@ -1,16 +1,17 @@ (2018 - 2022) * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:ConfigFileEditor' => 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Aanpassen configuratie', 'config-edit-intro' => 'Wees uiterst voorzichtig bij het aanpassen van de configuratie.', @@ -29,4 +30,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'config-error-file-changed' => 'Fout: Het configuratiebestand is gewijzigd sinds je het geopend hebt en kan niet opgeslagen worden. Herlaad en pas je wijzigingen opnieuw toe.', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demo mode: Het configuratiebestand kan niet aangepast worden.', 'config-interactive-not-allowed' => 'Interactieve aanpassing van de '.ITOP_APPLICATION_SHORT.' configuratie is uitgeschackeld. Zie \'config_editor\' => \'disabled\' in het configuratiebestand.', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/pl.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/pl.dict.itop-config.php index 9b8bca2d1..23bd8077b 100644 --- a/datamodels/2.x/itop-config/dictionaries/pl.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/pl.dict.itop-config.php @@ -1,15 +1,16 @@ 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Edycja pliku konfiguracyjnego', 'config-edit-intro' => 'Zachowaj ostrożność podczas edycji pliku konfiguracyjnego.', @@ -28,4 +29,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'config-error-file-changed' => 'Błąd: Plik konfiguracyjny został zmieniony od czasu jego otwarcia i nie można go zapisać. Odśwież i ponownie zastosuj zmiany.', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' jest w trybie demonstracyjnym: nie można edytować pliku konfiguracyjnego.', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interaktywna edycja konfiguracji została wyłączona. Zobacz \'config_editor\' => \'disabled\' w pliku konfiguracyjnym.', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/ru.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/ru.dict.itop-config.php index d2ba8aa92..5eb8fae35 100644 --- a/datamodels/2.x/itop-config/dictionaries/ru.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/ru.dict.itop-config.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:ConfigFileEditor' => 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Редактор файла конфигурации', 'config-edit-intro' => 'Будьте очень осторожны при редактировании файла конфигурации. В частности, отредактированы могут быть только глобальная конфигурация и настройки модулей.', @@ -29,4 +30,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.~~', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the configuration file cannot be edited.~~', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See \'config_editor\' => \'disabled\' in the configuration file.~~', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/sk.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/sk.dict.itop-config.php index c3a31621f..e4b1dc3cb 100644 --- a/datamodels/2.x/itop-config/dictionaries/sk.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/sk.dict.itop-config.php @@ -1,15 +1,16 @@ 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Configuration File Editor~~', 'config-edit-intro' => 'Be very cautious when editing the configuration file.~~', @@ -28,4 +29,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.~~', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the configuration file cannot be edited.~~', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See \'config_editor\' => \'disabled\' in the configuration file.~~', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/tr.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/tr.dict.itop-config.php index fa8891c64..b508a3ba8 100644 --- a/datamodels/2.x/itop-config/dictionaries/tr.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/tr.dict.itop-config.php @@ -1,15 +1,16 @@ 'Plain text editor~~', 'itop-config/Operation:Edit/Title' => 'Configuration File Editor~~', 'config-edit-intro' => 'Be very cautious when editing the configuration file.~~', @@ -28,4 +29,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'config-error-file-changed' => 'Error: The Configuration file has changed since you opened it and cannot be saved. Refresh and apply your changes again.~~', 'config-not-allowed-in-demo' => 'Sorry, '.ITOP_APPLICATION_SHORT.' is in demonstration mode: the configuration file cannot be edited.~~', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.' interactive edition of the configuration as been disabled. See \'config_editor\' => \'disabled\' in the configuration file.~~', -)); +]); diff --git a/datamodels/2.x/itop-config/dictionaries/zh_cn.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/zh_cn.dict.itop-config.php index e2e8ad296..ec3308126 100644 --- a/datamodels/2.x/itop-config/dictionaries/zh_cn.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/zh_cn.dict.itop-config.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:ConfigFileEditor' => 'Plain text editor~~', 'Menu:ConfigEditor' => '编辑配置文件', 'itop-config/Operation:Edit/Title' => '配置文件编辑器', @@ -39,4 +40,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'config-error-file-changed' => '错误: 配置文件在您打开以后已被更改, 无法保存. 请刷新并再次保存.', 'config-not-allowed-in-demo' => '抱歉, '.ITOP_APPLICATION_SHORT.'处于演示模式: 不能编辑配置文件.', 'config-interactive-not-allowed' => ITOP_APPLICATION_SHORT.'交互式配置编辑器已禁用. 请在配置文件中查看 \'config_editor\' => \'disabled\'.', -)); +]); diff --git a/datamodels/2.x/itop-config/src/Validator/ConfigNodesVisitor.php b/datamodels/2.x/itop-config/src/Validator/ConfigNodesVisitor.php index 295a63ddf..15c09f238 100644 --- a/datamodels/2.x/itop-config/src/Validator/ConfigNodesVisitor.php +++ b/datamodels/2.x/itop-config/src/Validator/ConfigNodesVisitor.php @@ -1,4 +1,5 @@ aAllowedNodeClasses = array( + $this->aAllowedNodeClasses = [ Node\Scalar::class, Node\Name::class, @@ -53,7 +53,7 @@ class ConfigNodesVisitor extends NodeVisitorAbstract Node\Stmt\Const_::class, Node\Stmt\Global_::class, - ); + ]; } /** @@ -74,10 +74,8 @@ class ConfigNodesVisitor extends NodeVisitorAbstract */ public function ValidateNode(Node $node) { - foreach ($this->aAllowedNodeClasses as $sAllowedNodeClass) - { - if ($node instanceof $sAllowedNodeClass) - { + foreach ($this->aAllowedNodeClasses as $sAllowedNodeClass) { + if ($node instanceof $sAllowedNodeClass) { return; } } @@ -92,47 +90,37 @@ class ConfigNodesVisitor extends NodeVisitorAbstract */ private function ThrowInvalidConf(Node $node) { - if (in_array('name', $node->getSubNodeNames())) - { + if (in_array('name', $node->getSubNodeNames())) { $sMessage = sprintf( "Invalid configuration: %s of type %s is forbidden in line %d", $node->name, $node->getType(), $node->getLine() ); - } - elseif (in_array('class', $node->getSubNodeNames())) - { + } elseif (in_array('class', $node->getSubNodeNames())) { - if (in_array('name', $node->class->getSubNodeNames())) - { + if (in_array('name', $node->class->getSubNodeNames())) { $sMessage = sprintf( "Invalid configuration: usage of the class '%s' (%s) is forbidden in line %d", is_object($node->class) ? $node->class->name : $node->class, $node->getType(), $node->getLine() ); - } - else - { + } else { $sMessage = sprintf( "Invalid configuration: usage of %s is forbidden in line %d", $node->getType(), $node->getLine() ); } - } - elseif ($node->hasAttribute('name')) - { + } elseif ($node->hasAttribute('name')) { $sMessage = sprintf( "Invalid configuration: %s of type %s is forbidden in line %d", $node->getAttribute('name'), $node->getType(), $node->getLine() ); - } - else - { + } else { $sMessage = sprintf( "Invalid configuration: %s is forbidden in line %d", $node->getType(), @@ -142,4 +130,4 @@ class ConfigNodesVisitor extends NodeVisitorAbstract throw new \Exception($sMessage); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-core-update/dictionaries/cs.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/cs.dict.itop-core-update.php index d3c50742a..55d49ed70 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/cs.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/cs.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Application Upgrade~~', 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade~~', 'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade~~', @@ -94,6 +95,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ModuleInstallation/Attribute:name' => 'Jméno', 'Class:ModuleInstallation/Attribute:version' => 'Verze', 'Class:ModuleInstallation/Attribute:comment' => 'Komentář', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/da.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/da.dict.itop-core-update.php index 918c906d4..0e358f817 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/da.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/da.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Application Upgrade~~', 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade~~', 'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade~~', @@ -94,6 +95,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ModuleInstallation/Attribute:name' => 'Name~~', 'Class:ModuleInstallation/Attribute:version' => 'Version~~', 'Class:ModuleInstallation/Attribute:comment' => 'Comment~~', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/de.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/de.dict.itop-core-update.php index d0693952f..664cc6c92 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/de.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/de.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Anwendungsupgrade', 'itop-core-update:UI:SelectUpdateFile' => 'Upgrade-Datei hochladen', 'itop-core-update:UI:ConfirmUpdate' => 'Upgrade bestätigen', @@ -94,6 +95,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ModuleInstallation/Attribute:name' => 'Name', 'Class:ModuleInstallation/Attribute:version' => 'Version', 'Class:ModuleInstallation/Attribute:comment' => 'Kommentar', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/en.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/en.dict.itop-core-update.php index 1d41b246a..03b081061 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/en.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/en.dict.itop-core-update.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'iTopUpdate:UI:PageTitle' => 'Application Upgrade', - 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade', - 'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade', - 'itop-core-update:UI:UpdateCoreFiles' => 'Application Upgrading', + 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade', + 'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade', + 'itop-core-update:UI:UpdateCoreFiles' => 'Application Upgrading', 'iTopUpdate:UI:MaintenanceModeActive' => 'The application is currently under maintenance in read-only mode. You have to run a setup to return in normal mode.', 'itop-core-update:UI:UpdateDone' => 'Application Upgrade', @@ -39,74 +40,72 @@ Dict::Add('EN US', 'English', 'English', array( 'iTopUpdate:UI:DoUpdate' => 'Upgrade', 'iTopUpdate:UI:CurrentVersion' => 'Current installed version', 'iTopUpdate:UI:NewVersion' => 'Newly installed version', - 'iTopUpdate:UI:Back' => 'Back', - 'iTopUpdate:UI:Cancel' => 'Cancel', - 'iTopUpdate:UI:Continue' => 'Continue', + 'iTopUpdate:UI:Back' => 'Back', + 'iTopUpdate:UI:Cancel' => 'Cancel', + 'iTopUpdate:UI:Continue' => 'Continue', 'iTopUpdate:UI:RunSetup' => 'Run Setup', - 'iTopUpdate:UI:WithDBBackup' => 'Database backup', - 'iTopUpdate:UI:WithFilesBackup' => 'Application files backup', - 'iTopUpdate:UI:WithoutBackup' => 'No backup is planned', - 'iTopUpdate:UI:Backup' => 'Backup generated before update', + 'iTopUpdate:UI:WithDBBackup' => 'Database backup', + 'iTopUpdate:UI:WithFilesBackup' => 'Application files backup', + 'iTopUpdate:UI:WithoutBackup' => 'No backup is planned', + 'iTopUpdate:UI:Backup' => 'Backup generated before update', 'iTopUpdate:UI:DoFilesArchive' => 'Archive application files', 'iTopUpdate:UI:UploadArchive' => 'Select a package to upload', 'iTopUpdate:UI:ServerFile' => 'Path of a package already on the server', 'iTopUpdate:UI:WarningReadOnlyDuringUpdate' => 'During the upgrade, the application will be read-only.', - 'iTopUpdate:UI:Status' => 'Status', - 'iTopUpdate:UI:Action' => 'Update', - 'iTopUpdate:UI:Setup' => ITOP_APPLICATION_SHORT.' Setup', - 'iTopUpdate:UI:History' => 'Versions History', - 'iTopUpdate:UI:Progress' => 'Progress of the upgrade', + 'iTopUpdate:UI:Status' => 'Status', + 'iTopUpdate:UI:Action' => 'Update', + 'iTopUpdate:UI:Setup' => ITOP_APPLICATION_SHORT.' Setup', + 'iTopUpdate:UI:History' => 'Versions History', + 'iTopUpdate:UI:Progress' => 'Progress of the upgrade', - 'iTopUpdate:UI:DoBackup:Label' => 'Backup files and database', - 'iTopUpdate:UI:DoBackup:Warning' => 'Backup is not recommended due to limited available disk space', + 'iTopUpdate:UI:DoBackup:Label' => 'Backup files and database', + 'iTopUpdate:UI:DoBackup:Warning' => 'Backup is not recommended due to limited available disk space', - 'iTopUpdate:UI:DiskFreeSpace' => 'Disk free space', - 'iTopUpdate:UI:ItopDiskSpace' => ITOP_APPLICATION_SHORT.' disk space', - 'iTopUpdate:UI:DBDiskSpace' => 'Database disk space', + 'iTopUpdate:UI:DiskFreeSpace' => 'Disk free space', + 'iTopUpdate:UI:ItopDiskSpace' => ITOP_APPLICATION_SHORT.' disk space', + 'iTopUpdate:UI:DBDiskSpace' => 'Database disk space', 'iTopUpdate:UI:FileUploadMaxSize' => 'File upload max size', 'iTopUpdate:UI:PostMaxSize' => 'PHP ini value post_max_size: %1$s', 'iTopUpdate:UI:UploadMaxFileSize' => 'PHP ini value upload_max_filesize: %1$s', - 'iTopUpdate:UI:CanCoreUpdate:Loading' => 'Checking files', - 'iTopUpdate:UI:CanCoreUpdate:Error' => 'Checking files failed (%1$s)', - 'iTopUpdate:UI:CanCoreUpdate:ErrorFileNotExist' => 'Checking files failed (File not exist %1$s)', - 'iTopUpdate:UI:CanCoreUpdate:Failed' => 'Checking files failed', - 'iTopUpdate:UI:CanCoreUpdate:Yes' => 'Application can be updated', + 'iTopUpdate:UI:CanCoreUpdate:Loading' => 'Checking files', + 'iTopUpdate:UI:CanCoreUpdate:Error' => 'Checking files failed (%1$s)', + 'iTopUpdate:UI:CanCoreUpdate:ErrorFileNotExist' => 'Checking files failed (File not exist %1$s)', + 'iTopUpdate:UI:CanCoreUpdate:Failed' => 'Checking files failed', + 'iTopUpdate:UI:CanCoreUpdate:Yes' => 'Application can be updated', 'iTopUpdate:UI:CanCoreUpdate:No' => 'Application cannot be updated: %1$s', 'iTopUpdate:UI:CanCoreUpdate:Warning' => 'Warning: application update can fail: %1$s', 'iTopUpdate:UI:CannotUpdateUseSetup' => 'Some modified files were detected, a partial update cannot be executed.
        Follow the procedure in order to manually upgrade your iTop. You must use the setup to update the application.', - 'iTopUpdate:UI:CheckInProgress'=>'Please wait during integrity check', - - + 'iTopUpdate:UI:CheckInProgress' => 'Please wait during integrity check', 'iTopUpdate:UI:SetupLaunch' => 'Launch '.ITOP_APPLICATION_SHORT.' Setup', 'iTopUpdate:UI:SetupLaunchConfirm' => 'This will launch '.ITOP_APPLICATION_SHORT.' setup, are you sure?', 'iTopUpdate:UI:FastSetupLaunch' => 'Fast Setup', // Setup Messages - 'iTopUpdate:UI:SetupMessage:Ready' => 'Ready to start', + 'iTopUpdate:UI:SetupMessage:Ready' => 'Ready to start', 'iTopUpdate:UI:SetupMessage:EnterMaintenance' => 'Entering maintenance mode', 'iTopUpdate:UI:SetupMessage:Backup' => 'Database backup', 'iTopUpdate:UI:SetupMessage:FilesArchive' => 'Archive application files', - 'iTopUpdate:UI:SetupMessage:CopyFiles' => 'Copy new version files', + 'iTopUpdate:UI:SetupMessage:CopyFiles' => 'Copy new version files', 'iTopUpdate:UI:SetupMessage:CheckCompile' => 'Check application upgrade', 'iTopUpdate:UI:SetupMessage:Compile' => 'Upgrade application', 'iTopUpdate:UI:SetupMessage:UpdateDatabase' => 'Upgrade database', 'iTopUpdate:UI:SetupMessage:ExitMaintenance' => 'Exiting maintenance mode', - 'iTopUpdate:UI:SetupMessage:UpdateDone' => 'Upgrade completed', + 'iTopUpdate:UI:SetupMessage:UpdateDone' => 'Upgrade completed', // Errors 'iTopUpdate:Error:MissingFunction' => 'Impossible to start upgrade, missing function', 'iTopUpdate:Error:MissingFile' => 'Missing file: %1$s', 'iTopUpdate:Error:CorruptedFile' => 'File %1$s is corrupted', - 'iTopUpdate:Error:BadFileFormat' => 'Upgrade file is not a zip file', - 'iTopUpdate:Error:BadFileContent' => 'Upgrade file is not an application archive', - 'iTopUpdate:Error:BadItopProduct' => 'Upgrade file is not compatible with your application', + 'iTopUpdate:Error:BadFileFormat' => 'Upgrade file is not a zip file', + 'iTopUpdate:Error:BadFileContent' => 'Upgrade file is not an application archive', + 'iTopUpdate:Error:BadItopProduct' => 'Upgrade file is not compatible with your application', 'iTopUpdate:Error:Copy' => 'Error, cannot copy \'%1$s\' to \'%2$s\'', - 'iTopUpdate:Error:FileNotFound' => 'File not found', - 'iTopUpdate:Error:NoFile' => 'No file provided', + 'iTopUpdate:Error:FileNotFound' => 'File not found', + 'iTopUpdate:Error:NoFile' => 'No file provided', 'iTopUpdate:Error:InvalidToken' => 'Invalid token', 'iTopUpdate:Error:UpdateFailed' => 'Upgrade failed ', 'iTopUpdate:Error:FileUploadMaxSizeTooSmall' => 'The upload max size seems too small for update. Please change the PHP configuration.', @@ -117,11 +116,9 @@ Dict::Add('EN US', 'English', 'English', array( 'Menu:iTopUpdate' => 'Application upgrade', 'Menu:iTopUpdate+' => 'Application upgrade', - // Missing itop entries - 'Class:ModuleInstallation/Attribute:installed' => 'Installed on', - 'Class:ModuleInstallation/Attribute:name' => 'Name', - 'Class:ModuleInstallation/Attribute:version' => 'Version', - 'Class:ModuleInstallation/Attribute:comment' => 'Comment', -)); - - + // Missing itop entries + 'Class:ModuleInstallation/Attribute:installed' => 'Installed on', + 'Class:ModuleInstallation/Attribute:name' => 'Name', + 'Class:ModuleInstallation/Attribute:version' => 'Version', + 'Class:ModuleInstallation/Attribute:comment' => 'Comment', +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/en_gb.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/en_gb.dict.itop-core-update.php index c1f19010c..25eb1a825 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/en_gb.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/en_gb.dict.itop-core-update.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'iTopUpdate:UI:PageTitle' => 'Application Upgrade', 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade', 'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade', @@ -54,7 +55,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'iTopUpdate:UI:Status' => 'Status', 'iTopUpdate:UI:Action' => 'Update', - 'iTopUpdate:UI:Setup' => ITOP_APPLICATION_SHORT.' Setup', + 'iTopUpdate:UI:Setup' => ITOP_APPLICATION_SHORT.' Setup', 'iTopUpdate:UI:History' => 'Versions History', 'iTopUpdate:UI:Progress' => 'Progress of the upgrade', @@ -62,7 +63,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'iTopUpdate:UI:DoBackup:Warning' => 'Backup is not recommended due to limited available disk space', 'iTopUpdate:UI:DiskFreeSpace' => 'Disk free space', - 'iTopUpdate:UI:ItopDiskSpace' => ITOP_APPLICATION_SHORT.' disk space', + 'iTopUpdate:UI:ItopDiskSpace' => ITOP_APPLICATION_SHORT.' disk space', 'iTopUpdate:UI:DBDiskSpace' => 'Database disk space', 'iTopUpdate:UI:FileUploadMaxSize' => 'File upload max size', @@ -79,8 +80,6 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'iTopUpdate:UI:CannotUpdateUseSetup' => 'Some modified files were detected, a partial update cannot be executed.
        Follow the procedure in order to manually upgrade your iTop. You must use the setup to update the application.', 'iTopUpdate:UI:CheckInProgress' => 'Please wait during integrity check', - - 'iTopUpdate:UI:SetupLaunch' => 'Launch '.ITOP_APPLICATION_SHORT.' Setup', 'iTopUpdate:UI:SetupLaunchConfirm' => 'This will launch '.ITOP_APPLICATION_SHORT.' setup, are you sure?', 'iTopUpdate:UI:FastSetupLaunch' => 'Fast Setup', @@ -117,11 +116,9 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Menu:iTopUpdate' => 'Application upgrade', 'Menu:iTopUpdate+' => 'Application upgrade', - // Missing itop entries + // Missing itop entries 'Class:ModuleInstallation/Attribute:installed' => 'Installed on', 'Class:ModuleInstallation/Attribute:name' => 'Name', 'Class:ModuleInstallation/Attribute:version' => 'Version', 'Class:ModuleInstallation/Attribute:comment' => 'Comment', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/es_cr.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/es_cr.dict.itop-core-update.php index 7c0afaf41..89f6852a1 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/es_cr.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/es_cr.dict.itop-core-update.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'iTopUpdate:UI:PageTitle' => 'Actualización de aplicación', 'itop-core-update:UI:SelectUpdateFile' => 'Seleccionar archivo', 'itop-core-update:UI:ConfirmUpdate' => 'Confirmar actualización', @@ -92,6 +93,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ModuleInstallation/Attribute:name' => 'Nombre', 'Class:ModuleInstallation/Attribute:version' => 'Versión', 'Class:ModuleInstallation/Attribute:comment' => 'Comentario', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/fr.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/fr.dict.itop-core-update.php index aaddb57c3..ec69140c0 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/fr.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/fr.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Mise à jour de l\'application', 'itop-core-update:UI:SelectUpdateFile' => 'Mise à jour', 'itop-core-update:UI:ConfirmUpdate' => 'Confirmation de la mise à jour', @@ -94,6 +95,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ModuleInstallation/Attribute:name' => 'Nom', 'Class:ModuleInstallation/Attribute:version' => 'Version', 'Class:ModuleInstallation/Attribute:comment' => 'Commentaire', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/hu.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/hu.dict.itop-core-update.php index 8353eb2d9..0573fa06a 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/hu.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/hu.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Alkalmazásfrissítés', 'itop-core-update:UI:SelectUpdateFile' => 'Alkalmazásfrissítés', 'itop-core-update:UI:ConfirmUpdate' => 'Alkalmazásfrissítés', @@ -94,6 +95,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ModuleInstallation/Attribute:name' => 'Név', 'Class:ModuleInstallation/Attribute:version' => 'Verzió', 'Class:ModuleInstallation/Attribute:comment' => 'Megjegyzés', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/it.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/it.dict.itop-core-update.php index 03b82dab6..5f98580d0 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/it.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/it.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Aggiornamento dell\'Applicazione', 'itop-core-update:UI:SelectUpdateFile' => 'Aggiornamento dell\'Applicazione', 'itop-core-update:UI:ConfirmUpdate' => 'Aggiornamento dell\'Applicazione', @@ -94,6 +95,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ModuleInstallation/Attribute:name' => 'Nome', 'Class:ModuleInstallation/Attribute:version' => 'Versione', 'Class:ModuleInstallation/Attribute:comment' => 'Commento', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/ja.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/ja.dict.itop-core-update.php index 4ceaa8bd5..ad9aad2c0 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/ja.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/ja.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Application Upgrade~~', 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade~~', 'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade~~', @@ -94,6 +95,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ModuleInstallation/Attribute:name' => 'Name~~', 'Class:ModuleInstallation/Attribute:version' => 'Version~~', 'Class:ModuleInstallation/Attribute:comment' => 'Comment~~', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/nl.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/nl.dict.itop-core-update.php index 63c2db4f9..271ea5690 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/nl.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/nl.dict.itop-core-update.php @@ -1,16 +1,17 @@ (2018 - 2022) * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'iTopUpdate:UI:PageTitle' => 'Upgraden toepassing', 'itop-core-update:UI:SelectUpdateFile' => 'Upgrade', 'itop-core-update:UI:ConfirmUpdate' => 'Upgrade', @@ -95,6 +96,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ModuleInstallation/Attribute:name' => 'Naam', 'Class:ModuleInstallation/Attribute:version' => 'Versie', 'Class:ModuleInstallation/Attribute:comment' => 'Opmerkingen', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/pl.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/pl.dict.itop-core-update.php index 80f68c2e5..afcb92c59 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/pl.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/pl.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Aktualizacja aplikacji', 'itop-core-update:UI:SelectUpdateFile' => 'Aktualizacja aplikacji', 'itop-core-update:UI:ConfirmUpdate' => 'Potwierdź aktualizację aplikacji', @@ -91,7 +92,5 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ModuleInstallation/Attribute:installed' => 'Zainstalowano', 'Class:ModuleInstallation/Attribute:name' => 'Nazwa', 'Class:ModuleInstallation/Attribute:version' => 'Wersja', - 'Class:ModuleInstallation/Attribute:comment' => 'Komentarz' -)); - - + 'Class:ModuleInstallation/Attribute:comment' => 'Komentarz', +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/ru.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/ru.dict.itop-core-update.php index 4bd1ba980..2ab106ec1 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/ru.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/ru.dict.itop-core-update.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'iTopUpdate:UI:PageTitle' => 'Обновление приложения', 'itop-core-update:UI:SelectUpdateFile' => 'Обновление', 'itop-core-update:UI:ConfirmUpdate' => 'Обновление', @@ -95,6 +96,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ModuleInstallation/Attribute:name' => 'Название', 'Class:ModuleInstallation/Attribute:version' => 'Версия', 'Class:ModuleInstallation/Attribute:comment' => 'Комментарий', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/sk.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/sk.dict.itop-core-update.php index d483ad5ae..b5299012b 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/sk.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/sk.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Application Upgrade~~', 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade~~', 'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade~~', @@ -94,6 +95,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ModuleInstallation/Attribute:name' => 'Name~~', 'Class:ModuleInstallation/Attribute:version' => 'Version~~', 'Class:ModuleInstallation/Attribute:comment' => 'Comment~~', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/tr.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/tr.dict.itop-core-update.php index 9890c206b..ffc058193 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/tr.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/tr.dict.itop-core-update.php @@ -1,15 +1,16 @@ 'Application Upgrade~~', 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade~~', 'itop-core-update:UI:ConfirmUpdate' => 'Confirm Application Upgrade~~', @@ -94,6 +95,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ModuleInstallation/Attribute:name' => 'Name~~', 'Class:ModuleInstallation/Attribute:version' => 'Version~~', 'Class:ModuleInstallation/Attribute:comment' => 'Comment~~', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/dictionaries/zh_cn.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/zh_cn.dict.itop-core-update.php index 55dc4fe94..21dcedc57 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/zh_cn.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/zh_cn.dict.itop-core-update.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'iTopUpdate:UI:PageTitle' => '应用升级', 'itop-core-update:UI:SelectUpdateFile' => '应用升级', 'itop-core-update:UI:ConfirmUpdate' => ' 升级', @@ -106,11 +107,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Menu:iTopUpdate' => '应用升级', 'Menu:iTopUpdate+' => '应用升级', - // Missing itop entries + // Missing itop entries 'Class:ModuleInstallation/Attribute:installed' => '安装时间', 'Class:ModuleInstallation/Attribute:name' => '名称', 'Class:ModuleInstallation/Attribute:version' => '版本', 'Class:ModuleInstallation/Attribute:comment' => '备注', -)); - - +]); diff --git a/datamodels/2.x/itop-core-update/module.itop-core-update.php b/datamodels/2.x/itop-core-update/module.itop-core-update.php index 32eb31cd7..9e4272e34 100644 --- a/datamodels/2.x/itop-core-update/module.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/module.itop-core-update.php @@ -1,4 +1,5 @@ [ - 'itop-files-information/2.7.0', - 'combodo-db-tools/2.7.0', + 'itop-files-information/2.7.0', + 'combodo-db-tools/2.7.0', ], 'mandatory' => false, 'visible' => true, diff --git a/datamodels/2.x/itop-core-update/src/Controller/AjaxController.php b/datamodels/2.x/itop-core-update/src/Controller/AjaxController.php index 6199dcab5..34f772dd4 100644 --- a/datamodels/2.x/itop-core-update/src/Controller/AjaxController.php +++ b/datamodels/2.x/itop-core-update/src/Controller/AjaxController.php @@ -1,10 +1,10 @@ getMessage()); - } catch (Exception $e) - { + } catch (Exception $e) { $aParams['bStatus'] = false; $aParams['sMessage'] = Dict::Format('iTopUpdate:UI:CanCoreUpdate:Error', $e->getMessage()); } @@ -122,13 +115,11 @@ class AjaxController extends Controller public function OperationEnterMaintenance() { $aParams = []; - try - { + try { SetupUtils::CheckSetupToken(); SetupUtils::EnterReadOnlyMode(MetaModel::GetConfig()); $iResponseCode = 200; - } catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error("EnterMaintenance: ".$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; @@ -139,13 +130,11 @@ class AjaxController extends Controller public function OperationExitMaintenance() { $aParams = []; - try - { + try { SetupUtils::CheckSetupToken(true); SetupUtils::ExitReadOnlyMode(); $iResponseCode = 200; - } catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error("ExitMaintenance: ".$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; @@ -156,13 +145,11 @@ class AjaxController extends Controller public function OperationBackup() { $aParams = []; - try - { + try { SetupUtils::CheckSetupToken(); CoreUpdater::Backup(); $iResponseCode = 200; - } catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error("Backup: ".$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; @@ -173,13 +160,11 @@ class AjaxController extends Controller public function OperationFilesArchive() { $aParams = []; - try - { + try { SetupUtils::CheckSetupToken(); CoreUpdater::CreateItopArchive(); $iResponseCode = 200; - } catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error("FilesArchive: ".$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; @@ -190,13 +175,11 @@ class AjaxController extends Controller public function OperationCopyFiles() { $aParams = []; - try - { + try { SetupUtils::CheckSetupToken(); CoreUpdater::CopyCoreFiles(); $iResponseCode = 200; - } catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error("CopyFiles: ".$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; @@ -208,14 +191,11 @@ class AjaxController extends Controller public function OperationCheckCompile() { $aParams = []; - try - { + try { SetupUtils::CheckSetupToken(); CoreUpdater::CheckCompile(); $iResponseCode = 200; - } - catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error("Compile: ".$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; @@ -227,14 +207,11 @@ class AjaxController extends Controller public function OperationCompile() { $aParams = []; - try - { + try { SetupUtils::CheckSetupToken(); CoreUpdater::Compile(); $iResponseCode = 200; - } - catch (Exception $e) - { + } catch (Exception $e) { IssueLog::Error("Compile: ".$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; @@ -246,13 +223,11 @@ class AjaxController extends Controller public function OperationUpdateDatabase() { $aParams = []; - try - { + try { SetupUtils::CheckSetupToken(); CoreUpdater::UpdateDatabase(); $iResponseCode = 200; - } - catch (Exception $e) { + } catch (Exception $e) { IssueLog::Error("Compile: ".$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; @@ -261,7 +236,7 @@ class AjaxController extends Controller $this->DisplayJSONPage($aParams, $iResponseCode); } - function OperationRebuildToolkitEnvironment() + public function OperationRebuildToolkitEnvironment() { $sTransactionId = utils::GetNewTransactionId(); $aParams = []; @@ -275,8 +250,7 @@ class AjaxController extends Controller $oEnvironment = new RunTimeEnvironment('production'); $oEnvironment->WriteConfigFileSafe($oConfig); $oEnvironment->CompileFrom('production'); - } - catch (Exception $e) { + } catch (Exception $e) { IssueLog::Error('RebuildToolkitEnvironment: '.$e->getMessage()); $aParams['sError'] = $e->getMessage(); $iResponseCode = 500; diff --git a/datamodels/2.x/itop-core-update/src/Controller/UpdateController.php b/datamodels/2.x/itop-core-update/src/Controller/UpdateController.php index 12bb7053c..259dbf262 100644 --- a/datamodels/2.x/itop-core-update/src/Controller/UpdateController.php +++ b/datamodels/2.x/itop-core-update/src/Controller/UpdateController.php @@ -1,4 +1,5 @@ Get('setup.launch_button.enabled'); if (is_null($bConfigParamSetupLaunchButtonEnabled)) { $bIsSetupLaunchButtonEnabled = utils::IsDevelopmentEnvironment(); - } else if (false === $bConfigParamSetupLaunchButtonEnabled) { + } elseif (false === $bConfigParamSetupLaunchButtonEnabled) { $bIsSetupLaunchButtonEnabled = false; } else { $bIsSetupLaunchButtonEnabled = $bConfigParamSetupLaunchButtonEnabled || utils::IsDevelopmentEnvironment(); @@ -108,8 +109,7 @@ class UpdateController extends Controller } else { throw new Exception(Dict::S('iTopUpdate:Error:NoFile')); } - } - catch (Exception $e) { + } catch (Exception $e) { $iError = UPLOAD_ERR_NO_FILE; $sError = $e->getMessage(); } @@ -163,19 +163,19 @@ class UpdateController extends Controller $this->DisplaySetupPage($aParams); } - public function OperationRunSetup() - { - SetupUtils::CheckSetupToken(true); - $sConfigFile = APPCONF.'production/'.ITOP_CONFIG_FILE; - @chmod($sConfigFile, 0770); - $sRedirectURL = utils::GetAbsoluteUrlAppRoot().'setup/index.php'; - header("Location: $sRedirectURL"); - } + public function OperationRunSetup() + { + SetupUtils::CheckSetupToken(true); + $sConfigFile = APPCONF.'production/'.ITOP_CONFIG_FILE; + @chmod($sConfigFile, 0770); + $sRedirectURL = utils::GetAbsoluteUrlAppRoot().'setup/index.php'; + header("Location: $sRedirectURL"); + } - private function GetPreviousInstallations() - { - return DBToolsUtils::GetPreviousInstallations(); - } + private function GetPreviousInstallations() + { + return DBToolsUtils::GetPreviousInstallations(); + } // Returns a file size limit in bytes based on the PHP upload_max_filesize // and post_max_size diff --git a/datamodels/2.x/itop-core-update/src/Service/CoreUpdater.php b/datamodels/2.x/itop-core-update/src/Service/CoreUpdater.php index 78d23abff..05a1f43a7 100644 --- a/datamodels/2.x/itop-core-update/src/Service/CoreUpdater.php +++ b/datamodels/2.x/itop-core-update/src/Service/CoreUpdater.php @@ -1,4 +1,5 @@ getMessage()); SetupLog::Info('itop-core-update: ended'); throw $e; - } finally - { + } finally { self::RRmdir(self::UPDATE_DIR); } } @@ -94,8 +85,7 @@ final class CoreUpdater */ public static function CheckCompile() { - try - { + try { // Compile code SetupLog::Info('itop-core-update: Start checking compilation'); @@ -107,15 +97,11 @@ final class CoreUpdater $oRuntimeEnv->Rollback(); SetupLog::Info('itop-core-update: Checking compilation done'); - } - catch (Exception $e) - { + } catch (Exception $e) { SetupLog::error($e->getMessage()); - try - { + try { SetupUtils::ExitReadOnlyMode(); - } catch (Exception $e1) - { + } catch (Exception $e1) { IssueLog::Error("ExitMaintenance: ".$e1->getMessage()); } throw $e; @@ -127,8 +113,7 @@ final class CoreUpdater */ public static function Compile() { - try - { + try { // Compile code SetupLog::Info('itop-core-update: Start compilation'); @@ -138,15 +123,11 @@ final class CoreUpdater $oRuntimeEnv->CompileFrom('production'); SetupLog::Info('itop-core-update: Compilation done'); - } - catch (Exception $e) - { + } catch (Exception $e) { SetupLog::error($e->getMessage()); - try - { + try { SetupUtils::ExitReadOnlyMode(); - } catch (Exception $e1) - { + } catch (Exception $e1) { IssueLog::Error("ExitMaintenance: ".$e1->getMessage()); } throw $e; @@ -158,8 +139,7 @@ final class CoreUpdater */ public static function UpdateDatabase() { - try - { + try { SetupLog::Info('itop-core-update: Start Update database'); $sFinalEnv = 'production'; @@ -172,18 +152,14 @@ final class CoreUpdater $sModulesDirToKeep = $oRuntimeEnv->GetBuildDir(); $aDirsToScanForModules = [ $sModulesDirToKeep, - APPROOT.'extensions' + APPROOT.'extensions', ]; $aAvailableModules = $oRuntimeEnv->AnalyzeInstallation($oConfig, $aDirsToScanForModules); $aSelectedModules = []; - foreach ($aAvailableModules as $sModuleId => $aModule) - { - if (($sModuleId == ROOT_MODULE) || ($sModuleId == DATAMODEL_MODULE)) - { + foreach ($aAvailableModules as $sModuleId => $aModule) { + if (($sModuleId == ROOT_MODULE) || ($sModuleId == DATAMODEL_MODULE)) { continue; - } - else - { + } else { $aSelectedModules[] = $sModuleId; } } @@ -198,32 +174,30 @@ final class CoreUpdater $oExtensionsMap = new iTopExtensionsMap(); // Default choices = as before $oExtensionsMap->LoadChoicesFromDatabase($oConfig); - foreach ($oExtensionsMap->GetAllExtensions() as $oExtension) - { + foreach ($oExtensionsMap->GetAllExtensions() as $oExtension) { // Plus all "remote" extensions - if ($oExtension->sSource == iTopExtension::SOURCE_REMOTE) - { + if ($oExtension->sSource == iTopExtension::SOURCE_REMOTE) { $oExtensionsMap->MarkAsChosen($oExtension->sCode); } } $aSelectedExtensionCodes = []; - foreach ($oExtensionsMap->GetChoices() as $oExtension) - { + foreach ($oExtensionsMap->GetChoices() as $oExtension) { $aSelectedExtensionCodes[] = $oExtension->sCode; } - $oRuntimeEnv->RecordInstallation($oConfig, $sDataModelVersion, $aSelectedModules, - $aSelectedExtensionCodes, 'Done by the iTop Core Updater'); + $oRuntimeEnv->RecordInstallation( + $oConfig, + $sDataModelVersion, + $aSelectedModules, + $aSelectedExtensionCodes, + 'Done by the iTop Core Updater' + ); SetupLog::Info('itop-core-update: Update database done'); - } - catch (Exception $e) - { + } catch (Exception $e) { SetupLog::error($e->getMessage()); - try - { + try { SetupUtils::ExitReadOnlyMode(); - } catch (Exception $e1) - { + } catch (Exception $e1) { IssueLog::Error("ExitMaintenance: ".$e1->getMessage()); } throw $e; @@ -247,8 +221,7 @@ final class CoreUpdater */ private static function ExtractUpdateFile($sArchiveFile) { - if (!utils::EndsWith($sArchiveFile, '.zip')) - { + if (!utils::EndsWith($sArchiveFile, '.zip')) { throw new Exception(Dict::S('iTopUpdate:Error:BadFileFormat')); } @@ -267,8 +240,7 @@ final class CoreUpdater { $sBackupName = self::GetBackupName(); $sBackupFile = self::GetBackupFile(); - if (file_exists($sBackupFile)) - { + if (file_exists($sBackupFile)) { @unlink($sBackupFile); } @@ -282,14 +254,12 @@ final class CoreUpdater { set_time_limit(0); $sItopArchiveFile = self::GetItopArchiveFile(); - if (file_exists($sItopArchiveFile)) - { + if (file_exists($sItopArchiveFile)) { @unlink($sItopArchiveFile); } $sTempFile = sys_get_temp_dir().'/'.basename($sItopArchiveFile); - if (file_exists($sTempFile)) - { + if (file_exists($sTempFile)) { @unlink($sTempFile); } @@ -303,17 +273,13 @@ final class CoreUpdater self::ZipFolder(realpath(APPROOT), $oZipArchive, strlen("$sParentPath/")); $oZipArchive->close(); - if (!file_exists($sTempFile)) - { + if (!file_exists($sTempFile)) { SetupLog::Error("Failed to create itop archive $sTempFile"); } - if (@rename($sTempFile, $sItopArchiveFile)) - { + if (@rename($sTempFile, $sItopArchiveFile)) { SetupLog::Info("Archive $sItopArchiveFile Created"); - } - else - { + } else { SetupLog::Error("Failed to create archive $sItopArchiveFile"); } } @@ -335,12 +301,10 @@ final class CoreUpdater $oMutex = new iTopMutex('backup.'.utils::GetCurrentEnvironment()); $oMutex->Lock(); - try - { + try { $oBackup->CreateCompressedBackup($sTargetFile); SetupLog::Info('itop-core-update: Backup done: '.$sTargetFile); - } catch (Exception $e) - { + } catch (Exception $e) { $oMutex->Unlock(); throw $e; } @@ -355,61 +319,44 @@ final class CoreUpdater */ public static function CopyDir($sSource, $sDest) { - if (is_dir($sSource)) - { - if (!is_dir($sDest)) - { + if (is_dir($sSource)) { + if (!is_dir($sDest)) { @mkdir($sDest, 0755); } $aFiles = scandir($sSource); - if (sizeof($aFiles) > 0) - { - foreach ($aFiles as $sFile) - { - if ($sFile == '.' || $sFile == '..' || $sFile == '.svn' || $sFile == '.git') - { + if (sizeof($aFiles) > 0) { + foreach ($aFiles as $sFile) { + if ($sFile == '.' || $sFile == '..' || $sFile == '.svn' || $sFile == '.git') { // Skip continue; } - if (is_dir($sSource.'/'.$sFile)) - { + if (is_dir($sSource.'/'.$sFile)) { // Recurse self::CopyDir($sSource.'/'.$sFile, $sDest.'/'.$sFile); - } - else - { - if (is_link($sDest.'/'.$sFile)) - { + } else { + if (is_link($sDest.'/'.$sFile)) { unlink($sDest.'/'.$sFile); } self::CopyFile($sSource.'/'.$sFile, $sDest.'/'.$sFile); } } } - } - elseif (is_file($sSource)) - { + } elseif (is_file($sSource)) { self::CopyFile($sSource, $sDest); } } public static function RRmdir($sDir) { - if (is_dir($sDir)) - { + if (is_dir($sDir)) { $oDir = @opendir($sDir); - while (false !== ($sFile = @readdir($oDir))) - { - if (($sFile != '.') && ($sFile != '..')) - { + while (false !== ($sFile = @readdir($oDir))) { + if (($sFile != '.') && ($sFile != '..')) { $sFull = $sDir.'/'.$sFile; - if (is_dir($sFull)) - { + if (is_dir($sFull)) { self::RRmdir($sFull); - } - else - { + } else { @unlink($sFull); } } @@ -427,14 +374,11 @@ final class CoreUpdater */ public static function CopyFile($sSource, $sDest) { - if (is_file($sSource)) - { - if (!@copy($sSource, $sDest)) - { + if (is_file($sSource)) { + if (!@copy($sSource, $sDest)) { // Try changing the mode of the file @chmod($sDest, 0644); - if (!@copy($sSource, $sDest)) - { + if (!@copy($sSource, $sDest)) { throw new Exception(Dict::Format('iTopUpdate:Error:Copy', $sSource, $sDest)); } } @@ -451,28 +395,22 @@ final class CoreUpdater private static function ZipFolder($sFolder, &$oZipArchive, $iStrippedLength) { $oFolder = opendir($sFolder); - while (false !== ($sFile = readdir($oFolder))) - { - if (($sFile == '.') || ($sFile == '..')) - { + while (false !== ($sFile = readdir($oFolder))) { + if (($sFile == '.') || ($sFile == '..')) { continue; } $sFilePath = "$sFolder/$sFile"; $sLocalItopPath = utils::LocalPath($sFilePath); - if ($sLocalItopPath == 'data/backups' || $sLocalItopPath == 'log') - { + if ($sLocalItopPath == 'data/backups' || $sLocalItopPath == 'log') { continue; } // Remove prefix from file path before add to zip. $sLocalPath = substr($sFilePath, $iStrippedLength); - if (is_file($sFilePath)) - { + if (is_file($sFilePath)) { $oZipArchive->addFile($sFilePath, $sLocalPath); - } - elseif (is_dir($sFilePath)) - { + } elseif (is_dir($sFilePath)) { // Add sub-directory. $oZipArchive->addEmptyDir($sLocalPath); self::ZipFolder($sFilePath, $oZipArchive, $iStrippedLength); @@ -524,8 +462,7 @@ final class CoreUpdater */ public static function ExtractDownloadedFile($sArchiveFile) { - try - { + try { // Extract archive file self::ExtractUpdateFile($sArchiveFile); @@ -536,12 +473,10 @@ final class CoreUpdater FilesIntegrity::CheckInstallationIntegrity($sRootPath); SetupLog::Info('itop-core-update: Files integrity OK'); - } catch (Exception $e) - { + } catch (Exception $e) { self::RRmdir(self::UPDATE_DIR); throw $e; - } finally - { + } finally { self::RRmdir(self::DOWNLOAD_DIR); } } @@ -552,51 +487,42 @@ final class CoreUpdater */ public static function GetVersionToInstall() { - try - { + try { $sConfigFile = self::UPDATE_DIR.'web/core/config.class.inc.php'; - if (!is_file($sConfigFile)) - { + if (!is_file($sConfigFile)) { throw new Exception(Dict::S(Dict::S('iTopUpdate:Error:BadFileContent'))); } $sContents = file_get_contents($sConfigFile); preg_match_all("@define\('(?ITOP_[^']*)', '(?[^']*)'\);@", $sContents, $aMatches); - if (empty($aMatches)) - { + if (empty($aMatches)) { throw new Exception(Dict::S(Dict::S('iTopUpdate:Error:BadFileContent'))); } $aValues = []; - foreach ($aMatches['name'] as $index => $sName) - { + foreach ($aMatches['name'] as $index => $sName) { $aValues[$sName] = $aMatches['value'][$index]; } - if ($aValues['ITOP_APPLICATION'] != ITOP_APPLICATION) - { + if ($aValues['ITOP_APPLICATION'] != ITOP_APPLICATION) { throw new Exception(Dict::S('iTopUpdate:Error:BadItopProduct')); } // Extract updater file from the new version if available - if (is_file(APPROOT.'setup/appupgradecheck.php')) - { + if (is_file(APPROOT.'setup/appupgradecheck.php')) { // Remove previous specific updater @unlink(APPROOT.'setup/appupgradecheck.php'); } - if (is_file(self::UPDATE_DIR.'web/setup/appupgradecheck.php')) - { + if (is_file(self::UPDATE_DIR.'web/setup/appupgradecheck.php')) { SetupLog::Info('itop-core-update: Use updater provided in the archive'); self::CopyFile(self::UPDATE_DIR.'web/setup/appupgradecheck.php', APPROOT.'setup/appupgradecheck.php'); @include_once(APPROOT.'setup/appupgradecheck.php'); } - if (function_exists('AppUpgradeCheckInstall')) - { + if (function_exists('AppUpgradeCheckInstall')) { AppUpgradeCheckInstall(); } return Dict::Format('UI:iTopVersion:Long', $aValues['ITOP_APPLICATION'], $aValues['ITOP_VERSION'], $aValues['ITOP_REVISION'], $aValues['ITOP_BUILD_DATE']); - } catch (Exception $e) - { + } catch (Exception $e) { self::RRmdir(self::UPDATE_DIR); self::RRmdir(self::DOWNLOAD_DIR); throw $e; diff --git a/datamodels/2.x/itop-core-update/src/Service/RunTimeEnvironmentCoreUpdater.php b/datamodels/2.x/itop-core-update/src/Service/RunTimeEnvironmentCoreUpdater.php index 0607f6dd5..dd5a6de40 100644 --- a/datamodels/2.x/itop-core-update/src/Service/RunTimeEnvironmentCoreUpdater.php +++ b/datamodels/2.x/itop-core-update/src/Service/RunTimeEnvironmentCoreUpdater.php @@ -1,10 +1,10 @@ sTargetEnv) - { - if (is_dir(APPROOT.'/env-'.$this->sTargetEnv)) - { + if ($sEnvironment != $this->sTargetEnv) { + if (is_dir(APPROOT.'/env-'.$this->sTargetEnv)) { SetupUtils::rrmdir(APPROOT.'/env-'.$this->sTargetEnv); } - if (is_dir(APPROOT.'/data/'.$this->sTargetEnv.'-modules')) - { + if (is_dir(APPROOT.'/data/'.$this->sTargetEnv.'-modules')) { SetupUtils::rrmdir(APPROOT.'/data/'.$this->sTargetEnv.'-modules'); } SetupUtils::copydir(APPROOT.'/data/'.$sEnvironment.'-modules', APPROOT.'/data/'.$this->sTargetEnv.'-modules'); @@ -63,17 +60,14 @@ class RunTimeEnvironmentCoreUpdater extends RunTimeEnvironment */ public static function CheckDirectory($sDir) { - if (!is_dir($sDir)) - { - if (!@mkdir($sDir,0770)) - { + if (!is_dir($sDir)) { + if (!@mkdir($sDir, 0770)) { throw new Exception('Creating directory '.$sDir.' is denied (Check access rights)'); } } // Try create a file $sTempFile = $sDir.'/__itop_temp_file__'; - if (!@touch($sTempFile)) - { + if (!@touch($sTempFile)) { throw new Exception('Write access to '.$sDir.' is denied (Check access rights)'); } @unlink($sTempFile); @@ -93,8 +87,7 @@ class RunTimeEnvironmentCoreUpdater extends RunTimeEnvironment $oConfig->UpdateIncludes('env-'.$this->sTargetEnv); - if (is_null($sEnvironmentLabel)) - { + if (is_null($sEnvironmentLabel)) { $sEnvironmentLabel = $this->sTargetEnv; } $oConfig->Set('app_env_label', $sEnvironmentLabel, 'application updater'); @@ -110,19 +103,14 @@ class RunTimeEnvironmentCoreUpdater extends RunTimeEnvironment */ protected function GetConfig($sEnvironment = null) { - if (is_null($sEnvironment)) - { + if (is_null($sEnvironment)) { $sEnvironment = $this->sTargetEnv; } $sFile = APPCONF.$sEnvironment.'/'.ITOP_CONFIG_FILE; - if (file_exists($sFile)) - { - try - { + if (file_exists($sFile)) { + try { return new Config($sFile); - } - catch (Exception $e) - { + } catch (Exception $e) { } } throw new Exception('No configuration file available'); @@ -134,8 +122,7 @@ class RunTimeEnvironmentCoreUpdater extends RunTimeEnvironment // Add new mandatory modules from datamodel 2.x only $sSourceDirFull = APPROOT.$sSourceDir; - if (!is_dir($sSourceDirFull)) - { + if (!is_dir($sSourceDirFull)) { throw new Exception("The source directory '$sSourceDirFull' does not exist (or could not be read)"); } $aDirsToCompile = [$sSourceDirFull]; @@ -148,7 +135,7 @@ class RunTimeEnvironmentCoreUpdater extends RunTimeEnvironment $aAvailableModules[$oModule->GetName()] = $oModule; } // TODO check the auto-selected modules here - foreach($this->oExtensionsMap->GetAllExtensions() as $oExtension) { + foreach ($this->oExtensionsMap->GetAllExtensions() as $oExtension) { if ($oExtension->bMarkedAsChosen) { foreach ($oExtension->aModules as $sModuleName) { if (!isset($aRet[$sModuleName]) && isset($aAvailableModules[$sModuleName])) { diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/cs.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/cs.dict.itop-datacenter-mgmt.php index ef8abdc01..55bb8e390 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/cs.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/cs.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/da.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/da.dict.itop-datacenter-mgmt.php index c334a1b47..2ab69e587 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/da.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/da.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/de.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/de.dict.itop-datacenter-mgmt.php index 8cf9a4957..f42435a94 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/de.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/de.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/en.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/en.dict.itop-datacenter-mgmt.php index 555c82307..9a265de96 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/en.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/en.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/en_gb.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/en_gb.dict.itop-datacenter-mgmt.php index 8308d6eea..1b018e263 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/en_gb.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/en_gb.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/es_cr.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/es_cr.dict.itop-datacenter-mgmt.php index a22194dd0..a14e3f8a2 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/es_cr.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/es_cr.dict.itop-datacenter-mgmt.php @@ -1,12 +1,13 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/fr.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/fr.dict.itop-datacenter-mgmt.php index 6aee58321..d9310acb4 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/fr.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/fr.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/hu.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/hu.dict.itop-datacenter-mgmt.php index 488d1cc4a..1ce4019db 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/hu.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/hu.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/it.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/it.dict.itop-datacenter-mgmt.php index 80e7164e8..0e7f36b06 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/it.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/it.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/ja.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/ja.dict.itop-datacenter-mgmt.php index 14d7ec5b6..1090e8f27 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/ja.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/ja.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/nl.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/nl.dict.itop-datacenter-mgmt.php index 397cb5aa2..c096fc613 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/nl.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/nl.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/pl.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/pl.dict.itop-datacenter-mgmt.php index ada3bd825..31ffd29f6 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/pl.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/pl.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/pt_br.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/pt_br.dict.itop-datacenter-mgmt.php index 260282dd4..f9a517ce2 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/pt_br.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/pt_br.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/ru.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/ru.dict.itop-datacenter-mgmt.php index 8390045f5..b37587fc4 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/ru.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/ru.dict.itop-datacenter-mgmt.php @@ -1,15 +1,16 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/sk.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/sk.dict.itop-datacenter-mgmt.php index 5fa616311..66d6409fb 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/sk.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/sk.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/tr.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/tr.dict.itop-datacenter-mgmt.php index 4f74143f6..9fcd8912e 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/tr.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/tr.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/zh_cn.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/zh_cn.dict.itop-datacenter-mgmt.php index fafe9e9fe..018caee25 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/zh_cn.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/zh_cn.dict.itop-datacenter-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/cs.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/cs.dict.itop-endusers-devices.php index ef8abdc01..55bb8e390 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/cs.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/cs.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/da.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/da.dict.itop-endusers-devices.php index c334a1b47..2ab69e587 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/da.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/da.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/de.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/de.dict.itop-endusers-devices.php index 8cf9a4957..f42435a94 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/de.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/de.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/en.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/en.dict.itop-endusers-devices.php index 555c82307..9a265de96 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/en.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/en.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/en_gb.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/en_gb.dict.itop-endusers-devices.php index 8308d6eea..1b018e263 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/en_gb.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/en_gb.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/es_cr.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/es_cr.dict.itop-endusers-devices.php index a22194dd0..a14e3f8a2 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/es_cr.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/es_cr.dict.itop-endusers-devices.php @@ -1,12 +1,13 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/fr.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/fr.dict.itop-endusers-devices.php index 6aee58321..d9310acb4 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/fr.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/fr.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/hu.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/hu.dict.itop-endusers-devices.php index 488d1cc4a..1ce4019db 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/hu.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/hu.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/it.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/it.dict.itop-endusers-devices.php index 80e7164e8..0e7f36b06 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/it.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/it.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/ja.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/ja.dict.itop-endusers-devices.php index 14d7ec5b6..1090e8f27 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/ja.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/ja.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/nl.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/nl.dict.itop-endusers-devices.php index 397cb5aa2..c096fc613 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/nl.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/nl.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/pl.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/pl.dict.itop-endusers-devices.php index ada3bd825..31ffd29f6 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/pl.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/pl.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/pt_br.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/pt_br.dict.itop-endusers-devices.php index 260282dd4..f9a517ce2 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/pt_br.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/pt_br.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/ru.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/ru.dict.itop-endusers-devices.php index 8390045f5..b37587fc4 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/ru.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/ru.dict.itop-endusers-devices.php @@ -1,15 +1,16 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/sk.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/sk.dict.itop-endusers-devices.php index 5fa616311..66d6409fb 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/sk.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/sk.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/tr.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/tr.dict.itop-endusers-devices.php index 4f74143f6..9fcd8912e 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/tr.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/tr.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/zh_cn.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/zh_cn.dict.itop-endusers-devices.php index fafe9e9fe..018caee25 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/zh_cn.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/zh_cn.dict.itop-endusers-devices.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/cs.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/cs.dict.itop-faq-light.php index f42da12f8..810e31695 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/cs.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/cs.dict.itop-faq-light.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:FAQ' => 'FAQ', 'Class:FAQ+' => 'Často kladené dotazy', 'Class:FAQ/Attribute:title' => 'Název', @@ -29,21 +30,21 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:FAQ/Attribute:key_words' => 'Klíčová slova', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domény', -)); +]); // // Class: FAQCategory // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:FAQCategory' => 'Kategorie FAQ', 'Class:FAQCategory+' => 'Kategorie pro FAQ', 'Class:FAQCategory/Attribute:name' => 'Název', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQ', 'Class:FAQCategory/Attribute:faq_list+' => 'Všechny často kladené dotazy v této kategorii', -)); -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +]); +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:ProblemManagement' => 'Správa problémů', 'Menu:ProblemManagement+' => 'Správa problémů', 'Menu:Problem:Shortcuts' => 'Odkazy', @@ -54,4 +55,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Často kladené dotazy (FAQ)', 'Brick:Portal:FAQ:Title+' => '

        Spěcháte?

        Podívejte se na seznam nejčastějších otázek a (možná) najdete hledanou odpověď ihned.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/da.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/da.dict.itop-faq-light.php index 1aab60647..b4d675ebc 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/da.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/da.dict.itop-faq-light.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:FAQ' => 'FAQ', 'Class:FAQ+' => '', 'Class:FAQ/Attribute:title' => 'Titel', @@ -28,21 +29,21 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:FAQ/Attribute:key_words' => 'Nøgleord', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domains~~', -)); +]); // // Class: FAQCategory // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:FAQCategory' => 'FAQ-Kategori', 'Class:FAQCategory+' => '', 'Class:FAQCategory/Attribute:name' => 'Navn', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQs', 'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category~~', -)); -Dict::Add('DA DA', 'Danish', 'Dansk', array( +]); +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:ProblemManagement' => 'Problem Management', 'Menu:ProblemManagement+' => 'Problem Management', 'Menu:Problem:Shortcuts' => 'Genvej', @@ -53,4 +54,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Brick:Portal:FAQ:Menu' => 'FAQ~~', 'Brick:Portal:FAQ:Title' => 'Frequently Asked Questions~~', 'Brick:Portal:FAQ:Title+' => '

        In a hurry?

        Check out the list of most common questions and (maybe) find the expected answer right away.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/de.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/de.dict.itop-faq-light.php index 54d1c19bf..5185ea461 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/de.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/de.dict.itop-faq-light.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:FAQ' => 'FAQ', 'Class:FAQ+' => '', 'Class:FAQ/Attribute:title' => 'Titel', @@ -28,21 +29,21 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:FAQ/Attribute:key_words' => 'Schlüsselwörter', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domäne', -)); +]); // // Class: FAQCategory // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:FAQCategory' => 'FAQ-Kategorie', 'Class:FAQCategory+' => '', 'Class:FAQCategory/Attribute:name' => 'Name', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQs', 'Class:FAQCategory/Attribute:faq_list+' => 'Alle FAQ-Einträge (frequently asked questions) verknüpft mit dieser Kategorie', -)); -Dict::Add('DE DE', 'German', 'Deutsch', array( +]); +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:ProblemManagement' => 'Problem Management', 'Menu:ProblemManagement+' => 'Problem Management', 'Menu:Problem:Shortcuts' => 'Shortcuts', @@ -53,4 +54,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Oft gestellte Fragen (FAQs)', 'Brick:Portal:FAQ:Title+' => '

        In Eile?

        Sehen Sie sich die meistgestellten Fragen an (FAQs) und finden Sie (eventuell) die Antwort direkt dort.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/en.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/en.dict.itop-faq-light.php index 286299a54..1eb79cc9d 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/en.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/en.dict.itop-faq-light.php @@ -1,4 +1,5 @@ 'FAQ', 'Class:FAQ+' => 'Frequently asked questions', 'Class:FAQ/Attribute:title' => 'Title', @@ -68,21 +69,21 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:FAQ/Attribute:key_words' => 'Key words', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domains', -)); +]); // // Class: FAQCategory // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:FAQCategory' => 'FAQ Category', 'Class:FAQCategory+' => 'Category for FAQ', 'Class:FAQCategory/Attribute:name' => 'Name', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQs', 'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category', -)); -Dict::Add('EN US', 'English', 'English', array( +]); +Dict::Add('EN US', 'English', 'English', [ 'Menu:ProblemManagement' => 'Problem management', 'Menu:ProblemManagement+' => 'Problem management', 'Menu:Problem:Shortcuts' => 'Shortcuts', @@ -93,4 +94,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Frequently Asked Questions', 'Brick:Portal:FAQ:Title+' => '

        In a hurry?

        Check out the list of most common questions and (maybe) find the expected answer right away.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/en_gb.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/en_gb.dict.itop-faq-light.php index 3e9c272d1..39fea55a8 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/en_gb.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/en_gb.dict.itop-faq-light.php @@ -1,4 +1,5 @@ 'FAQ', 'Class:FAQ+' => 'Frequently asked questions', 'Class:FAQ/Attribute:title' => 'Title', @@ -68,21 +69,21 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:FAQ/Attribute:key_words' => 'Key words', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domains', -)); +]); // // Class: FAQCategory // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:FAQCategory' => 'FAQ Category', 'Class:FAQCategory+' => 'Category for FAQ', 'Class:FAQCategory/Attribute:name' => 'Name', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQs', 'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category', -)); -Dict::Add('EN GB', 'British English', 'British English', array( +]); +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:ProblemManagement' => 'Problem management', 'Menu:ProblemManagement+' => 'Problem management', 'Menu:Problem:Shortcuts' => 'Shortcuts', @@ -93,4 +94,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Frequently Asked Questions', 'Brick:Portal:FAQ:Title+' => '

        In a hurry?

        Check out the list of most common questions and (maybe) find the expected answer right away.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/es_cr.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/es_cr.dict.itop-faq-light.php index e3ecbb1d2..9de92593f 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/es_cr.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/es_cr.dict.itop-faq-light.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:FAQ' => 'Preguntas y Respuestas Frecuentes', 'Class:FAQ+' => 'Preguntas y Respuestas Frecuentes', 'Class:FAQ/Attribute:title' => 'Asunto', @@ -25,21 +26,21 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:FAQ/Attribute:key_words' => 'Palabras Clave', 'Class:FAQ/Attribute:key_words+' => 'Palabras Clave', 'Class:FAQ/Attribute:domains' => 'Ámbito', -)); +]); // // Class: FAQCategory // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:FAQCategory' => 'Categoría de Preguntas y Respuesta Frecuentes', 'Class:FAQCategory+' => 'Categoría de Preguntas y Respuesta Frecuentes', 'Class:FAQCategory/Attribute:name' => 'Nombre', 'Class:FAQCategory/Attribute:name+' => 'Nombre de Categoría de Preguntas y Respuestas Frecuentes', 'Class:FAQCategory/Attribute:faq_list' => 'FAQs', 'Class:FAQCategory/Attribute:faq_list+' => 'FAQs', -)); -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +]); +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:ProblemManagement' => 'Administración de Problemas', 'Menu:ProblemManagement+' => 'GestAdministraciónión de problemas', 'Menu:Problem:Shortcuts' => 'Acceso Rápido', @@ -50,4 +51,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Brick:Portal:FAQ:Menu' => 'Preguntas y Respuestas', 'Brick:Portal:FAQ:Title' => 'Preguntas y Respuestas Frecuentes', 'Brick:Portal:FAQ:Title+' => '

        ¿En una prisa?

        Vea la lista de las preguntas más comunes y encontrará (tal vez) la respuesta inmediata a sus necesidades.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/fr.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/fr.dict.itop-faq-light.php index 7350bdf9d..9c7ad2e3d 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/fr.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/fr.dict.itop-faq-light.php @@ -1,15 +1,16 @@ 'FAQ', 'Class:FAQ+' => 'Question fréquement posée', 'Class:FAQ/Attribute:title' => 'Titre', @@ -27,13 +28,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:FAQ/Attribute:key_words' => 'Mots clés', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domaines', -)); +]); // // Class: FAQCategory // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:FAQCategory' => 'Catégorie de FAQ', 'Class:FAQCategory+' => 'Catégorie de FAQ', 'Class:FAQCategory/Attribute:name' => 'Nom', @@ -45,9 +46,9 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:FAQCategory/Attribute:faq_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:FAQCategory/Attribute:faq_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:FAQCategory/Attribute:faq_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:FAQCategory/Attribute:faq_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de sa %1$s' -)); -Dict::Add('FR FR', 'French', 'Français', array( + 'Class:FAQCategory/Attribute:faq_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de sa %1$s', +]); +Dict::Add('FR FR', 'French', 'Français', [ 'Menu:ProblemManagement' => 'Gestion des problèmes', 'Menu:ProblemManagement+' => 'Gestion des problèmes', 'Menu:Problem:Shortcuts' => 'Raccourcis', @@ -58,4 +59,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Foire Aux Questions', 'Brick:Portal:FAQ:Title+' => '

        Vous êtes pressé ?

        Consultez la liste des questions les plus fréquentes et vous trouverez (peut-être) immédiatement la réponse à votre besoin.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/hu.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/hu.dict.itop-faq-light.php index b6946c0d8..da6880f56 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/hu.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/hu.dict.itop-faq-light.php @@ -1,15 +1,16 @@ 'Tudástár', 'Class:FAQ+' => 'Gyakran Ismételt Kérdések', 'Class:FAQ/Attribute:title' => 'Cím', @@ -27,21 +28,21 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:FAQ/Attribute:key_words' => 'Kulcsszavak', 'Class:FAQ/Attribute:key_words+' => 'A keresést segítő kulcsszavak', 'Class:FAQ/Attribute:domains' => 'Hibatartomány', -)); +]); // // Class: FAQCategory // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:FAQCategory' => 'Tudástár kategória', 'Class:FAQCategory+' => '', 'Class:FAQCategory/Attribute:name' => 'Kategória név', 'Class:FAQCategory/Attribute:name+' => '~~', 'Class:FAQCategory/Attribute:faq_list' => 'Tudástárak', 'Class:FAQCategory/Attribute:faq_list+' => 'Gyakori kérdések ehhez a kategóriához kapcsolódóan', -)); -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +]); +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Menu:ProblemManagement' => 'Problémakezelés', 'Menu:ProblemManagement+' => '', 'Menu:Problem:Shortcuts' => 'Gyorsgombok', @@ -52,4 +53,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Brick:Portal:FAQ:Menu' => 'Tudástár', 'Brick:Portal:FAQ:Title' => 'Tudástárak', 'Brick:Portal:FAQ:Title+' => '

        Siet?

        Nézze át a leggyakoribb kérdések listáját, és (talán) azonnal megtalálja a keresett választ.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/it.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/it.dict.itop-faq-light.php index 8ab56a64c..ba67e6768 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/it.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/it.dict.itop-faq-light.php @@ -1,15 +1,16 @@ 'FAQ', 'Class:FAQ+' => 'Domande frequenti', 'Class:FAQ/Attribute:title' => 'Titolo', @@ -27,21 +28,21 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:FAQ/Attribute:key_words' => 'Parola Chiave', 'Class:FAQ/Attribute:key_words+' => '~~', 'Class:FAQ/Attribute:domains' => 'Dominio', -)); +]); // // Class: FAQCategory // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:FAQCategory' => 'Categoria FAQ', 'Class:FAQCategory+' => 'Categoria per FAQ', 'Class:FAQCategory/Attribute:name' => 'Nome', 'Class:FAQCategory/Attribute:name+' => '~~', 'Class:FAQCategory/Attribute:faq_list' => 'FAQs', 'Class:FAQCategory/Attribute:faq_list+' => 'Tutte le faq legate a questa categoria', -)); -Dict::Add('IT IT', 'Italian', 'Italiano', array( +]); +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Menu:ProblemManagement' => 'Gestione dei problemi', 'Menu:ProblemManagement+' => 'Gestione dei problemi', 'Menu:Problem:Shortcuts' => 'Scorciatoia', @@ -52,4 +53,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Domande frequenti', 'Brick:Portal:FAQ:Title+' => '

        Sei di fretta?

        Verifica nella lista delle FAQ se trovi la risposta al tuo problema.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/ja.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/ja.dict.itop-faq-light.php index ffb4500c2..1be2bc35a 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/ja.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/ja.dict.itop-faq-light.php @@ -1,15 +1,16 @@ 'FAQ', 'Class:FAQ+' => 'よくある質問', 'Class:FAQ/Attribute:title' => 'タイトル', @@ -27,21 +28,21 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:FAQ/Attribute:key_words' => 'キーワード', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domains~~', -)); +]); // // Class: FAQCategory // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:FAQCategory' => 'FAQカテゴリ', 'Class:FAQCategory+' => 'FAQのためのカテゴリ', 'Class:FAQCategory/Attribute:name' => '名前', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQ', 'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category~~', -)); -Dict::Add('JA JP', 'Japanese', '日本語', array( +]); +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Menu:ProblemManagement' => '問題管理', 'Menu:ProblemManagement+' => '問題管理', 'Menu:Problem:Shortcuts' => 'ショートカット', @@ -52,4 +53,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Brick:Portal:FAQ:Menu' => 'FAQ~~', 'Brick:Portal:FAQ:Title' => 'Frequently Asked Questions~~', 'Brick:Portal:FAQ:Title+' => '

        In a hurry?

        Check out the list of most common questions and (maybe) find the expected answer right away.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/nl.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/nl.dict.itop-faq-light.php index c1fac557d..b32956b88 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/nl.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/nl.dict.itop-faq-light.php @@ -1,17 +1,18 @@ * @author Jeffrey Bostoen (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:FAQ' => 'FAQ', 'Class:FAQ+' => 'Veelgestelde vragen', 'Class:FAQ/Attribute:title' => 'Titel', @@ -29,21 +30,21 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:FAQ/Attribute:key_words' => 'Zoektermen', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domeinen', -)); +]); // // Class: FAQCategory // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:FAQCategory' => 'FAQ-categorie', 'Class:FAQCategory+' => 'Categorie voor de FAQ', 'Class:FAQCategory/Attribute:name' => 'Naam', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQ\'s', 'Class:FAQCategory/Attribute:faq_list+' => 'Alle veelgestelde vragen gerelateerd aan deze categorie', -)); -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +]); +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:ProblemManagement' => 'Probleem Management', 'Menu:ProblemManagement+' => 'Probleem Management', 'Menu:Problem:Shortcuts' => 'Snelkoppelingen', @@ -54,4 +55,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Veelgestelde vragen', 'Brick:Portal:FAQ:Title+' => '

        Gehaast?

        Bekijk deze lijst van veelgestelde vragen. Misschien staat er al een antwoord tussen.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/pl.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/pl.dict.itop-faq-light.php index 9ab828e43..075070bf9 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/pl.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/pl.dict.itop-faq-light.php @@ -1,15 +1,16 @@ 'Pytania FAQ', 'Class:FAQ+' => 'Często Zadawane Pytania', 'Class:FAQ/Attribute:title' => 'Tytuł', @@ -27,21 +28,21 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:FAQ/Attribute:key_words' => 'Słowa kluczowe', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domeny', -)); +]); // // Class: FAQCategory // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:FAQCategory' => 'Kategoria FAQ', 'Class:FAQCategory+' => 'Kategoria FAQ', 'Class:FAQCategory/Attribute:name' => 'Nazwa', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'Pytania FAQ', 'Class:FAQCategory/Attribute:faq_list+' => 'Wszystkie najczęściej zadawane pytania związane z tą kategorią', -)); -Dict::Add('PL PL', 'Polish', 'Polski', array( +]); +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Menu:ProblemManagement' => 'Zarządzanie problemami', 'Menu:ProblemManagement+' => 'Zarządzanie problemami', 'Menu:Problem:Shortcuts' => 'Skróty', @@ -52,4 +53,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Brick:Portal:FAQ:Menu' => 'Pytania FAQ', 'Brick:Portal:FAQ:Title' => 'Często Zadawane Pytania', 'Brick:Portal:FAQ:Title+' => '

        W pośpiechu?

        Sprawdź listę najczęściej zadawanych pytań i (być może) od razu znajdź oczekiwaną odpowiedź.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/pt_br.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/pt_br.dict.itop-faq-light.php index bd1b8df01..7d125c0cf 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/pt_br.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/pt_br.dict.itop-faq-light.php @@ -1,15 +1,16 @@ 'FAQ', 'Class:FAQ+' => 'Perguntas frequentes (FAQ)', 'Class:FAQ/Attribute:title' => 'Título', @@ -27,21 +28,21 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:FAQ/Attribute:key_words' => 'Palavras-chaves', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Domínios', -)); +]); // // Class: FAQCategory // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:FAQCategory' => 'Categorias de FAQ', 'Class:FAQCategory+' => '', 'Class:FAQCategory/Attribute:name' => 'Nome', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQs', 'Class:FAQCategory/Attribute:faq_list+' => 'Todas as perguntas frequentes associadas à esta categoria', -)); -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +]); +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Menu:ProblemManagement' => 'Gerencimento de problemas', 'Menu:ProblemManagement+' => '', 'Menu:Problem:Shortcuts' => 'Atalhos', @@ -52,4 +53,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Perguntas frequentes (FAQ)', 'Brick:Portal:FAQ:Title+' => '

        Com pressa?

        Confira a lista de perguntas mais comuns e (talvez) encontre a resposta esperada imediatamente.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/ru.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/ru.dict.itop-faq-light.php index 665d15072..fa4f51731 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/ru.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/ru.dict.itop-faq-light.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:FAQ' => 'FAQ', 'Class:FAQ+' => 'Часто задаваемые вопросы', 'Class:FAQ/Attribute:title' => 'Название', @@ -28,21 +29,21 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:FAQ/Attribute:key_words' => 'Ключевые слова', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => 'Домены', -)); +]); // // Class: FAQCategory // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:FAQCategory' => 'Категории FAQ', 'Class:FAQCategory+' => 'Категории FAQ', 'Class:FAQCategory/Attribute:name' => 'Название', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQ', 'Class:FAQCategory/Attribute:faq_list+' => 'Связанные FAQ', -)); -Dict::Add('RU RU', 'Russian', 'Русский', array( +]); +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:ProblemManagement' => 'Управление проблемами', 'Menu:ProblemManagement+' => 'Управление проблемами', 'Menu:Problem:Shortcuts' => 'Ярлыки', @@ -53,4 +54,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => 'Часто задаваемые вопросы', 'Brick:Portal:FAQ:Title+' => '

        Торопитесь?

        Проверьте список часто задаваемых вопросов, возможно, ответ уже есть.

        ', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/sk.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/sk.dict.itop-faq-light.php index 802cd2b76..eb2138a0d 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/sk.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/sk.dict.itop-faq-light.php @@ -1,15 +1,16 @@ 'FAQ~~', 'Class:FAQ+' => 'Frequently asked questions~~', 'Class:FAQ/Attribute:title' => 'Title~~', @@ -27,21 +28,21 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:FAQ/Attribute:key_words' => 'Key words~~', 'Class:FAQ/Attribute:key_words+' => '~~', 'Class:FAQ/Attribute:domains' => 'Domains~~', -)); +]); // // Class: FAQCategory // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:FAQCategory' => 'FAQ Category~~', 'Class:FAQCategory+' => 'Category for FAQ~~', 'Class:FAQCategory/Attribute:name' => 'Name~~', 'Class:FAQCategory/Attribute:name+' => '~~', 'Class:FAQCategory/Attribute:faq_list' => 'FAQs~~', 'Class:FAQCategory/Attribute:faq_list+' => 'All the frequently asked questions related to this category~~', -)); -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +]); +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Menu:ProblemManagement' => 'Problem management~~', 'Menu:ProblemManagement+' => 'Problem management~~', 'Menu:Problem:Shortcuts' => 'Shortcuts~~', @@ -52,4 +53,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Brick:Portal:FAQ:Menu' => 'FAQ~~', 'Brick:Portal:FAQ:Title' => 'Frequently Asked Questions~~', 'Brick:Portal:FAQ:Title+' => '

        In a hurry?

        Check out the list of most common questions and (maybe) find the expected answer right away.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/tr.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/tr.dict.itop-faq-light.php index 2c3ca4b98..04714267f 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/tr.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/tr.dict.itop-faq-light.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:FAQ' => 'SSS', 'Class:FAQ+' => 'Sıkça Sorulan Sorular', 'Class:FAQ/Attribute:title' => 'Başlık', @@ -28,21 +29,21 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:FAQ/Attribute:key_words' => 'Anahtar Kelimeler', 'Class:FAQ/Attribute:key_words+' => '~~', 'Class:FAQ/Attribute:domains' => 'Domains~~', -)); +]); // // Class: FAQCategory // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:FAQCategory' => 'SSS Kategori', 'Class:FAQCategory+' => 'SSS için kategori', 'Class:FAQCategory/Attribute:name' => 'İsim', 'Class:FAQCategory/Attribute:name+' => '~~', 'Class:FAQCategory/Attribute:faq_list' => 'SSS', 'Class:FAQCategory/Attribute:faq_list+' => 'Bu kategoriyle ilgili tüm sık sorulan sorular', -)); -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +]); +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:ProblemManagement' => 'Problem yönetimi', 'Menu:ProblemManagement+' => 'Problem yönetimi', 'Menu:Problem:Shortcuts' => 'Kısayollar', @@ -53,4 +54,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Brick:Portal:FAQ:Menu' => 'SSS', 'Brick:Portal:FAQ:Title' => 'Sıkça Sorulan Sorular', 'Brick:Portal:FAQ:Title+' => '

        In a hurry?

        Check out the list of most common questions and (maybe) find the expected answer right away.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-faq-light/dictionaries/zh_cn.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/zh_cn.dict.itop-faq-light.php index a860cf223..22f187e0f 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/zh_cn.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/zh_cn.dict.itop-faq-light.php @@ -1,4 +1,5 @@ 'FAQ', 'Class:FAQ+' => '常见问题', 'Class:FAQ/Attribute:title' => '标题', @@ -63,21 +64,21 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:FAQ/Attribute:key_words' => '关键字', 'Class:FAQ/Attribute:key_words+' => '', 'Class:FAQ/Attribute:domains' => '范围', -)); +]); // // Class: FAQCategory // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:FAQCategory' => 'FAQ 类别', 'Class:FAQCategory+' => 'FAQ 类别', 'Class:FAQCategory/Attribute:name' => '名称', 'Class:FAQCategory/Attribute:name+' => '', 'Class:FAQCategory/Attribute:faq_list' => 'FAQ', 'Class:FAQCategory/Attribute:faq_list+' => '此类别 FAQ 相关的所有常见问题', -)); -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +]); +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:ProblemManagement' => '问题管理', 'Menu:ProblemManagement+' => '问题管理', 'Menu:Problem:Shortcuts' => '快捷方式', @@ -88,4 +89,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Brick:Portal:FAQ:Menu' => 'FAQ', 'Brick:Portal:FAQ:Title' => '常见问题', 'Brick:Portal:FAQ:Title+' => '

        需要帮助?

        查阅列表中的常见问题, 或许可以立即找到令您满意的答案.

        ', -)); +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/cs.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/cs.dict.itop-files-information.php index d6087e6d5..48be608df 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/cs.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/cs.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Chybějící soubor: %1$s', 'FilesInformation:Error:CorruptedFile' => 'Soubor %1$s je poškozený', 'FilesInformation:Error:ListCorruptedFile' => 'Poškozené soubory: %1$s', 'FilesInformation:Error:CantWriteToFile' => 'Nelze zapisovat do souboru %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/da.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/da.dict.itop-files-information.php index 54229d9a6..7ba28a190 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/da.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/da.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Missing file: %1$s~~', 'FilesInformation:Error:CorruptedFile' => 'File %1$s is corrupted~~', 'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s ~~', 'FilesInformation:Error:CantWriteToFile' => 'Can not write to file %1$s~~', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/de.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/de.dict.itop-files-information.php index 20255c7c9..86ba9849a 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/de.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/de.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Fehlende Datei: %1$s', 'FilesInformation:Error:CorruptedFile' => 'Datei %1$s ist beschädigt', 'FilesInformation:Error:ListCorruptedFile' => 'Beschädigte Datei(en): %1$s', 'FilesInformation:Error:CantWriteToFile' => 'Datei %1$s kann nicht geschrieben werden', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/en.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/en.dict.itop-files-information.php index 5595fd0d1..24a93da30 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/en.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/en.dict.itop-files-information.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ // Errors 'FilesInformation:Error:MissingFile' => 'Missing file: %1$s', 'FilesInformation:Error:CorruptedFile' => 'File %1$s is corrupted', 'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s ', 'FilesInformation:Error:CantWriteToFile' => 'Can not write to file %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/en_gb.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/en_gb.dict.itop-files-information.php index 2778a5ef1..bf50cc419 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/en_gb.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/en_gb.dict.itop-files-information.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ // Errors 'FilesInformation:Error:MissingFile' => 'Missing file: %1$s', 'FilesInformation:Error:CorruptedFile' => 'File %1$s is corrupted', 'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s', 'FilesInformation:Error:CantWriteToFile' => 'Can not write to file %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/es_cr.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/es_cr.dict.itop-files-information.php index ecc4fea09..b330b5ec1 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/es_cr.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/es_cr.dict.itop-files-information.php @@ -1,17 +1,16 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'FilesInformation:Error:MissingFile' => 'Archivo faltante: %1$s', 'FilesInformation:Error:CorruptedFile' => 'El archivo %1$s está corrupto', 'FilesInformation:Error:ListCorruptedFile' => 'Archivo(s) corrupto(s): %1$s', 'FilesInformation:Error:CantWriteToFile' => 'No se puede escribir al archivo %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/fr.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/fr.dict.itop-files-information.php index ce5acd6dd..87e7b31d7 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/fr.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/fr.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Ficher manquant : %1$s', 'FilesInformation:Error:CorruptedFile' => 'Le fichier %1$s est corrompu', 'FilesInformation:Error:ListCorruptedFile' => 'Fichier(s) corrompu(s): %1$s', 'FilesInformation:Error:CantWriteToFile' => 'Impossible de modifier le fichier %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/hu.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/hu.dict.itop-files-information.php index 4ecd2346e..57faa0414 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/hu.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/hu.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Hiányzó fájl: %1$s', 'FilesInformation:Error:CorruptedFile' => 'A %1$s fájl megsérült', 'FilesInformation:Error:ListCorruptedFile' => 'Sérült fájl(ok): %1$s', 'FilesInformation:Error:CantWriteToFile' => 'A %1$s nem írható', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/it.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/it.dict.itop-files-information.php index 71e9641cb..42e7804ae 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/it.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/it.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'File mancante: %1$s', 'FilesInformation:Error:CorruptedFile' => 'File %1$s corrotto', 'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrotto(i): %1$s', 'FilesInformation:Error:CantWriteToFile' => 'Impossibile scrivere nel file %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/ja.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/ja.dict.itop-files-information.php index 1797fdf19..4c396b168 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/ja.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/ja.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Missing file: %1$s~~', 'FilesInformation:Error:CorruptedFile' => 'File %1$s is corrupted~~', 'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s ~~', 'FilesInformation:Error:CantWriteToFile' => 'Can not write to file %1$s~~', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/nl.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/nl.dict.itop-files-information.php index cc7c3963f..79283a68d 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/nl.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/nl.dict.itop-files-information.php @@ -1,20 +1,19 @@ (2018 - 2022) * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'FilesInformation:Error:MissingFile' => 'Ontbrekend bestand: %1$s', 'FilesInformation:Error:CorruptedFile' => 'Corrupt bestand: %1$s', 'FilesInformation:Error:ListCorruptedFile' => 'Corrupt(e) bestand(en): %1$s', 'FilesInformation:Error:CantWriteToFile' => 'Kan niet schrijven naar bestand %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/pl.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/pl.dict.itop-files-information.php index b3a9d459b..52c0094c7 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/pl.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/pl.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Brakujący plik: %1$s', 'FilesInformation:Error:CorruptedFile' => 'Plik %1$s jest uszkodzony', 'FilesInformation:Error:ListCorruptedFile' => 'Uszkodzone pliki: %1$s', 'FilesInformation:Error:CantWriteToFile' => 'Nie można zapisać do pliku %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/pt_br.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/pt_br.dict.itop-files-information.php index 15f09e7b0..e2d3e0ebd 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/pt_br.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/pt_br.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Arquivo ausente: %1$s', 'FilesInformation:Error:CorruptedFile' => 'Arquivo %1$s está corrompido', 'FilesInformation:Error:ListCorruptedFile' => 'Arquivo(s) corrompido(s): %1$s ', 'FilesInformation:Error:CantWriteToFile' => 'Sem permissão de escrita no arquivo %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/ru.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/ru.dict.itop-files-information.php index 0793f3f23..1fac09eb9 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/ru.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/ru.dict.itop-files-information.php @@ -1,20 +1,19 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'FilesInformation:Error:MissingFile' => 'Файл %1$s отсутствует', 'FilesInformation:Error:CorruptedFile' => 'Файл %1$s повреждён', 'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s ~~', 'FilesInformation:Error:CantWriteToFile' => 'Невозможно выполнить запись в файл %1$s', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/sk.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/sk.dict.itop-files-information.php index 3c5cba937..a1f2e14bf 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/sk.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/sk.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Missing file: %1$s~~', 'FilesInformation:Error:CorruptedFile' => 'File %1$s is corrupted~~', 'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s ~~', 'FilesInformation:Error:CantWriteToFile' => 'Can not write to file %1$s~~', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/tr.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/tr.dict.itop-files-information.php index e76e01f87..83579ead2 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/tr.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/tr.dict.itop-files-information.php @@ -1,19 +1,18 @@ 'Missing file: %1$s~~', 'FilesInformation:Error:CorruptedFile' => 'File %1$s is corrupted~~', 'FilesInformation:Error:ListCorruptedFile' => 'File(s) corrupted: %1$s ~~', 'FilesInformation:Error:CantWriteToFile' => 'Can not write to file %1$s~~', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/dictionaries/zh_cn.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/zh_cn.dict.itop-files-information.php index 9d6092044..2dc15df14 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/zh_cn.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/zh_cn.dict.itop-files-information.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Errors 'FilesInformation:Error:MissingFile' => '文件丢失: %1$s', 'FilesInformation:Error:CorruptedFile' => '文件 %1$s 已损坏', 'FilesInformation:Error:ListCorruptedFile' => '已损坏的文件: %1$s', 'FilesInformation:Error:CantWriteToFile' => '文件 %1$s 无法写入', -)); - - +]); diff --git a/datamodels/2.x/itop-files-information/src/Service/FilesInformation.php b/datamodels/2.x/itop-files-information/src/Service/FilesInformation.php index 773f47a49..c0d86165a 100644 --- a/datamodels/2.x/itop-files-information/src/Service/FilesInformation.php +++ b/datamodels/2.x/itop-files-information/src/Service/FilesInformation.php @@ -1,20 +1,19 @@ getMessage(); - return 'Warning'; - } + try { + FilesIntegrity::CheckInstallationIntegrity(APPROOT, false); + } catch (FileIntegrityException $e) { + $sMessage = $e->getMessage(); + return 'Warning'; + } - return 'Yes'; - } + return 'Yes'; + } /** * @param string $sRootPath @@ -75,32 +66,27 @@ class FilesInformation * @return bool * @throws \Combodo\iTop\FilesInformation\Service\FileNotExistException */ - private static function CanWriteRecursive($sRootPath = '', &$sMessage = null, $aInstalledFiles = array()) - { - $aDirStats = FilesInformationUtils::Scan($sRootPath, false); - foreach ($aDirStats as $sFileName => $aFileStats) - { - // For name normalization - $sLocalPath = utils::LocalPath(APPROOT.$sRootPath.DIRECTORY_SEPARATOR.$sFileName); - if (($sLocalPath === false) || !isset($aInstalledFiles[$sLocalPath])) - { - continue; - } - if (!self::CanWriteToFile($aFileStats)) - { - $sMessage = Dict::Format('FilesInformation:Error:CantWriteToFile', $sRootPath.DIRECTORY_SEPARATOR.$sFileName); - return false; - } - if (($sFileName != '.') && ($aFileStats['type'] == 'dir')) - { - if (!self::CanWriteRecursive($sRootPath.DIRECTORY_SEPARATOR.$sFileName, $sMessage, $aInstalledFiles)) - { - return false; - } - } - } - return true; - } + private static function CanWriteRecursive($sRootPath = '', &$sMessage = null, $aInstalledFiles = []) + { + $aDirStats = FilesInformationUtils::Scan($sRootPath, false); + foreach ($aDirStats as $sFileName => $aFileStats) { + // For name normalization + $sLocalPath = utils::LocalPath(APPROOT.$sRootPath.DIRECTORY_SEPARATOR.$sFileName); + if (($sLocalPath === false) || !isset($aInstalledFiles[$sLocalPath])) { + continue; + } + if (!self::CanWriteToFile($aFileStats)) { + $sMessage = Dict::Format('FilesInformation:Error:CantWriteToFile', $sRootPath.DIRECTORY_SEPARATOR.$sFileName); + return false; + } + if (($sFileName != '.') && ($aFileStats['type'] == 'dir')) { + if (!self::CanWriteRecursive($sRootPath.DIRECTORY_SEPARATOR.$sFileName, $sMessage, $aInstalledFiles)) { + return false; + } + } + } + return true; + } /** * Check if iTop can write @@ -110,48 +96,45 @@ class FilesInformation * @throws \Combodo\iTop\FilesInformation\Service\FileNotExistException */ public static function IsWritable($sFilename) - { - $aFileStats = FilesInformationUtils::GetFileStat(utils::LocalPath($sFilename)); - return self::CanWriteToFile($aFileStats); - } + { + $aFileStats = FilesInformationUtils::GetFileStat(utils::LocalPath($sFilename)); + return self::CanWriteToFile($aFileStats); + } - private static function CanWriteToFile($aFileStats) - { - if ($aFileStats['writable']) - { - return true; - } - if ($aFileStats['file_owner'] == self::$sItopOwner) - { - // If iTop owns the file, no pb to write - return true; - } - return false; - } + private static function CanWriteToFile($aFileStats) + { + if ($aFileStats['writable']) { + return true; + } + if ($aFileStats['file_owner'] == self::$sItopOwner) { + // If iTop owns the file, no pb to write + return true; + } + return false; + } - /** - * @throws \Combodo\iTop\FilesInformation\Service\FileNotExistException - */ - private static function Init() - { - clearstatcache(); + /** + * @throws \Combodo\iTop\FilesInformation\Service\FileNotExistException + */ + private static function Init() + { + clearstatcache(); - $sSourceConfigFile = MetaModel::GetConfig()->GetLoadedFile(); - $sSourceConfigFile = utils::LocalPath($sSourceConfigFile); + $sSourceConfigFile = MetaModel::GetConfig()->GetLoadedFile(); + $sSourceConfigFile = utils::LocalPath($sSourceConfigFile); - $aConfigFiles = FilesInformationUtils::Scan(dirname($sSourceConfigFile)); - if (!isset($aConfigFiles[basename($sSourceConfigFile)])) - { - return; - } - $aConfigStats = $aConfigFiles[basename($sSourceConfigFile)]; - self::$sItopOwner = $aConfigStats['file_owner']; - } + $aConfigFiles = FilesInformationUtils::Scan(dirname($sSourceConfigFile)); + if (!isset($aConfigFiles[basename($sSourceConfigFile)])) { + return; + } + $aConfigStats = $aConfigFiles[basename($sSourceConfigFile)]; + self::$sItopOwner = $aConfigStats['file_owner']; + } - public static function GetItopDiskSpace() - { - return FilesInformationUtils::GetDirSize(realpath(APPROOT)); - } + public static function GetItopDiskSpace() + { + return FilesInformationUtils::GetDirSize(realpath(APPROOT)); + } /** * @param $sLocalDirPath @@ -160,12 +143,11 @@ class FilesInformation * @throws \Combodo\iTop\FilesInformation\Service\FileNotExistException */ public static function GetDirInfo($sLocalDirPath) - { - if (utils::AbsolutePath($sLocalDirPath) === false) - { - return array(); - } - return FilesInformationUtils::Scan($sLocalDirPath); - } + { + if (utils::AbsolutePath($sLocalDirPath) === false) { + return []; + } + return FilesInformationUtils::Scan($sLocalDirPath); + } } diff --git a/datamodels/2.x/itop-files-information/src/Service/FilesInformationException.php b/datamodels/2.x/itop-files-information/src/Service/FilesInformationException.php index 9c0670bc5..69ac966aa 100644 --- a/datamodels/2.x/itop-files-information/src/Service/FilesInformationException.php +++ b/datamodels/2.x/itop-files-information/src/Service/FilesInformationException.php @@ -1,25 +1,22 @@ 'socket', - 0120000=>'link', - 0100000=>'file', - 0060000=>'block', - 0040000=>'dir', - 0020000=>'char', - 0010000=>'fifo' - ); - $iRawMode = $aStats['mode']; - $iMode = decoct($iRawMode & 0170000); // File Encoding Bit + $aTypes = [ + 0140000 => 'socket', + 0120000 => 'link', + 0100000 => 'file', + 0060000 => 'block', + 0040000 => 'dir', + 0020000 => 'char', + 0010000 => 'fifo', + ]; + $iRawMode = $aStats['mode']; + $iMode = decoct($iRawMode & 0170000); // File Encoding Bit - $sDisplayMode =(array_key_exists(octdec($iMode),$aTypes))?$aTypes[octdec($iMode)][0]:'u'; - $sDisplayMode.=(($iRawMode&0x0100)?'r':'-').(($iRawMode&0x0080)?'w':'-'); - $sDisplayMode.=(($iRawMode&0x0040)?(($iRawMode&0x0800)?'s':'x'):(($iRawMode&0x0800)?'S':'-')); - $sDisplayMode.=(($iRawMode&0x0020)?'r':'-').(($iRawMode&0x0010)?'w':'-'); - $sDisplayMode.=(($iRawMode&0x0008)?(($iRawMode&0x0400)?'s':'x'):(($iRawMode&0x0400)?'S':'-')); - $sDisplayMode.=(($iRawMode&0x0004)?'r':'-').(($iRawMode&0x0002)?'w':'-'); - $sDisplayMode.=(($iRawMode&0x0001)?(($iRawMode&0x0200)?'t':'x'):(($iRawMode&0x0200)?'T':'-')); + $sDisplayMode = (array_key_exists(octdec($iMode), $aTypes)) ? $aTypes[octdec($iMode)][0] : 'u'; + $sDisplayMode .= (($iRawMode & 0x0100) ? 'r' : '-').(($iRawMode & 0x0080) ? 'w' : '-'); + $sDisplayMode .= (($iRawMode & 0x0040) ? (($iRawMode & 0x0800) ? 's' : 'x') : (($iRawMode & 0x0800) ? 'S' : '-')); + $sDisplayMode .= (($iRawMode & 0x0020) ? 'r' : '-').(($iRawMode & 0x0010) ? 'w' : '-'); + $sDisplayMode .= (($iRawMode & 0x0008) ? (($iRawMode & 0x0400) ? 's' : 'x') : (($iRawMode & 0x0400) ? 'S' : '-')); + $sDisplayMode .= (($iRawMode & 0x0004) ? 'r' : '-').(($iRawMode & 0x0002) ? 'w' : '-'); + $sDisplayMode .= (($iRawMode & 0x0001) ? (($iRawMode & 0x0200) ? 't' : 'x') : (($iRawMode & 0x0200) ? 'T' : '-')); - $aFileStats['display_mode'] = $sDisplayMode; - $aFileStats['type'] = $aTypes[octdec($iMode)]; - $aFileStats['readable'] = is_readable($sFile); - $aFileStats['writable'] = is_writable($sFile); - $aFileStats['file_owner'] = $aStats['uid']; - $aFileStats['file_group'] = $aStats['gid']; - if (function_exists('posix_getpwuid')) - { - $aPwUid = @posix_getpwuid($aStats['uid']); - if (isset($aPwUid['name'])) - { - $aFileStats['owner_name'] = $aPwUid['name']; - } - } - if (empty($aFileStats['owner_name'])) - { - $aFileStats['owner_name'] = ''; - } - if (function_exists('posix_getgrgid')) - { - $aGrGid = @posix_getgrgid($aStats['gid']); - if (isset($aGrGid['name'])) - { - $aFileStats['group_name'] = $aGrGid['name']; - } - } - if (empty($aFileStats['group_name'])) - { - $aFileStats['group_name'] = ''; - } - $aFileStats['mtime'] = date('Y-m-d H:i:s', $aStats['mtime']); - $aFileStats['ctime'] = date('Y-m-d H:i:s', $aStats['ctime']); + $aFileStats['display_mode'] = $sDisplayMode; + $aFileStats['type'] = $aTypes[octdec($iMode)]; + $aFileStats['readable'] = is_readable($sFile); + $aFileStats['writable'] = is_writable($sFile); + $aFileStats['file_owner'] = $aStats['uid']; + $aFileStats['file_group'] = $aStats['gid']; + if (function_exists('posix_getpwuid')) { + $aPwUid = @posix_getpwuid($aStats['uid']); + if (isset($aPwUid['name'])) { + $aFileStats['owner_name'] = $aPwUid['name']; + } + } + if (empty($aFileStats['owner_name'])) { + $aFileStats['owner_name'] = ''; + } + if (function_exists('posix_getgrgid')) { + $aGrGid = @posix_getgrgid($aStats['gid']); + if (isset($aGrGid['name'])) { + $aFileStats['group_name'] = $aGrGid['name']; + } + } + if (empty($aFileStats['group_name'])) { + $aFileStats['group_name'] = ''; + } + $aFileStats['mtime'] = date('Y-m-d H:i:s', $aStats['mtime']); + $aFileStats['ctime'] = date('Y-m-d H:i:s', $aStats['ctime']); - return $aFileStats; - } + return $aFileStats; + } - /** - * @param string $sPath relative iTop path - * - * @return string absolute path - * @throws \Combodo\iTop\FilesInformation\Service\FileNotExistException - */ - public static function GetAbsolutePath($sPath) - { - $sRootPath = realpath(APPROOT); - $sFullPath = realpath($sRootPath.DIRECTORY_SEPARATOR.$sPath); - if (($sFullPath === false) || !utils::StartsWith($sFullPath, $sRootPath)) - { - throw new FileNotExistException($sPath); - } - return $sFullPath; - } + /** + * @param string $sPath relative iTop path + * + * @return string absolute path + * @throws \Combodo\iTop\FilesInformation\Service\FileNotExistException + */ + public static function GetAbsolutePath($sPath) + { + $sRootPath = realpath(APPROOT); + $sFullPath = realpath($sRootPath.DIRECTORY_SEPARATOR.$sPath); + if (($sFullPath === false) || !utils::StartsWith($sFullPath, $sRootPath)) { + throw new FileNotExistException($sPath); + } + return $sFullPath; + } - public static function GetDirSize($sRealRootPath) - { - $aFiles = scandir($sRealRootPath); - $iSize = 0; - foreach ($aFiles as $sScanFile) - { - if (($sScanFile == '.') || ($sScanFile == '..')) - { - continue; - } - $sFile = $sRealRootPath.DIRECTORY_SEPARATOR.$sScanFile; - if (is_dir($sFile)) - { - $iSize += self::GetDirSize($sFile); - } - else - { - $aStats = @stat($sFile); - if (is_array($aStats)) { - $iSize += $aStats['size']; - } - } - } - return $iSize; - } + public static function GetDirSize($sRealRootPath) + { + $aFiles = scandir($sRealRootPath); + $iSize = 0; + foreach ($aFiles as $sScanFile) { + if (($sScanFile == '.') || ($sScanFile == '..')) { + continue; + } + $sFile = $sRealRootPath.DIRECTORY_SEPARATOR.$sScanFile; + if (is_dir($sFile)) { + $iSize += self::GetDirSize($sFile); + } else { + $aStats = @stat($sFile); + if (is_array($aStats)) { + $iSize += $aStats['size']; + } + } + } + return $iSize; + } } diff --git a/datamodels/2.x/itop-files-information/src/Service/FilesIntegrity.php b/datamodels/2.x/itop-files-information/src/Service/FilesIntegrity.php index dfb04438b..b45360c51 100644 --- a/datamodels/2.x/itop-files-information/src/Service/FilesIntegrity.php +++ b/datamodels/2.x/itop-files-information/src/Service/FilesIntegrity.php @@ -1,13 +1,12 @@ load($sManifest); $oXPath = new DOMXPath($oManifestDocument); $oNodeList = $oXPath->query('/files'); - if ($oNodeList->length == 0) - { + if ($oNodeList->length == 0) { // no files return false; } - foreach ($oNodeList as $oItems) - { - foreach ($oItems->childNodes as $oFileNode) - { - if (($oFileNode instanceof DOMNode)) - { - if ($oFileNode->hasChildNodes()) - { - $aFileInfo = array(); + foreach ($oNodeList as $oItems) { + foreach ($oItems->childNodes as $oFileNode) { + if (($oFileNode instanceof DOMNode)) { + if ($oFileNode->hasChildNodes()) { + $aFileInfo = []; $sFilePath = uniqid(); // just in case no path... - foreach ($oFileNode->childNodes as $oFileInfo) - { - if ($oFileInfo instanceof DOMElement) - { + foreach ($oFileNode->childNodes as $oFileInfo) { + if ($oFileInfo instanceof DOMElement) { $aFileInfo[$oFileInfo->tagName] = $oFileInfo->textContent; - if ($oFileInfo->tagName == 'path') - { + if ($oFileInfo->tagName == 'path') { $sFilePath = $oFileInfo->textContent; } } @@ -88,51 +77,44 @@ class FilesIntegrity { $aFilesInfo = FilesIntegrity::GetInstalledFiles($sRootPath.'manifest.xml'); - if ($aFilesInfo === false) - { + if ($aFilesInfo === false) { throw new FileIntegrityException(Dict::Format('FilesInformation:Error:MissingFile', 'manifest.xml')); } $bHasErrors = false; - $sErrorFiles =""; + $sErrorFiles = ""; @clearstatcache(); - foreach ($aFilesInfo as $aFileInfo) - { + foreach ($aFilesInfo as $aFileInfo) { $sFile = $sRootPath.$aFileInfo['path']; - if (is_file($sFile)) - { + if (is_file($sFile)) { $aStats = @stat($sFile); $iSize = $aStats['size']; $sContent = file_get_contents($sFile); $sChecksum = md5($sContent); - if (($iSize != $aFileInfo['size']) || ($sChecksum != $aFileInfo['md5'])) - { - if($bExitAtFirstError) { + if (($iSize != $aFileInfo['size']) || ($sChecksum != $aFileInfo['md5'])) { + if ($bExitAtFirstError) { throw new FileIntegrityException(Dict::Format('FilesInformation:Error:CorruptedFile', $sFile)); } else { $bHasErrors = true; - $sErrorFiles .='
      • '.$aFileInfo['path'].'
      • '; + $sErrorFiles .= '
      • '.$aFileInfo['path'].'
      • '; } } } // Packed with missing files... } - if($bHasErrors){ - throw new FileIntegrityException(Dict::Format('FilesInformation:Error:ListCorruptedFile','
          '.$sErrorFiles.'
        ')); + if ($bHasErrors) { + throw new FileIntegrityException(Dict::Format('FilesInformation:Error:ListCorruptedFile', '
          '.$sErrorFiles.'
        ')); } } public static function IsInstallationConform($sRootPath, &$sErrorMsg) { $sErrorMsg = ''; - try - { + try { self::CheckInstallationIntegrity($sRootPath); return true; - } - catch (FileIntegrityException $e) - { + } catch (FileIntegrityException $e) { $sErrorMsg = $e->getMessage(); } return false; diff --git a/datamodels/2.x/itop-hub-connector/TokenValidation.php b/datamodels/2.x/itop-hub-connector/TokenValidation.php index 6a30079cf..950a47771 100644 --- a/datamodels/2.x/itop-hub-connector/TokenValidation.php +++ b/datamodels/2.x/itop-hub-connector/TokenValidation.php @@ -6,7 +6,7 @@ class TokenValidation public function __construct() { } - public function isSetupTokenValid($sParamToken) : bool + public function isSetupTokenValid($sParamToken): bool { if (!file_exists(APPROOT.'data/.setup')) { return false; @@ -16,4 +16,4 @@ class TokenValidation return $sParamToken === $sSetupToken; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/cs.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/cs.dict.itop-hub-connector.php index ee2afc836..7aea723da 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/cs.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/cs.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub~~', 'Menu:iTopHub:Register' => 'Připojit k iTop Hubu', 'Menu:iTopHub:Register+' => 'Go to iTop Hub to update your '.ITOP_APPLICATION_SHORT.' instance~~', @@ -64,6 +65,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s verze: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Installed~~', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Verze %1$s Není instalována.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/da.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/da.dict.itop-hub-connector.php index 70f952278..693b402e7 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/da.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/da.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub~~', 'Menu:iTopHub:Register' => 'Connect to iTop Hub~~', 'Menu:iTopHub:Register+' => 'Go to iTop Hub to update your '.ITOP_APPLICATION_SHORT.' instance~~', @@ -64,6 +65,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.~~', 'iTopHub:InstallationStatus:Installed' => 'Installed~~', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NOT installed.~~', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/de.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/de.dict.itop-hub-connector.php index 1f1a34ef1..20e2d7f6c 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/de.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/de.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub', 'Menu:iTopHub:Register' => 'Mit dem iTop Hub verbinden', 'Menu:iTopHub:Register+' => ITOP_APPLICATION_SHORT.'-Instanzen über den iTop Hub updaten', @@ -64,6 +65,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s Version: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Installiert', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NICHT installiert.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/en.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/en.dict.itop-hub-connector.php index 89476440a..a1394be6a 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/en.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/en.dict.itop-hub-connector.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ // Dictionary entries go here 'Menu:iTopHub' => 'iTop Hub', 'Menu:iTopHub:Register' => 'Connect to iTop Hub', @@ -82,6 +83,4 @@ Dict::Add('EN US', 'English', 'English', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Installed', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NOT installed.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/en_gb.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/en_gb.dict.itop-hub-connector.php index 4bf8d19bd..964270992 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/en_gb.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/en_gb.dict.itop-hub-connector.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ // Dictionary entries go here 'Menu:iTopHub' => 'iTop Hub', 'Menu:iTopHub:Register' => 'Connect to iTop Hub', @@ -82,6 +83,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Installed', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NOT installed.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/es_cr.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/es_cr.dict.itop-hub-connector.php index f20da88df..0e9bf5c24 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/es_cr.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/es_cr.dict.itop-hub-connector.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:iTopHub' => 'iTop Hub', 'Menu:iTopHub:Register' => 'Conectar a iTop Hub', 'Menu:iTopHub:Register+' => 'Ir a iTop Hub para actualizar su instancia de '.ITOP_APPLICATION_SHORT, @@ -62,6 +63,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s versión: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Instalada', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Versión %1$s NO está instalada.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/fr.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/fr.dict.itop-hub-connector.php index 6e37c9299..95bf943fc 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/fr.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/fr.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub', 'Menu:iTopHub:Register' => 'Se connecter à iTop Hub', 'Menu:iTopHub:Register+' => 'Connectez-vous à iTop Hub pour enregistrer cette instance d\''.ITOP_APPLICATION_SHORT, @@ -64,6 +65,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Installée', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NON installée.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/hu.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/hu.dict.itop-hub-connector.php index 51a5d95eb..6ff3ece1a 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/hu.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/hu.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub', 'Menu:iTopHub:Register' => 'Kapcsolódás az iTop Hub-ra', 'Menu:iTopHub:Register+' => 'Továbblépés az iTop Hub-ra a '.ITOP_APPLICATION_SHORT.' példányának frissítéséhez', @@ -64,6 +65,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s verzió: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Telepítve', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'A %1$s verzió NINCS telepítve.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/it.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/it.dict.itop-hub-connector.php index c459ae1aa..fb7839db8 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/it.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/it.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub', 'Menu:iTopHub:Register' => 'Connetti a iTop Hub', 'Menu:iTopHub:Register+' => 'Vai a iTop Hub per aggiornare la tua istanza di '.ITOP_APPLICATION_SHORT, @@ -64,6 +65,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'iTopHub:InstallationStatus:Installed_Version' => 'Versione %1$s di %2$s installata.', 'iTopHub:InstallationStatus:Installed' => 'Installata', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Versione %1$s NON installata.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/ja.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/ja.dict.itop-hub-connector.php index 55ce12d11..c48970f29 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/ja.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/ja.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub~~', 'Menu:iTopHub:Register' => 'Connect to iTop Hub~~', 'Menu:iTopHub:Register+' => 'Go to iTop Hub to update your '.ITOP_APPLICATION_SHORT.' instance~~', @@ -64,6 +65,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.~~', 'iTopHub:InstallationStatus:Installed' => 'Installed~~', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NOT installed.~~', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/nl.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/nl.dict.itop-hub-connector.php index 25014f6f8..227c8f6fa 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/nl.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/nl.dict.itop-hub-connector.php @@ -1,16 +1,17 @@ (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:iTopHub' => 'iTop Hub', 'Menu:iTopHub:Register' => 'Verbinding maken met iTop Hub', 'Menu:iTopHub:Register+' => 'Ga naar de iTop Hub om je iTop bij te werken.', @@ -65,6 +66,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s versie: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Geïnstalleerd', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Versie %1$s is NIET geïnstalleerd.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/pl.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/pl.dict.itop-hub-connector.php index 808ba8b28..b74cd4e87 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/pl.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/pl.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub', 'Menu:iTopHub:Register' => 'Połącz się z iTop Hub', 'Menu:iTopHub:Register+' => 'Przejdź do iTop Hub, aby zaktualizować swoją instancję '.ITOP_APPLICATION_SHORT, @@ -64,6 +65,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s wersja: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Zainstalowana', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Wersja %1$s NIE zainstalowana.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/ru.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/ru.dict.itop-hub-connector.php index 90221d642..a7ef34c80 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/ru.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/ru.dict.itop-hub-connector.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:iTopHub' => 'iTop Hub', 'Menu:iTopHub:Register' => 'Подключение к iTop Hub', 'Menu:iTopHub:Register+' => 'Перейдите в iTop Hub, чтобы обновить ваш экземпляр '.ITOP_APPLICATION_SHORT, @@ -65,6 +66,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.~~', 'iTopHub:InstallationStatus:Installed' => 'Installed~~', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NOT installed.~~', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/sk.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/sk.dict.itop-hub-connector.php index 28321dc29..13a281734 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/sk.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/sk.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub~~', 'Menu:iTopHub:Register' => 'Connect to iTop Hub~~', 'Menu:iTopHub:Register+' => 'Go to iTop Hub to update your '.ITOP_APPLICATION_SHORT.' instance~~', @@ -64,6 +65,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.~~', 'iTopHub:InstallationStatus:Installed' => 'Installed~~', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NOT installed.~~', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/tr.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/tr.dict.itop-hub-connector.php index a8b2b6e03..9b2d786f8 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/tr.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/tr.dict.itop-hub-connector.php @@ -1,15 +1,16 @@ 'iTop Hub~~', 'Menu:iTopHub:Register' => 'Connect to iTop Hub~~', 'Menu:iTopHub:Register+' => 'Go to iTop Hub to update your '.ITOP_APPLICATION_SHORT.' instance~~', @@ -64,6 +65,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.~~', 'iTopHub:InstallationStatus:Installed' => 'Installed~~', 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NOT installed.~~', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/zh_cn.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/zh_cn.dict.itop-hub-connector.php index 9c209d9a2..0f3c4866e 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/zh_cn.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/zh_cn.dict.itop-hub-connector.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Dictionary entries go here 'Menu:iTopHub' => 'iTop Hub', 'Menu:iTopHub:Register' => '进入iTop Hub', @@ -76,6 +77,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'iTopHub:InstallationStatus:Installed_Version' => '%1$s 版本: %2$s.', 'iTopHub:InstallationStatus:Installed' => '已安装', 'iTopHub:InstallationStatus:Version_NotInstalled' => '版本 %1$s 未被 安装.', -)); - - +]); diff --git a/datamodels/2.x/itop-hub-connector/hubconnectorpage.class.inc.php b/datamodels/2.x/itop-hub-connector/hubconnectorpage.class.inc.php index 257080513..f1f07bd76 100644 --- a/datamodels/2.x/itop-hub-connector/hubconnectorpage.class.inc.php +++ b/datamodels/2.x/itop-hub-connector/hubconnectorpage.class.inc.php @@ -18,11 +18,13 @@ class HubConnectorPage extends NiceWebPage $sUserPrefs = appUserPreferences::GetAsJSON(); $this->LinkScriptFromAppRoot('js/utils.js'); - $this->add_script(<<add_script( + <<add_style(<<add_style( + <<MakeURL('route_mark_all_messages_as_read'); } - + public function GetFetchURL() { return $this->MakeURL('route_fetch_unread_messages'); } - + public function GetViewAllURL() { return $sBaseUrl = $this->oConfig->GetModuleSetting('itop-hub-connector', 'url').MetaModel::GetModuleSetting('itop-hub-connector', 'route_view_all_messages'); } - + /** * {@inheritDoc} * @see iNewsroomProvider::GetPlaceholders() */ public function GetPlaceholders() { - return array( - '%connect_to_itop_hub%' => utils::GetAbsoluteUrlModulePage('itop-hub-connector', 'launch.php', array('target' => 'view_dashboard')), - ); + return [ + '%connect_to_itop_hub%' => utils::GetAbsoluteUrlModulePage('itop-hub-connector', 'launch.php', ['target' => 'view_dashboard']), + ]; } - + /** * {@inheritDoc} * @see NewsroomProviderBase::GetPreferencesUrl() @@ -72,15 +70,15 @@ class HubNewsroomProvider extends NewsroomProviderBase { return null; } - + private function MakeURL($sRouteCode) { $sBaseUrl = $this->oConfig->GetModuleSetting('itop-hub-connector', 'url').MetaModel::GetModuleSetting('itop-hub-connector', $sRouteCode); - + $sParameters = 'uuid[bdd]='.urlencode((string) trim(DBProperty::GetProperty('database_uuid', ''), '{}')); $sParameters .= '&uuid[file]='.urlencode((string) trim(@file_get_contents(utils::GetDataPath()."instance.txt"), "{} \n")); $sParameters .= '&uuid[user]='.urlencode(UserRights::GetUserId()); - + return $sBaseUrl.'?'.$sParameters; } } diff --git a/datamodels/2.x/itop-hub-connector/menus.php b/datamodels/2.x/itop-hub-connector/menus.php index 56d548748..bd0b0aff3 100644 --- a/datamodels/2.x/itop-hub-connector/menus.php +++ b/datamodels/2.x/itop-hub-connector/menus.php @@ -17,16 +17,15 @@ class ItopHubMenusHandler extends ModuleHandlerAPI public static function OnMenuCreation() { // Add the admin menus - if (UserRights::IsAdministrator()) - { + if (UserRights::IsAdministrator()) { $sRootUrl = utils::GetAbsoluteUrlAppRoot().'pages/exec.php?exec_module=itop-hub-connector&exec_page=launch.php'; $sMyExtensionsUrl = utils::GetAbsoluteUrlAppRoot().'pages/exec.php?exec_module=itop-hub-connector&exec_page=myextensions.php'; - + $oHubMenu = new MenuGroup('iTopHub', 999 /* fRank */, 'fc fc-itophub-icon fc-1-5x'); $fRank = 1; new WebPageMenuNode('iTopHub:Register', $sRootUrl.'&target=view_dashboard', $oHubMenu->GetIndex(), $fRank++); new WebPageMenuNode('iTopHub:MyExtensions', $sMyExtensionsUrl, $oHubMenu->GetIndex(), $fRank++); new WebPageMenuNode('iTopHub:BrowseExtensions', $sRootUrl.'&target=browse_extensions', $oHubMenu->GetIndex(), $fRank++); - } + } } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-hub-connector/myextensions.php b/datamodels/2.x/itop-hub-connector/myextensions.php index 08a3a8701..6da581a46 100644 --- a/datamodels/2.x/itop-hub-connector/myextensions.php +++ b/datamodels/2.x/itop-hub-connector/myextensions.php @@ -1,4 +1,5 @@ SetBreadCrumbEntry('ui-hub-myextensions', Dict::S('Menu:iTopHub:MyExtensions'), Dict::S('Menu:iTopHub:MyExtensions+'), '', 'fas fa-puzzle-piece', iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES); - function GetExtensionInfoComponent(iTopExtension $oExtension): UIBlock { $sExtensionDescription = Dict::Format('UI:About:Extension_Version', $oExtension->sVersion); @@ -40,16 +40,12 @@ function GetExtensionInfoComponent(iTopExtension $oExtension): UIBlock ->SetOpenedByDefault(false); } - try { $oExtensionsMap = new iTopExtensionsMap(); $oExtensionsMap->LoadChoicesFromDatabase(MetaModel::GetConfig()); $oPage->AddUiBlock(TitleUIBlockFactory::MakeForPage(Dict::S('iTopHub:InstalledExtensions'))); - - - /**------------------------------------------------------------------------------------------------------ * Remotely deployed ext */ @@ -80,13 +76,12 @@ try { $oHubButtonContainer = UIContentBlockUIBlockFactory::MakeStandard() ->AddCSSClass('hub-button'); $oPage->AddSubBlock($oHubButtonContainer); - $sUrl = utils::GetAbsoluteUrlModulePage('itop-hub-connector', 'launch.php', array('target' => 'browse_extensions')); + $sUrl = utils::GetAbsoluteUrlModulePage('itop-hub-connector', 'launch.php', ['target' => 'browse_extensions']); $oHubButton = ButtonUIBlockFactory::MakeForPrimaryAction(Dict::S('iTopHub:GetMoreExtensions'), 'install-extensions-button') ->SetOnClickJsCode("window.location.href='$sUrl'") ->SetIconClass('fa-fw fc fc-itophub-icon fc-1-5x'); $oHubButtonContainer->AddSubBlock($oHubButton); - /**------------------------------------------------------------------------------------------------------ * Manually deployed ext * Only if there are some ! @@ -121,8 +116,7 @@ try { } CSS ); -} -catch (Exception $e) { +} catch (Exception $e) { $oPage->p(''.Dict::Format('UI:Error_Details', $e->getMessage()).''); } diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/cs.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/cs.dict.itop-incident-mgmt-itil.php index 40e1e1216..ebf984888 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/cs.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/cs.dict.itop-incident-mgmt-itil.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:IncidentManagement' => 'Správa incidentů', 'Menu:IncidentManagement+' => 'Správa incidentů', 'Menu:Incident:Overview' => 'Přehled', @@ -33,8 +34,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Otevřené incidenty podle stavu', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Otevřené incidenty podle řešitele', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Otevřené incidenty podle zákazníka', -)); - +]); // Dictionnay conventions // Class: @@ -50,7 +50,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( // Class: Incident // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Incident' => 'Incident', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Stav', @@ -229,4 +229,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Incident/Method:ResolveChildTickets' => 'Vyřešit podřízené tikety', 'Class:Incident/Method:ResolveChildTickets+' => 'Kaskádovat vyřešení do podřízeného tiketu (ev_autoresolve) a sjednotit následující vlastnosti: služba, tým, řešitel, informace o vyřešení', 'Tickets:Related:OpenIncidents' => 'Otevřené incidenty', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/da.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/da.dict.itop-incident-mgmt-itil.php index c481df220..70a8988b5 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/da.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/da.dict.itop-incident-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:IncidentManagement' => 'Incident Management', 'Menu:IncidentManagement+' => '', 'Menu:Incident:Overview' => 'Oversigt', @@ -32,8 +33,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Åbne Incidents efter status', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Åbne Incidents efter tildelt til', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Åbne Incidents efter bruger', -)); - +]); // Dictionnay conventions // Class: @@ -49,7 +49,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( // Class: Incident // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Incident' => 'Incident', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Status', @@ -228,4 +228,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~', 'Tickets:Related:OpenIncidents' => 'Open incidents~~', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/de.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/de.dict.itop-incident-mgmt-itil.php index ac5e0fd3a..8f43454f5 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/de.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/de.dict.itop-incident-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:IncidentManagement' => 'Incident Management', 'Menu:IncidentManagement+' => '', 'Menu:Incident:Overview' => 'Übersicht', @@ -32,8 +33,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Offene Incidents nach Status', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Offene Incidents nach Bearbeiter', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Offene Incidents nach Kunde', -)); - +]); // Dictionnay conventions // Class: @@ -49,7 +49,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( // Class: Incident // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Incident' => 'Incident', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Status', @@ -228,4 +228,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Incident/Method:ResolveChildTickets' => 'Kind-Tickets lösen', 'Class:Incident/Method:ResolveChildTickets+' => 'Lösung auf Kind-Tickets übertragen (ev_autoresolve), und folgende Ticket-Eigenschaften angleichen: Service, Team, Agent, Lösungsinformationen', 'Tickets:Related:OpenIncidents' => 'Offene Incidents', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/en.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/en.dict.itop-incident-mgmt-itil.php index f86fef6fa..e8c208a84 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/en.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/en.dict.itop-incident-mgmt-itil.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:IncidentManagement' => 'Incident Management', 'Menu:IncidentManagement+' => '', 'Menu:Incident:Overview' => 'Overview', @@ -43,8 +44,7 @@ Dict::Add('EN US', 'English', 'English', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Open incidents by status', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Open incidents by agent', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Open incidents by customer', -)); - +]); // Dictionnay conventions // Class: @@ -60,7 +60,7 @@ Dict::Add('EN US', 'English', 'English', array( // Class: Incident // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Incident' => 'Incident', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Status', @@ -240,4 +240,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info', 'Tickets:Related:OpenIncidents' => 'Open incidents', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/en_gb.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/en_gb.dict.itop-incident-mgmt-itil.php index 7060b695d..c907e409e 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/en_gb.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/en_gb.dict.itop-incident-mgmt-itil.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:IncidentManagement' => 'Incident Management', 'Menu:IncidentManagement+' => '', 'Menu:Incident:Overview' => 'Overview', @@ -43,8 +44,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Open incidents by status', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Open incidents by agent', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Open incidents by customer', -)); - +]); // Dictionnay conventions // Class: @@ -60,7 +60,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Class: Incident // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Incident' => 'Incident', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Status', @@ -240,4 +240,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info.', 'Tickets:Related:OpenIncidents' => 'Open incidents', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/es_cr.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/es_cr.dict.itop-incident-mgmt-itil.php index e7af15f39..ef00043f3 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/es_cr.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/es_cr.dict.itop-incident-mgmt-itil.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:IncidentManagement' => 'Administración de Incidentes', 'Menu:IncidentManagement+' => 'Administración de Incidentes', 'Menu:Incident:Overview' => 'Resumen de Incidentes', @@ -29,8 +30,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Incidentes Abiertos por Estatus', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Incidentes Abiertos por Analista', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Incidentes Abiertos por Cliente', -)); - +]); // Dictionnay conventions // Class: @@ -46,7 +46,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( // Class: Incident // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Incident' => 'Incidente', 'Class:Incident+' => 'Incidente', 'Class:Incident/Attribute:status' => 'Estatus', @@ -225,4 +225,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Incident/Method:ResolveChildTickets' => 'Resolver tickets hijos', 'Class:Incident/Method:ResolveChildTickets+' => 'Cascadear la solución a los tickets hijos (ev_autoresolve), y alinear las siguientes características: servicio, equipo, agente, información de solución', 'Tickets:Related:OpenIncidents' => 'Incidentes Abiertos', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/fr.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/fr.dict.itop-incident-mgmt-itil.php index 59186123b..be954c8b2 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/fr.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/fr.dict.itop-incident-mgmt-itil.php @@ -1,15 +1,16 @@ 'Gestion des incidents', 'Menu:IncidentManagement+' => '', 'Menu:Incident:Overview' => 'Vue d\'ensemble', @@ -31,8 +32,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Incidents ouverts par statut', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Incidents ouverts par agent', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Incidents ouverts par client', -)); - +]); // Dictionnay conventions // Class: @@ -48,7 +48,7 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class: Incident // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Incident' => 'Incident', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Etat', @@ -238,5 +238,5 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Incident/Error:CannotAssignParentIncidentIdToSelf' => 'L\'incident parent ne peut pas être lui-même', 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets (résoudre les tickets fils)', 'Class:Incident/Method:ResolveChildTickets+' => 'Cascader l\'action de résolution du ticket (ev_autoresolve) vers les requêtes et incidents fils, et aligner les caractéristiques suivantes : service, équipe, agent, information de résolution', - 'Tickets:Related:OpenIncidents' => 'Incidents ouverts' -)); + 'Tickets:Related:OpenIncidents' => 'Incidents ouverts', +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/hu.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/hu.dict.itop-incident-mgmt-itil.php index c24a2ec38..aa1aae11b 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/hu.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/hu.dict.itop-incident-mgmt-itil.php @@ -1,15 +1,16 @@ 'Incidenskezelés', 'Menu:IncidentManagement+' => '', 'Menu:Incident:Overview' => 'Áttekintő', @@ -31,8 +32,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Nyitott incidensek állapotuk szerint', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Nyitott incidensek ügyintézőnként', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Nyitott incidensek ügyfelenként', -)); - +]); // Dictionnay conventions // Class: @@ -48,7 +48,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( // Class: Incident // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Incident' => 'Incidens', 'Class:Incident+' => '~~', 'Class:Incident/Attribute:status' => 'Állapot', @@ -227,4 +227,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:Incident/Method:ResolveChildTickets+' => 'A megoldás kaszkádozása a kapcsolódó jegyhez (ev_autoresolve), és a következő jellemzők összehangolása: szolgáltatás, csapat, ügyintéző, megoldási információ.', 'Tickets:Related:OpenIncidents' => 'Nyitott incidensek', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/ja.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/ja.dict.itop-incident-mgmt-itil.php index 9f8cd14a7..93a4e88c9 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/ja.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/ja.dict.itop-incident-mgmt-itil.php @@ -1,15 +1,16 @@ 'インシデント管理', 'Menu:IncidentManagement+' => 'インシデント管理', 'Menu:Incident:Overview' => '概要', @@ -31,8 +32,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => '状態別オープンインシデント', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'エージェント別オープンインシデント', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => '顧客別オープンインシデント', -)); - +]); // Dictionnay conventions // Class: @@ -48,7 +48,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( // Class: Incident // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Incident' => 'インシデント', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => '状態', @@ -227,4 +227,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~', 'Tickets:Related:OpenIncidents' => 'Open incidents~~', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/nl.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/nl.dict.itop-incident-mgmt-itil.php index ccad06ca4..3b193b491 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/nl.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/nl.dict.itop-incident-mgmt-itil.php @@ -1,17 +1,18 @@ * @author Jeffrey Bostoen (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:IncidentManagement' => 'Incident Management', 'Menu:IncidentManagement+' => 'Incident Management', 'Menu:Incident:Overview' => 'Overzicht', @@ -33,8 +34,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Open incidenten per status', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Open incidenten per agent', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Open incidenten per klant', -)); - +]); // Dictionnay conventions // Class: @@ -50,7 +50,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( // Class: Incident // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Incident' => 'Incident', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Status', @@ -229,4 +229,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:Incident/Method:ResolveChildTickets+' => 'Pas de oplossing ook toe op subverzoeken (ev_autoresolve) en neem deze kenmerken over: service, team, agent, oplossing', 'Tickets:Related:OpenIncidents' => 'Open incidenten', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pl.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pl.dict.itop-incident-mgmt-itil.php index d3f5e1389..4fffa27ba 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pl.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pl.dict.itop-incident-mgmt-itil.php @@ -1,15 +1,16 @@ 'Zarządzanie incydentami', 'Menu:IncidentManagement+' => 'Zarządzanie incydentami', 'Menu:Incident:Overview' => 'Przegląd', @@ -31,8 +32,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Otwarte incydenty według statusu', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Otwarte incydenty według agenta', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Otwarte incydenty według klienta', -)); - +]); // Dictionnay conventions // Class: @@ -48,7 +48,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( // Class: Incident // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Incident' => 'Incydent', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Status', @@ -227,4 +227,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Incident/Method:ResolveChildTickets' => 'Rozpatrz zgłoszenia podrzędne', 'Class:Incident/Method:ResolveChildTickets+' => 'Połącz rozwiązanie kaskadowo ze zgłoszeniem podrzędnym (ev_autoresolve) i dopasuj następujące cechy: usługa, zespół, agent, informacje o rozwiązaniu', 'Tickets:Related:OpenIncidents' => 'Otwarte incydenty', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pt_br.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pt_br.dict.itop-incident-mgmt-itil.php index 1b2b2b131..f23ab1fa9 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pt_br.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/pt_br.dict.itop-incident-mgmt-itil.php @@ -1,15 +1,16 @@ 'Gerenciamento de Incidentes', 'Menu:IncidentManagement+' => '', 'Menu:Incident:Overview' => 'Visão geral', @@ -31,8 +32,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Incidentes abertos por status', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Incidentes abertos por agente', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Incidentes abertos por cliente', -)); - +]); // Dictionnay conventions // Class: @@ -48,7 +48,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( // Class: Incident // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:Incident' => 'Incidente', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Status', @@ -227,4 +227,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets (resolver solicitações filhas)', 'Class:Incident/Method:ResolveChildTickets+' => 'Conecte a solução a solicitação filha (ev_autoresolve) e alinhe as seguintes características: serviço, equipe, agente, informação da solução', 'Tickets:Related:OpenIncidents' => 'Incidentes abertos', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/ru.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/ru.dict.itop-incident-mgmt-itil.php index d7d5b0a0c..164be4711 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/ru.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/ru.dict.itop-incident-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:IncidentManagement' => 'Управление инцидентами', 'Menu:IncidentManagement+' => 'Управление инцидентами', 'Menu:Incident:Overview' => 'Обзор', @@ -32,8 +33,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Открытые инциденты по статусу', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Открытые инциденты по агенту', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Открытые инциденты по заказчику', -)); - +]); // Dictionnay conventions // Class: @@ -49,7 +49,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( // Class: Incident // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Incident' => 'Инцидент', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => 'Статус', @@ -228,4 +228,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:Incident/Method:ResolveChildTickets+' => 'Каскадное решение дочерних тикетов (ev_autoresolve) с установкой следующих параметров: услуга, команда, агент, информация о решении.', 'Tickets:Related:OpenIncidents' => 'Открытые инциденты', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/sk.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/sk.dict.itop-incident-mgmt-itil.php index 16b90ce35..bd61d5b8c 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/sk.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/sk.dict.itop-incident-mgmt-itil.php @@ -1,15 +1,16 @@ 'Incident Management~~', 'Menu:IncidentManagement+' => '~~', 'Menu:Incident:Overview' => 'Overview~~', @@ -31,8 +32,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Open incidents by status~~', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Open incidents by agent~~', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Open incidents by customer~~', -)); - +]); // Dictionnay conventions // Class: @@ -48,7 +48,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( // Class: Incident // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Incident' => 'Incident~~', 'Class:Incident+' => '~~', 'Class:Incident/Attribute:status' => 'Status~~', @@ -227,4 +227,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~', 'Tickets:Related:OpenIncidents' => 'Open incidents~~', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/tr.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/tr.dict.itop-incident-mgmt-itil.php index c1a2a255c..804ac0727 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/tr.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/tr.dict.itop-incident-mgmt-itil.php @@ -1,15 +1,16 @@ 'Incident Management~~', 'Menu:IncidentManagement+' => '', 'Menu:Incident:Overview' => 'Overview~~', @@ -31,8 +32,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => 'Open incidents by status~~', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => 'Open incidents by agent~~', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => 'Open incidents by customer~~', -)); - +]); // Dictionnay conventions // Class: @@ -48,7 +48,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( // Class: Incident // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Incident' => 'Incident~~', 'Class:Incident+' => '~~', 'Class:Incident/Attribute:status' => 'Status~~', @@ -227,4 +227,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Incident/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:Incident/Method:ResolveChildTickets+' => 'Cascade the resolution to child ticket (ev_autoresolve), and align the following characteristics: service, team, agent, resolution info~~', 'Tickets:Related:OpenIncidents' => 'Open incidents~~', -)); +]); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/zh_cn.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/zh_cn.dict.itop-incident-mgmt-itil.php index 1e173704f..8d1d1fc08 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/zh_cn.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/zh_cn.dict.itop-incident-mgmt-itil.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:IncidentManagement' => '事件管理', 'Menu:IncidentManagement+' => '事件管理', 'Menu:Incident:Overview' => '概况', @@ -42,8 +43,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI-IncidentManagementOverview-OpenIncidentByStatus' => '打开的事件 (按状态)', 'UI-IncidentManagementOverview-OpenIncidentByAgent' => '打开的事件 (按办理人)', 'UI-IncidentManagementOverview-OpenIncidentByCustomer' => '打开的事件 (按客户)', -)); - +]); // Dictionnay conventions // Class: @@ -59,7 +59,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Class: Incident // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Incident' => '事件', 'Class:Incident+' => '', 'Class:Incident/Attribute:status' => '状态', @@ -238,4 +238,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Incident/Method:ResolveChildTickets' => '解决子工单', 'Class:Incident/Method:ResolveChildTickets+' => '递归解决子工单 (自动解决), 并调整相关字段与父级工单保持一致: 服务, 团队, 办理人, 解决方案', 'Tickets:Related:OpenIncidents' => '打开的事件', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/cs.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/cs.dict.itop-knownerror-mgmt.php index 17dd0642f..6fb42938f 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/cs.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/cs.dict.itop-knownerror-mgmt.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:KnownError' => 'Známá chyba', 'Class:KnownError+' => 'Pro známou příčinu zdokumentovaná chyba', 'Class:KnownError/Attribute:name' => 'Název', @@ -54,13 +55,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:KnownError/Attribute:ci_list+' => 'Všechny konfigurační položky vztahující se k této známé chybě', 'Class:KnownError/Attribute:document_list' => 'Dokumenty', 'Class:KnownError/Attribute:document_list+' => 'Všechny dokumenty spojené s touto známou chybou', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkErrorToFunctionalCI' => 'Spojení (Chyba / Funkční konfigurační položka)', 'Class:lnkErrorToFunctionalCI+' => 'Konfigurační položky vztahující se k chybě', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -74,13 +75,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Důvod', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDocumentToError' => 'Spojení (Dokument / Chyba)', 'Class:lnkDocumentToError+' => 'Spojení mezi dokumentem a známou chybou', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~', @@ -94,9 +95,9 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'link_type', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:ProblemManagement' => 'Správa problémů', 'Menu:ProblemManagement+' => 'Správa problémů', 'Menu:Problem:Shortcuts' => 'Odkazy', @@ -106,4 +107,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Menu:SearchError+' => 'Hledat známé chyby', 'Menu:Problem:KnownErrors' => 'Všechny známé chyby', 'Menu:Problem:KnownErrors+' => 'Všechny známé chyby', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/da.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/da.dict.itop-knownerror-mgmt.php index 4ab68201e..59ac84ed7 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/da.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/da.dict.itop-knownerror-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:KnownError' => 'Known Error', 'Class:KnownError+' => 'Dokumenterede fejl for et bestående Issue', 'Class:KnownError/Attribute:name' => 'Navn', @@ -53,13 +54,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~', 'Class:KnownError/Attribute:document_list' => 'Dokumenter', 'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkErrorToFunctionalCI' => 'Sammenhæng Fejl/FunctionalCI', 'Class:lnkErrorToFunctionalCI+' => '', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -73,13 +74,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Årsag', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDocumentToError' => 'Sammenhæng Dokumenter/Fejl', 'Class:lnkDocumentToError+' => '', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~', @@ -93,9 +94,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'Sammenhængstype', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:ProblemManagement' => 'Problem Management', 'Menu:ProblemManagement+' => 'Problem Management', 'Menu:Problem:Shortcuts' => 'Genvej', @@ -105,4 +106,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Menu:SearchError+' => '', 'Menu:Problem:KnownErrors' => 'Alle kendte Fejl', 'Menu:Problem:KnownErrors+' => 'Alle kendte Fejl', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/de.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/de.dict.itop-knownerror-mgmt.php index 371463a81..ceaf541f2 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/de.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/de.dict.itop-knownerror-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:KnownError' => 'Known Error', 'Class:KnownError+' => 'Dokumentierter Fehler für ein Problem', 'Class:KnownError/Attribute:name' => 'Name', @@ -53,13 +54,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:KnownError/Attribute:ci_list+' => 'Alle CIs, die mit diesem Known Error verknüpft sind', 'Class:KnownError/Attribute:document_list' => 'Dokumente', 'Class:KnownError/Attribute:document_list+' => 'Alle Dokumente, die mit diesem Known Error verknüpft sind', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkErrorToFunctionalCI' => 'Verknüpfung KnownError/FunctionalCI', 'Class:lnkErrorToFunctionalCI+' => '', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s', @@ -73,13 +74,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Begründung', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDocumentToError' => 'Verknüpfung Dokumente/KnownError', 'Class:lnkDocumentToError+' => '', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s', @@ -93,9 +94,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'Verknüpfungstyp', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:ProblemManagement' => 'Problem Management', 'Menu:ProblemManagement+' => 'Problem Management', 'Menu:Problem:Shortcuts' => 'Shortcuts', @@ -105,4 +106,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Menu:SearchError+' => 'Nach dokumentierten Fehlern suchen', 'Menu:Problem:KnownErrors' => 'Alle Known Errors', 'Menu:Problem:KnownErrors+' => 'Alle Known Errors', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/en.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/en.dict.itop-knownerror-mgmt.php index 98c62365d..462f41f42 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/en.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/en.dict.itop-knownerror-mgmt.php @@ -1,4 +1,5 @@ 'Known Error', 'Class:KnownError+' => 'Error documented for a known issue', 'Class:KnownError/Attribute:name' => 'Name', @@ -93,13 +94,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error', 'Class:KnownError/Attribute:document_list' => 'Documents', 'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkErrorToFunctionalCI' => 'Link Error / FunctionalCI', 'Class:lnkErrorToFunctionalCI+' => 'Infra related to a known error', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s', @@ -113,13 +114,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Reason', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDocumentToError' => 'Link Documents / Errors', 'Class:lnkDocumentToError+' => 'A link between a document and a known error', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s', @@ -133,9 +134,9 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'link_type', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:ProblemManagement' => 'Problem Management', 'Menu:ProblemManagement+' => 'Problem Management', 'Menu:Problem:Shortcuts' => 'Shortcuts', @@ -145,4 +146,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Menu:SearchError+' => 'Search for known errors', 'Menu:Problem:KnownErrors' => 'All known errors', 'Menu:Problem:KnownErrors+' => 'All known errors', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/en_gb.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/en_gb.dict.itop-knownerror-mgmt.php index 5ec73a845..9c5187cf5 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/en_gb.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/en_gb.dict.itop-knownerror-mgmt.php @@ -1,4 +1,5 @@ 'Known Error', 'Class:KnownError+' => 'Error documented for a known issue', 'Class:KnownError/Attribute:name' => 'Name', @@ -93,13 +94,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error', 'Class:KnownError/Attribute:document_list' => 'Documents', 'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkErrorToFunctionalCI' => 'Link Error / FunctionalCI', 'Class:lnkErrorToFunctionalCI+' => 'Infra related to a known error', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s', @@ -113,13 +114,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Reason', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDocumentToError' => 'Link Documents / Errors', 'Class:lnkDocumentToError+' => 'A link between a document and a known error', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s', @@ -133,9 +134,9 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'link_type', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:ProblemManagement' => 'Problem Management', 'Menu:ProblemManagement+' => 'Problem Management', 'Menu:Problem:Shortcuts' => 'Shortcuts', @@ -145,4 +146,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Menu:SearchError+' => 'Search for known errors', 'Menu:Problem:KnownErrors' => 'All known errors', 'Menu:Problem:KnownErrors+' => 'All known errors', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/es_cr.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/es_cr.dict.itop-knownerror-mgmt.php index 90eade30d..dc336528f 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/es_cr.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/es_cr.dict.itop-knownerror-mgmt.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:KnownError' => 'Error Conocido', 'Class:KnownError+' => 'Documentación para un error conocido', 'Class:KnownError/Attribute:name' => 'Nombre', @@ -50,13 +51,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:KnownError/Attribute:ci_list+' => 'ECs', 'Class:KnownError/Attribute:document_list' => 'Documentos', 'Class:KnownError/Attribute:document_list+' => 'Documentos', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkErrorToFunctionalCI' => 'Relación Error Conocido y EC Funcional', 'Class:lnkErrorToFunctionalCI+' => 'Relación Error Conocido y EC Funcional', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s', @@ -70,13 +71,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => 'Error Conocido', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Motivo', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => 'Motivo', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDocumentToError' => 'Relación Documento y Error Conocido', 'Class:lnkDocumentToError+' => 'Relación Documento y Error Conocido', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s', @@ -90,9 +91,9 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDocumentToError/Attribute:error_name+' => 'Error Conocido', 'Class:lnkDocumentToError/Attribute:link_type' => 'Tipo', 'Class:lnkDocumentToError/Attribute:link_type+' => 'Tipo', -)); +]); -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:ProblemManagement' => 'Administración de Problemas', 'Menu:ProblemManagement+' => 'GestAdministraciónión de problemas', 'Menu:Problem:Shortcuts' => 'Acceso Rápido', @@ -102,4 +103,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Menu:SearchError+' => 'Búsqueda de Errores Conocidos', 'Menu:Problem:KnownErrors' => 'Errores Conocidos', 'Menu:Problem:KnownErrors+' => 'Errores Conocidos', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/fr.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/fr.dict.itop-knownerror-mgmt.php index e7929a33e..980599b3c 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/fr.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/fr.dict.itop-knownerror-mgmt.php @@ -1,15 +1,16 @@ 'Erreur Connue', 'Class:KnownError+' => 'Erreur documenté pour un problème connu', 'Class:KnownError/Attribute:name' => 'Nom', @@ -52,13 +53,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:KnownError/Attribute:ci_list+' => 'Tous les éléments de configuration liés à cette erreur connue', 'Class:KnownError/Attribute:document_list' => 'Documents', 'Class:KnownError/Attribute:document_list+' => 'Tous les documents liés à cette erreur connue', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkErrorToFunctionalCI' => 'Lien Erreur / CI', 'Class:lnkErrorToFunctionalCI+' => 'Lien entre une erreur et un ci', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s', @@ -72,13 +73,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Reason', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDocumentToError' => 'Lien Documents / Errors', 'Class:lnkDocumentToError+' => 'Lien entre un document et une erreur', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s', @@ -92,9 +93,9 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'link_type', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Menu:ProblemManagement' => 'Gestion des problèmes', 'Menu:ProblemManagement+' => 'Gestion des problèmes', 'Menu:Problem:Shortcuts' => 'Raccourcis', @@ -104,4 +105,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Menu:SearchError+' => 'Rechercher une erreur connue', 'Menu:Problem:KnownErrors' => 'Toutes les erreurs connues', 'Menu:Problem:KnownErrors+' => 'Toutes les erreurs connues', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/hu.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/hu.dict.itop-knownerror-mgmt.php index 712057073..417998fe5 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/hu.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/hu.dict.itop-knownerror-mgmt.php @@ -1,15 +1,16 @@ 'Ismert hiba', 'Class:KnownError+' => '', 'Class:KnownError/Attribute:name' => 'Ismert hiba név', @@ -52,13 +53,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:KnownError/Attribute:ci_list+' => '', 'Class:KnownError/Attribute:document_list' => 'Dokumentumok', 'Class:KnownError/Attribute:document_list+' => '', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkErrorToFunctionalCI' => 'Hiba / Funkcionális CI', 'Class:lnkErrorToFunctionalCI+' => 'Infra ismert hibához kapcsolódóan', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -72,13 +73,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '~~', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Hibaok', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '~~', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDocumentToError' => 'Dokumentumok / Hibák', 'Class:lnkDocumentToError+' => '', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~', @@ -92,9 +93,9 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '~~', 'Class:lnkDocumentToError/Attribute:link_type' => 'link_type', 'Class:lnkDocumentToError/Attribute:link_type+' => '~~', -)); +]); -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Menu:ProblemManagement' => 'Problémakezelés', 'Menu:ProblemManagement+' => '', 'Menu:Problem:Shortcuts' => 'Gyorsgomb', @@ -104,4 +105,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Menu:SearchError+' => '', 'Menu:Problem:KnownErrors' => 'Ismert hibák', 'Menu:Problem:KnownErrors+' => '', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/ja.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/ja.dict.itop-knownerror-mgmt.php index 23e2bf599..eb3d35313 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/ja.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/ja.dict.itop-knownerror-mgmt.php @@ -1,15 +1,16 @@ '既知のエラー', 'Class:KnownError+' => '既知の課題として文書化されたエラー', 'Class:KnownError/Attribute:name' => '名前', @@ -52,13 +53,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~', 'Class:KnownError/Attribute:document_list' => '文書', 'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkErrorToFunctionalCI' => 'リンク エラー/機能的CI', 'Class:lnkErrorToFunctionalCI+' => '既知のエラーに関連するインフラ', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -72,13 +73,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => '理由', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDocumentToError' => 'リンク 文書/エラー', 'Class:lnkDocumentToError+' => '文書と既知のエラー間のリンク', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~', @@ -92,9 +93,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'リンクタイプ', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Menu:ProblemManagement' => '問題管理', 'Menu:ProblemManagement+' => '問題管理', 'Menu:Problem:Shortcuts' => 'ショートカット', @@ -104,4 +105,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Menu:SearchError+' => '既知のエラー検索', 'Menu:Problem:KnownErrors' => '全ての既知のエラー', 'Menu:Problem:KnownErrors+' => '全ての既知のエラー', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/nl.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/nl.dict.itop-knownerror-mgmt.php index 1868438ca..3ad762c67 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/nl.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/nl.dict.itop-knownerror-mgmt.php @@ -1,17 +1,18 @@ * @author Jeffrey Bostoen (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:KnownError' => 'Gekende fout', 'Class:KnownError+' => 'Gedocumenteerde fout voor een gekend probleem', 'Class:KnownError/Attribute:name' => 'Naam', @@ -54,13 +55,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:KnownError/Attribute:ci_list+' => 'Alle configuratie-items gerelateerd aan deze gekende fout', 'Class:KnownError/Attribute:document_list' => 'Documenten', 'Class:KnownError/Attribute:document_list+' => 'Alle documenten gerelateerd aan deze gekende fout', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkErrorToFunctionalCI' => 'Link Fout / Functioneel CI', 'Class:lnkErrorToFunctionalCI+' => 'Infrastructuur gelinkt aan een gekende fout', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s', @@ -74,13 +75,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Reden', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDocumentToError' => 'Link Document / Fout', 'Class:lnkDocumentToError+' => 'Een link tussen een document en een gekende fout', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s', @@ -94,9 +95,9 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'Soort link', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:ProblemManagement' => 'Probleem Management', 'Menu:ProblemManagement+' => 'Probleem Management', 'Menu:Problem:Shortcuts' => 'Snelkoppelingen', @@ -106,4 +107,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Menu:SearchError+' => 'Zoek naar gekende fouten', 'Menu:Problem:KnownErrors' => 'Alle gekende fouten', 'Menu:Problem:KnownErrors+' => 'Alle gekende fouten', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/pl.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/pl.dict.itop-knownerror-mgmt.php index 5e2202173..378ea72df 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/pl.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/pl.dict.itop-knownerror-mgmt.php @@ -1,15 +1,16 @@ 'Znany błąd', 'Class:KnownError+' => 'Udokumentowano błąd dotyczący znanego problemu', 'Class:KnownError/Attribute:name' => 'Nazwa', @@ -52,13 +53,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:KnownError/Attribute:ci_list+' => 'Wszystkie elementy konfiguracji związane z tym znanym błędem', 'Class:KnownError/Attribute:document_list' => 'Dokumenty', 'Class:KnownError/Attribute:document_list+' => 'Wszystkie dokumenty związane z tym znanym błędem', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkErrorToFunctionalCI' => 'Połączenie Błąd / Konfiguracja', 'Class:lnkErrorToFunctionalCI+' => 'Konfiguracje związane ze znanym błędem', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s', @@ -72,13 +73,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Powód', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDocumentToError' => 'Połączenie Dokumenty / Błędy', 'Class:lnkDocumentToError+' => 'Łącze między dokumentem a znanym błędem', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s', @@ -92,9 +93,9 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'link_type', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Menu:ProblemManagement' => 'Zarządzanie problemami', 'Menu:ProblemManagement+' => 'Zarządzanie problemami', 'Menu:Problem:Shortcuts' => 'Skróty', @@ -104,4 +105,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Menu:SearchError+' => 'Wyszukaj znane błędy', 'Menu:Problem:KnownErrors' => 'Wszystkie znane błędy', 'Menu:Problem:KnownErrors+' => 'Wszystkie znane błędy', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/ru.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/ru.dict.itop-knownerror-mgmt.php index 1f4448907..2e8384529 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/ru.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/ru.dict.itop-knownerror-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:KnownError' => 'Известная ошибка', 'Class:KnownError+' => 'Проблема, имеющая задокументированные корневую причину и обходное решение', 'Class:KnownError/Attribute:name' => 'Название', @@ -53,13 +54,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:KnownError/Attribute:ci_list+' => 'Связанный конфигурационные единицы', 'Class:KnownError/Attribute:document_list' => 'Документы', 'Class:KnownError/Attribute:document_list+' => 'Связанные документы', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkErrorToFunctionalCI' => 'Связь Известная ошибка/Функциональная КЕ', 'Class:lnkErrorToFunctionalCI+' => 'Infra related to a known error', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -73,13 +74,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Причина', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDocumentToError' => 'Связь Документ/Известная ошибка', 'Class:lnkDocumentToError+' => 'A link between a document and a known error', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~', @@ -93,9 +94,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => 'Тип связи', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:ProblemManagement' => 'Управление проблемами', 'Menu:ProblemManagement+' => 'Управление проблемами', 'Menu:Problem:Shortcuts' => 'Ярлыки', @@ -105,4 +106,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Menu:SearchError+' => 'Поиск известных ошибок', 'Menu:Problem:KnownErrors' => 'Известные ошибки', 'Menu:Problem:KnownErrors+' => 'База известных ошибок', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/sk.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/sk.dict.itop-knownerror-mgmt.php index 2ca2a77b4..0a3fc3605 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/sk.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/sk.dict.itop-knownerror-mgmt.php @@ -1,15 +1,16 @@ 'Known Error~~', 'Class:KnownError+' => 'Error documented for a known issue~~', 'Class:KnownError/Attribute:name' => 'Name~~', @@ -52,13 +53,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~', 'Class:KnownError/Attribute:document_list' => 'Documents~~', 'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkErrorToFunctionalCI' => 'Link Error / FunctionalCI~~', 'Class:lnkErrorToFunctionalCI+' => 'Infra related to a known error~~', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -72,13 +73,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '~~', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Reason~~', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '~~', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDocumentToError' => 'Link Documents / Errors~~', 'Class:lnkDocumentToError+' => 'A link between a document and a known error~~', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~', @@ -92,9 +93,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '~~', 'Class:lnkDocumentToError/Attribute:link_type' => 'link_type~~', 'Class:lnkDocumentToError/Attribute:link_type+' => '~~', -)); +]); -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Menu:ProblemManagement' => 'Problem Management~~', 'Menu:ProblemManagement+' => 'Problem Management~~', 'Menu:Problem:Shortcuts' => 'Shortcuts~~', @@ -104,4 +105,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Menu:SearchError+' => 'Search for known errors~~', 'Menu:Problem:KnownErrors' => 'All known errors~~', 'Menu:Problem:KnownErrors+' => 'All known errors~~', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/tr.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/tr.dict.itop-knownerror-mgmt.php index 588d2ded5..5d52a8aa1 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/tr.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/tr.dict.itop-knownerror-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:KnownError' => 'Bilinen hata', 'Class:KnownError+' => 'Hata bilinen hatalara kaydedildi', 'Class:KnownError/Attribute:name' => 'Adı', @@ -53,13 +54,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:KnownError/Attribute:ci_list+' => 'All the configuration items that are related to this known error~~', 'Class:KnownError/Attribute:document_list' => 'Dokümanlar', 'Class:KnownError/Attribute:document_list+' => 'All the documents linked to this known error~~', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkErrorToFunctionalCI' => 'Hata / İşlevsel CI bağla', 'Class:lnkErrorToFunctionalCI+' => ' Bilinen bir hatayla ilgili alt bilgi', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -73,13 +74,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '~~', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => 'Sebep', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '~~', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDocumentToError' => 'Belge / hata bağla', 'Class:lnkDocumentToError+' => 'Bir belge ile bilinen bir hata arasındaki bağlantı', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s~~', @@ -93,9 +94,9 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '~~', 'Class:lnkDocumentToError/Attribute:link_type' => 'Bağlantı tipi', 'Class:lnkDocumentToError/Attribute:link_type+' => '~~', -)); +]); -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:ProblemManagement' => 'Problem Yönetimi', 'Menu:ProblemManagement+' => 'Problem Yönetimi', 'Menu:Problem:Shortcuts' => 'Kısayollar', @@ -105,4 +106,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Menu:SearchError+' => 'Bilinen hataları ara', 'Menu:Problem:KnownErrors' => 'Tüm bilinen hatalar', 'Menu:Problem:KnownErrors+' => 'Tüm bilinen hatalar', -)); +]); diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/zh_cn.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/zh_cn.dict.itop-knownerror-mgmt.php index f0a7a34ea..1fce2651a 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/zh_cn.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/zh_cn.dict.itop-knownerror-mgmt.php @@ -1,4 +1,5 @@ '已知错误', 'Class:KnownError+' => '记录一个已知错误', 'Class:KnownError/Attribute:name' => '名称', @@ -88,13 +89,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:KnownError/Attribute:ci_list+' => '此已知错误相关的所有配置项', 'Class:KnownError/Attribute:document_list' => '文档', 'Class:KnownError/Attribute:document_list+' => '此已知错误相关的所有文档', -)); +]); // // Class: lnkErrorToFunctionalCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkErrorToFunctionalCI' => '关联已知问题/功能配置项', 'Class:lnkErrorToFunctionalCI+' => '已知问题和功能配置项之间的关联', 'Class:lnkErrorToFunctionalCI/Name' => '%1$s / %2$s', @@ -108,13 +109,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkErrorToFunctionalCI/Attribute:error_name+' => '', 'Class:lnkErrorToFunctionalCI/Attribute:reason' => '原因', 'Class:lnkErrorToFunctionalCI/Attribute:reason+' => '', -)); +]); // // Class: lnkDocumentToError // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDocumentToError' => '关联文档/已知问题', 'Class:lnkDocumentToError+' => '文档和已知问题之间的关联', 'Class:lnkDocumentToError/Name' => '%1$s / %2$s', @@ -128,9 +129,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDocumentToError/Attribute:error_name+' => '', 'Class:lnkDocumentToError/Attribute:link_type' => '关联类型', 'Class:lnkDocumentToError/Attribute:link_type+' => '', -)); +]); -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:ProblemManagement' => '问题管理', 'Menu:ProblemManagement+' => '问题管理', 'Menu:Problem:Shortcuts' => '快捷方式', @@ -140,4 +141,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Menu:SearchError+' => '搜索已知问题', 'Menu:Problem:KnownErrors' => '所有已知错误', 'Menu:Problem:KnownErrors+' => '所有已知错误', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/ajax.php b/datamodels/2.x/itop-oauth-client/ajax.php index 09b6e516d..c5714153b 100644 --- a/datamodels/2.x/itop-oauth-client/ajax.php +++ b/datamodels/2.x/itop-oauth-client/ajax.php @@ -1,4 +1,5 @@ = 0) { +if (version_compare(ITOP_DESIGN_LATEST_VERSION, '3.0') >= 0) { $sTemplates = MODULESROOT.'itop-oauth-client/templates'; } else { $sTemplates = MODULESROOT.'itop-oauth-client/templates/legacy'; @@ -19,5 +20,3 @@ if (version_compare(ITOP_DESIGN_LATEST_VERSION , '3.0') >= 0) { $oUpdateController = new AjaxOauthClientController($sTemplates, 'itop-oauth-client'); $oUpdateController->SetMenuId('OAuthClient'); $oUpdateController->HandleOperation(); - - diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/cs.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/cs.dict.itop-oauth-client.php index bfd6f406b..7c5cdc210 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/cs.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/cs.dict.itop-oauth-client.php @@ -1,10 +1,11 @@ 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~', - 'Class:OAuthClient/Attribute:mailbox_list+' => '~~' + 'Class:OAuthClient/Attribute:mailbox_list+' => '~~', ]); // // Class: OAuthClientAzure // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -93,13 +94,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -120,4 +121,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/da.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/da.dict.itop-oauth-client.php index 500af50f3..7e0f7716d 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/da.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/da.dict.itop-oauth-client.php @@ -1,10 +1,11 @@ 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~', - 'Class:OAuthClient/Attribute:mailbox_list+' => '~~' + 'Class:OAuthClient/Attribute:mailbox_list+' => '~~', ]); // // Class: OAuthClientAzure // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -93,13 +94,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -120,4 +121,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/de.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/de.dict.itop-oauth-client.php index 9047e6860..7d2a3dbd1 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/de.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/de.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'Diese URL muss in die oAuth2-Konfiguration des Providers kopiert werden. Löschen Sie das Feld, um den Standardwert neu zu berechnen.', 'Class:OAuthClient/Attribute:mailbox_list' => 'Mailpostfächer', - 'Class:OAuthClient/Attribute:mailbox_list+' => '' + 'Class:OAuthClient/Attribute:mailbox_list+' => '', ]); // // Class: OAuthClientAzure // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:OAuthClientAzure' => 'Mailpostfach-OAuth-Client für Microsoft Azure', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope', @@ -93,13 +94,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'Nein', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant-ID der konfigurierten Anwendung. Bei einer Multi-Tenant-Anwendung verwenden Sie "common".', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:OAuthClientGoogle' => 'Mailpostfach-OAuth-Client für Google', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope', @@ -120,4 +121,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'Mindestens ein oAuth-Client muss dieses Flag auf "Ja" gesetzt haben, um über diesen Weg Mails durch iTop senden zu lassen.', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Ja', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'Nein', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/en.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/en.dict.itop-oauth-client.php index b8c0a3498..02160ebac 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/en.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/en.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'OAuth Mail Access for Microsoft Azure', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope', @@ -93,15 +94,15 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails', 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:yes' => 'Yes', 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No', - 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant', - 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".', -)); + 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant', + 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".', +]); // // Class: OAuthClientGoogle // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope', @@ -122,4 +123,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/en_gb.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/en_gb.dict.itop-oauth-client.php index 4bc16fd69..f3171148e 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/en_gb.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/en_gb.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'OAuth Mail Access for Microsoft Azure', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope', @@ -95,13 +96,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope', @@ -122,4 +123,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails.', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/es_cr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/es_cr.dict.itop-oauth-client.php index 7210a8dc3..123b7da5b 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/es_cr.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/es_cr.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'Esta url debe copiarse en la configuración OAuth2 del proveedor Borre el campo para recalcular el valor predeterminado', 'Class:OAuthClient/Attribute:mailbox_list' => 'Lista de Buzones', - 'Class:OAuthClient/Attribute:mailbox_list+' => 'Lista de Buzones' + 'Class:OAuthClient/Attribute:mailbox_list+' => 'Lista de Buzones', ]); // // Class: OAuthClientAzure // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:OAuthClientAzure' => 'Cliente OAuth para Microsoft Azure', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Alcance', @@ -91,13 +92,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No', 'Class:OAuthClientAzure/Attribute:tenant' => 'Inquilino', 'Class:OAuthClientAzure/Attribute:tenant+' => 'ID de inquilino de la aplicación configurada. Para aplicaciones multiinquilino, utilice "common".', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:OAuthClientGoogle' => 'Cliente OAuth para Google', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Alcance', @@ -118,4 +119,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'Al menos un cliente OAuth debe tener este indicador en "Sí", si desea que iTop lo use para enviar correos electrónicos.', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Si', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/fr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/fr.dict.itop-oauth-client.php index e377a8a4f..0030dbda9 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/fr.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/fr.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'Supprimer cette %4$s', 'Class:OAuthClient/Attribute:mailbox_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:OAuthClient/Attribute:mailbox_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:OAuthClient/Attribute:mailbox_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' + 'Class:OAuthClient/Attribute:mailbox_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', ]); // // Class: OAuthClientAzure // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:OAuthClientAzure' => 'Client OAuth pour Microsoft Azure', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Niveaux d\'accès', @@ -97,13 +98,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'Non', 'Class:OAuthClientAzure/Attribute:tenant' => 'Locataire', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Locataire (Tenant ID) de l\'application configurée. Pour des applications à locataires multiples, veuillez saisir "common".', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:OAuthClientGoogle' => 'Client OAuth pour Google', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Niveaux d\'accès', @@ -124,4 +125,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'Le Client OAuth utilisé pour l\'envoi d\'emails doit être à \'Oui\'', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Oui', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'Non', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/hu.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/hu.dict.itop-oauth-client.php index eab6f3168..56f0e031a 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/hu.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/hu.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Postafiók lista', - 'Class:OAuthClient/Attribute:mailbox_list+' => '~~' + 'Class:OAuthClient/Attribute:mailbox_list+' => '~~', ]); // // Class: OAuthClientAzure // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -93,13 +94,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -120,4 +121,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/it.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/it.dict.itop-oauth-client.php index f69131458..b1460fee8 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/it.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/it.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Lista delle caselle di posta', - 'Class:OAuthClient/Attribute:mailbox_list+' => '~~' + 'Class:OAuthClient/Attribute:mailbox_list+' => '~~', ]); // // Class: OAuthClientAzure // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Ambito', @@ -92,13 +93,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Ambito', @@ -119,4 +120,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'Almeno un client OAuth deve avere questo flag impostato su “Sì”, se si desidera che iTop lo utilizzi per inviare email', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Sì', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/ja.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/ja.dict.itop-oauth-client.php index 1b5ac0281..69b0e4338 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/ja.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/ja.dict.itop-oauth-client.php @@ -1,10 +1,11 @@ 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~', - 'Class:OAuthClient/Attribute:mailbox_list+' => '~~' + 'Class:OAuthClient/Attribute:mailbox_list+' => '~~', ]); // // Class: OAuthClientAzure // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -93,13 +94,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -120,4 +121,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/nl.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/nl.dict.itop-oauth-client.php index 699ceffdf..57ed991db 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/nl.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/nl.dict.itop-oauth-client.php @@ -1,10 +1,11 @@ @@ -63,14 +64,14 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:OAuthClient/Attribute:redirect_url+' => 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~', - 'Class:OAuthClient/Attribute:mailbox_list+' => '' + 'Class:OAuthClient/Attribute:mailbox_list+' => '', ]); // // Class: OAuthClientAzure // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -93,13 +94,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'Nee', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -120,4 +121,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Ja', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'Nee', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/pl.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/pl.dict.itop-oauth-client.php index ff229ef08..2ad2102c7 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/pl.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/pl.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'Ten adres URL należy skopiować w konfiguracji OAuth2 dostawcy Usuń pole, aby ponownie obliczyć wartość domyślną', 'Class:OAuthClient/Attribute:mailbox_list' => 'Skrzynki pocztowe', - 'Class:OAuthClient/Attribute:mailbox_list+' => '' + 'Class:OAuthClient/Attribute:mailbox_list+' => '', ]); // // Class: OAuthClientAzure // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => 'Zakres', @@ -176,14 +177,14 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:yes' => 'Tak', 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'Nie', 'Class:OAuthClientAzure/Attribute:tenant' => 'Dzierżawa', - 'Class:OAuthClientAzure/Attribute:tenant+' => 'Identyfikator dzierżawy skonfigurowanej aplikacji. W przypadku aplikacji z wieloma dzierżawcami użyj „wspólnego”.' -)); + 'Class:OAuthClientAzure/Attribute:tenant+' => 'Identyfikator dzierżawy skonfigurowanej aplikacji. W przypadku aplikacji z wieloma dzierżawcami użyj „wspólnego”.', +]); // // Class: OAuthClientGoogle // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => 'Zakres', @@ -251,5 +252,5 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( yes +' => '', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Tak', - 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'Nie' -)); + 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'Nie', +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/pt_br.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/pt_br.dict.itop-oauth-client.php index eeb5ae2ee..81f0655bd 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/pt_br.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/pt_br.dict.itop-oauth-client.php @@ -1,10 +1,11 @@ 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~', - 'Class:OAuthClient/Attribute:mailbox_list+' => '~~' + 'Class:OAuthClient/Attribute:mailbox_list+' => '~~', ]); // // Class: OAuthClientAzure // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -93,13 +94,13 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -120,4 +121,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/ru.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/ru.dict.itop-oauth-client.php index 483f34534..81af8c72e 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/ru.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/ru.dict.itop-oauth-client.php @@ -1,10 +1,11 @@ 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~', - 'Class:OAuthClient/Attribute:mailbox_list+' => '~~' + 'Class:OAuthClient/Attribute:mailbox_list+' => '~~', ]); // // Class: OAuthClientAzure // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -93,13 +94,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -120,4 +121,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/sk.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/sk.dict.itop-oauth-client.php index 4edbefe08..37bbe223b 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/sk.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/sk.dict.itop-oauth-client.php @@ -1,10 +1,11 @@ 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -92,13 +93,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -119,4 +120,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/tr.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/tr.dict.itop-oauth-client.php index fb05cd185..21d60974e 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/tr.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/tr.dict.itop-oauth-client.php @@ -1,10 +1,11 @@ 'This url must be copied in the OAuth2 configuration of the provider Erase the field to recalculate default value~~', 'Class:OAuthClient/Attribute:mailbox_list' => 'Mailbox list~~', - 'Class:OAuthClient/Attribute:mailbox_list+' => '~~' + 'Class:OAuthClient/Attribute:mailbox_list+' => '~~', ]); // // Class: OAuthClientAzure // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:OAuthClientAzure' => 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientAzure/Attribute:scope' => 'Scope~~', @@ -93,13 +94,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => 'No~~', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)~~', 'Class:OAuthClientGoogle/Attribute:scope' => 'Scope~~', @@ -120,4 +121,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => 'At least one OAuth client must have this flag to “Yes”, if you want iTop to use it for sending mails~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => 'Yes~~', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => 'No~~', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/dictionaries/zh_cn.dict.itop-oauth-client.php b/datamodels/2.x/itop-oauth-client/dictionaries/zh_cn.dict.itop-oauth-client.php index a4b173be6..048ad3b9e 100644 --- a/datamodels/2.x/itop-oauth-client/dictionaries/zh_cn.dict.itop-oauth-client.php +++ b/datamodels/2.x/itop-oauth-client/dictionaries/zh_cn.dict.itop-oauth-client.php @@ -1,4 +1,5 @@ 'OAuth Mail Access for Microsoft Azure~~', 'Class:OAuthClientAzure/Name' => '%1$s (%2$s)', 'Class:OAuthClientAzure/Attribute:scope' => '范围', @@ -91,13 +92,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:OAuthClientAzure/Attribute:used_for_smtp/Value:no' => '否', 'Class:OAuthClientAzure/Attribute:tenant' => 'Tenant~~', 'Class:OAuthClientAzure/Attribute:tenant+' => 'Tenant ID of the configured application. For multi-tenant application, use "common".~~', -)); +]); // // Class: OAuthClientGoogle // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:OAuthClientGoogle' => 'OAuth Mail Access for Google~~', 'Class:OAuthClientGoogle/Name' => '%1$s (%2$s)', 'Class:OAuthClientGoogle/Attribute:scope' => '范围', @@ -118,4 +119,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:OAuthClientGoogle/Attribute:used_for_smtp+' => '如果您需要系统使用其发送邮件, 则至少需要有一个OAuth客户端标记为 "是"', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:yes' => '是', 'Class:OAuthClientGoogle/Attribute:used_for_smtp/Value:no' => '否', -)); +]); diff --git a/datamodels/2.x/itop-oauth-client/index.php b/datamodels/2.x/itop-oauth-client/index.php index da490e18e..888a68d92 100644 --- a/datamodels/2.x/itop-oauth-client/index.php +++ b/datamodels/2.x/itop-oauth-client/index.php @@ -1,4 +1,5 @@ = 0) { +if (version_compare(ITOP_DESIGN_LATEST_VERSION, '3.0') >= 0) { $sTemplates = MODULESROOT.'itop-oauth-client/templates'; } else { $sTemplates = MODULESROOT.'itop-oauth-client/templates/legacy'; @@ -20,5 +21,3 @@ $oUpdateController = new OAuthClientController($sTemplates, 'itop-oauth-client') $oUpdateController->AllowOnlyAdmin(); $oUpdateController->SetDefaultOperation('CreateMailbox'); $oUpdateController->HandleOperation(); - - diff --git a/datamodels/2.x/itop-oauth-client/src/Controller/AjaxOauthClientController.php b/datamodels/2.x/itop-oauth-client/src/Controller/AjaxOauthClientController.php index 4c8fac7c2..fd6839691 100644 --- a/datamodels/2.x/itop-oauth-client/src/Controller/AjaxOauthClientController.php +++ b/datamodels/2.x/itop-oauth-client/src/Controller/AjaxOauthClientController.php @@ -1,4 +1,5 @@ 'success', 'data' => []]; - try { - $sAuthorizationUrl = OAuthClientProviderFactory::GetAuthorizationUrl($oOAuthClient); - $aResult['data']['authorization_url'] = $sAuthorizationUrl; - } catch (Exception $oException) { - $aResult['status'] = 'error'; - $aResult['error_description'] = $oException->getMessage(); - } + try { + $sAuthorizationUrl = OAuthClientProviderFactory::GetAuthorizationUrl($oOAuthClient); + $aResult['data']['authorization_url'] = $sAuthorizationUrl; + } catch (Exception $oException) { + $aResult['status'] = 'error'; + $aResult['error_description'] = $oException->getMessage(); + } $this->DisplayJSONPage($aResult); } @@ -76,8 +77,7 @@ class AjaxOauthClientController extends Controller $oAccessToken = OAuthClientProviderFactory::GetAccessTokenFromCode($oOAuthClient, $sCode); $oOAuthClient->SetAccessToken($oAccessToken); $aResult['status'] = 'success'; - } - catch (IdentityProviderException $e) { + } catch (IdentityProviderException $e) { $aResult['status'] = 'error'; $aResult['error_description'] = $e->getMessage(); } @@ -124,4 +124,4 @@ class AjaxOauthClientController extends Controller $this->DisplayJSONPage($aResult); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-oauth-client/src/Controller/OAuthClientController.php b/datamodels/2.x/itop-oauth-client/src/Controller/OAuthClientController.php index 0d1322e29..f8454a1c8 100644 --- a/datamodels/2.x/itop-oauth-client/src/Controller/OAuthClientController.php +++ b/datamodels/2.x/itop-oauth-client/src/Controller/OAuthClientController.php @@ -1,4 +1,5 @@ DisplayPage($aParams); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-oauth-client/src/Service/ApplicationUIExtension.php b/datamodels/2.x/itop-oauth-client/src/Service/ApplicationUIExtension.php index 9b67aa56e..8c0499687 100644 --- a/datamodels/2.x/itop-oauth-client/src/Service/ApplicationUIExtension.php +++ b/datamodels/2.x/itop-oauth-client/src/Service/ApplicationUIExtension.php @@ -1,4 +1,5 @@ ComputeAndReport('Load portal lists definition'); // A dedicated listener 'CssFromSassCompiler' exists to compile files again when by-passing HTTP cache. // This is to keep developers comfort when tuning the SCSS files. $oKPI = new ExecutionKPI(); -$aImportPaths = array($_ENV['COMBODO_PORTAL_BASE_ABSOLUTE_PATH'].'css/'); +$aImportPaths = [$_ENV['COMBODO_PORTAL_BASE_ABSOLUTE_PATH'].'css/']; $aPortalConf = $container->getParameter('combodo.portal.instance.conf'); -foreach ($aPortalConf['properties']['themes'] as $sKey => $value) -{ - if (!is_array($value)) - { - $aPortalConf['properties']['themes'][$sKey] = utils::GetCSSFromSASS('env-'.utils::GetCurrentEnvironment().'/'.$value, - $aImportPaths); - } - else - { - $aValues = array(); - foreach ($value as $sSubValue) - { - $aValues[] = utils::GetCSSFromSASS('env-'.utils::GetCurrentEnvironment().'/'.$sSubValue, - $aImportPaths); +foreach ($aPortalConf['properties']['themes'] as $sKey => $value) { + if (!is_array($value)) { + $aPortalConf['properties']['themes'][$sKey] = utils::GetCSSFromSASS( + 'env-'.utils::GetCurrentEnvironment().'/'.$value, + $aImportPaths + ); + } else { + $aValues = []; + foreach ($value as $sSubValue) { + $aValues[] = utils::GetCSSFromSASS( + 'env-'.utils::GetCurrentEnvironment().'/'.$sSubValue, + $aImportPaths + ); } $aPortalConf['properties']['themes'][$sKey] = $aValues; } } $oKPI->ComputeAndReport('Generating CSS files'); -$container->setParameter('combodo.portal.instance.conf', $aPortalConf); \ No newline at end of file +$container->setParameter('combodo.portal.instance.conf', $aPortalConf); diff --git a/datamodels/2.x/itop-portal-base/portal/config/routes/extensions_extra_routes.php b/datamodels/2.x/itop-portal-base/portal/config/routes/extensions_extra_routes.php index b3ccae635..950114683 100644 --- a/datamodels/2.x/itop-portal-base/portal/config/routes/extensions_extra_routes.php +++ b/datamodels/2.x/itop-portal-base/portal/config/routes/extensions_extra_routes.php @@ -1,4 +1,5 @@ autoconfigure(); } -}; \ No newline at end of file +}; diff --git a/datamodels/2.x/itop-portal-base/portal/public/index.php b/datamodels/2.x/itop-portal-base/portal/public/index.php index a8ba043db..c790eabcf 100644 --- a/datamodels/2.x/itop-portal-base/portal/public/index.php +++ b/datamodels/2.x/itop-portal-base/portal/public/index.php @@ -1,4 +1,5 @@ handle($oRequest); $oResponse->send(); $oKPI->ComputeAndReport('Page execution and rendering'); - $oKPI = new ExecutionKPI(); $oKernel->terminate($oRequest, $oResponse); $oKPI->ComputeAndReport('Symfony kernel termination'); - -ExecutionKPI::ReportStats(); \ No newline at end of file +ExecutionKPI::ReportStats(); diff --git a/datamodels/2.x/itop-portal-base/portal/src/Brick/AbstractBrick.php b/datamodels/2.x/itop-portal-base/portal/src/Brick/AbstractBrick.php index 7374083d5..476300178 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Brick/AbstractBrick.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Brick/AbstractBrick.php @@ -43,34 +43,34 @@ use ModuleDesign; abstract class AbstractBrick implements TemplatesProviderInterface { /** @var string ENUM_DATA_LOADING_LAZY */ - const ENUM_DATA_LOADING_LAZY = 'lazy'; + public const ENUM_DATA_LOADING_LAZY = 'lazy'; /** @var string ENUM_DATA_LOADING_FULL */ - const ENUM_DATA_LOADING_FULL = 'full'; + public const ENUM_DATA_LOADING_FULL = 'full'; /** @var string ENUM_DATA_LOADING_AUTO */ - const ENUM_DATA_LOADING_AUTO = 'auto'; + public const ENUM_DATA_LOADING_AUTO = 'auto'; /** @var bool DEFAULT_MANDATORY */ - const DEFAULT_MANDATORY = true; + public const DEFAULT_MANDATORY = true; /** @var bool DEFAULT_ACTIVE */ - const DEFAULT_ACTIVE = true; + public const DEFAULT_ACTIVE = true; /** @var bool DEFAULT_VISIBLE */ - const DEFAULT_VISIBLE = true; + public const DEFAULT_VISIBLE = true; /** @var float DEFAULT_RANK */ - const DEFAULT_RANK = 1.0; + public const DEFAULT_RANK = 1.0; /** @var string|null DEFAULT_PAGE_TEMPLATE_PATH @deprecated since 3.2.1 */ - const DEFAULT_PAGE_TEMPLATE_PATH = null; + public const DEFAULT_PAGE_TEMPLATE_PATH = null; /** @var string DEFAULT_TITLE */ - const DEFAULT_TITLE = ''; + public const DEFAULT_TITLE = ''; /** @var string|null DEFAULT_DESCRIPTION */ - const DEFAULT_DESCRIPTION = null; + public const DEFAULT_DESCRIPTION = null; /** @var string DEFAULT_DATA_LOADING */ - const DEFAULT_DATA_LOADING = self::ENUM_DATA_LOADING_AUTO; + public const DEFAULT_DATA_LOADING = self::ENUM_DATA_LOADING_AUTO; /** @var string DEFAULT_ALLOWED_PROFILES_OQL */ - const DEFAULT_ALLOWED_PROFILES_OQL = ''; + public const DEFAULT_ALLOWED_PROFILES_OQL = ''; /** @var string DEFAULT_DENIED_PROFILES_OQL */ - const DEFAULT_DENIED_PROFILES_OQL = ''; + public const DEFAULT_DENIED_PROFILES_OQL = ''; /** @var string TEMPLATES_BASE_PATH */ - const TEMPLATES_BASE_PATH = 'itop-portal-base/portal/templates/bricks/'; + public const TEMPLATES_BASE_PATH = 'itop-portal-base/portal/templates/bricks/'; /** @var string $sId */ protected $sId; @@ -105,8 +105,9 @@ abstract class AbstractBrick implements TemplatesProviderInterface /** @inheritdoc */ public static function RegisterTemplates(TemplatesRegister $oTemplatesRegister): void { - $oTemplatesRegister->RegisterTemplates(self::class, - TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH . 'layout.html.twig'), + $oTemplatesRegister->RegisterTemplates( + self::class, + TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH.'layout.html.twig'), ); } @@ -135,9 +136,9 @@ abstract class AbstractBrick implements TemplatesProviderInterface * * @return array */ - static function GetEnumDataLoadingValues() + public static function GetEnumDataLoadingValues() { - return array(self::ENUM_DATA_LOADING_LAZY, self::ENUM_DATA_LOADING_FULL, self::ENUM_DATA_LOADING_AUTO); + return [self::ENUM_DATA_LOADING_LAZY, self::ENUM_DATA_LOADING_FULL, self::ENUM_DATA_LOADING_AUTO]; } /** @@ -155,8 +156,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface $this->sTitle = static::DEFAULT_TITLE; $this->sDescription = static::DEFAULT_DESCRIPTION; $this->sDataLoading = static::DEFAULT_DATA_LOADING; - $this->aAllowedProfiles = array(); - $this->aDeniedProfiles = array(); + $this->aAllowedProfiles = []; + $this->aDeniedProfiles = []; $this->sAllowedProfilesOql = static::DEFAULT_ALLOWED_PROFILES_OQL; $this->sDeniedProfilesOql = static::DEFAULT_DENIED_PROFILES_OQL; } @@ -297,8 +298,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets the brick id * * @param string $sId - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetId($sId) { @@ -310,8 +311,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets if the brick is mandatory * * @param boolean $bMandatory - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetMandatory($bMandatory) { @@ -336,8 +337,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets if the brick is active * * @param boolean $bActive - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetActive($bActive) { @@ -349,8 +350,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets the rank of the brick * * @param float $fRank - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetRank($fRank) { @@ -362,15 +363,15 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets the page template path of the brick * * @param string $sPageTemplatePath - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick * * @deprecated since 3.2.1 use SetTemplatePath('page') instead */ public function SetPageTemplatePath($sPageTemplatePath) { $this->sPageTemplatePath = $sPageTemplatePath; - $this->SetTemplatePath( 'page', $sPageTemplatePath); + $this->SetTemplatePath('page', $sPageTemplatePath); return $this; } @@ -378,8 +379,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets the title of the brick * * @param string $sTitle - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetTitle($sTitle) { @@ -391,8 +392,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets the description of the brick * * @param string $sDescription - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetDescription($sDescription) { @@ -404,8 +405,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets the data loading mode of the brick * * @param string $sDataLoading - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetDataLoading($sDataLoading) { @@ -444,8 +445,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets the allowed profiles oql query for the brick * * @param string $sAllowedProfilesOql - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetAllowedProfilesOql($sAllowedProfilesOql) { @@ -457,8 +458,8 @@ abstract class AbstractBrick implements TemplatesProviderInterface * Sets the denied profiles oql query for the brick * * @param string $sDeniedProfilesOql - * - * @return \Combodo\iTop\Portal\Brick\AbstractBrick + * + * @return \Combodo\iTop\Portal\Brick\AbstractBrick */ public function SetDeniedProfilesOql($sDeniedProfilesOql) { @@ -489,8 +490,7 @@ abstract class AbstractBrick implements TemplatesProviderInterface */ public function RemoveAllowedProfile($sProfile) { - if (isset($this->aAllowedProfiles[$sProfile])) - { + if (isset($this->aAllowedProfiles[$sProfile])) { unset($this->aAllowedProfiles[$sProfile]); } @@ -530,8 +530,7 @@ abstract class AbstractBrick implements TemplatesProviderInterface */ public function RemoveDeniedProfile($sProfile) { - if (isset($this->aDeniedProfiles[$sProfile])) - { + if (isset($this->aDeniedProfiles[$sProfile])) { unset($this->aDeniedProfiles[$sProfile]); } @@ -560,7 +559,7 @@ abstract class AbstractBrick implements TemplatesProviderInterface */ public function IsGrantedForProfile($sProfile) { - return $this->IsGrantedForProfiles(array($sProfile)); + return $this->IsGrantedForProfiles([$sProfile]); } /** @@ -577,27 +576,21 @@ abstract class AbstractBrick implements TemplatesProviderInterface { $bGranted = true; - if ($this->HasAllowedProfiles()) - { + if ($this->HasAllowedProfiles()) { // We set $bGranted to false as the user must explicitly have an allowed profile to be granted $bGranted = false; - foreach ($aProfiles as $sProfile) - { - if (in_array($sProfile, $this->aAllowedProfiles)) - { + foreach ($aProfiles as $sProfile) { + if (in_array($sProfile, $this->aAllowedProfiles)) { $bGranted = true; break; } } } - if ($this->HasDeniedProfiles()) - { - foreach ($aProfiles as $sProfile) - { - if (in_array($sProfile, $this->aDeniedProfiles)) - { + if ($this->HasDeniedProfiles()) { + foreach ($aProfiles as $sProfile) { + if (in_array($sProfile, $this->aDeniedProfiles)) { $bGranted = false; break; } @@ -629,18 +622,15 @@ abstract class AbstractBrick implements TemplatesProviderInterface public function LoadFromXml(DesignElement $oMDElement) { // Checking mandatory elements - if (!$oMDElement->hasAttribute('id')) - { + if (!$oMDElement->hasAttribute('id')) { throw new DOMFormatException('Brick node must have both id and xsi:type attributes defined', 0, null, $oMDElement); } $this->SetId($oMDElement->getAttribute('id')); // Checking others elements /** @var \Combodo\iTop\DesignElement $oBrickSubNode */ - foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) - { - switch ($oBrickSubNode->nodeName) - { + foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) { + switch ($oBrickSubNode->nodeName) { case 'mandatory': $this->SetMandatory(($oBrickSubNode->GetText() === 'no') ? false : true); break; @@ -649,15 +639,13 @@ abstract class AbstractBrick implements TemplatesProviderInterface break; case 'rank': $oOptionalNode = $oBrickSubNode->GetOptionalElement('default'); - if ($oOptionalNode !== null) - { + if ($oOptionalNode !== null) { $this->SetRank((float)$oOptionalNode->GetText(static::DEFAULT_RANK)); } break; case 'templates': $oTemplateNodeList = $oBrickSubNode->GetNodes('template[@id='.ModuleDesign::XPathQuote('page').']'); - if ($oTemplateNodeList->length > 0) - { + if ($oTemplateNodeList->length > 0) { /** @var \Combodo\iTop\DesignElement $oTemplateNode */ $oTemplateNode = $oTemplateNodeList->item(0); $this->SetTemplatePath('page', $oTemplateNode->GetText(static::DEFAULT_PAGE_TEMPLATE_PATH)); @@ -665,8 +653,7 @@ abstract class AbstractBrick implements TemplatesProviderInterface break; case 'title': $oOptionalNode = $oBrickSubNode->GetOptionalElement('default'); - if ($oOptionalNode !== null) - { + if ($oOptionalNode !== null) { $this->SetTitle($oOptionalNode->GetText(static::DEFAULT_TITLE)); } break; @@ -678,16 +665,17 @@ abstract class AbstractBrick implements TemplatesProviderInterface break; case 'security': /** @var \Combodo\iTop\DesignElement $oSecurityNode */ - foreach ($oBrickSubNode->GetNodes('*') as $oSecurityNode) - { - if ($oSecurityNode->nodeType === XML_TEXT_NODE && $oSecurityNode->GetText() === '') - { - throw new DOMFormatException('Brick security node "'.$oSecurityNode->nodeName.'" must contain an OQL query, it cannot be empty', - null, null, $oMDElement); + foreach ($oBrickSubNode->GetNodes('*') as $oSecurityNode) { + if ($oSecurityNode->nodeType === XML_TEXT_NODE && $oSecurityNode->GetText() === '') { + throw new DOMFormatException( + 'Brick security node "'.$oSecurityNode->nodeName.'" must contain an OQL query, it cannot be empty', + null, + null, + $oMDElement + ); } - switch ($oSecurityNode->nodeName) - { + switch ($oSecurityNode->nodeName) { case 'denied_profiles': $this->SetDeniedProfilesOql($oSecurityNode->GetText()); break; diff --git a/datamodels/2.x/itop-portal-base/portal/src/Brick/AggregatePageBrick.php b/datamodels/2.x/itop-portal-base/portal/src/Brick/AggregatePageBrick.php index 4c3873901..1a378345a 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Brick/AggregatePageBrick.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Brick/AggregatePageBrick.php @@ -38,11 +38,11 @@ use DOMFormatException; class AggregatePageBrick extends PortalBrick { // Overloaded constants - const DEFAULT_DECORATION_CLASS_HOME = 'fas fa-tachometer-alt'; - const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fas fa-tachometer-alt fa-2x'; + public const DEFAULT_DECORATION_CLASS_HOME = 'fas fa-tachometer-alt'; + public const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fas fa-tachometer-alt fa-2x'; /** @var string @deprecated since 3.2.1 */ - const DEFAULT_PAGE_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/aggregate-page/layout.html.twig'; + public const DEFAULT_PAGE_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/aggregate-page/layout.html.twig'; // Overloaded variables public static $sRouteName = 'p_aggregatepage_brick'; @@ -50,21 +50,22 @@ class AggregatePageBrick extends PortalBrick /** * @var string[] list of bricks to use, ordered by rank (key=id, value=rank) */ - private $aAggregatePageBricks = array(); + private $aAggregatePageBricks = []; /** @inheritdoc */ public static function RegisterTemplates(TemplatesRegister $oTemplatesRegister): void { parent::RegisterTemplates($oTemplatesRegister); - $oTemplatesRegister->RegisterTemplates(self::class, - TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH . 'aggregate-page/layout.html.twig') + $oTemplatesRegister->RegisterTemplates( + self::class, + TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH.'aggregate-page/layout.html.twig') ); } /** * AggregatePageBrick constructor. */ - function __construct() + public function __construct() { parent::__construct(); @@ -83,25 +84,24 @@ class AggregatePageBrick extends PortalBrick parent::LoadFromXml($oMDElement); /** @var \Combodo\iTop\DesignElement $oBrickSubNode */ - foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) - { - switch ($oBrickSubNode->nodeName) - { + foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) { + switch ($oBrickSubNode->nodeName) { case 'aggregate_page_bricks': /** @var \Combodo\iTop\DesignElement $oAggregatePageBrickNode */ - foreach ($oBrickSubNode->GetNodes('./aggregate_page_brick') as $oAggregatePageBrickNode) - { - if (!$oAggregatePageBrickNode->hasAttribute('id')) - { - throw new DOMFormatException('AggregatePageBrick : must have an id attribute', 0, - null, $oAggregatePageBrickNode); + foreach ($oBrickSubNode->GetNodes('./aggregate_page_brick') as $oAggregatePageBrickNode) { + if (!$oAggregatePageBrickNode->hasAttribute('id')) { + throw new DOMFormatException( + 'AggregatePageBrick : must have an id attribute', + 0, + null, + $oAggregatePageBrickNode + ); } $sBrickName = $oAggregatePageBrickNode->getAttribute('id'); $iBrickRank = static::DEFAULT_RANK; $oOptionalNode = $oAggregatePageBrickNode->GetOptionalElement('rank'); - if ($oOptionalNode !== null) - { + if ($oOptionalNode !== null) { $iBrickRank = $oOptionalNode->GetText(); } @@ -123,5 +123,4 @@ class AggregatePageBrick extends PortalBrick return $this->aAggregatePageBricks; } - -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Brick/BrickCollection.php b/datamodels/2.x/itop-portal-base/portal/src/Brick/BrickCollection.php index d6de6cf96..46979725b 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Brick/BrickCollection.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Brick/BrickCollection.php @@ -1,4 +1,5 @@ aAllowedBricks = null; $this->iDisplayedInHome = 0; $this->iDisplayedInNavigationMenu = 0; - $this->aHomeOrdering = array(); - $this->aNavigationMenuOrdering = array(); + $this->aHomeOrdering = []; + $this->aNavigationMenuOrdering = []; $this->Load(); } @@ -84,8 +85,7 @@ class BrickCollection public function __call($method, $arguments) { // Made for cleaner/easier access from twig (eg. app['brick_collection'].bricks) - switch ($method) - { + switch ($method) { case 'bricks': return $this->GetBricks(); break; @@ -128,10 +128,8 @@ class BrickCollection */ public function GetBrickById($sId) { - foreach ($this->GetBricks() as $oBrick) - { - if ($oBrick->GetId() === $sId) - { + foreach ($this->GetBricks() as $oBrick) { + if ($oBrick->GetId() === $sId) { return $oBrick; } } @@ -146,19 +144,15 @@ class BrickCollection { $aRawBrickList = $this->GetRawBrickList(); - foreach ($aRawBrickList as $oBrick) - { + foreach ($aRawBrickList as $oBrick) { ApplicationHelper::LoadBrickSecurity($oBrick); - if ($oBrick->GetActive() && $oBrick->IsGrantedForProfiles(UserRights::ListProfiles())) - { + if ($oBrick->GetActive() && $oBrick->IsGrantedForProfiles(UserRights::ListProfiles())) { $this->aAllowedBricks[] = $oBrick; - if ($oBrick->GetVisibleHome()) - { + if ($oBrick->GetVisibleHome()) { $this->iDisplayedInHome++; } - if ($oBrick->GetVisibleNavigationMenu()) - { + if ($oBrick->GetVisibleNavigationMenu()) { $this->iDisplayedInNavigationMenu++; } } @@ -191,35 +185,30 @@ class BrickCollection */ private function GetRawBrickList() { - $aBricks = array(); + $aBricks = []; /** @var \Combodo\iTop\DesignElement $oBrickNode */ - foreach ($this->oModuleDesign->GetNodes('/module_design/bricks/brick') as $oBrickNode) - { + foreach ($this->oModuleDesign->GetNodes('/module_design/bricks/brick') as $oBrickNode) { $sBrickClass = $oBrickNode->getAttribute('xsi:type'); - try - { - if (class_exists($sBrickClass)) - { + try { + if (class_exists($sBrickClass)) { /** @var \Combodo\iTop\Portal\Brick\PortalBrick $oBrick */ $oBrick = new $sBrickClass(); - + // Load the brick specific properties from its XML definition $oBrick->LoadFromXml($oBrickNode); $aBricks[] = $oBrick; + } else { + throw new DOMFormatException( + 'Unknown brick class "'.$sBrickClass.'" from xsi:type attribute', + null, + null, + $oBrickNode + ); } - else - { - throw new DOMFormatException('Unknown brick class "'.$sBrickClass.'" from xsi:type attribute', null, - null, $oBrickNode); - } - } - catch (DOMFormatException $e) - { + } catch (DOMFormatException $e) { throw new Exception('Could not create brick ('.$sBrickClass.') from XML because of a DOM problem : '.$e->getMessage()); - } - catch (Exception $e) - { + } catch (Exception $e) { throw new Exception('Could not create brick ('.$sBrickClass.') from XML : '.$oBrickNode->Dump().' '.$e->getMessage()); } } @@ -227,4 +216,4 @@ class BrickCollection return $aBricks; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Brick/BrickNotFoundException.php b/datamodels/2.x/itop-portal-base/portal/src/Brick/BrickNotFoundException.php index 583291f86..c0b2c100c 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Brick/BrickNotFoundException.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Brick/BrickNotFoundException.php @@ -1,4 +1,5 @@ RegisterTemplates(self::class, - TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH . 'browse/layout.html.twig'), - TemplateDefinitionDto::Create('page_list', static::TEMPLATES_BASE_PATH . 'browse/mode_list.html.twig'), - TemplateDefinitionDto::Create('page_tree', static::TEMPLATES_BASE_PATH . 'browse/mode_tree.html.twig'), - TemplateDefinitionDto::Create('page_mosaic', static::TEMPLATES_BASE_PATH . 'browse/mode_mosaic.html.twig'), + $oTemplatesRegister->RegisterTemplates( + self::class, + TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH.'browse/layout.html.twig'), + TemplateDefinitionDto::Create('page_list', static::TEMPLATES_BASE_PATH.'browse/mode_list.html.twig'), + TemplateDefinitionDto::Create('page_tree', static::TEMPLATES_BASE_PATH.'browse/mode_tree.html.twig'), + TemplateDefinitionDto::Create('page_mosaic', static::TEMPLATES_BASE_PATH.'browse/mode_mosaic.html.twig'), ); } @@ -135,15 +135,15 @@ class BrowseBrick extends PortalBrick { parent::__construct(); - $this->aLevels = array(); - $this->aAvailablesBrowseModes = array(); + $this->aLevels = []; + $this->aAvailablesBrowseModes = []; $this->sDefaultBrowseMode = static::DEFAULT_BROWSE_MODE; $this->iDefaultListLength = static::DEFAULT_LIST_LENGTH; } /** * Compare function to sort actions by their rank attribute - * + * * @param array $aAction1 * @param array $aAction2 * @@ -154,13 +154,10 @@ class BrowseBrick extends PortalBrick $bIsAction1RankSet = array_key_exists('rank', $aAction1); $bIsAction2RankSet = array_key_exists('rank', $aAction2); - if($bIsAction1RankSet && $bIsAction2RankSet) - { - //If a1 == a2 return 0, if a1 > a2 return 1 else return -1 + if ($bIsAction1RankSet && $bIsAction2RankSet) { + //If a1 == a2 return 0, if a1 > a2 return 1 else return -1 return ($aAction1['rank'] === $aAction2['rank'] ? $aAction1['default_rank'] - $aAction2['default_rank'] : $aAction1['rank'] - $aAction2['rank']); - } - else - { + } else { //If a1 == a2 == null return 0, if a2 is null and not a1 return 1 else return -1 return ($bIsAction1RankSet === $bIsAction2RankSet ? $aAction1['default_rank'] - $aAction2['default_rank'] : ($bIsAction1RankSet ? 1 : -1)); } @@ -255,7 +252,8 @@ class BrowseBrick extends PortalBrick * * @return $this */ - public function SetDefaultListLength($iDefaultListLength) { + public function SetDefaultListLength($iDefaultListLength) + { $this->iDefaultListLength = $iDefaultListLength; return $this; } @@ -293,8 +291,7 @@ class BrowseBrick extends PortalBrick */ public function RemoveLevels($sLevel) { - if (isset($this->aLevels[$sLevel])) - { + if (isset($this->aLevels[$sLevel])) { unset($this->aLevels[$sLevel]); } @@ -309,7 +306,7 @@ class BrowseBrick extends PortalBrick * * @return \Combodo\iTop\Portal\Brick\BrowseBrick */ - public function AddAvailableBrowseMode($sModeId, $aData = array()) + public function AddAvailableBrowseMode($sModeId, $aData = []) { $this->aAvailablesBrowseModes[$sModeId] = $aData; @@ -325,8 +322,7 @@ class BrowseBrick extends PortalBrick */ public function RemoveAvailableBrowseMode($sModeId) { - if (isset($this->aAvailablesBrowseModes[$sModeId])) - { + if (isset($this->aAvailablesBrowseModes[$sModeId])) { unset($this->aAvailablesBrowseModes[$sModeId]); } @@ -349,43 +345,38 @@ class BrowseBrick extends PortalBrick // Checking specific elements /** @var \Combodo\iTop\DesignElement $oBrickSubNode */ - foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) - { - switch ($oBrickSubNode->nodeName) - { + foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) { + switch ($oBrickSubNode->nodeName) { case 'levels': /** @var \Combodo\iTop\DesignElement $oLevelNode */ - foreach ($oBrickSubNode->GetNodes('*') as $oLevelNode) - { - if ($oLevelNode->nodeName === 'level') - { + foreach ($oBrickSubNode->GetNodes('*') as $oLevelNode) { + if ($oLevelNode->nodeName === 'level') { $this->AddLevel($this->LoadLevelFromXml($oLevelNode)); } } break; case 'browse_modes': /** @var \Combodo\iTop\DesignElement $oBrowseModeNode */ - foreach ($oBrickSubNode->GetNodes('*') as $oBrowseModeNode) - { - switch ($oBrowseModeNode->nodeName) - { + foreach ($oBrickSubNode->GetNodes('*') as $oBrowseModeNode) { + switch ($oBrowseModeNode->nodeName) { case 'availables': /** @var \Combodo\iTop\DesignElement $oModeNode */ - foreach ($oBrowseModeNode->GetNodes('*') as $oModeNode) - { - if (!$oModeNode->hasAttribute('id')) - { - throw new DOMFormatException('BrowseBrick: Browse mode must have a unique ID attribute', 0, - null, $oModeNode); + foreach ($oBrowseModeNode->GetNodes('*') as $oModeNode) { + if (!$oModeNode->hasAttribute('id')) { + throw new DOMFormatException( + 'BrowseBrick: Browse mode must have a unique ID attribute', + 0, + null, + $oModeNode + ); } $sModeId = $oModeNode->getAttribute('id'); - $aModeData = array(); + $aModeData = []; // Checking if the browse mode has a specific template $oTemplateNode = $oModeNode->GetOptionalElement('template'); - if (($oTemplateNode !== null) && ($oTemplateNode->GetText() !== null)) - { + if (($oTemplateNode !== null) && ($oTemplateNode->GetText() !== null)) { $this->SetTemplatePath('page_'.$sModeId, $oTemplateNode->GetText()); } @@ -400,12 +391,12 @@ class BrowseBrick extends PortalBrick break; case 'default_list_length': $iNodeDefaultListLength = (int)$oBrickSubNode->GetText(static::DEFAULT_LIST_LENGTH); - if(!in_array($iNodeDefaultListLength, array(10, 20, 50, -1),true)) - { + if (!in_array($iNodeDefaultListLength, [10, 20, 50, -1], true)) { throw new DOMFormatException( 'BrowseBrick: Default list length must be contained in list length options. Expected -1/10/20/50, '.$iNodeDefaultListLength.' given.', null, - null, $oBrickSubNode + null, + $oBrickSubNode ); } $this->SetDefaultListLength($iNodeDefaultListLength); @@ -414,19 +405,18 @@ class BrowseBrick extends PortalBrick } // Checking that the brick has at least a browse mode - if (count($this->GetAvailablesBrowseModes()) === 0) - { + if (count($this->GetAvailablesBrowseModes()) === 0) { throw new DOMFormatException('BrowseBrick : Must have at least one browse mode', 0, null, $oMDElement); } // Checking that default browse mode in among the available - if (!in_array($this->sDefaultBrowseMode, array_keys($this->aAvailablesBrowseModes))) - { - throw new DOMFormatException('BrowseBrick : Default browse mode "'.$this->sDefaultBrowseMode.'" must be one of the available browse modes ('.implode(', ', - $this->aAvailablesBrowseModes).')', null, null, $oMDElement); + if (!in_array($this->sDefaultBrowseMode, array_keys($this->aAvailablesBrowseModes))) { + throw new DOMFormatException('BrowseBrick : Default browse mode "'.$this->sDefaultBrowseMode.'" must be one of the available browse modes ('.implode( + ', ', + $this->aAvailablesBrowseModes + ).')', null, null, $oMDElement); } // Checking that the brick has at least a level - if (count($this->GetLevels()) === 0) - { + if (count($this->GetLevels()) === 0) { throw new DOMFormatException('BrowseBrick : Must have at least one level', 0, null, $oMDElement); } @@ -444,39 +434,41 @@ class BrowseBrick extends PortalBrick */ protected function LoadLevelFromXml(DesignElement $oMDElement) { - $aLevel = array( + $aLevel = [ 'parent_att' => null, 'tooltip_att' => null, 'description_att' => null, 'image_att' => null, 'title' => null, 'name_att' => static::DEFAULT_LEVEL_NAME_ATT, - 'fields' => array(), - 'actions' => array('default' => array('type' => static::DEFAULT_ACTION, 'rules' => array())), - ); + 'fields' => [], + 'actions' => ['default' => ['type' => static::DEFAULT_ACTION, 'rules' => []]], + ]; // Getting level ID - if ($oMDElement->hasAttribute('id') && $oMDElement->getAttribute('id') !== '') - { + if ($oMDElement->hasAttribute('id') && $oMDElement->getAttribute('id') !== '') { $aLevel['id'] = $oMDElement->getAttribute('id'); - } - else - { - throw new DOMFormatException('BrowseBrick : level tag without "id" attribute. It must have one and it must not be empty', null, - null, $oMDElement); + } else { + throw new DOMFormatException( + 'BrowseBrick : level tag without "id" attribute. It must have one and it must not be empty', + null, + null, + $oMDElement + ); } // Getting level properties /** @var \Combodo\iTop\DesignElement $oLevelPropertyNode */ - foreach ($oMDElement->GetNodes('*') as $oLevelPropertyNode) - { - switch ($oLevelPropertyNode->nodeName) - { + foreach ($oMDElement->GetNodes('*') as $oLevelPropertyNode) { + switch ($oLevelPropertyNode->nodeName) { case 'class': $sClass = $oLevelPropertyNode->GetText(); - if ($sClass === '') - { - throw new DOMFormatException('BrowseBrick : class tag is empty. Must contain Classname', null, null, - $oLevelPropertyNode); + if ($sClass === '') { + throw new DOMFormatException( + 'BrowseBrick : class tag is empty. Must contain Classname', + null, + null, + $oLevelPropertyNode + ); } $aLevel['oql'] = 'SELECT '.$sClass; @@ -484,10 +476,13 @@ class BrowseBrick extends PortalBrick case 'oql': $sOql = $oLevelPropertyNode->GetText(); - if ($sOql === '') - { - throw new DOMFormatException('BrowseBrick : oql tag is empty. Must contain OQL statement', null, null, - $oLevelPropertyNode); + if ($sOql === '') { + throw new DOMFormatException( + 'BrowseBrick : oql tag is empty. Must contain OQL statement', + null, + null, + $oLevelPropertyNode + ); } $aLevel['oql'] = $sOql; @@ -508,25 +503,23 @@ class BrowseBrick extends PortalBrick case 'fields': $sTagName = $oLevelPropertyNode->nodeName; - if ($oLevelPropertyNode->hasChildNodes()) - { - $aLevel[$sTagName] = array(); + if ($oLevelPropertyNode->hasChildNodes()) { + $aLevel[$sTagName] = []; /** @var \Combodo\iTop\DesignElement $oFieldNode */ - foreach ($oLevelPropertyNode->GetNodes('*') as $oFieldNode) - { - if ($oFieldNode->hasAttribute('id') && $oFieldNode->getAttribute('id') !== '') - { - $aLevel[$sTagName][$oFieldNode->getAttribute('id')] = array('hidden' => false); - } - else - { - throw new DOMFormatException('BrowseBrick : '.$sTagName.'/* tag must have an "id" attribute and it must not be empty', - null, null, $oFieldNode); + foreach ($oLevelPropertyNode->GetNodes('*') as $oFieldNode) { + if ($oFieldNode->hasAttribute('id') && $oFieldNode->getAttribute('id') !== '') { + $aLevel[$sTagName][$oFieldNode->getAttribute('id')] = ['hidden' => false]; + } else { + throw new DOMFormatException( + 'BrowseBrick : '.$sTagName.'/* tag must have an "id" attribute and it must not be empty', + null, + null, + $oFieldNode + ); } $oFieldSubNode = $oFieldNode->GetOptionalElement('hidden'); - if ($oFieldSubNode !== null) - { + if ($oFieldSubNode !== null) { $aLevel[$sTagName][$oFieldNode->getAttribute('id')]['hidden'] = ($oFieldSubNode->GetText() === 'true') ? true : false; } } @@ -536,94 +529,84 @@ class BrowseBrick extends PortalBrick case 'actions': $sTagName = $oLevelPropertyNode->nodeName; - if ($oLevelPropertyNode->hasChildNodes()) - { - $aLevel[$sTagName] = array(); + if ($oLevelPropertyNode->hasChildNodes()) { + $aLevel[$sTagName] = []; $iActionDefaultRank = 0; /** @var \Combodo\iTop\DesignElement $oActionNode */ - foreach ($oLevelPropertyNode->GetNodes('*') as $oActionNode) - { - if ($oActionNode->hasAttribute('id') && $oActionNode->getAttribute('id') !== '') - { - $aTmpAction = array( + foreach ($oLevelPropertyNode->GetNodes('*') as $oActionNode) { + if ($oActionNode->hasAttribute('id') && $oActionNode->getAttribute('id') !== '') { + $aTmpAction = [ 'type' => null, - 'rules' => array(), - ); + 'rules' => [], + ]; // Action type $aTmpAction['type'] = ($oActionNode->hasAttribute('xsi:type') && $oActionNode->getAttribute('xsi:type') !== '') ? $oActionNode->getAttribute('xsi:type') : static::DEFAULT_ACTION; // Action destination class - if ($aTmpAction['type'] === static::ENUM_ACTION_CREATE_FROM_THIS) - { - if ($oActionNode->GetOptionalElement('factory_method') !== null) - { - $aTmpAction['factory'] = array( + if ($aTmpAction['type'] === static::ENUM_ACTION_CREATE_FROM_THIS) { + if ($oActionNode->GetOptionalElement('factory_method') !== null) { + $aTmpAction['factory'] = [ 'type' => static::ENUM_FACTORY_TYPE_METHOD, 'value' => $oActionNode->GetOptionalElement('factory_method')->GetText(), - ); - } - else - { - $aTmpAction['factory'] = array( + ]; + } else { + $aTmpAction['factory'] = [ 'type' => static::ENUM_FACTORY_TYPE_CLASS, 'value' => $oActionNode->GetUniqueElement('class')->GetText(), - ); + ]; } } // Action title $oActionTitleNode = $oActionNode->GetOptionalElement('title'); - if ($oActionTitleNode !== null) - { + if ($oActionTitleNode !== null) { $aTmpAction['title'] = $oActionTitleNode->GetText(); } // Action icon class $oActionIconClassNode = $oActionNode->GetOptionalElement('icon_class'); - if ($oActionIconClassNode !== null) - { + if ($oActionIconClassNode !== null) { $aTmpAction['icon_class'] = $oActionIconClassNode->GetText(); } // Action opening target $oActionOpeningTargetNode = $oActionNode->GetOptionalElement('opening_target'); - if ($oActionOpeningTargetNode !== null) - { + if ($oActionOpeningTargetNode !== null) { $aTmpAction['opening_target'] = $oActionOpeningTargetNode->GetText(static::DEFAULT_ACTION_OPENING_TARGET); - } - else - { + } else { $aTmpAction['opening_target'] = static::DEFAULT_ACTION_OPENING_TARGET; } // - Checking that opening target is among authorized modes - if (!in_array($aTmpAction['opening_target'], static::$aOpeningTargets)) - { - throw new DOMFormatException('BrowseBrick : '.$sTagName.'/action/opening_target has a wrong value. "'.$aTmpAction['opening_target'].'" given, '.implode('|', - static::$aOpeningTargets).' expected.', null, null, $oActionOpeningTargetNode); + if (!in_array($aTmpAction['opening_target'], static::$aOpeningTargets)) { + throw new DOMFormatException('BrowseBrick : '.$sTagName.'/action/opening_target has a wrong value. "'.$aTmpAction['opening_target'].'" given, '.implode( + '|', + static::$aOpeningTargets + ).' expected.', null, null, $oActionOpeningTargetNode); } $oActionRankNode = $oActionNode->GetOptionalElement('rank'); - if ($oActionRankNode !== null) - { + if ($oActionRankNode !== null) { $aTmpAction['rank'] = (int)$oActionRankNode->GetText(); } // Action rules /** @var \Combodo\iTop\DesignElement $oRuleNode */ - foreach ($oActionNode->GetNodes('./rules/rule') as $oRuleNode) - { - if ($oRuleNode->hasAttribute('id') && $oRuleNode->getAttribute('id') !== '') - { + foreach ($oActionNode->GetNodes('./rules/rule') as $oRuleNode) { + if ($oRuleNode->hasAttribute('id') && $oRuleNode->getAttribute('id') !== '') { $aTmpAction['rules'][] = $oRuleNode->getAttribute('id'); - } - else - { - throw new DOMFormatException('BrowseBrick : '.$sTagName.'/rules/rule tag must have an "id" attribute and it must not be empty', - null, null, $oRuleNode); + } else { + throw new DOMFormatException( + 'BrowseBrick : '.$sTagName.'/rules/rule tag must have an "id" attribute and it must not be empty', + null, + null, + $oRuleNode + ); } } $aTmpAction['default_rank'] = $iActionDefaultRank++; $aLevel[$sTagName][$oActionNode->getAttribute('id')] = $aTmpAction; - } - else - { - throw new DOMFormatException('BrowseBrick : '.$sTagName.'/* tag must have an "id" attribute and it must not be empty', - null, null, $oActionNode); + } else { + throw new DOMFormatException( + 'BrowseBrick : '.$sTagName.'/* tag must have an "id" attribute and it must not be empty', + null, + null, + $oActionNode + ); } } uasort($aLevel[$sTagName], [$this, 'CompareActionsByRank']); @@ -631,10 +614,8 @@ class BrowseBrick extends PortalBrick break; case 'levels': - foreach ($oLevelPropertyNode->GetNodes('*') as $oSubLevelNode) - { - if ($oSubLevelNode->nodeName === 'level') - { + foreach ($oLevelPropertyNode->GetNodes('*') as $oSubLevelNode) { + if ($oSubLevelNode->nodeName === 'level') { $aLevel['levels'][] = $this->LoadLevelFromXml($oSubLevelNode); } } @@ -644,8 +625,7 @@ class BrowseBrick extends PortalBrick } // Checking if level has an oql - if (!isset($aLevel['oql']) || $aLevel['oql'] === '') - { + if (!isset($aLevel['oql']) || $aLevel['oql'] === '') { throw new DOMFormatException('BrowseBrick : must have a valid tag', null, null, $oMDElement); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Brick/CreateBrick.php b/datamodels/2.x/itop-portal-base/portal/src/Brick/CreateBrick.php index 62c9e08fb..337834a4f 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Brick/CreateBrick.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Brick/CreateBrick.php @@ -35,10 +35,10 @@ use DOMFormatException; class CreateBrick extends PortalBrick { // Overloaded constants - const DEFAULT_DECORATION_CLASS_HOME = 'fas fa-plus'; - const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fas fa-plus fa-2x'; + public const DEFAULT_DECORATION_CLASS_HOME = 'fas fa-plus'; + public const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fas fa-plus fa-2x'; /** @var string DEFAULT_CLASS */ - const DEFAULT_CLASS = ''; + public const DEFAULT_CLASS = ''; // Overloaded variables public static $sRouteName = 'p_create_brick'; @@ -48,14 +48,15 @@ class CreateBrick extends PortalBrick /** @var array $aRules */ protected $aRules; - const DEFAULT_PAGE_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/create/modal.html.twig'; + public const DEFAULT_PAGE_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/create/modal.html.twig'; /** @inheritdoc */ public static function RegisterTemplates(TemplatesRegister $oTemplatesRegister): void { parent::RegisterTemplates($oTemplatesRegister); - $oTemplatesRegister->RegisterTemplates(self::class, - TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH . 'create/modal.html.twig') + $oTemplatesRegister->RegisterTemplates( + self::class, + TemplateDefinitionDto::Create('page', static::TEMPLATES_BASE_PATH.'create/modal.html.twig') ); } @@ -67,7 +68,7 @@ class CreateBrick extends PortalBrick parent::__construct(); $this->sClass = static::DEFAULT_CLASS; - $this->aRules = array(); + $this->aRules = []; } /** @@ -134,26 +135,24 @@ class CreateBrick extends PortalBrick // Checking specific elements /** @var \Combodo\iTop\DesignElement $oBrickSubNode */ - foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) - { - switch ($oBrickSubNode->nodeName) - { + foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) { + switch ($oBrickSubNode->nodeName) { case 'class': $this->SetClass($oBrickSubNode->GetText(self::DEFAULT_CLASS)); break; case 'rules': /** @var \Combodo\iTop\DesignElement $oRuleNode */ - foreach ($oBrickSubNode->GetNodes('*') as $oRuleNode) - { - if ($oRuleNode->hasAttribute('id') && $oRuleNode->getAttribute('id') !== '') - { + foreach ($oBrickSubNode->GetNodes('*') as $oRuleNode) { + if ($oRuleNode->hasAttribute('id') && $oRuleNode->getAttribute('id') !== '') { $this->aRules[] = $oRuleNode->getAttribute('id'); - } - else - { - throw new DOMFormatException('CreateBrick: /rules/rule tag must have an "id" attribute and it must not be empty', - null, null, $oRuleNode); + } else { + throw new DOMFormatException( + 'CreateBrick: /rules/rule tag must have an "id" attribute and it must not be empty', + null, + null, + $oRuleNode + ); } } break; diff --git a/datamodels/2.x/itop-portal-base/portal/src/Brick/FilterBrick.php b/datamodels/2.x/itop-portal-base/portal/src/Brick/FilterBrick.php index 3ed96552d..72541996c 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Brick/FilterBrick.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Brick/FilterBrick.php @@ -35,21 +35,21 @@ use DOMFormatException; class FilterBrick extends PortalBrick { // Overloaded constants - const DEFAULT_VISIBLE_NAVIGATION_MENU = false; - /** - * @deprecated 3.2.1 - */ - const DEFAULT_TILE_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/filter/tile.html.twig'; - const DEFAULT_DECORATION_CLASS_HOME = 'fas fa-search'; - const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fas fa-search fa-2x'; - /** @var string DEFAULT_TARGET_BRICK_CLASS */ - const DEFAULT_TARGET_BRICK_CLASS = 'Combodo\\iTop\\Portal\\Brick\\BrowseBrick'; + public const DEFAULT_VISIBLE_NAVIGATION_MENU = false; + /** + * @deprecated 3.2.1 + */ + public const DEFAULT_TILE_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/filter/tile.html.twig'; + public const DEFAULT_DECORATION_CLASS_HOME = 'fas fa-search'; + public const DEFAULT_DECORATION_CLASS_NAVIGATION_MENU = 'fas fa-search fa-2x'; + /** @var string DEFAULT_TARGET_BRICK_CLASS */ + public const DEFAULT_TARGET_BRICK_CLASS = 'Combodo\\iTop\\Portal\\Brick\\BrowseBrick'; /** @var string DEFAULT_SEARCH_PLACEHOLDER_VALUE */ - const DEFAULT_SEARCH_PLACEHOLDER_VALUE = 'Brick:Portal:Filter:SearchInput:Placeholder'; + public const DEFAULT_SEARCH_PLACEHOLDER_VALUE = 'Brick:Portal:Filter:SearchInput:Placeholder'; /** @var string DEFAULT_SEARCH_SUBMIT_LABEL */ - const DEFAULT_SEARCH_SUBMIT_LABEL = 'Brick:Portal:Filter:SearchInput:Submit'; + public const DEFAULT_SEARCH_SUBMIT_LABEL = 'Brick:Portal:Filter:SearchInput:Submit'; /** @var string DEFAULT_SEARCH_SUBMIT_CLASS */ - const DEFAULT_SEARCH_SUBMIT_CLASS = ''; + public const DEFAULT_SEARCH_SUBMIT_CLASS = ''; /** @var string $sTargetBrickId */ protected $sTargetBrickId; @@ -68,8 +68,9 @@ class FilterBrick extends PortalBrick public static function RegisterTemplates(TemplatesRegister $oTemplatesRegister): void { parent::RegisterTemplates($oTemplatesRegister); - $oTemplatesRegister->RegisterTemplates(self::class, - TemplateDefinitionDto::Create('tile', static::TEMPLATES_BASE_PATH . 'filter/tile.html.twig') + $oTemplatesRegister->RegisterTemplates( + self::class, + TemplateDefinitionDto::Create('tile', static::TEMPLATES_BASE_PATH.'filter/tile.html.twig') ); } @@ -98,9 +99,9 @@ class FilterBrick extends PortalBrick * @return string */ public function GetTargetBrickClass() - { - return $this->sTargetBrickClass; - } + { + return $this->sTargetBrickClass; + } /** * @return string @@ -149,9 +150,9 @@ class FilterBrick extends PortalBrick * @param string $sTargetBrickClass */ public function SetTargetBrickClass($sTargetBrickClass) - { - $this->sTargetBrickClass = $sTargetBrickClass; - } + { + $this->sTargetBrickClass = $sTargetBrickClass; + } /** * @param string $sTargetBrickTab @@ -197,38 +198,34 @@ class FilterBrick extends PortalBrick return $this; } - /** - * Load the brick's data from the xml passed as a ModuleDesignElement. - * This is used to set all the brick attributes at once. - * - * @param \Combodo\iTop\DesignElement $oMDElement - * - * @return \Combodo\iTop\Portal\Brick\FilterBrick - * - * @throws \DOMFormatException - */ + /** + * Load the brick's data from the xml passed as a ModuleDesignElement. + * This is used to set all the brick attributes at once. + * + * @param \Combodo\iTop\DesignElement $oMDElement + * + * @return \Combodo\iTop\Portal\Brick\FilterBrick + * + * @throws \DOMFormatException + */ public function LoadFromXml(DesignElement $oMDElement) { parent::LoadFromXml($oMDElement); // Checking specific elements /** @var \Combodo\iTop\DesignElement $oBrickSubNode */ - foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) - { - switch ($oBrickSubNode->nodeName) - { + foreach ($oMDElement->GetNodes('./*') as $oBrickSubNode) { + switch ($oBrickSubNode->nodeName) { case 'target_brick': /** @var \Combodo\iTop\DesignElement $oTargetBrickNode */ - foreach ($oBrickSubNode->GetNodes('*') as $oTargetBrickNode) - { - switch ($oTargetBrickNode->nodeName) - { - case 'id': - $this->SetTargetBrickId($oTargetBrickNode->GetText()); - break; - case 'type': - $this->SetTargetBrickClass($oTargetBrickNode->GetText()); - break; + foreach ($oBrickSubNode->GetNodes('*') as $oTargetBrickNode) { + switch ($oTargetBrickNode->nodeName) { + case 'id': + $this->SetTargetBrickId($oTargetBrickNode->GetText()); + break; + case 'type': + $this->SetTargetBrickClass($oTargetBrickNode->GetText()); + break; case 'tab': $this->SetTargetBrickTab($oTargetBrickNode->GetText()); break; @@ -236,12 +233,12 @@ class FilterBrick extends PortalBrick } break; case 'search_placeholder_value': - // Note: We don't put the default value constant if the node is empty because we might actually want this to be empty + // Note: We don't put the default value constant if the node is empty because we might actually want this to be empty $this->SetSearchPlaceholderValue($oBrickSubNode->GetText('')); break; case 'search_submit_label': - // Note: We don't put the default value constant if the node is empty because we might actually want this to be empty - $this->SetSearchSubmitLabel($oBrickSubNode->GetText('')); + // Note: We don't put the default value constant if the node is empty because we might actually want this to be empty + $this->SetSearchSubmitLabel($oBrickSubNode->GetText('')); break; case 'search_submit_class': $this->SetSearchSubmitClass($oBrickSubNode->GetText(static::DEFAULT_SEARCH_SUBMIT_CLASS)); @@ -250,8 +247,7 @@ class FilterBrick extends PortalBrick } // Checking that the brick has at least a target brick id - if (($this->GetTargetBrickId() === null) || ($this->GetTargetBrickId() === '')) - { + if (($this->GetTargetBrickId() === null) || ($this->GetTargetBrickId() === '')) { throw new DOMFormatException('FilterBrick : Must have a target brick id', 0, null, $oMDElement); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Brick/PropertyNotFoundException.php b/datamodels/2.x/itop-portal-base/portal/src/Brick/PropertyNotFoundException.php index d5d13de52..0bb858ff9 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Brick/PropertyNotFoundException.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Brick/PropertyNotFoundException.php @@ -31,5 +31,4 @@ use Exception; */ class PropertyNotFoundException extends Exception { - -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/AggregatePageBrickController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/AggregatePageBrickController.php index 5cad88064..777938d69 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/AggregatePageBrickController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/AggregatePageBrickController.php @@ -29,7 +29,6 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\HttpException; use UserRights; - /** * Class AggregatePageBrickController * @@ -41,7 +40,6 @@ use UserRights; */ class AggregatePageBrickController extends BrickController { - /** * Constructor. * @@ -51,8 +49,7 @@ class AggregatePageBrickController extends BrickController */ public function __construct( protected BrickCollection $oBrickCollection - ) - { + ) { } @@ -76,11 +73,11 @@ class AggregatePageBrickController extends BrickController $aTilesRendering = $this->GetBricksTileRendering($oRequest, $aAggregatePageBricks); $sLayoutTemplate = $oBrick->GetTemplatePath('page'); - $aData = array( + $aData = [ 'oBrick' => $oBrick, 'aggregatepage_bricks' => $aAggregatePageBricks, 'aTilesRendering' => $aTilesRendering, - ); + ]; $oResponse = $this->render($sLayoutTemplate, $aData); return $oResponse; @@ -94,15 +91,11 @@ class AggregatePageBrickController extends BrickController */ private function GetOrderedAggregatePageBricksObjectsById($aAggregatePageBricksConf) { - $aAggregatePageBricks = array(); - foreach ($aAggregatePageBricksConf as $sBrickId => $iBrickRank) - { - try - { + $aAggregatePageBricks = []; + foreach ($aAggregatePageBricksConf as $sBrickId => $iBrickRank) { + try { $oPortalBrick = $this->oBrickCollection->GetBrickById($sBrickId); - } - catch (BrickNotFoundException $oException) - { + } catch (BrickNotFoundException $oException) { IssueLog::Debug('AggregatePageBrick: Could not display brick, either wrong id or user profile not allowed', LogChannels::PORTAL, [ 'brick_id' => $sBrickId, 'user_profiles' => UserRights::ListProfiles(), @@ -124,21 +117,17 @@ class AggregatePageBrickController extends BrickController */ private function GetBricksTileRendering(Request $oRequest, $aBricks) { - $aTilesRendering = array(); - foreach ($aBricks as $oBrick) - { - if ($oBrick->GetTileControllerAction() !== null) - { + $aTilesRendering = []; + foreach ($aBricks as $oBrick) { + if ($oBrick->GetTileControllerAction() !== null) { $aControllerActionParts = explode('::', $oBrick->GetTileControllerAction()); - if (count($aControllerActionParts) !== 2) - { + if (count($aControllerActionParts) !== 2) { throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, 'Tile controller action must be of form "\Namespace\ControllerClass::FunctionName" for brick "'.$oBrick->GetId().'"'); } - $aRouteParams = array(); + $aRouteParams = []; // Add sBrickId in the route params as it is necessary for each brick actions - if (is_a($aControllerActionParts[0], BrickController::class, true)) - { + if (is_a($aControllerActionParts[0], BrickController::class, true)) { $aRouteParams['sBrickId'] = $oBrick->GetId(); } @@ -150,4 +139,4 @@ class AggregatePageBrickController extends BrickController return $aTilesRendering; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/BrickController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/BrickController.php index 254d1a596..81cbe8e5a 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/BrickController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/BrickController.php @@ -29,5 +29,4 @@ namespace Combodo\iTop\Portal\Controller; */ abstract class BrickController extends AbstractController { - } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/BrowseBrickController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/BrowseBrickController.php index 1c3eeb31f..281413583 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/BrowseBrickController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/BrowseBrickController.php @@ -51,7 +51,6 @@ use VariableExpression; */ class BrowseBrickController extends BrickController { - /** * Constructor. * @@ -67,12 +66,10 @@ class BrowseBrickController extends BrickController protected RequestManipulatorHelper $oRequestManipulatorHelper, protected BrickControllerHelper $oBrickControllerHelper, protected BrickCollection $oBrickCollection - ) - { + ) { } - /** * @param \Symfony\Component\HttpFoundation\Request $oRequest * @param string $sBrickId @@ -103,85 +100,92 @@ class BrowseBrickController extends BrickController // Getting current browse mode (First from router parameter, then default brick value) $sBrowseMode = (!empty($sBrowseMode)) ? $sBrowseMode : $oBrick->GetDefaultBrowseMode(); // Getting current dataloading mode (First from router parameter, then query parameter, then default brick value) - $sDataLoading = ($sDataLoading !== null) ? $sDataLoading : $this->oRequestManipulatorHelper->ReadParam('sDataLoading', - $oBrick->GetDataLoading()); + $sDataLoading = ($sDataLoading !== null) ? $sDataLoading : $this->oRequestManipulatorHelper->ReadParam( + 'sDataLoading', + $oBrick->GetDataLoading() + ); // Getting search value $sRawSearchValue = $this->oRequestManipulatorHelper->ReadParam('sSearchValue', ''); $sSearchValue = html_entity_decode($sRawSearchValue); - if (strlen($sSearchValue) > 0) - { + if (strlen($sSearchValue) > 0) { $sDataLoading = AbstractBrick::ENUM_DATA_LOADING_LAZY; } - $aData = array(); - $aLevelsProperties = array(); - $aLevelsClasses = array(); + $aData = []; + $aLevelsProperties = []; + $aLevelsClasses = []; $this->oBrowseBrickHelper->TreeToFlatLevelsProperties($oBrick->GetLevels(), $aLevelsProperties); // Consistency checks - if (!in_array($sBrowseMode, array_keys($aBrowseModes))) - { - throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, - 'Browse brick "'.$sBrickId.'" : Unknown browse mode "'.$sBrowseMode.'", availables are '.implode(' / ', - array_keys($aBrowseModes))); + if (!in_array($sBrowseMode, array_keys($aBrowseModes))) { + throw new HttpException( + Response::HTTP_INTERNAL_SERVER_ERROR, + 'Browse brick "'.$sBrickId.'" : Unknown browse mode "'.$sBrowseMode.'", availables are '.implode( + ' / ', + array_keys($aBrowseModes) + ) + ); } - if (empty($aLevelsProperties)) - { + if (empty($aLevelsProperties)) { throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, 'Browse brick "'.$sBrickId.'" : No levels to display.'); } // Building DBObjectSearch $oQuery = null; // ... In this case only we have to build a specific query for the current level only - if (in_array($sBrowseMode, array( + if (in_array($sBrowseMode, [ BrowseBrick::ENUM_BROWSE_MODE_TREE, BrowseBrick::ENUM_BROWSE_MODE_MOSAIC, - )) && ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_LAZY)) - { + ]) && ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_LAZY)) { // Will be handled later in the pagination part } // .. Otherwise - else - { + else { // We iterate (in reverse mode /!\) over the levels to build the whole query, starting from the bottom $aLevelsPropertiesKeys = array_keys($aLevelsProperties); $iLoopMax = count($aLevelsPropertiesKeys) - 1; $oFullBinExpr = null; - for ($i = $iLoopMax; $i >= 0; $i--) - { + for ($i = $iLoopMax; $i >= 0; $i--) { // Retrieving class alias for all depth array_unshift($aLevelsClasses, $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search']->GetClassAlias()); // Joining queries from bottom-up - if ($i < $iLoopMax) - { - $aRealiasingMap = array(); + if ($i < $iLoopMax) { + $aRealiasingMap = []; $oParentAtt = MetaModel::GetAttributeDef($aLevelsProperties[$aLevelsPropertiesKeys[$i + 1]]['search']->GetClass(), $aLevelsProperties[$aLevelsPropertiesKeys[$i + 1]]['parent_att']); // If we work on a n:n link - if($oParentAtt instanceof AttributeLinkedSetIndirect) - { + if ($oParentAtt instanceof AttributeLinkedSetIndirect) { // Create a DBSearch from Link class $oSubSearch = new DBObjectSearch($oParentAtt->GetLinkedClass()); // Join it to the bottom query - $oSubSearch = $oSubSearch->Join($aLevelsProperties[$aLevelsPropertiesKeys[$i + 1]]['search'], - DBSearch::JOIN_POINTING_TO, $oParentAtt->GetExtKeyToMe(), TREE_OPERATOR_EQUALS, $aRealiasingMap); + $oSubSearch = $oSubSearch->Join( + $aLevelsProperties[$aLevelsPropertiesKeys[$i + 1]]['search'], + DBSearch::JOIN_POINTING_TO, + $oParentAtt->GetExtKeyToMe(), + TREE_OPERATOR_EQUALS, + $aRealiasingMap + ); // Join our Link class + bottom query to the up query - $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search'] = $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search'] ->Join($oSubSearch, DBSearch::JOIN_REFERENCED_BY, - $oParentAtt->GetExtKeyToRemote(), TREE_OPERATOR_EQUALS, $aRealiasingMap); + $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search'] = $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search'] ->Join( + $oSubSearch, + DBSearch::JOIN_REFERENCED_BY, + $oParentAtt->GetExtKeyToRemote(), + TREE_OPERATOR_EQUALS, + $aRealiasingMap + ); + } else { + $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search'] = $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search']->Join( + $aLevelsProperties[$aLevelsPropertiesKeys[$i + 1]]['search'], + DBSearch::JOIN_REFERENCED_BY, + $aLevelsProperties[$aLevelsPropertiesKeys[$i + 1]]['parent_att'], + TREE_OPERATOR_EQUALS, + $aRealiasingMap + ); } - else - { - $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search'] = $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search']->Join($aLevelsProperties[$aLevelsPropertiesKeys[$i + 1]]['search'], - DBSearch::JOIN_REFERENCED_BY, $aLevelsProperties[$aLevelsPropertiesKeys[$i + 1]]['parent_att'], - TREE_OPERATOR_EQUALS, $aRealiasingMap); - } - foreach ($aLevelsPropertiesKeys as $sLevelAlias) - { - if (array_key_exists($sLevelAlias, $aRealiasingMap)) - { + foreach ($aLevelsPropertiesKeys as $sLevelAlias) { + if (array_key_exists($sLevelAlias, $aRealiasingMap)) { /** @since 2.7.2 */ - foreach ($aRealiasingMap[$sLevelAlias] as $sAliasToChange) - { + foreach ($aRealiasingMap[$sLevelAlias] as $sAliasToChange) { $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search']->RenameAlias($sAliasToChange, $sLevelAlias); } } @@ -190,8 +194,7 @@ class BrowseBrickController extends BrickController // Adding search clause // Note : For know the search is naive and looks only for the exact match. It doesn't search for words separately - if (strlen($sSearchValue) > 0) - { + if (strlen($sSearchValue) > 0) { // - Cleaning the search value by exploding and trimming spaces $aExplodedSearchValues = explode(' ', $sSearchValue); $aSearchValues = []; @@ -202,25 +205,21 @@ class BrowseBrickController extends BrickController } // - Retrieving fields to search - $aSearchFields = array($aLevelsProperties[$aLevelsPropertiesKeys[$i]]['name_att']); - if (!empty($aLevelsProperties[$aLevelsPropertiesKeys[$i]]['fields'])) - { + $aSearchFields = [$aLevelsProperties[$aLevelsPropertiesKeys[$i]]['name_att']]; + if (!empty($aLevelsProperties[$aLevelsPropertiesKeys[$i]]['fields'])) { $sTmpFieldClass = $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search']->GetClass(); - foreach ($aLevelsProperties[$aLevelsPropertiesKeys[$i]]['fields'] as $aTmpField) - { + foreach ($aLevelsProperties[$aLevelsPropertiesKeys[$i]]['fields'] as $aTmpField) { $sTmpFieldAttCode = $aTmpField['code']; // Skip invalid attcodes - if(!MetaModel::IsValidAttCode($sTmpFieldClass, $sTmpFieldAttCode)) - { + if (!MetaModel::IsValidAttCode($sTmpFieldClass, $sTmpFieldAttCode)) { continue; } // For external key, force search on the friendlyname instead of the ID. // This should be addressed more globally with the bigger issue, see N°1970 $oTmpFieldAttDef = MetaModel::GetAttributeDef($sTmpFieldClass, $sTmpFieldAttCode); - if($oTmpFieldAttDef instanceof AttributeExternalKey) - { + if ($oTmpFieldAttDef instanceof AttributeExternalKey) { $sTmpFieldAttCode .= '_friendlyname'; } @@ -231,60 +230,49 @@ class BrowseBrickController extends BrickController $oLevelBinExpr = null; $iFieldLoopMax = count($aSearchFields) - 1; $iSearchLoopMax = count($aSearchValues) - 1; - for ($j = 0; $j <= $iFieldLoopMax; $j++) - { + for ($j = 0; $j <= $iFieldLoopMax; $j++) { $sTmpFieldAttCode = $aSearchFields[$j]; $oFieldBinExpr = null; //$oFieldBinExpr = new BinaryExpression(new FieldExpression($aSearchFields[$j], $aLevelsPropertiesKeys[$i]), ) - for ($k = 0; $k <= $iSearchLoopMax; $k++) - { - $oSearchBinExpr = new BinaryExpression(new FieldExpression($sTmpFieldAttCode, $aLevelsPropertiesKeys[$i]), - 'LIKE', new VariableExpression('search_value_'.$k)); - if ($k === 0) - { + for ($k = 0; $k <= $iSearchLoopMax; $k++) { + $oSearchBinExpr = new BinaryExpression( + new FieldExpression($sTmpFieldAttCode, $aLevelsPropertiesKeys[$i]), + 'LIKE', + new VariableExpression('search_value_'.$k) + ); + if ($k === 0) { $oFieldBinExpr = $oSearchBinExpr; - } - else - { + } else { $oFieldBinExpr = new BinaryExpression($oFieldBinExpr, 'AND', $oSearchBinExpr); } } - if ($j === 0) - { + if ($j === 0) { $oLevelBinExpr = $oFieldBinExpr; - } - else - { + } else { $oLevelBinExpr = new BinaryExpression($oLevelBinExpr, 'OR', $oFieldBinExpr); } } // - Building query for the level - if ($i === $iLoopMax) - { + if ($i === $iLoopMax) { $oFullBinExpr = $oLevelBinExpr; - } - else - { + } else { $oFullBinExpr = new BinaryExpression($oFullBinExpr, 'OR', $oLevelBinExpr); } // - Adding it to the query when complete - if ($i === 0) - { + if ($i === 0) { $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search']->AddConditionExpression($oFullBinExpr); } } // Setting selected classes and binding parameters - if ($i === 0) - { + if ($i === 0) { $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search']->SetSelectedClasses($aLevelsClasses); - if (strlen($sSearchValue) > 0) - { + if (strlen($sSearchValue) > 0) { // Note : This could be way more simpler if we had a SetInternalParam($sParam, $value) verb $aQueryParams = $aLevelsProperties[$aLevelsPropertiesKeys[$i]]['search']->GetInternalParams(); // Note : $iSearchloopMax was initialized on the previous loop @@ -302,23 +290,26 @@ class BrowseBrickController extends BrickController // - Check how many records there is. // - Update $sDataLoading with its new value regarding the number of record and the threshold $oCountSet = new DBObjectSet($oQuery); - $fThreshold = (float)MetaModel::GetModuleSetting($sPortalId, - 'lazy_loading_threshold'); + $fThreshold = (float)MetaModel::GetModuleSetting( + $sPortalId, + 'lazy_loading_threshold' + ); $sDataLoading = ($oCountSet->Count() > $fThreshold) ? AbstractBrick::ENUM_DATA_LOADING_LAZY : AbstractBrick::ENUM_DATA_LOADING_FULL; unset($oCountSet); } } // Setting query pagination if needed - if ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_LAZY) - { - switch ($sBrowseMode) - { + if ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_LAZY) { + switch ($sBrowseMode) { case BrowseBrick::ENUM_BROWSE_MODE_LIST: // Retrieving parameters $iPageNumber = (int)$this->oRequestManipulatorHelper->ReadParam('iPageNumber', 1, FILTER_SANITIZE_NUMBER_INT); - $iListLength = (int)$this->oRequestManipulatorHelper->ReadParam('iListLength', BrowseBrick::DEFAULT_LIST_LENGTH, - FILTER_SANITIZE_NUMBER_INT); + $iListLength = (int)$this->oRequestManipulatorHelper->ReadParam( + 'iListLength', + BrowseBrick::DEFAULT_LIST_LENGTH, + FILTER_SANITIZE_NUMBER_INT + ); // Getting total records number $oCountSet = new DBObjectSet($oQuery); @@ -337,36 +328,26 @@ class BrowseBrickController extends BrickController $sNodeId = $this->oRequestManipulatorHelper->ReadParam('sNodeId', ''); // If no values for those parameters, we might be loading page in lazy mode for the first time, therefore the URL doesn't have those information. - if (empty($sLevelAlias)) - { + if (empty($sLevelAlias)) { reset($aLevelsProperties); $oQuery = $aLevelsProperties[key($aLevelsProperties)]['search']; - if (!empty($sNodeId)) - { + if (!empty($sNodeId)) { $oQuery->AddCondition('id', $sNodeId); } } // Else we need to find the OQL for that particular level - else - { + else { $bFoundLevel = false; - foreach ($aLevelsProperties as $aLevelProperties) - { - if ($aLevelProperties['alias'] === $sLevelAlias) - { - if (isset($aLevelProperties['levels']) && !empty($aLevelProperties['levels']) && isset($aLevelsProperties[$aLevelProperties['levels'][0]])) - { + foreach ($aLevelsProperties as $aLevelProperties) { + if ($aLevelProperties['alias'] === $sLevelAlias) { + if (isset($aLevelProperties['levels']) && !empty($aLevelProperties['levels']) && isset($aLevelsProperties[$aLevelProperties['levels'][0]])) { $oQuery = $aLevelsProperties[$aLevelProperties['levels'][0]]['search']; - if (!empty($sNodeId)) - { + if (!empty($sNodeId)) { $sParentAttCode = $aLevelsProperties[$aLevelProperties['levels'][0]]['parent_att']; $oParentAtt = MetaModel::GetAttributeDef($oQuery->GetClass(), $sParentAttCode); - if($oParentAtt instanceof AttributeLinkedSetIndirect) - { + if ($oParentAtt instanceof AttributeLinkedSetIndirect) { $oQuery->AddConditionAdvanced($sParentAttCode.'->'.$oParentAtt->GetExtKeyToRemote(), $sNodeId); - } - else - { + } else { $oQuery->AddCondition($sParentAttCode, $sNodeId); } } @@ -376,10 +357,11 @@ class BrowseBrickController extends BrickController } } - if (!$bFoundLevel) - { - throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, - 'Browse brick "'.$sBrickId.'" : Level alias "'.$sLevelAlias.'" is not defined for that brick.'); + if (!$bFoundLevel) { + throw new HttpException( + Response::HTTP_INTERNAL_SERVER_ERROR, + 'Browse brick "'.$sBrickId.'" : Level alias "'.$sLevelAlias.'" is not defined for that brick.' + ); } } @@ -394,34 +376,26 @@ class BrowseBrickController extends BrickController $oSet = new DBObjectSet($oQuery); break; } - } - else - { + } else { $oSet = new DBObjectSet($oQuery); } // Optimizing the ObjectSet to retrieve only necessary columns - $aColumnAttrs = array(); - foreach ($oSet->GetFilter()->GetSelectedClasses() as $sTmpClassAlias => $sTmpClassName) - { - if (isset($aLevelsProperties[$sTmpClassAlias])) - { + $aColumnAttrs = []; + foreach ($oSet->GetFilter()->GetSelectedClasses() as $sTmpClassAlias => $sTmpClassName) { + if (isset($aLevelsProperties[$sTmpClassAlias])) { $aTmpLevelProperties = $aLevelsProperties[$sTmpClassAlias]; // Mandatory main attribute - $aTmpColumnAttrs = array($aTmpLevelProperties['name_att']); + $aTmpColumnAttrs = [$aTmpLevelProperties['name_att']]; // Optional attributes, only if in list mode - if ($sBrowseMode === BrowseBrick::ENUM_BROWSE_MODE_LIST) - { - foreach ($aTmpLevelProperties['fields'] as $aTmpField) - { + if ($sBrowseMode === BrowseBrick::ENUM_BROWSE_MODE_LIST) { + foreach ($aTmpLevelProperties['fields'] as $aTmpField) { $aTmpColumnAttrs[] = $aTmpField['code']; } } // Optional attributes - foreach (BrowseBrickHelper::OPTIONAL_ATTRIBUTES as $sOptionalAttribute) - { - if ($aTmpLevelProperties[$sOptionalAttribute] !== null) - { + foreach (BrowseBrickHelper::OPTIONAL_ATTRIBUTES as $sOptionalAttribute) { + if ($aTmpLevelProperties[$sOptionalAttribute] !== null) { $aTmpColumnAttrs[] = $aTmpLevelProperties[$sOptionalAttribute]; } } @@ -434,20 +408,15 @@ class BrowseBrickController extends BrickController // Setting specified column sort, setting default datamodel one otherwise $aSortedParams = $this->oBrickControllerHelper->ExtractSortParams(); - if (!empty($aSortedParams)) - { + if (!empty($aSortedParams)) { $oSet->SetOrderBy($aSortedParams); - } - else - { + } else { $oSet->SetOrderByClasses(); } // Retrieving results and organizing them for templating - $aItems = array(); - while ($aCurrentRow = $oSet->FetchAssoc()) - { - switch ($sBrowseMode) - { + $aItems = []; + while ($aCurrentRow = $oSet->FetchAssoc()) { + switch ($sBrowseMode) { case BrowseBrick::ENUM_BROWSE_MODE_TREE: case BrowseBrick::ENUM_BROWSE_MODE_MOSAIC: $this->oBrowseBrickHelper->AddToTreeItems($aItems, $aCurrentRow, $aLevelsProperties, null); @@ -460,22 +429,21 @@ class BrowseBrickController extends BrickController } } - IssueLog::Debug('Portal BrowseBrick query', LogChannels::PORTAL, array( + IssueLog::Debug('Portal BrowseBrick query', LogChannels::PORTAL, [ 'sPortalId' => $sPortalId, 'sBrickId' => $sBrickId, 'oql' => $oSet->GetFilter()->ToOQL(), - )); - + ]); // Preparing response if ($oRequest->isXmlHttpRequest()) { - $aData = $aData + array( + $aData = $aData + [ 'data' => $aItems, 'levelsProperties' => $aLevelsProperties, - ); + ]; $oResponse = new JsonResponse($aData); } else { - $aData = $aData + array( + $aData = $aData + [ 'oBrick' => $oBrick, 'sBrickId' => $sBrickId, 'sBrowseMode' => $sBrowseMode, @@ -486,7 +454,7 @@ class BrowseBrickController extends BrickController 'iItemsCount' => count($aItems), 'aLevelsProperties' => json_encode($aLevelsProperties), 'iDefaultLengthList' => $oBrick->GetDefaultListLength(), - ); + ]; // Note : To extend this brick's template, depending on what you want to do : // a) Modify the whole template : @@ -495,13 +463,10 @@ class BrowseBrickController extends BrickController // - Create a template for that browse mode, // - Add the mode to those available in the brick configuration, // - Create a router and add a route for the new browse mode - if ($oBrick->HasInstanceOverriddenTemplate('page')) - { + if ($oBrick->HasInstanceOverriddenTemplate('page')) { $sTemplatePath = $oBrick->GetTemplatePath('page'); - } - else - { - $sTemplatePath = $oBrick->GetTemplatePath('page_' .$sBrowseMode); + } else { + $sTemplatePath = $oBrick->GetTemplatePath('page_'.$sBrowseMode); } $oResponse = $this->render($sTemplatePath, $aData); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/CreateBrickController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/CreateBrickController.php index 3e6cafb25..f79643d54 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/CreateBrickController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/CreateBrickController.php @@ -33,7 +33,6 @@ use Symfony\Component\HttpFoundation\Request; */ class CreateBrickController extends BrickController { - /** * Constructor. * @@ -43,8 +42,7 @@ class CreateBrickController extends BrickController */ public function __construct( protected BrickCollection $oBrickCollection - ) - { + ) { } /** @@ -60,16 +58,15 @@ class CreateBrickController extends BrickController /** @var \Combodo\iTop\Portal\Brick\CreateBrick $oBrick */ $oBrick = $this->oBrickCollection->GetBrickById($sBrickId); - $aRouteParams = array( + $aRouteParams = [ 'sBrickId' => $sBrickId, 'sObjectClass' => $oBrick->GetClass(), 'ar_token' => null, - ); + ]; // Checking for actions rules $aRules = $oBrick->GetRules(); - if (!empty($aRules)) - { + if (!empty($aRules)) { $aRouteParams['ar_token'] = ContextManipulatorHelper::PrepareAndEncodeRulesToken($aRules); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/DefaultController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/DefaultController.php index e8e2d0ae3..1fe241a6b 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/DefaultController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/DefaultController.php @@ -39,8 +39,9 @@ class DefaultController extends AbstractController public static function RegisterTemplates(TemplatesRegister $oTemplatesRegister): void { parent::RegisterTemplates($oTemplatesRegister); - $oTemplatesRegister->RegisterTemplates(self::class, - TemplateDefinitionDto::Create('home', static::TEMPLATES_BASE_PATH . 'home/layout.html.twig'), + $oTemplatesRegister->RegisterTemplates( + self::class, + TemplateDefinitionDto::Create('home', static::TEMPLATES_BASE_PATH.'home/layout.html.twig'), ); } @@ -53,26 +54,24 @@ class DefaultController extends AbstractController */ public function HomeAction(Request $oRequest, BrickCollection $oBricksCollection) { - $aData = array(); + $aData = []; // Rendering tiles - $aData['aTilesRendering'] = array(); - foreach ($oBricksCollection->GetBricks() as $oBrick) - { + $aData['aTilesRendering'] = []; + foreach ($oBricksCollection->GetBricks() as $oBrick) { // Doing it only for tile visible on home page to avoid unnecessary rendering - if (($oBrick->GetVisibleHome() === true) && ($oBrick->GetTileControllerAction() !== null)) - { + if (($oBrick->GetVisibleHome() === true) && ($oBrick->GetTileControllerAction() !== null)) { $aControllerActionParts = explode('::', $oBrick->GetTileControllerAction()); - if (count($aControllerActionParts) !== 2) - { - return new Response('Tile controller action must be of form "\Namespace\ControllerClass::FunctionName" for brick "'.$oBrick->GetId().'"', - 500); + if (count($aControllerActionParts) !== 2) { + return new Response( + 'Tile controller action must be of form "\Namespace\ControllerClass::FunctionName" for brick "'.$oBrick->GetId().'"', + 500 + ); } - $aRouteParams = array(); + $aRouteParams = []; // Add sBrickId in the route params as it is necessary for each brick actions - if (is_a($aControllerActionParts[0], BrickController::class, true)) - { + if (is_a($aControllerActionParts[0], BrickController::class, true)) { $aRouteParams['sBrickId'] = $oBrick->GetId(); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/ManageBrickController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/ManageBrickController.php index dbc289ade..58bac2008 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/ManageBrickController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/ManageBrickController.php @@ -72,18 +72,19 @@ use utils; */ class ManageBrickController extends BrickController { - /** - * @var string EXCEL_EXPORT_TEMPLATE_PATH + /** + * @var string EXCEL_EXPORT_TEMPLATE_PATH * @deprecated since 3.2.1 */ - const EXCEL_EXPORT_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/manage/popup-export-excel.html.twig'; - + public const EXCEL_EXPORT_TEMPLATE_PATH = 'itop-portal-base/portal/templates/bricks/manage/popup-export-excel.html.twig'; + /** @inheritdoc */ public static function RegisterTemplates(TemplatesRegister $oTemplatesRegister): void { parent::RegisterTemplates($oTemplatesRegister); - $oTemplatesRegister->RegisterTemplates(self::class, - TemplateDefinitionDto::Create('modal_export_excel', static::TEMPLATES_BASE_PATH . 'bricks/manage/popup-export-excel.html.twig'), + $oTemplatesRegister->RegisterTemplates( + self::class, + TemplateDefinitionDto::Create('modal_export_excel', static::TEMPLATES_BASE_PATH.'bricks/manage/popup-export-excel.html.twig'), ); } @@ -104,8 +105,7 @@ class ManageBrickController extends BrickController protected RequestManipulatorHelper $oRequestManipulatorHelper, protected SecurityHelper $oSecurityHelper, protected BrickControllerHelper $oBrickControllerHelper - ) - { + ) { } @@ -138,17 +138,15 @@ class ManageBrickController extends BrickController $aData = $this->GetData($oRequest, $sBrickId, $sGroupingTab, $oBrick->IsDetailsNeeded($sDisplayMode)); $aExportFields = $oBrick->GetExportFields(); - $aData = $aData + array( + $aData = $aData + [ 'sDisplayMode' => $sDisplayMode, 'bCanExport' => !empty($aExportFields), 'iDefaultListLength' => $oBrick->GetDefaultListLength(), - ); + ]; // Preparing response if ($oRequest->isXmlHttpRequest()) { $oResponse = new JsonResponse($aData); - } - else - { + } else { $sLayoutTemplate = $oBrick->GetPageTemplate($sDisplayMode); $oResponse = $this->render($sLayoutTemplate, $aData); } @@ -171,14 +169,11 @@ class ManageBrickController extends BrickController /** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */ $oBrick = $this->oBrickCollection->GetBrickById($sBrickId); - try - { + try { $aData = $this->GetData($oRequest, $sBrickId, null); - } - catch (Exception $e) - { + } catch (Exception $e) { // TODO Default values - $aData = array(); + $aData = []; } return $this->render($oBrick->GetTileTemplate(), $aData); @@ -210,37 +205,28 @@ class ManageBrickController extends BrickController $sClass = $oQuery->GetClass(); $aData = $this->GetData($oRequest, $sBrickId, $sGroupingTab, true); - if (isset($aData['aQueries']) && count($aData['aQueries']) === 1) - { + if (isset($aData['aQueries']) && count($aData['aQueries']) === 1) { $aQueries = $aData['aQueries']; reset($aQueries); $sKey = key($aQueries); $oSearch = $aData['aQueries'][$sKey]; - } - else - { + } else { $this->oScopeValidatorHelper->AddScopeToQuery($oQuery, $sClass); - $aData = array(); + $aData = []; $this->ManageSearchValue($aData, $oQuery, $sClass); // Grouping tab - if ($oBrick->HasGroupingTabs()) - { + if ($oBrick->HasGroupingTabs()) { $aGroupingTabs = $oBrick->GetGroupingTabs(); // If tabs are made of the distinct values of an attribute, we have a find them via a query - if ($oBrick->IsGroupingTabsByDistinctValues()) - { + if ($oBrick->IsGroupingTabsByDistinctValues()) { $sGroupingTabAttCode = $aGroupingTabs['attribute']; $aGroupingTabsValues = $this->GroupByAttribute($oQuery, $sGroupingTabAttCode, $oBrick); $oQuery = $oQuery->Intersect($aGroupingTabsValues[$sGroupingTab]['condition']); - } - else - { - foreach ($aGroupingTabs['groups'] as $aGroup) - { - if ($aGroup['id'] === $sGroupingTab) - { + } else { + foreach ($aGroupingTabs['groups'] as $aGroup) { + if ($aGroup['id'] === $sGroupingTab) { $oConditionQuery = $oQuery->Intersect(DBSearch::FromOQL($aGroup['condition'])); $oQuery = $oQuery->Intersect($oConditionQuery); break; @@ -251,29 +237,27 @@ class ManageBrickController extends BrickController // Finalclass $oConditionQuery = DBSearch::CloneWithAlias($oQuery, 'GARE'); - $oExpression = new BinaryExpression(new FieldExpression('finalclass', 'GARE'), '=', - new UnaryExpression($sGroupingArea)); + $oExpression = new BinaryExpression( + new FieldExpression('finalclass', 'GARE'), + '=', + new UnaryExpression($sGroupingArea) + ); $oConditionQuery->AddConditionExpression($oExpression); /** @var DBSearch $oSearch */ $oSearch = $oQuery->Intersect($oConditionQuery); } $aColumnsAttrs = $oBrick->GetExportFields(); - $aFields = array(); + $aFields = []; $sTitleAttrCode = 'friendlyname'; - if (!in_array($sTitleAttrCode, $aColumnsAttrs)) - { + if (!in_array($sTitleAttrCode, $aColumnsAttrs)) { $aFields[] = $sTitleAttrCode; } - foreach ($aColumnsAttrs as $sAttCode) - { + foreach ($aColumnsAttrs as $sAttCode) { $oAttributeDef = MetaModel::GetAttributeDef($sGroupingArea, $sAttCode); - if ($oAttributeDef->IsExternalKey(EXTKEY_ABSOLUTE)) - { + if ($oAttributeDef->IsExternalKey(EXTKEY_ABSOLUTE)) { $aFields[] = $sAttCode.'_friendlyname'; - } - else - { + } else { $aFields[] = $sAttCode; } } @@ -288,12 +272,12 @@ class ManageBrickController extends BrickController $oExporter->SetLocalizeOutput(true); $oExporter->SetFields($sFields); - $aData = array( + $aData = [ 'oBrick' => $oBrick, 'sBrickId' => $sBrickId, 'sToken' => $oExporter->SaveState(), - 'sWikiUrl' => 'https://www.itophub.io/wiki/page?id='.utils::GetItopVersionWikiSyntax().'%3Auser%3Alists#excel_export', - ); + 'sWikiUrl' => 'https://www.itophub.io/wiki/page?id='.utils::GetItopVersionWikiSyntax().'%3Auser%3Alists#excel_export', + ]; return $this->render($this->GetTemplatePath('modal_export_excel'), $aData); } @@ -323,10 +307,10 @@ class ManageBrickController extends BrickController /** @var \Combodo\iTop\Portal\Brick\ManageBrick $oBrick */ $oBrick = $this->oBrickCollection->GetBrickById($sBrickId); - $aData = array(); - $aGroupingTabsValues = array(); - $aGroupingAreasValues = array(); - $aQueries = array(); + $aData = []; + $aGroupingTabsValues = []; + $aGroupingAreasValues = []; + $aQueries = []; $bHasScope = true; // Getting current data loading mode (First from router parameter, then query parameter, then default brick value) @@ -334,8 +318,7 @@ class ManageBrickController extends BrickController // - Retrieving the grouping areas to display $sGroupingArea = $this->oRequestManipulatorHelper->ReadParam('sGroupingArea', ''); - if (!empty($sGroupingArea)) - { + if (!empty($sGroupingArea)) { $bNeedDetails = true; } @@ -343,9 +326,8 @@ class ManageBrickController extends BrickController $aColumnsAttrs = $oBrick->GetFields(); // Adding friendlyname attribute to the list if not already in it $sTitleAttrCode = 'friendlyname'; - if (($sTitleAttrCode !== null) && !in_array($sTitleAttrCode, $aColumnsAttrs)) - { - $aColumnsAttrs = array_merge(array($sTitleAttrCode), $aColumnsAttrs); + if (($sTitleAttrCode !== null) && !in_array($sTitleAttrCode, $aColumnsAttrs)) { + $aColumnsAttrs = array_merge([$sTitleAttrCode], $aColumnsAttrs); } // Starting to build query @@ -356,100 +338,78 @@ class ManageBrickController extends BrickController // Preparing tabs // - We need to retrieve distinct values for the grouping attribute $iCount = 0; - if ($oBrick->HasGroupingTabs()) - { + if ($oBrick->HasGroupingTabs()) { $aGroupingTabs = $oBrick->GetGroupingTabs(); // If tabs are made of the distinct values of an attribute, we have a find them via a query - if ($oBrick->IsGroupingTabsByDistinctValues()) - { + if ($oBrick->IsGroupingTabsByDistinctValues()) { $sGroupingTabAttCode = $aGroupingTabs['attribute']; $aGroupingTabsValues = $this->GroupByAttribute($oQuery, $sGroupingTabAttCode, $oBrick); - foreach ($aGroupingTabsValues as $aResult) - { + foreach ($aGroupingTabsValues as $aResult) { $iCount += $aResult['count']; } } // Otherwise we create the tabs from the SQL expressions - else - { - $aConditionQueryGrouping = array(); - foreach ($aGroupingTabs['groups'] as $aGroup) - { + else { + $aConditionQueryGrouping = []; + foreach ($aGroupingTabs['groups'] as $aGroup) { $oDBSearch = DBSearch::FromOQL($aGroup['condition']); $oConditionQuery = $oQuery->Intersect($oDBSearch); // - Restricting query to scope - array_push($aConditionQueryGrouping,$oDBSearch); + array_push($aConditionQueryGrouping, $oDBSearch); $bHasScope = $this->oScopeValidatorHelper->AddScopeToQuery($oConditionQuery, $oConditionQuery->GetClass()); - if ($bHasScope) - { + if ($bHasScope) { // - Building ObjectSet $oConditionSet = new DBObjectSet($oConditionQuery); $iGroupCount = $oConditionSet->Count(); - } - else - { + } else { $oConditionSet = null; $iGroupCount = 0; } - $aGroupingTabsValues[$aGroup['id']] = array( + $aGroupingTabsValues[$aGroup['id']] = [ 'value' => $aGroup['id'], 'label' => Dict::S($aGroup['title']), 'label_html' => Dict::S($aGroup['title']), - 'description' => array_key_exists('description',$aGroup) ? Dict::S($aGroup['description']) : null, + 'description' => array_key_exists('description', $aGroup) ? Dict::S($aGroup['description']) : null, 'condition' => $oConditionQuery, 'count' => $iGroupCount, - ); + ]; } - try - { + try { $oConditionQuery = $oQuery->Intersect(new DBUnionSearch($aConditionQueryGrouping)); $bHasScope = $this->oScopeValidatorHelper->AddScopeToQuery($oConditionQuery, $oConditionQuery->GetClass()); - if ($bHasScope) - { + if ($bHasScope) { // - Building ObjectSet $oConditionSet = new DBObjectSet($oConditionQuery); $iCount = $oConditionSet->Count(); - } - else - { + } else { $oConditionSet = null; $iCount = 0; } - } - catch (Exception $e){ + } catch (Exception $e) { $oConditionSet = null; $iCount = -1; } } - } - else - { + } else { $oConditionQuery = $this->GetScopedQuery($oBrick, $sClass); - if (!is_null($oConditionQuery)) - { + if (!is_null($oConditionQuery)) { $oSet = new DBObjectSet($oConditionQuery); $iCount = $oSet->Count(); } } // - Retrieving the current grouping tab to display if necessary and altering the query to do so - if (empty($sGroupingTab)) - { - if ($oBrick->HasGroupingTabs()) - { + if (empty($sGroupingTab)) { + if ($oBrick->HasGroupingTabs()) { reset($aGroupingTabsValues); $sGroupingTab = key($aGroupingTabsValues); - if ($aGroupingTabsValues[$sGroupingTab]['condition'] !== null) - { + if ($aGroupingTabsValues[$sGroupingTab]['condition'] !== null) { $oQuery = $aGroupingTabsValues[$sGroupingTab]['condition']->DeepClone(); } } - } - else - { - if ($aGroupingTabsValues[$sGroupingTab]['condition'] !== null) - { + } else { + if ($aGroupingTabsValues[$sGroupingTab]['condition'] !== null) { $oQuery = $aGroupingTabsValues[$sGroupingTab]['condition']->DeepClone(); } } @@ -464,60 +424,56 @@ class ManageBrickController extends BrickController // - We need to retrieve distinct values for the grouping attribute // Note : Will have to be changed when we consider grouping on something else than the finalclass $sParentAlias = $oQuery->GetClassAlias(); - if ($bNeedDetails) - { + if ($bNeedDetails) { $sGroupingAreaAttCode = 'finalclass'; // For root classes - if (MetaModel::IsValidAttCode($sClass, $sGroupingAreaAttCode)) - { + if (MetaModel::IsValidAttCode($sClass, $sGroupingAreaAttCode)) { $oDistinctQuery = $this->GetScopedQuery($oBrick, $sClass); // Adding grouping conditions $oFieldExp = new FieldExpression($sGroupingAreaAttCode, $oDistinctQuery->GetClassAlias()); - $sDistinctSql = $oDistinctQuery->MakeGroupByQuery(array(), array('grouped_by_1' => $oFieldExp), true); + $sDistinctSql = $oDistinctQuery->MakeGroupByQuery([], ['grouped_by_1' => $oFieldExp], true); $aDistinctResults = CMDBSource::QueryToArray($sDistinctSql); - foreach ($aDistinctResults as $aDistinctResult) - { + foreach ($aDistinctResults as $aDistinctResult) { $oConditionQuery = DBSearch::CloneWithAlias($oQuery, 'GARE'); - $oExpression = new BinaryExpression(new FieldExpression($sGroupingAreaAttCode, 'GARE'), '=', - new UnaryExpression($aDistinctResult['grouped_by_1'])); + $oExpression = new BinaryExpression( + new FieldExpression($sGroupingAreaAttCode, 'GARE'), + '=', + new UnaryExpression($aDistinctResult['grouped_by_1']) + ); $oConditionQuery->AddConditionExpression($oExpression); - $aGroupingAreasValues[$aDistinctResult['grouped_by_1']] = array( + $aGroupingAreasValues[$aDistinctResult['grouped_by_1']] = [ 'value' => $aDistinctResult['grouped_by_1'], 'label' => MetaModel::GetName($aDistinctResult['grouped_by_1']), // Caution : This works only because we froze the grouping areas on the finalclass attribute. 'condition' => $oConditionQuery, 'count' => $aDistinctResult['_itop_count_'], - ); + ]; unset($oConditionQuery); } unset($aDistinctResults); } // For leaf classes - else - { - $aGroupingAreasValues[$sClass] = array( + else { + $aGroupingAreasValues[$sClass] = [ 'value' => $sClass, 'label' => MetaModel::GetName($sClass), // Caution : This works only because we froze the grouping areas on the finalclass attribute. 'condition' => null, 'count' => 0, - ); + ]; } // - If specified or lazy loading, we truncate the $aGroupingAreasValues to keep only this one - if (!empty($sGroupingArea)) - { - $aGroupingAreasValues = array($sGroupingArea => $aGroupingAreasValues[$sGroupingArea]); + if (!empty($sGroupingArea)) { + $aGroupingAreasValues = [$sGroupingArea => $aGroupingAreasValues[$sGroupingArea]]; } // - Preparing the queries - foreach ($aGroupingAreasValues as $sKey => $aGroupingAreasValue) - { + foreach ($aGroupingAreasValues as $sKey => $aGroupingAreasValue) { $oAreaQuery = DBSearch::CloneWithAlias($oQuery, $sParentAlias); - if ($aGroupingAreasValue['condition'] !== null) - { + if ($aGroupingAreasValue['condition'] !== null) { $oAreaQuery = $aGroupingAreasValue['condition']->DeepClone(); } @@ -525,8 +481,7 @@ class ManageBrickController extends BrickController // Note: Will need to moved the scope restriction on queries elsewhere when we consider grouping on something else than finalclass // Note: We now get view scope instead of edit scope as we allowed users to view/edit objects in the brick regarding their rights $bHasScope = $this->oScopeValidatorHelper->AddScopeToQuery($oAreaQuery, $aGroupingAreasValue['value']); - if (!$bHasScope) - { + if (!$bHasScope) { // if no scope apply does not allow any data $oAreaQuery = null; } @@ -538,71 +493,64 @@ class ManageBrickController extends BrickController // Testing appropriate data loading mode if we are in auto // - For all (html) tables, this doesn't care for the grouping ares (finalclass) - if ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_AUTO) - { + if ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_AUTO) { // - Check how many records there is. // - Update $sDataLoading with its new value regarding the number of record and the threshold $oCountSet = new DBObjectSet($oQuery); - $oCountSet->OptimizeColumnLoad(array($oQuery->GetClassAlias() => array())); - $fThreshold = (float)MetaModel::GetModuleSetting($sPortalId, - 'lazy_loading_threshold'); + $oCountSet->OptimizeColumnLoad([$oQuery->GetClassAlias() => []]); + $fThreshold = (float)MetaModel::GetModuleSetting( + $sPortalId, + 'lazy_loading_threshold' + ); $sDataLoading = ($oCountSet->Count() > $fThreshold) ? AbstractBrick::ENUM_DATA_LOADING_LAZY : AbstractBrick::ENUM_DATA_LOADING_FULL; unset($oCountSet); } // Preparing data sets - $aSets = array(); + $aSets = []; /** @var DBSearch $oQuery */ - foreach ($aQueries as $sKey => $oQuery) - { + foreach ($aQueries as $sKey => $oQuery) { // Checking if we have a valid query - if ($oQuery !== null) - { + if ($oQuery !== null) { // - Adding search clause if necessary $this->ManageSearchValue($aData, $oQuery, $sKey, $aColumnsAttrs); - + // Setting query pagination if needed - if ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_LAZY) - { + if ($sDataLoading === AbstractBrick::ENUM_DATA_LOADING_LAZY) { // Retrieving parameters $iPageNumber = (int)$this->oRequestManipulatorHelper->ReadParam('iPageNumber', 1, FILTER_SANITIZE_NUMBER_INT); - $iListLength = (int)$this->oRequestManipulatorHelper->ReadParam('iListLength', ManageBrick::DEFAULT_LIST_LENGTH, - FILTER_SANITIZE_NUMBER_INT); + $iListLength = (int)$this->oRequestManipulatorHelper->ReadParam( + 'iListLength', + ManageBrick::DEFAULT_LIST_LENGTH, + FILTER_SANITIZE_NUMBER_INT + ); // Getting total records number $oCountSet = new DBObjectSet($oQuery); - $oCountSet->OptimizeColumnLoad(array($oQuery->GetClassAlias() => $aColumnsAttrs)); + $oCountSet->OptimizeColumnLoad([$oQuery->GetClassAlias() => $aColumnsAttrs]); $aData['recordsTotal'] = $oCountSet->Count(); $aData['recordsFiltered'] = $oCountSet->Count(); unset($oCountSet); $oSet = new DBObjectSet($oQuery); $oSet->SetLimit($iListLength, $iListLength * ($iPageNumber - 1)); - } - else - { + } else { $oSet = new DBObjectSet($oQuery); } // Setting specified column sort, setting default datamodel one otherwise - if (!empty($aSortedParams)) - { + if (!empty($aSortedParams)) { $oSet->SetOrderBy($aSortedParams); - } - else - { + } else { $oSet->SetOrderByClasses(); } // Adding always_in_tables attributes - $aColumnsToLoad = array($oQuery->GetClassAlias() => $aColumnsAttrs); - foreach ($oQuery->GetSelectedClasses() as $sAlias => $sClassSelected) - { + $aColumnsToLoad = [$oQuery->GetClassAlias() => $aColumnsAttrs]; + foreach ($oQuery->GetSelectedClasses() as $sAlias => $sClassSelected) { /** @var AttributeDefinition $oAttDef */ - foreach (MetaModel::ListAttributeDefs($sClassSelected) as $sAttCode => $oAttDef) - { - if ($oAttDef->AlwaysLoadInTables()) - { + foreach (MetaModel::ListAttributeDefs($sClassSelected) as $sAttCode => $oAttDef) { + if ($oAttDef->AlwaysLoadInTables()) { $aColumnsToLoad[$sAlias][] = $sAttCode; } } @@ -610,17 +558,18 @@ class ManageBrickController extends BrickController // Note: $aColumnToLoad already contains array of aliases => attcodes $oSet->OptimizeColumnLoad($aColumnsToLoad); - $this->oSecurityHelper->PreloadForCache($oSet->GetFilter(), - $aColumnsToLoad[$oQuery->GetClassAlias()] /* preloading only extkeys from the main class */); + $this->oSecurityHelper->PreloadForCache( + $oSet->GetFilter(), + $aColumnsToLoad[$oQuery->GetClassAlias()] /* preloading only extkeys from the main class */ + ); $aSets[$sKey] = $oSet; } } // Retrieving and preparing data for rendering - $aGroupingAreasData = array(); + $aGroupingAreasData = []; $bHasObjectListItemExtension = false; - foreach ($aSets as $sKey => $oSet) - { + foreach ($aSets as $sKey => $oSet) { // Set properties $sCurrentClass = $sKey; @@ -628,94 +577,88 @@ class ManageBrickController extends BrickController $sMainActionAttrCode = $aColumnsAttrs[0]; // Loading columns definition - $aColumnsDefinition = array(); - foreach ($aColumnsAttrs as $sColumnAttr) - { + $aColumnsDefinition = []; + foreach ($aColumnsAttrs as $sColumnAttr) { $oAttDef = MetaModel::GetAttributeDef($sKey, $sColumnAttr); - $aColumnsDefinition[$sColumnAttr] = array( + $aColumnsDefinition[$sColumnAttr] = [ 'title' => $oAttDef->GetLabel(), 'type' => ($oAttDef instanceof AttributeDateTime) ? 'moment-'.$oAttDef->GetFormat()->ToMomentJS() : 'html', // Special sorting for Date & Time - ); + ]; } // Getting items - $aItems = array(); + $aItems = []; // ... For each item /** @var DBObject $oCurrentRow */ - while ($oCurrentRow = $oSet->Fetch()) - { + while ($oCurrentRow = $oSet->Fetch()) { $sCurrentObjectClass = get_class($oCurrentRow); $sCurrentObjectId = $oCurrentRow->GetKey(); // ... Retrieving item's attributes values - $aItemAttrs = array(); - foreach ($aColumnsAttrs as $sItemAttr) - { - $aActions = array(); + $aItemAttrs = []; + foreach ($aColumnsAttrs as $sItemAttr) { + $aActions = []; // Set the edit action to the main (first) attribute only //if ($sItemAttr === $sTitleAttrCode) - if ($sItemAttr === $sMainActionAttrCode) - { + if ($sItemAttr === $sMainActionAttrCode) { // Checking if we can edit the object - if (($oBrick->GetOpeningMode() === ManageBrick::ENUM_ACTION_EDIT) && $this->oSecurityHelper->IsActionAllowed(UR_ACTION_MODIFY, - $sCurrentClass, $oCurrentRow->GetKey())) - { + if (($oBrick->GetOpeningMode() === ManageBrick::ENUM_ACTION_EDIT) && $this->oSecurityHelper->IsActionAllowed( + UR_ACTION_MODIFY, + $sCurrentClass, + $oCurrentRow->GetKey() + )) { $sActionType = ManageBrick::ENUM_ACTION_EDIT; } // - Otherwise, check if view is allowed - elseif ($this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sCurrentClass, - $oCurrentRow->GetKey())) - { + elseif ($this->oSecurityHelper->IsActionAllowed( + UR_ACTION_READ, + $sCurrentClass, + $oCurrentRow->GetKey() + )) { $sActionType = ManageBrick::ENUM_ACTION_VIEW; - } - else - { + } else { $sActionType = null; } // - Then set allowed action - if ($sActionType !== null) - { - $aActions[] = array( + if ($sActionType !== null) { + $aActions[] = [ 'type' => $sActionType, 'class' => $sCurrentClass, 'id' => $oCurrentRow->GetKey(), 'opening_target' => $oBrick->GetOpeningTarget(), - ); + ]; } } /** @var \AttributeDefinition $oAttDef */ $oAttDef = MetaModel::GetAttributeDef($sCurrentClass, $sItemAttr); $sAttDefClass = get_class($oAttDef); - if ($oAttDef->IsExternalKey()) - { + if ($oAttDef->IsExternalKey()) { /** @var \AttributeExternalKey $oAttDef */ $sValue = $oCurrentRow->GetAsHTML($sItemAttr.'_friendlyname'); $sSortValue = $oCurrentRow->Get($sItemAttr.'_friendlyname'); // Adding a view action on the external keys - if ($oCurrentRow->Get($sItemAttr) !== $oAttDef->GetNullValue()) - { + if ($oCurrentRow->Get($sItemAttr) !== $oAttDef->GetNullValue()) { // Checking if we can view the object - if (($this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $oAttDef->GetTargetClass(), - $oCurrentRow->Get($sItemAttr)))) - { - $aActions[] = array( + if (($this->oSecurityHelper->IsActionAllowed( + UR_ACTION_READ, + $oAttDef->GetTargetClass(), + $oCurrentRow->Get($sItemAttr) + ))) { + $aActions[] = [ 'type' => ManageBrick::ENUM_ACTION_VIEW, 'class' => $oAttDef->GetTargetClass(), 'id' => $oCurrentRow->Get($sItemAttr), 'opening_target' => $oBrick->GetOpeningTarget(), - ); + ]; } } - } - elseif ($oAttDef instanceof AttributeImage) - { + } elseif ($oAttDef instanceof AttributeImage) { /** @var \ormDocument $oOrmDoc */ $oOrmDoc = $oCurrentRow->Get($sItemAttr); - if (is_object($oOrmDoc) && !$oOrmDoc->IsEmpty()) - { + if (is_object($oOrmDoc) && !$oOrmDoc->IsEmpty()) { $sUrl = $this->oUrlGenerator->generate('p_object_document_display', [ 'sObjectClass' => get_class($oCurrentRow), 'sObjectId' => $oCurrentRow->GetKey(), @@ -723,16 +666,12 @@ class ManageBrickController extends BrickController 'cache' => 86400, 's' => $oOrmDoc->GetSignature(), ]); - } - else - { + } else { $sUrl = $oAttDef->Get('default_image'); } $sValue = ''; $sSortValue = null; - } - elseif ($oAttDef instanceof AttributeTagSet) - { + } elseif ($oAttDef instanceof AttributeTagSet) { /** @var \ormTagSet $oSetValues */ $oSetValues = $oCurrentRow->Get($sItemAttr); $aCodes = $oSetValues->GetTags(); @@ -754,17 +693,15 @@ class ManageBrickController extends BrickController // For simple fields, we get the raw (stored) value as well $bExcludeRawValue = false; - foreach (ApplicationHelper::GetAttDefClassesToExcludeFromMarkupMetadataRawValue() as $sAttDefClassToExclude) - { - if (is_a($sAttDefClass, $sAttDefClassToExclude, true)) - { + foreach (ApplicationHelper::GetAttDefClassesToExcludeFromMarkupMetadataRawValue() as $sAttDefClassToExclude) { + if (is_a($sAttDefClass, $sAttDefClassToExclude, true)) { $bExcludeRawValue = true; break; } } $attValueRaw = ($bExcludeRawValue === false) ? $oCurrentRow->Get($sItemAttr) : null; - $aItemAttrs[$sItemAttr] = array( + $aItemAttrs[$sItemAttr] = [ 'object_class' => $sCurrentObjectClass, 'object_id' => $sCurrentObjectId, 'attribute_code' => $sItemAttr, @@ -773,114 +710,105 @@ class ManageBrickController extends BrickController 'value_html' => $sValue, 'sort_value' => $sSortValue, 'actions' => $aActions, - ); + ]; } // ... Checking menu extensions - $aItemButtons = array(); + $aItemButtons = []; /** @var iPopupMenuExtension $oExtensionInstance */ - foreach (MetaModel::EnumPlugins('iPopupMenuExtension') as $oExtensionInstance) - { - foreach ($oExtensionInstance->EnumItems(iPopupMenuExtension::PORTAL_OBJLISTITEM_ACTIONS, array( + foreach (MetaModel::EnumPlugins('iPopupMenuExtension') as $oExtensionInstance) { + foreach ($oExtensionInstance->EnumItems(iPopupMenuExtension::PORTAL_OBJLISTITEM_ACTIONS, [ 'portal_id' => $sPortalId, 'object' => $oCurrentRow, - )) as $oMenuItem) - { - if (is_object($oMenuItem)) - { - if ($oMenuItem instanceof JSButtonItem) - { - $aItemButtons[] = $oMenuItem->GetMenuItem() + array( + ]) as $oMenuItem) { + if (is_object($oMenuItem)) { + if ($oMenuItem instanceof JSButtonItem) { + $aItemButtons[] = $oMenuItem->GetMenuItem() + [ 'js_files' => $oMenuItem->GetLinkedScripts(), 'type' => 'button', - ); - } - elseif ($oMenuItem instanceof URLButtonItem) - { - $aItemButtons[] = $oMenuItem->GetMenuItem() + array('type' => 'link'); + ]; + } elseif ($oMenuItem instanceof URLButtonItem) { + $aItemButtons[] = $oMenuItem->GetMenuItem() + ['type' => 'link']; } } } } // ... And item's properties - $aItems[] = array( + $aItems[] = [ 'id' => $oCurrentRow->GetKey(), 'class' => $sCurrentClass, 'attributes' => $aItemAttrs, 'highlight_class' => $oCurrentRow->GetHilightClass(), 'actions' => $aItemButtons, - ); + ]; - if (!empty($aItemButtons)) - { + if (!empty($aItemButtons)) { $bHasObjectListItemExtension = true; } } // Adding an extra column for object list item extensions - if ($bHasObjectListItemExtension === true) - { - $aColumnsDefinition['_ui_extensions'] = array( + if ($bHasObjectListItemExtension === true) { + $aColumnsDefinition['_ui_extensions'] = [ 'title' => Dict::S('Brick:Portal:Manage:Table:ItemActions'), 'type' => 'html', - ); + ]; } - $aGroupingAreasData[$sKey] = array( + $aGroupingAreasData[$sKey] = [ 'sId' => $sKey, 'sTitle' => $aGroupingAreasValues[$sKey]['label'], 'aItems' => $aItems, 'iItemsCount' => $oSet->Count(), 'aColumnsDefinition' => $aColumnsDefinition, - ); + ]; - IssueLog::Debug('Portal ManageBrick query', LogChannels::PORTAL, array( + IssueLog::Debug('Portal ManageBrick query', LogChannels::PORTAL, [ 'sPortalId' => $sPortalId, 'sBrickId' => $sBrickId, 'sGroupingTab' => $sGroupingTab, 'oql' => $oSet->GetFilter()->ToOQL(), 'aGroupingTabs' => $aGroupingTabs, - )); + ]); } } else { - $aGroupingAreasData = array(); + $aGroupingAreasData = []; $sGroupingArea = null; } // Preparing response if ($oRequest->isXmlHttpRequest()) { - $aData = $aData + array( + $aData = $aData + [ 'data' => $aGroupingAreasData[$sGroupingArea]['aItems'], - ); + ]; } else { - $aDisplayValues = array(); - $aUrls = array(); - $aColumns = array(); - $aNames = array(); + $aDisplayValues = []; + $aUrls = []; + $aColumns = []; + $aNames = []; if ($bHasScope) { foreach ($aGroupingTabsValues as $aValues) { - $aDisplayValues[] = array( + $aDisplayValues[] = [ 'value' => $aValues['count'], 'label' => $aValues['label'], 'label_html' => $aValues['label_html'], - ); - $aUrls[] = $this->oUrlGenerator->generate('p_manage_brick_display_as', array( + ]; + $aUrls[] = $this->oUrlGenerator->generate('p_manage_brick_display_as', [ 'sBrickId' => $sBrickId, 'sDisplayMode' => 'list', 'sGroupingTab' => $aValues['value'], - )); + ]); } - foreach ($aDisplayValues as $idx => $aValue) - { - $aColumns[] = array('series_'.$idx, (int)$aValue['value']); + foreach ($aDisplayValues as $idx => $aValue) { + $aColumns[] = ['series_'.$idx, (int)$aValue['value']]; $aNames['series_'.$idx] = $aValue['label']; } } // Preparing data to pass to the templating service - $aData = $aData + array( + $aData = $aData + [ 'sFct' => 'count', 'sIconURL' => $sIconURL, 'aColumns' => $aColumns, @@ -896,7 +824,7 @@ class ManageBrickController extends BrickController 'sDateFormat' => AttributeDate::GetFormat()->ToMomentJS(), 'sDateTimeFormat' => AttributeDateTime::GetFormat()->ToMomentJS(), 'iCount' => $iCount, - ); + ]; } return $aData; @@ -911,7 +839,7 @@ class ManageBrickController extends BrickController * @throws \CoreException * @throws \Exception */ - protected function ManageSearchValue(&$aData, DBSearch &$oQuery, $sClass, $aColumnsAttrs = array()) + protected function ManageSearchValue(&$aData, DBSearch &$oQuery, $sClass, $aColumnsAttrs = []) { // Getting search value $sRawSearchValue = trim($this->oRequestManipulatorHelper->ReadParam('sSearchValue', '')); @@ -975,24 +903,22 @@ class ManageBrickController extends BrickController * @throws \OQLException * @throws \Exception */ - protected function GroupByAttribute(DBSearch $oQuery, $sGroupingTabAttCode, ManageBrick $oBrick) { + protected function GroupByAttribute(DBSearch $oQuery, $sGroupingTabAttCode, ManageBrick $oBrick) + { - $aGroupingTabsValues = array(); - $aDistinctResults = array(); + $aGroupingTabsValues = []; + $aDistinctResults = []; $oDistinctQuery = DBSearch::FromOQL($oBrick->GetOql()); $bHasScope = $this->oScopeValidatorHelper->AddScopeToQuery($oDistinctQuery, $oDistinctQuery->GetClass()); - if ($bHasScope) - { + if ($bHasScope) { // - Adding field condition $oFieldExp = new FieldExpression($sGroupingTabAttCode, $oDistinctQuery->GetClassAlias()); - $sDistinctSql = $oDistinctQuery->MakeGroupByQuery(array(), array('grouped_by_1' => $oFieldExp), true); + $sDistinctSql = $oDistinctQuery->MakeGroupByQuery([], ['grouped_by_1' => $oFieldExp], true); $aDistinctResults = CMDBSource::QueryToArray($sDistinctSql); - if (!empty($aDistinctResults)) - { + if (!empty($aDistinctResults)) { $iLimit = $oBrick->GetGroupLimit(); - $aOthers = array(); - if ($iLimit > 0) - { + $aOthers = []; + if ($iLimit > 0) { uasort($aDistinctResults, function ($a, $b) { $v1 = $a['_itop_count_']; $v2 = $b['_itop_count_']; @@ -1000,77 +926,72 @@ class ManageBrickController extends BrickController return ($v1 == $v2) ? 0 : (($v1 > $v2) ? -1 : 1); }); - if (count($aDistinctResults) > $iLimit) - { - if ($oBrick->ShowGroupOthers()) - { + if (count($aDistinctResults) > $iLimit) { + if ($oBrick->ShowGroupOthers()) { $aOthers = array_slice($aDistinctResults, $iLimit); } $aDistinctResults = array_slice($aDistinctResults, 0, $iLimit); } } - foreach ($aDistinctResults as $aDistinctResult) - { + foreach ($aDistinctResults as $aDistinctResult) { $oConditionQuery = DBSearch::CloneWithAlias($oQuery, 'GTAB'); - $oExpression = new BinaryExpression(new FieldExpression($sGroupingTabAttCode, - $oConditionQuery->GetClassAlias()), '=', new UnaryExpression($aDistinctResult['grouped_by_1'])); + $oExpression = new BinaryExpression(new FieldExpression( + $sGroupingTabAttCode, + $oConditionQuery->GetClassAlias() + ), '=', new UnaryExpression($aDistinctResult['grouped_by_1'])); $oConditionQuery->AddConditionExpression($oExpression); $sHtmlLabel = $oFieldExp->MakeValueLabel($oDistinctQuery, $aDistinctResult['grouped_by_1'], ''); - $aGroupingTabsValues[$aDistinctResult['grouped_by_1']] = array( + $aGroupingTabsValues[$aDistinctResult['grouped_by_1']] = [ 'value' => $aDistinctResult['grouped_by_1'], 'label_html' => $sHtmlLabel, 'label' => strip_tags(html_entity_decode($sHtmlLabel, ENT_QUOTES, 'UTF-8')), 'condition' => $oConditionQuery, 'count' => $aDistinctResult['_itop_count_'], - ); + ]; unset($oConditionQuery); } - if (!empty($aOthers)) - { + if (!empty($aOthers)) { // Aggregate others $oConditionQuery = DBSearch::CloneWithAlias($oQuery, 'GTAB'); $oExpression = null; $iOtherCount = 0; - foreach ($aOthers as $aResult) - { + foreach ($aOthers as $aResult) { $iOtherCount += $aResult['_itop_count_']; - $oExpr = new BinaryExpression(new FieldExpression($sGroupingTabAttCode, - $oConditionQuery->GetClassAlias()), '=', new UnaryExpression($aResult['grouped_by_1'])); - if (is_null($oExpression)) - { + $oExpr = new BinaryExpression(new FieldExpression( + $sGroupingTabAttCode, + $oConditionQuery->GetClassAlias() + ), '=', new UnaryExpression($aResult['grouped_by_1'])); + if (is_null($oExpression)) { $oExpression = $oExpr; - } - else - { + } else { $oExpression = new BinaryExpression($oExpression, 'OR', $oExpr); } } $oConditionQuery->AddConditionExpression($oExpression); $sLabel = Dict::S('Brick:Portal:Manage:Others'); - $aGroupingTabsValues['Others'] = array( + $aGroupingTabsValues['Others'] = [ 'value' => 'Others', 'label_html' => $sLabel, 'label' => $sLabel, 'condition' => $oConditionQuery, 'count' => $iOtherCount, - ); + ]; unset($oConditionQuery); } } } - if (empty($aDistinctResults)) - { + if (empty($aDistinctResults)) { $sLabel = Dict::S('Brick:Portal:Manage:All'); - $aGroupingTabsValues['undefined'] = array( + $aGroupingTabsValues['undefined'] = [ 'value' => 'All', 'label_html' => $sLabel, 'label' => $sLabel, 'condition' => null, 'count' => 0, - ); + ]; } return $aGroupingTabsValues; diff --git a/datamodels/2.x/itop-portal-base/portal/src/Controller/SessionMessageController.php b/datamodels/2.x/itop-portal-base/portal/src/Controller/SessionMessageController.php index f6fb63300..1499898af 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Controller/SessionMessageController.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Controller/SessionMessageController.php @@ -36,7 +36,6 @@ use Symfony\Component\HttpKernel\Exception\HttpException; */ class SessionMessageController extends AbstractController { - /** * @param \Combodo\iTop\Portal\Helper\RequestManipulatorHelper $oRequestManipulatorHelper * @param \Combodo\iTop\Portal\Helper\SessionMessageHelper $oSessionMessageHelper @@ -46,8 +45,7 @@ class SessionMessageController extends AbstractController public function __construct( protected RequestManipulatorHelper $oRequestManipulatorHelper, protected SessionMessageHelper $oSessionMessageHelper - ) - { + ) { } /** @@ -57,15 +55,14 @@ class SessionMessageController extends AbstractController */ public function AddMessageAction(Request $oRequest) { - $aData = array(); + $aData = []; // Retrieve parameters $sMessageSeverity = $this->oRequestManipulatorHelper->ReadParam('sSeverity'); $sMessageContent = $this->oRequestManipulatorHelper->ReadParam('sContent'); // Check parameters consistency - if (empty($sMessageSeverity) || empty($sMessageContent)) - { + if (empty($sMessageSeverity) || empty($sMessageContent)) { throw new HttpException(Response::HTTP_BAD_REQUEST, 'Message must have a severity and a content, make sure both sSeverity & sContent parameters are sent.'); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/DataCollector/PortalCollector.php b/datamodels/2.x/itop-portal-base/portal/src/DataCollector/PortalCollector.php index 5e4c70340..3bf050697 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/DataCollector/PortalCollector.php +++ b/datamodels/2.x/itop-portal-base/portal/src/DataCollector/PortalCollector.php @@ -16,7 +16,6 @@ use Throwable; */ class PortalCollector extends AbstractDataCollector { - /** * Constructor. * @@ -100,13 +99,13 @@ class PortalCollector extends AbstractDataCollector $iOverridesCount = 0; $aExtensions = []; - foreach($aTemplatesDefinitions as $templates){ + foreach ($aTemplatesDefinitions as $templates) { foreach ($templates as $template) { $aMatches = []; preg_match('#([\w-]+)/#', $template->GetPath(), $aMatches); - if(!in_array($aMatches[1], $aExtensions)){ + if (!in_array($aMatches[1], $aExtensions)) { $aExtensions[] = $aMatches[1]; } @@ -134,4 +133,4 @@ class PortalCollector extends AbstractDataCollector return 'portal'; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php b/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php index 2a3324a0f..578ad79ab 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php +++ b/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/AbstractConfiguration.php @@ -52,4 +52,4 @@ class AbstractConfiguration return $this->oModuleDesign; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php b/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php index 650cec201..be054ef86 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php +++ b/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Forms.php @@ -1,4 +1,5 @@ GetModuleDesign()->GetNodes('/module_design/forms/form') as $oFormNode) - { - try - { + foreach ($this->GetModuleDesign()->GetNodes('/module_design/forms/form') as $oFormNode) { + try { // Parsing form id $sFormId = $oFormNode->getAttribute('id'); - if ($oFormNode->getAttribute('id') === '') - { + if ($oFormNode->getAttribute('id') === '') { throw new DOMFormatException('form tag must have an id attribute', 0, null, $oFormNode); } // Parsing form object class - if ($oFormNode->GetUniqueElement('class')->GetText() === null) - { + if ($oFormNode->GetUniqueElement('class')->GetText() === null) { throw new DOMFormatException('Class tag must be defined', 0, null, $oFormNode); } @@ -66,29 +63,26 @@ class Forms extends AbstractConfiguration $sFormClass = $oFormNode->GetUniqueElement('class')->GetText(); // Parsing properties - $aFormProperties = array( + $aFormProperties = [ 'display_mode' => ApplicationHelper::FORM_DEFAULT_DISPLAY_MODE, 'always_show_submit' => ApplicationHelper::FORM_DEFAULT_ALWAYS_SHOW_SUBMIT, - 'navigation_rules' => array( - 'submit' => array( + 'navigation_rules' => [ + 'submit' => [ NavigationRuleHelper::ENUM_ORIGIN_PAGE => null, NavigationRuleHelper::ENUM_ORIGIN_MODAL => null, - ), - 'cancel' => array( + ], + 'cancel' => [ NavigationRuleHelper::ENUM_ORIGIN_PAGE => null, NavigationRuleHelper::ENUM_ORIGIN_MODAL => null, - ), - ), - ); + ], + ], + ]; $aAllowedNavRulesButtonCodes = array_keys($aFormProperties['navigation_rules']); - if ($oFormNode->GetOptionalElement('properties') !== null) - { + if ($oFormNode->GetOptionalElement('properties') !== null) { /** @var \MFElement $oPropertyNode */ - foreach ($oFormNode->GetOptionalElement('properties')->GetNodes('*') as $oPropertyNode) - { - switch ($oPropertyNode->nodeName) - { + foreach ($oFormNode->GetOptionalElement('properties')->GetNodes('*') as $oPropertyNode) { + switch ($oPropertyNode->nodeName) { case 'display_mode': $aFormProperties['display_mode'] = $oPropertyNode->GetText(ApplicationHelper::FORM_DEFAULT_DISPLAY_MODE); break; @@ -99,28 +93,23 @@ class Forms extends AbstractConfiguration case 'navigation_rules': /** @var \MFElement $oNavRuleButtonNode */ - foreach($oPropertyNode->GetNodes('*') as $oNavRuleButtonNode) - { + foreach ($oPropertyNode->GetNodes('*') as $oNavRuleButtonNode) { $sNavRuleButtonCode = $oNavRuleButtonNode->nodeName; - if(!in_array($sNavRuleButtonCode, $aAllowedNavRulesButtonCodes)) - { + if (!in_array($sNavRuleButtonCode, $aAllowedNavRulesButtonCodes)) { throw new DOMFormatException('navigation_rules tag must only contain '.implode('|', $aAllowedNavRulesButtonCodes).' tags, "'.$sNavRuleButtonCode.'" given.', null, null, $oPropertyNode); } /** @var \MFElement $oNavRuleOriginNode */ - foreach($oNavRuleButtonNode->GetNodes('*') as $oNavRuleOriginNode) - { + foreach ($oNavRuleButtonNode->GetNodes('*') as $oNavRuleOriginNode) { $sNavRuleOrigin = $oNavRuleOriginNode->nodeName; - if(!in_array($sNavRuleOrigin, NavigationRuleHelper::GetAllowedOrigins())) - { - throw new DOMFormatException($sNavRuleButtonCode. ' tag must only contain '.implode('|', NavigationRuleHelper::GetAllowedOrigins()).' tags, "'.$sNavRuleOrigin.'" given.', null, null, $oPropertyNode); + if (!in_array($sNavRuleOrigin, NavigationRuleHelper::GetAllowedOrigins())) { + throw new DOMFormatException($sNavRuleButtonCode.' tag must only contain '.implode('|', NavigationRuleHelper::GetAllowedOrigins()).' tags, "'.$sNavRuleOrigin.'" given.', null, null, $oPropertyNode); } $sNavRuleId = $oNavRuleOriginNode->GetText(); // Note: We don't check is rule exists as it would introduce a dependency to the NavigationRuleHelper service. // Maybe we will consider it later. - if(empty($sNavRuleId)) - { + if (empty($sNavRuleId)) { throw new DOMFormatException($sNavRuleButtonCode.' tag cannot be empty.', null, null, $oPropertyNode); } @@ -129,8 +118,7 @@ class Forms extends AbstractConfiguration // Set modal rule as the same as default is not present. // We preset it so we don't have to make checks elsewhere in the code when using it. - if(empty($aFormProperties['navigation_rules'][$sNavRuleButtonCode][NavigationRuleHelper::ENUM_ORIGIN_MODAL])) - { + if (empty($aFormProperties['navigation_rules'][$sNavRuleButtonCode][NavigationRuleHelper::ENUM_ORIGIN_MODAL])) { $aFormProperties['navigation_rules'][$sNavRuleButtonCode][NavigationRuleHelper::ENUM_ORIGIN_MODAL] = $aFormProperties['navigation_rules'][$sNavRuleButtonCode][NavigationRuleHelper::ENUM_ORIGIN_PAGE]; } } @@ -139,36 +127,33 @@ class Forms extends AbstractConfiguration } // Parsing available modes for that form (view, edit, create, apply_stimulus) - $aFormStimuli = array(); - if (($oFormNode->GetOptionalElement('modes') !== null) && ($oFormNode->GetOptionalElement('modes')->GetNodes('mode')->length > 0)) - { - $aModes = array(); + $aFormStimuli = []; + if (($oFormNode->GetOptionalElement('modes') !== null) && ($oFormNode->GetOptionalElement('modes')->GetNodes('mode')->length > 0)) { + $aModes = []; /** @var \MFElement $oModeNode */ - foreach ($oFormNode->GetOptionalElement('modes')->GetNodes('mode') as $oModeNode) - { + foreach ($oFormNode->GetOptionalElement('modes')->GetNodes('mode') as $oModeNode) { $sModeId = $oModeNode->getAttribute('id'); - if ($sModeId === '') - { - throw new DOMFormatException('mode tag must have an id attribute', 0, null, - $oFormNode); + if ($sModeId === '') { + throw new DOMFormatException( + 'mode tag must have an id attribute', + 0, + null, + $oFormNode + ); } $aModes[] = $sModeId; // If apply_stimulus mode, checking if stimuli are defined - if ($sModeId === 'apply_stimulus') - { + if ($sModeId === 'apply_stimulus') { $oStimuliNode = $oModeNode->GetOptionalElement('stimuli'); // If stimuli are defined, we overwrite the form that could have been set by the generic form - if ($oStimuliNode !== null) - { + if ($oStimuliNode !== null) { /** @var \MFElement $oStimulusNode */ - foreach ($oStimuliNode->GetNodes('stimulus') as $oStimulusNode) - { + foreach ($oStimuliNode->GetNodes('stimulus') as $oStimulusNode) { $sStimulusCode = $oStimulusNode->getAttribute('id'); // Removing default form if present (in case the default forms were parsed before the current one (from current or parent class)) - if (isset($aForms[$sFormClass]['apply_stimulus'][$sStimulusCode])) - { + if (isset($aForms[$sFormClass]['apply_stimulus'][$sStimulusCode])) { unset($aForms[$sFormClass]['apply_stimulus'][$sStimulusCode]); } @@ -177,111 +162,95 @@ class Forms extends AbstractConfiguration } } } - } - else - { + } else { // If no mode was specified, we set it all but stimuli as it would have no sense that every transition forms // have as many fields displayed as a regular edit form for example. - $aModes = array('view', 'edit', 'create'); + $aModes = ['view', 'edit', 'create']; } // Parsing fields - $aFields = array( + $aFields = [ '_brought_by' => $sFormClass, 'id' => $sFormId, 'type' => null, 'properties' => $aFormProperties, 'fields' => null, 'layout' => null, - ); + ]; // ... either enumerated fields ... - if ($oFormNode->GetOptionalElement('fields') !== null) - { + if ($oFormNode->GetOptionalElement('fields') !== null) { $aFields['type'] = 'custom_list'; - $aFields['fields'] = array(); + $aFields['fields'] = []; /** @var \MFElement $oFieldNode */ - foreach ($oFormNode->GetOptionalElement('fields')->GetNodes('field') as $oFieldNode) - { + foreach ($oFormNode->GetOptionalElement('fields')->GetNodes('field') as $oFieldNode) { $sFieldId = $oFieldNode->getAttribute('id'); - if ($sFieldId !== '') - { - $aField = array(); + if ($sFieldId !== '') { + $aField = []; // Parsing field options like read_only, hidden and mandatory - if ($oFieldNode->GetOptionalElement('read_only')) - { + if ($oFieldNode->GetOptionalElement('read_only')) { $aField['readonly'] = ($oFieldNode->GetOptionalElement('read_only')->GetText('true') === 'true') ? true : false; } - if ($oFieldNode->GetOptionalElement('mandatory')) - { + if ($oFieldNode->GetOptionalElement('mandatory')) { $aField['mandatory'] = ($oFieldNode->GetOptionalElement('mandatory')->GetText('true') === 'true') ? true : false; } - if ($oFieldNode->GetOptionalElement('hidden')) - { + if ($oFieldNode->GetOptionalElement('hidden')) { $aField['hidden'] = ($oFieldNode->GetOptionalElement('hidden')->GetText('true') === 'true') ? true : false; } $aFields['fields'][$sFieldId] = $aField; - } - else - { - throw new DOMFormatException('Field tag must have an id attribute', 0, null, - $oFormNode); + } else { + throw new DOMFormatException( + 'Field tag must have an id attribute', + 0, + null, + $oFormNode + ); } } } // ... or the default zlist - else - { + else { $aFields['type'] = 'zlist'; $aFields['fields'] = 'details'; } // Parsing presentation - if ($oFormNode->GetOptionalElement('twig') !== null) - { + if ($oFormNode->GetOptionalElement('twig') !== null) { // Extracting the twig template and removing the first and last lines (twig tags) $sXml = $this->GetModuleDesign()->saveXML($oFormNode->GetOptionalElement('twig')); $sXml = preg_replace('/^.+\n/', '', $sXml); $sXml = preg_replace('/\n.+$/', '', $sXml); - $aFields['layout'] = array( + $aFields['layout'] = [ 'type' => (preg_match('/{{|{#|{%/', $sXml) === 1) ? 'twig' : 'xhtml', 'content' => $sXml, - ); + ]; } // Adding form for each class / mode - foreach ($aModes as $sMode) - { + foreach ($aModes as $sMode) { // Initializing current class if necessary - if (!isset($aForms[$sFormClass])) - { - $aForms[$sFormClass] = array(); + if (!isset($aForms[$sFormClass])) { + $aForms[$sFormClass] = []; } // For stimuli we need to fill the matrix as only some stimuli might have been given - if ($sMode === 'apply_stimulus') - { + if ($sMode === 'apply_stimulus') { // Iterating over current class and child classes - foreach (MetaModel::EnumChildClasses($sFormClass, ENUM_CHILD_CLASSES_ALL) as $sChildClass) - { + foreach (MetaModel::EnumChildClasses($sFormClass, ENUM_CHILD_CLASSES_ALL) as $sChildClass) { // Initializing child class if necessary - if (!isset($aForms[$sChildClass][$sMode])) - { - $aForms[$sChildClass][$sMode] = array(); + if (!isset($aForms[$sChildClass][$sMode])) { + $aForms[$sChildClass][$sMode] = []; } // If no explicit stimulus defined in this form, than it's the generic stimulus form // we need to find which stimulus are missing - if(empty($aFormStimuli)) - { - $aExistingStimuli = array(); + if (empty($aFormStimuli)) { + $aExistingStimuli = []; // Keep only stimuli brought by the class itself - foreach($aForms[$sChildClass][$sMode] as $sExistingStimulus => $aExistingForm) - { - if(!in_array($aExistingForm['_brought_by'], MetaModel::EnumParentClasses($sFormClass, ENUM_PARENT_CLASSES_EXCLUDELEAF))) - { + foreach ($aForms[$sChildClass][$sMode] as $sExistingStimulus => $aExistingForm) { + if (!in_array($aExistingForm['_brought_by'], MetaModel::EnumParentClasses($sFormClass, ENUM_PARENT_CLASSES_EXCLUDELEAF))) { //continue; $aExistingStimuli[] = $sExistingStimulus; } @@ -290,51 +259,43 @@ class Forms extends AbstractConfiguration $aMissingStimulusForms = array_diff($aDatamodelStimuli, $aExistingStimuli); } // Otherwise, we process only the ones for this form - else - { + else { $aMissingStimulusForms = $aFormStimuli; } // Retrieve missing stimuli of the child class to fill the matrix - foreach ($aMissingStimulusForms as $sDatamodelStimulus) - { + foreach ($aMissingStimulusForms as $sDatamodelStimulus) { // Check some facts about the target form $bFormExists = isset($aForms[$sChildClass][$sMode][$sDatamodelStimulus]); $bWasFormBroughtByParent = $bFormExists && in_array($aForms[$sChildClass][$sMode][$sDatamodelStimulus]['_brought_by'], MetaModel::EnumParentClasses($sFormClass, ENUM_PARENT_CLASSES_EXCLUDELEAF)); // Check if we need to overwrite (form created by parent) $bOverwriteNecessary = false; - if($bWasFormBroughtByParent || in_array($sDatamodelStimulus, $aFormStimuli)) - { + if ($bWasFormBroughtByParent || in_array($sDatamodelStimulus, $aFormStimuli)) { $bOverwriteNecessary = true; } // Setting form if not defined OR if it was defined by a parent (abstract) class - if (!$bFormExists || $bOverwriteNecessary) - { + if (!$bFormExists || $bOverwriteNecessary) { $aForms[$sChildClass][$sMode][$sDatamodelStimulus] = $aFields; $aForms[$sChildClass][$sMode][$sDatamodelStimulus]['id'] = 'apply_stimulus-'.$sChildClass.'-'.$sDatamodelStimulus; } } } - } - elseif (!isset($aForms[$sFormClass][$sMode])) - { + } elseif (!isset($aForms[$sFormClass][$sMode])) { $aForms[$sFormClass][$sMode] = $aFields; - } - else - { - throw new DOMFormatException('There is already a form for the class "'.$sFormClass.'" in "'.$sMode.'"', - null, null, $oFormNode); + } else { + throw new DOMFormatException( + 'There is already a form for the class "'.$sFormClass.'" in "'.$sMode.'"', + null, + null, + $oFormNode + ); } } - } - catch (DOMFormatException $e) - { + } catch (DOMFormatException $e) { throw new Exception('Could not create from [id="'.$oFormNode->getAttribute('id').'"] from XML because of a DOM problem : '.$e->getMessage()); - } - catch (Exception $e) - { + } catch (Exception $e) { throw new Exception('Could not create from from XML : '.$oFormNode->Dump().' '.$e->getMessage()); } } @@ -343,4 +304,4 @@ class Forms extends AbstractConfiguration $aPortalConf['forms'] = $aForms; $oContainer->setParameter('combodo.portal.instance.conf', $aPortalConf); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php b/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php index fbef50334..c0e51f4e0 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php +++ b/datamodels/2.x/itop-portal-base/portal/src/DependencyInjection/SilexCompatBootstrap/PortalXmlConfiguration/Lists.php @@ -1,4 +1,5 @@ GetModuleDesign()->GetNodes('/module_design/classes/class') as $oClassNode) - { - $aClassLists = array(); + foreach ($this->GetModuleDesign()->GetNodes('/module_design/classes/class') as $oClassNode) { + $aClassLists = []; $sClassId = $oClassNode->getAttribute('id'); - if ($sClassId === null) - { + if ($sClassId === null) { throw new DOMFormatException('Class tag must have an id attribute', 0, null, $oClassNode); } // - Each lists /** @var \MFElement $oListNode */ - foreach ($oClassNode->GetNodes('./lists/list') as $oListNode) - { - $aListItems = array(); + foreach ($oClassNode->GetNodes('./lists/list') as $oListNode) { + $aListItems = []; $sListId = $oListNode->getAttribute('id'); - if ($sListId === null) - { - throw new DOMFormatException('List tag of "'.$sClassId.'" class must have an id attribute', null, - null, $oListNode); + if ($sListId === null) { + throw new DOMFormatException( + 'List tag of "'.$sClassId.'" class must have an id attribute', + null, + null, + $oListNode + ); } // - Each items /** @var \MFElement $oItemNode */ - foreach ($oListNode->GetNodes('./items/item') as $oItemNode) - { + foreach ($oListNode->GetNodes('./items/item') as $oItemNode) { $sItemId = $oItemNode->getAttribute('id'); - if ($sItemId === null) - { - throw new DOMFormatException('Item tag of "'.$sItemId.'" list must have an id attribute', null, - null, $oItemNode); + if ($sItemId === null) { + throw new DOMFormatException( + 'Item tag of "'.$sItemId.'" list must have an id attribute', + null, + null, + $oItemNode + ); } - $aItem = array( + $aItem = [ 'att_code' => $sItemId, 'rank' => $iDefaultItemRank, - ); + ]; $oRankNode = $oItemNode->GetOptionalElement('rank'); - if ($oRankNode !== null) - { + if ($oRankNode !== null) { $aItem['rank'] = $oRankNode->GetText($iDefaultItemRank); } @@ -100,8 +102,7 @@ class Lists extends AbstractConfiguration } // - Adding class only if it has at least one list - if (!empty($aClassLists)) - { + if (!empty($aClassLists)) { $aClassesLists[$sClassId] = $aClassLists; } } @@ -110,4 +111,4 @@ class Lists extends AbstractConfiguration $oContainer->setParameter('combodo.portal.instance.conf', $aPortalConf); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/EventListener/ApplicationContextSetPluginPropertyClass.php b/datamodels/2.x/itop-portal-base/portal/src/EventListener/ApplicationContextSetPluginPropertyClass.php index d6271ed0e..a00ee3f27 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/EventListener/ApplicationContextSetPluginPropertyClass.php +++ b/datamodels/2.x/itop-portal-base/portal/src/EventListener/ApplicationContextSetPluginPropertyClass.php @@ -1,4 +1,5 @@ aCombodoPortalInstanceConf = $aCombodoPortalInstanceConf; - } + /** + * @param array $aCombodoPortalInstanceConf + */ + public function __construct($aCombodoPortalInstanceConf) + { + $this->aCombodoPortalInstanceConf = $aCombodoPortalInstanceConf; + } /** * @param RequestEvent $oRequestEvent @@ -51,4 +52,4 @@ class ApplicationContextSetUrlMakerClass ApplicationContext::SetUrlMakerClass($this->aCombodoPortalInstanceConf['properties']['urlmaker_class']); } } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/EventListener/CssFromSassCompiler.php b/datamodels/2.x/itop-portal-base/portal/src/EventListener/CssFromSassCompiler.php index 89ea7563b..b26d09410 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/EventListener/CssFromSassCompiler.php +++ b/datamodels/2.x/itop-portal-base/portal/src/EventListener/CssFromSassCompiler.php @@ -1,4 +1,5 @@ aCombodoPortalInstanceConf['properties']['themes'] as $sKey => $value) { - if (!is_array($value)) - { + if (!is_array($value)) { utils::GetCSSFromSASS('env-'.utils::GetCurrentEnvironment().'/'.$value, $aImportPaths); - } - else - { - foreach ($value as $sSubValue) - { + } else { + foreach ($value as $sSubValue) { utils::GetCSSFromSASS('env-'.utils::GetCurrentEnvironment().'/'.$sSubValue, $aImportPaths); } } } } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/EventListener/ExceptionListener.php b/datamodels/2.x/itop-portal-base/portal/src/EventListener/ExceptionListener.php index 12acb2707..a2b2f398f 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/EventListener/ExceptionListener.php +++ b/datamodels/2.x/itop-portal-base/portal/src/EventListener/ExceptionListener.php @@ -18,10 +18,8 @@ * You should have received a copy of the GNU Affero General Public License */ - namespace Combodo\iTop\Portal\EventListener; - use Dict; use ExceptionLog; use Symfony\Component\ErrorHandler\Exception\FlattenException; @@ -40,7 +38,6 @@ use Twig\Environment; */ class ExceptionListener { - /** * Constructor. * @@ -48,8 +45,7 @@ class ExceptionListener */ public function __construct( protected Environment $oTwig - ) - { + ) { } /** @@ -59,7 +55,7 @@ class ExceptionListener * @throws \Twig\Error\RuntimeError * @throws \Twig\Error\SyntaxError */ - public function onKernelException(ExceptionEvent $oEvent) : void + public function onKernelException(ExceptionEvent $oEvent): void { // Get the exception object from the received event $oException = $oEvent->getThrowable(); @@ -87,13 +83,11 @@ class ExceptionListener // Prepare flatten exception $oFlattenException = ($_SERVER['APP_DEBUG'] == 1) ? FlattenException::createFromThrowable($oException) : null; // Remove APPROOT from file paths if in production (SF context) - if (!is_null($oFlattenException) && ($_SERVER['APP_ENV'] === 'prod')) - { + if (!is_null($oFlattenException) && ($_SERVER['APP_ENV'] === 'prod')) { $oFlattenException->setFile($this->removeAppRootFromPath($oFlattenException->getFile())); $aTrace = $oFlattenException->getTrace(); - foreach ($aTrace as $iIdx => $aEntry) - { + foreach ($aTrace as $iIdx => $aEntry) { $aTrace[$iIdx]['file'] = $this->removeAppRootFromPath($aEntry['file']); } $oFlattenException->setTrace($aTrace, $oFlattenException->getFile(), $oFlattenException->getLine()); @@ -105,20 +99,17 @@ class ExceptionListener ]); // Prepare data for template - $aData = array( + $aData = [ 'exception' => $oFlattenException, 'code' => $iStatusCode, 'error_title' => $sErrorTitle, 'error_message' => $sErrorMessage, - ); + ]; // Generate the response - if ($oEvent->getRequest()->isXmlHttpRequest()) - { + if ($oEvent->getRequest()->isXmlHttpRequest()) { $oResponse = new JsonResponse($aData); - } - else - { + } else { $oResponse = new Response(); $oResponse->setContent($this->oTwig->render('itop-portal-base/portal/templates/errors/layout.html.twig', $aData)); } @@ -164,5 +155,4 @@ class ExceptionListener return str_replace($sNormalizedAppRoot, '', $sNormalizedInputPath); } - -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/EventListener/UserProvider.php b/datamodels/2.x/itop-portal-base/portal/src/EventListener/UserProvider.php index e362fa27b..5bc542bce 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/EventListener/UserProvider.php +++ b/datamodels/2.x/itop-portal-base/portal/src/EventListener/UserProvider.php @@ -1,4 +1,5 @@ getRequest()->isXmlHttpRequest()) ? LoginWebPage::EXIT_RETURN : LoginWebPage::EXIT_PROMPT; $iLogonRes = LoginWebPage::DoLoginEx($this->sPortalId, false, $iExitMethod); - if( ($iExitMethod === LoginWebPage::EXIT_RETURN) && ($iLogonRes != 0) ) { + if (($iExitMethod === LoginWebPage::EXIT_RETURN) && ($iLogonRes != 0)) { die(Dict::S('Portal:ErrorUserLoggedOut')); } // - User must be associated with a Contact @@ -92,8 +93,8 @@ class UserProvider throw new Exception('Could not load connected user.'); } - // User allowed to log off or not - $this->bUserCanLogOff = utils::CanLogOff(); + // User allowed to log off or not + $this->bUserCanLogOff = utils::CanLogOff(); // Allowed portals $aAllowedPortals = UserRights::GetAllowedPortals(); @@ -146,5 +147,4 @@ class UserProvider return $this->aAllowedPortals; } - -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php b/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php index c284c36b2..8d0bfb46d 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Form/ObjectFormManager.php @@ -51,6 +51,7 @@ use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\HttpException; use UserRights; use utils; + use const UR_ACTION_READ; /** @@ -62,13 +63,13 @@ use const UR_ACTION_READ; class ObjectFormManager extends FormManager { /** @var string ENUM_MODE_VIEW */ - const ENUM_MODE_VIEW = 'view'; + public const ENUM_MODE_VIEW = 'view'; /** @var string ENUM_MODE_EDIT */ - const ENUM_MODE_EDIT = 'edit'; + public const ENUM_MODE_EDIT = 'edit'; /** @var string ENUM_MODE_CREATE */ - const ENUM_MODE_CREATE = 'create'; + public const ENUM_MODE_CREATE = 'create'; /** @var string ENUM_MODE_APPLY_STIMULUS */ - const ENUM_MODE_APPLY_STIMULUS = 'apply_stimulus'; + public const ENUM_MODE_APPLY_STIMULUS = 'apply_stimulus'; /** @var \cmdbAbstractObject $oObject */ protected $oObject; @@ -79,14 +80,14 @@ class ObjectFormManager extends FormManager /** @var array $aFormProperties */ protected $aFormProperties; /** @var array $aCallbackUrls */ - protected $aCallbackUrls = array(); + protected $aCallbackUrls = []; /** * List of hidden fields, used for form update (eg. remove them from the form regarding they dependencies) * * @var array $aHiddenFieldsId * @since 2.7.5 */ - protected $aHiddenFieldsId = array(); + protected $aHiddenFieldsId = []; /** * @var ObjectFormHandlerHelper $oFormHandlerHelper @@ -95,7 +96,7 @@ class ObjectFormManager extends FormManager private $oFormHandlerHelper; /** @var array $aPlugins plugins data */ - private array $aPlugins = array(); + private array $aPlugins = []; private array $aFieldsAtts = []; private array $aExtraData = []; private DOMDocument $oHtmlDocument; @@ -143,27 +144,22 @@ class ObjectFormManager extends FormManager } $sObjectClass = $aJson['formobject_class']; - if (!isset($aJson['formobject_id'])) - { + if (!isset($aJson['formobject_id'])) { $oObject = MetaModel::NewObject($sObjectClass); - } - else - { + } else { // Note : AllowAllData set to true here instead of checking scope's flag because we are displaying a value that has been set and validated $oObject = MetaModel::GetObject($sObjectClass, $aJson['formobject_id'], true, true); } $oFormManager->SetObject($oObject); // Retrieving form mode - if (!isset($aJson['formmode'])) - { + if (!isset($aJson['formmode'])) { throw new Exception('Form mode must be defined in order to generate the form'); } $oFormManager->SetMode($aJson['formmode']); // Retrieving actions rules - if (isset($aJson['formactionrulestoken'])) - { + if (isset($aJson['formactionrulestoken'])) { $oFormManager->SetActionRulesToken($aJson['formactionrulestoken']); } @@ -316,8 +312,7 @@ class ObjectFormManager extends FormManager { $aJson = parent::ToJSON(); $aJson['formobject_class'] = get_class($this->oObject); - if ($this->oObject->GetKey() > 0) - { + if ($this->oObject->GetKey() > 0) { $aJson['formobject_id'] = $this->oObject->GetKey(); } $aJson['formmode'] = $this->sMode; @@ -338,11 +333,9 @@ class ObjectFormManager extends FormManager // Building form from its properties // - Consistency checks for stimulus form - if (isset($this->aFormProperties['stimulus_code'])) - { + if (isset($this->aFormProperties['stimulus_code'])) { $aTransitions = MetaModel::EnumTransitions($sObjectClass, $this->oObject->GetState()); - if (!isset($aTransitions[$this->aFormProperties['stimulus_code']])) - { + if (!isset($aTransitions[$this->aFormProperties['stimulus_code']])) { $aStimuli = Metamodel::EnumStimuli($sObjectClass); $sStimulusLabel = $aStimuli[$this->aFormProperties['stimulus_code']]->GetLabel(); @@ -351,24 +344,22 @@ class ObjectFormManager extends FormManager } } - // Adding rendered template to the form renderer as the base layout $this->oRenderer->SetBaseLayout($this->oHtmlDocument->saveHTML()); // Building the form - foreach ($this->aFieldsAtts as $sAttCode => $iFieldFlags) - { + foreach ($this->aFieldsAtts as $sAttCode => $iFieldFlags) { // handle plugins fields - if($this->sMode !== 'apply_stimulus' + if ($this->sMode !== 'apply_stimulus' && array_key_exists($sAttCode, $this->aExtraData) - && array_key_exists('plugin', $this->aExtraData[$sAttCode])){ + && array_key_exists('plugin', $this->aExtraData[$sAttCode])) { $sPluginName = $this->aExtraData[$sAttCode]['plugin']; - switch($sPluginName){ + switch ($sPluginName) { case AttachmentPlugIn::class: $this->AddAttachmentField($this->oForm, $sAttCode, $this->aExtraData); break; default: - throw new Exception('Unknown plugin ' . $sPluginName); + throw new Exception('Unknown plugin '.$sPluginName); } continue; } @@ -377,57 +368,44 @@ class ObjectFormManager extends FormManager /** @var Field $oField */ $oField = null; - if (is_callable([$oAttDef, 'MakeFormField'])) - { + if (is_callable([$oAttDef, 'MakeFormField'])) { $oField = $oAttDef->MakeFormField($this->oObject); } // Failsafe for AttributeType that would not have MakeFormField and therefore could not be used in a form - if ($oField !== null) - { - if ($this->sMode !== static::ENUM_MODE_VIEW) - { + if ($oField !== null) { + if ($this->sMode !== static::ENUM_MODE_VIEW) { // Field dependencies $aFieldDependencies = $oAttDef->GetPrerequisiteAttributes(); - if (!empty($aFieldDependencies)) - { + if (!empty($aFieldDependencies)) { $this->oForm->AddFieldDependencies($oField->GetId(), $aFieldDependencies); } // Setting the field flags // - If it's locked because slave, we force it as read only - if (($iFieldFlags & OPT_ATT_SLAVE) === OPT_ATT_SLAVE) - { + if (($iFieldFlags & OPT_ATT_SLAVE) === OPT_ATT_SLAVE) { $oField->SetReadOnly(true); } // - Else if it's must change (transition), we force it as mustchange, not readonly and not hidden - elseif (($iFieldFlags & OPT_ATT_MUSTCHANGE) === OPT_ATT_MUSTCHANGE && $this->IsTransitionForm()) - { + elseif (($iFieldFlags & OPT_ATT_MUSTCHANGE) === OPT_ATT_MUSTCHANGE && $this->IsTransitionForm()) { $oField->SetMustChange(true); $oField->SetReadOnly(false); $oField->SetHidden(false); } // - Else if it's must prompt (transition), we force it as not readonly and not hidden - elseif (($iFieldFlags & OPT_ATT_MUSTPROMPT) === OPT_ATT_MUSTPROMPT && $this->IsTransitionForm()) - { + elseif (($iFieldFlags & OPT_ATT_MUSTPROMPT) === OPT_ATT_MUSTPROMPT && $this->IsTransitionForm()) { $oField->SetReadOnly(false); $oField->SetHidden(false); } // - Else if it wasn't mandatory or already had a value, and it's hidden, we force it as hidden - elseif (($iFieldFlags & OPT_ATT_HIDDEN) === OPT_ATT_HIDDEN) - { + elseif (($iFieldFlags & OPT_ATT_HIDDEN) === OPT_ATT_HIDDEN) { $oField->SetHidden(true); - } - elseif (($iFieldFlags & OPT_ATT_READONLY) === OPT_ATT_READONLY) - { + } elseif (($iFieldFlags & OPT_ATT_READONLY) === OPT_ATT_READONLY) { $oField->SetReadOnly(true); - } - else - { + } else { // Normal field, use "flags" set by AttDef::MakeFormField() // Except if we are in a transition be cause $oAttDef doesn't know if the form is for a transition - if ($this->IsTransitionForm()) - { + if ($this->IsTransitionForm()) { $oField->SetReadOnly(false); $oField->SetHidden(false); $oField->SetMandatory(false); @@ -435,114 +413,110 @@ class ObjectFormManager extends FormManager } // Finally, if it's mandatory ... - if (($iFieldFlags & OPT_ATT_MANDATORY) === OPT_ATT_MANDATORY) - { + if (($iFieldFlags & OPT_ATT_MANDATORY) === OPT_ATT_MANDATORY) { // ... and when in a transition, we force it as mandatory - if ($this->IsTransitionForm() && $oAttDef->IsNull($this->oObject->Get($sAttCode))) - { + if ($this->IsTransitionForm() && $oAttDef->IsNull($this->oObject->Get($sAttCode))) { $oField->SetMandatory(true); } // .. and has no value, we force it as mandatory - elseif ($oAttDef->IsNull($this->oObject->Get($sAttCode))) - { + elseif ($oAttDef->IsNull($this->oObject->Get($sAttCode))) { $oField->SetMandatory(true); } } // Specific operation on field // - Field that require a transaction id - if (in_array(get_class($oField), - array('Combodo\\iTop\\Form\\Field\\TextAreaField', 'Combodo\\iTop\\Form\\Field\\CaseLogField'))) - { + if (in_array( + get_class($oField), + ['Combodo\\iTop\\Form\\Field\\TextAreaField', 'Combodo\\iTop\\Form\\Field\\CaseLogField'] + )) { /** @var \Combodo\iTop\Form\Field\TextAreaField|\Combodo\iTop\Form\Field\CaseLogField $oField */ $oField->SetTransactionId($this->oForm->GetTransactionId()); } // - Field that require a search endpoint - if (in_array(get_class($oField), - array('Combodo\\iTop\\Form\\Field\\SelectObjectField', 'Combodo\\iTop\\Form\\Field\\LinkedSetField'))) { + if (in_array( + get_class($oField), + ['Combodo\\iTop\\Form\\Field\\SelectObjectField', 'Combodo\\iTop\\Form\\Field\\LinkedSetField'] + )) { /** @var \Combodo\iTop\Form\Field\SelectObjectField|\Combodo\iTop\Form\Field\LinkedSetField $oField */ if ($this->oFormHandlerHelper !== null) { - $sSearchEndpoint = $this->oFormHandlerHelper->GetUrlGenerator()->generate('p_object_search_generic', array( + $sSearchEndpoint = $this->oFormHandlerHelper->GetUrlGenerator()->generate('p_object_search_generic', [ 'sTargetAttCode' => $oAttDef->GetCode(), 'sHostObjectClass' => get_class($this->oObject), 'sHostObjectId' => ($this->oObject->IsNew()) ? null : $this->oObject->GetKey(), 'ar_token' => $this->GetActionRulesToken(), - )); + ]); $oField->SetSearchEndpoint($sSearchEndpoint); } } // - Field that require an information endpoint - if (in_array(get_class($oField), array('Combodo\\iTop\\Form\\Field\\LinkedSetField'))) { + if (in_array(get_class($oField), ['Combodo\\iTop\\Form\\Field\\LinkedSetField'])) { /** @var \Combodo\iTop\Form\Field\LinkedSetField $oField */ if ($this->oFormHandlerHelper !== null) { $oField->SetInformationEndpoint($this->oFormHandlerHelper->GetUrlGenerator()->generate('p_object_get_information_for_linked_set_json')); } } // - Field that require to apply scope on its DM OQL - if (in_array(get_class($oField), array('Combodo\\iTop\\Form\\Field\\SelectObjectField'))) - { + if (in_array(get_class($oField), ['Combodo\\iTop\\Form\\Field\\SelectObjectField'])) { /** @var \Combodo\iTop\Form\Field\SelectObjectField $oField */ if ($this->oFormHandlerHelper !== null) { $oScopeOriginal = ($oField->GetSearch() !== null) ? $oField->GetSearch() : DBSearch::FromOQL($oAttDef->GetValuesDef()->GetFilterExpression()); /** @var \DBSearch $oScopeSearch */ - $oScopeSearch = $this->oFormHandlerHelper->GetScopeValidator()->GetScopeFilterForProfiles(UserRights::ListProfiles(), - $oScopeOriginal->GetClass(), UR_ACTION_READ); + $oScopeSearch = $this->oFormHandlerHelper->GetScopeValidator()->GetScopeFilterForProfiles( + UserRights::ListProfiles(), + $oScopeOriginal->GetClass(), + UR_ACTION_READ + ); if ($oScopeSearch === null) { IssueLog::Info(__METHOD__.' at line '.__LINE__.' : User #'.UserRights::GetUserId().' has no scope query for '.$oScopeOriginal->GetClass().' class.'); throw new HttpException(Response::HTTP_NOT_FOUND, Dict::S('UI:ObjectDoesNotExist')); } $oScopeOriginal = $oScopeOriginal->Intersect($oScopeSearch); // Note : This is to skip the silo restriction on the final query - if ($oScopeSearch->IsAllDataAllowed()) - { + if ($oScopeSearch->IsAllDataAllowed()) { $oScopeOriginal->AllowAllData(); } - $oScopeOriginal->SetInternalParams(array('this' => $this->oObject)); + $oScopeOriginal->SetInternalParams(['this' => $this->oObject]); $oField->SetSearch($oScopeOriginal); } } // - Field that require to check if the current value is among allowed ones - if (in_array(get_class($oField), array('Combodo\\iTop\\Form\\Field\\SelectObjectField'))) - { + if (in_array(get_class($oField), ['Combodo\\iTop\\Form\\Field\\SelectObjectField'])) { // Note: We can't do this in AttributeExternalKey::MakeFormField() in the Field::SetOnFinalizeCallback() because at this point we have no information about the portal scope and ignore_silos flag, hence it always applies silos. // As a workaround we have to manually check if the field's current value is among the scope $oField->ResetCurrentValueIfNotAmongAllowedValues(); } // - Field that require processing on their subfields - if (in_array(get_class($oField), array('Combodo\\iTop\\Form\\Field\\SubFormField'))) - { + if (in_array(get_class($oField), ['Combodo\\iTop\\Form\\Field\\SubFormField'])) { /** @var \Combodo\iTop\Form\Field\SubFormField $oField */ $oSubForm = $oField->GetForm(); - if ($oAttDef->GetEditClass() === 'CustomFields') - { + if ($oAttDef->GetEditClass() === 'CustomFields') { // Retrieving only user data fields (not the metadata fields of the template) - if ($oSubForm->HasField('user_data')) - { + if ($oSubForm->HasField('user_data')) { /** @var \Combodo\iTop\Form\Field\SubFormField $oUserDataField */ $oUserDataField = $oSubForm->GetField('user_data'); $oUserDataForm = $oUserDataField->GetForm(); - foreach ($oUserDataForm->GetFields() as $oCustomField) - { + foreach ($oUserDataForm->GetFields() as $oCustomField) { // - Field that require a search endpoint (OQL based dropdown list fields) - if (in_array(get_class($oCustomField), array('Combodo\\iTop\\Form\\Field\\SelectObjectField'))) - { + if (in_array(get_class($oCustomField), ['Combodo\\iTop\\Form\\Field\\SelectObjectField'])) { /** @var \Combodo\iTop\Form\Field\SelectObjectField $oCustomField */ if ($this->oFormHandlerHelper->GetUrlGenerator() !== null) { - $sSearchEndpoint = $this->oFormHandlerHelper->GetUrlGenerator()->generate('p_object_search_generic', - array( + $sSearchEndpoint = $this->oFormHandlerHelper->GetUrlGenerator()->generate( + 'p_object_search_generic', + [ 'sTargetAttCode' => $oAttDef->GetCode(), 'sHostObjectClass' => get_class($this->oObject), 'sHostObjectId' => ($this->oObject->IsNew()) ? null : $this->oObject->GetKey(), 'ar_token' => $this->GetActionRulesToken(), - )); + ] + ); $oCustomField->SetSearchEndpoint($sSearchEndpoint); } } // - Field that require to check if the current value is among allowed ones - if (in_array(get_class($oCustomField), array('Combodo\\iTop\\Form\\Field\\SelectObjectField'))) - { + if (in_array(get_class($oCustomField), ['Combodo\\iTop\\Form\\Field\\SelectObjectField'])) { /** @var \Combodo\iTop\Form\Field\SelectObjectField $oCustomField */ $oCustomField->ResetCurrentValueIfNotAmongAllowedValues(); } @@ -550,37 +524,34 @@ class ObjectFormManager extends FormManager } } } - } - else - { - if (($iFieldFlags & OPT_ATT_HIDDEN) === OPT_ATT_HIDDEN) - { + } else { + if (($iFieldFlags & OPT_ATT_HIDDEN) === OPT_ATT_HIDDEN) { $oField->SetHidden(true); - } - else - { + } else { $oField->SetReadOnly(true); } } // Specific operation on field // - LinkedSet - if (in_array(get_class($oField), array('Combodo\\iTop\\Form\\Field\\LinkedSetField'))) - { + if (in_array(get_class($oField), ['Combodo\\iTop\\Form\\Field\\LinkedSetField'])) { /** @var \Combodo\iTop\Form\Field\LinkedSetField $oField */ /** @var \AttributeLinkedSetIndirect $oAttDef */ // - Overriding attributes to display if ($this->oFormHandlerHelper !== null) { // Note : This snippet is inspired from AttributeLinkedSet::MakeFormField() - $aAttCodesToDisplay = ApplicationHelper::GetLoadedListFromClass($this->oFormHandlerHelper->getCombodoPortalConf()['lists'], - $oField->GetTargetClass(), 'list'); + $aAttCodesToDisplay = ApplicationHelper::GetLoadedListFromClass( + $this->oFormHandlerHelper->getCombodoPortalConf()['lists'], + $oField->GetTargetClass(), + 'list' + ); // - Adding friendlyname attribute to the list is not already in it $sTitleAttCode = 'friendlyname'; if (($sTitleAttCode !== null) && !in_array($sTitleAttCode, $aAttCodesToDisplay)) { - $aAttCodesToDisplay = array_merge(array($sTitleAttCode), $aAttCodesToDisplay); + $aAttCodesToDisplay = array_merge([$sTitleAttCode], $aAttCodesToDisplay); } // - Adding attribute labels - $aAttributesToDisplay = array(); + $aAttributesToDisplay = []; foreach ($aAttCodesToDisplay as $sAttCodeToDisplay) { $oAttDefToDisplay = MetaModel::GetAttributeDef($oField->GetTargetClass(), $sAttCodeToDisplay); $aAttributesToDisplay[$sAttCodeToDisplay] = [ @@ -598,7 +569,7 @@ class ObjectFormManager extends FormManager } // - Filtering links regarding scopes if ($this->oFormHandlerHelper !== null) { - $aLimitedAccessItemIDs = array(); + $aLimitedAccessItemIDs = []; /** @var \ormLinkSet $oFieldOriginalSet */ $oFieldOriginalSet = $oField->GetCurrentValue(); @@ -617,19 +588,16 @@ class ObjectFormManager extends FormManager $oField->SetLimitedAccessItemIDs($aLimitedAccessItemIDs); } // - Displaying as opened - if (array_key_exists($sAttCode, $this->aExtraData) && array_key_exists('opened', $this->aExtraData[$sAttCode])) - { + if (array_key_exists($sAttCode, $this->aExtraData) && array_key_exists('opened', $this->aExtraData[$sAttCode])) { $oField->SetDisplayOpened(true); } // - Displaying out of scopes items - if (array_key_exists($sAttCode, $this->aExtraData) && array_key_exists('ignore_scopes', $this->aExtraData[$sAttCode])) - { + if (array_key_exists($sAttCode, $this->aExtraData) && array_key_exists('ignore_scopes', $this->aExtraData[$sAttCode])) { $oField->SetDisplayLimitedAccessItems(true); } } // - BlobField - if (in_array(get_class($oField), array('Combodo\\iTop\\Form\\Field\\BlobField', 'Combodo\\iTop\\Form\\Field\\ImageField'))) - { + if (in_array(get_class($oField), ['Combodo\\iTop\\Form\\Field\\BlobField', 'Combodo\\iTop\\Form\\Field\\ImageField'])) { // - Overriding attributes to display if ($this->oFormHandlerHelper !== null) { // Override hardcoded URLs in ormDocument pointing to back office console @@ -654,9 +622,7 @@ class ObjectFormManager extends FormManager } } - } - else - { + } else { $oField = new LabelField($sAttCode); $oField->SetReadOnly(true) ->SetHidden(false) @@ -665,8 +631,7 @@ class ObjectFormManager extends FormManager } // Setting field display mode - if (array_key_exists($sAttCode, $this->aExtraData) && array_key_exists('display_mode', $this->aExtraData[$sAttCode])) - { + if (array_key_exists($sAttCode, $this->aExtraData) && array_key_exists('display_mode', $this->aExtraData[$sAttCode])) { $oField->SetDisplayMode($this->aExtraData[$sAttCode]['display_mode']); } @@ -678,32 +643,25 @@ class ObjectFormManager extends FormManager // Do not add hidden fields as they are of no use, if one is necessary because another depends on it, it will be automatically added. // Note: We do this at the end because during the process an hidden field could have become writable if mandatory and empty for example. - if($oField->GetHidden() === false) - { + if ($oField->GetHidden() === false) { $this->oForm->AddField($oField); } else { - $this->aHiddenFieldsId[]=$oField->GetId(); + $this->aHiddenFieldsId[] = $oField->GetId(); } } // Checking dependencies to ensure that all needed fields are in the form // (This is kind of a garbage collector for dependencies) - foreach ($this->oForm->GetDependencies() as $sImpactedFieldId => $aDependencies) - { - foreach ($aDependencies as $sDependencyFieldId) - { - if (!$this->oForm->HasField($sDependencyFieldId)) - { - try - { + foreach ($this->oForm->GetDependencies() as $sImpactedFieldId => $aDependencies) { + foreach ($aDependencies as $sDependencyFieldId) { + if (!$this->oForm->HasField($sDependencyFieldId)) { + try { $oAttDef = MetaModel::GetAttributeDef(get_class($this->oObject), $sDependencyFieldId); $oField = $oAttDef->MakeFormField($this->oObject); $oField->SetHidden(true); $this->oForm->AddField($oField); - } - catch (Exception $e) - { + } catch (Exception $e) { // Avoid blocking a form if a RequestTemplate reference a bad attribute (e.g. :this->id) IssueLog::Error('May be a bad OQL (referencing :this->id) in a RequestTemplate causes the following error'); IssueLog::Error($e); @@ -717,7 +675,7 @@ class ObjectFormManager extends FormManager if ($this->sMode !== 'apply_stimulus' && class_exists('Attachment') && class_exists('AttachmentPlugIn') && !$this->IsPluginInitialized(AttachmentPlugIn::class) - && AttachmentPlugIn::IsAttachmentAllowedForObject($this->oObject)){ + && AttachmentPlugIn::IsAttachmentAllowedForObject($this->oObject)) { $this->AddAttachmentField($this->oForm, 'attachments_plugin', $this->aExtraData); } @@ -732,7 +690,7 @@ class ObjectFormManager extends FormManager * * @return bool */ - private function IsPluginInitialized(string $sPluginName) : bool + private function IsPluginInitialized(string $sPluginName): bool { return array_key_exists($sPluginName, $this->aPlugins); } @@ -746,48 +704,54 @@ class ObjectFormManager extends FormManager * * @throws \Exception */ - private function AddAttachmentField($oForm, $sId, $aFieldsExtraData) : void + private function AddAttachmentField($oForm, $sId, $aFieldsExtraData): void { // only one instance allowed - if($this->IsPluginInitialized(AttachmentPlugIn::class)){ - throw new Exception("Unable to process field `$sId`, AttachmentPlugIn has already been initialized with field `" . $this->aPlugins[AttachmentPlugIn::class]['field']->GetId() . '`'); + if ($this->IsPluginInitialized(AttachmentPlugIn::class)) { + throw new Exception("Unable to process field `$sId`, AttachmentPlugIn has already been initialized with field `".$this->aPlugins[AttachmentPlugIn::class]['field']->GetId().'`'); } // not allowed for object class - if(!AttachmentPlugIn::IsAttachmentAllowedForObject($this->oObject)){ - throw new Exception("Unable to process field `$sId`, AttachmentPlugIn is not allowed for class `" . $this->oObject::class . '`'); + if (!AttachmentPlugIn::IsAttachmentAllowedForObject($this->oObject)) { + throw new Exception("Unable to process field `$sId`, AttachmentPlugIn is not allowed for class `".$this->oObject::class.'`'); } // set id to a unique key - avoid collisions with another attribute that could exist with the name 'attachments' $oField = new FileUploadField($sId); $oField->SetLabel(Dict::S('Portal:Attachments')) ->SetUploadEndpoint($this->oFormHandlerHelper->GetUrlGenerator()->generate('p_object_attachment_add')) - ->SetDownloadEndpoint($this->oFormHandlerHelper->GetUrlGenerator()->generate('p_object_attachment_download', - array('sAttachmentId' => '-sAttachmentId-'))) - ->SetDisplayEndpoint($this->oFormHandlerHelper->GetUrlGenerator()->generate('p_object_attachment_display', - array('sAttachmentId' => '-sAttachmentId-'))) + ->SetDownloadEndpoint($this->oFormHandlerHelper->GetUrlGenerator()->generate( + 'p_object_attachment_download', + ['sAttachmentId' => '-sAttachmentId-'] + )) + ->SetDisplayEndpoint($this->oFormHandlerHelper->GetUrlGenerator()->generate( + 'p_object_attachment_display', + ['sAttachmentId' => '-sAttachmentId-'] + )) ->SetTransactionId($oForm->GetTransactionId()) ->SetAllowDelete($this->oFormHandlerHelper->getCombodoPortalConf()['properties']['attachments']['allow_delete']) ->SetObject($this->oObject); // Checking if we can edit attachments in the current state $oObjectFormManager = $this; - $oField->SetOnFinalizeCallback(function() use ($oObjectFormManager, $oForm, $oField){ + $oField->SetOnFinalizeCallback(function () use ($oObjectFormManager, $oForm, $oField) { if (($oObjectFormManager->sMode === static::ENUM_MODE_VIEW) - || AttachmentPlugIn::IsReadonlyState($oObjectFormManager->oObject, $oObjectFormManager->oObject->GetState(), - AttachmentPlugIn::ENUM_GUI_PORTALS) === true - || $oForm->GetEditableFieldCount(true) === 0) - { + || AttachmentPlugIn::IsReadonlyState( + $oObjectFormManager->oObject, + $oObjectFormManager->oObject->GetState(), + AttachmentPlugIn::ENUM_GUI_PORTALS + ) === true + || $oForm->GetEditableFieldCount(true) === 0) { $oField->SetReadOnly(true); } }); - if (array_key_exists($sId, $aFieldsExtraData) && array_key_exists('opened', $aFieldsExtraData[$sId])){ + if (array_key_exists($sId, $aFieldsExtraData) && array_key_exists('opened', $aFieldsExtraData[$sId])) { $oField->SetDisplayOpened(true); } // Adding attachments field in transition only if it is editable - if (!$this->IsTransitionForm() || !$oField->GetReadOnly()){ + if (!$this->IsTransitionForm() || !$oField->GetReadOnly()) { $oForm->AddField($oField); } @@ -810,8 +774,7 @@ class ObjectFormManager extends FormManager { // Ask to each field to clean itself /** @var \Combodo\iTop\Form\Field\Field $oField */ - foreach ($this->oForm->GetFields() as $oField) - { + foreach ($this->oForm->GetFields() as $oField) { $oField->OnCancel(); } // Then clean inline images from rich text editor such as TextareaField @@ -837,7 +800,7 @@ class ObjectFormManager extends FormManager } $aData['messages']['error'] += [ - '_main' => [$sError] + '_main' => [$sError], ]; $aData['valid'] = false; } @@ -875,8 +838,7 @@ class ObjectFormManager extends FormManager $this->OnUpdate($aArgs); // Check if form valid - if (! $this->oForm->Validate()) - { + if (! $this->oForm->Validate()) { // Handle errors $aData['valid'] = false; $aData['messages']['error'] += $this->oForm->GetErrorMessages(); @@ -901,8 +863,7 @@ class ObjectFormManager extends FormManager } // Writing object to DB - try - { + try { $this->oObject->DBWrite(); } catch (CoreCannotSaveObjectException $e) { throw new Exception($e->getTextMessage()); @@ -929,34 +890,29 @@ class ObjectFormManager extends FormManager InlineImage::FinalizeInlineImages($this->oObject); // Finalizing attachments link to object // TODO : This has to be refactored when the function from itop-attachments has been migrated into the core - if (isset($aArgs['attachmentIds'])) - { + if (isset($aArgs['attachmentIds'])) { $this->FinalizeAttachments($aArgs['attachmentIds']); } // Checking if we have to apply a stimulus - if (isset($aArgs['applyStimulus'])) - { + if (isset($aArgs['applyStimulus'])) { $this->oObject->ApplyStimulus($aArgs['applyStimulus']['code']); } // Activating triggers only on update - if ($bActivateTriggers) - { + if ($bActivateTriggers) { $sTriggersQuery = $this->oFormHandlerHelper->getCombodoPortalConf()['properties']['triggers_query']; - if ($sTriggersQuery !== null) - { + if ($sTriggersQuery !== null) { $aParentClasses = MetaModel::EnumParentClasses($sObjectClass, ENUM_PARENT_CLASSES_ALL); - $oTriggerSet = new DBObjectSet(DBObjectSearch::FromOQL($sTriggersQuery), array(), - array('parent_classes' => $aParentClasses)); + $oTriggerSet = new DBObjectSet( + DBObjectSearch::FromOQL($sTriggersQuery), + [], + ['parent_classes' => $aParentClasses] + ); /** @var \Trigger $oTrigger */ - while ($oTrigger = $oTriggerSet->Fetch()) - { - try - { + while ($oTrigger = $oTriggerSet->Fetch()) { + try { $oTrigger->DoActivate($this->oObject->ToArgs('this')); - } - catch(Exception $e) - { + } catch (Exception $e) { utils::EnrichRaisedException($oTrigger, $e); } } @@ -966,30 +922,24 @@ class ObjectFormManager extends FormManager // Resetting caselog fields value, otherwise the value will stay in it after submit. $this->oForm->ResetCaseLogFields(); - if ($bWasModified) - { + if ($bWasModified) { //=if (isNew) because $bActivateTriggers = (!$this->oObject->IsNew() && $this->oObject->IsModified()) - if(!$bActivateTriggers) - { - $aData['messages']['success'] += array( '_main' => array(Dict::Format('UI:Title:Object_Of_Class_Created', $this->oObject->GetName(),MetaModel::GetName(get_class($this->oObject))))); - } - else - { - $aData['messages']['success'] += array('_main' => array(Dict::Format('UI:Class_Object_Updated', MetaModel::GetName(get_class($this->oObject)), $this->oObject->GetName()))); + if (!$bActivateTriggers) { + $aData['messages']['success'] += [ '_main' => [Dict::Format('UI:Title:Object_Of_Class_Created', $this->oObject->GetName(), MetaModel::GetName(get_class($this->oObject)))]]; + } else { + $aData['messages']['success'] += ['_main' => [Dict::Format('UI:Class_Object_Updated', MetaModel::GetName(get_class($this->oObject)), $this->oObject->GetName())]]; } } - } - catch (CoreCannotSaveObjectException $e) { + } catch (CoreCannotSaveObjectException $e) { $aData['valid'] = false; - $aData['messages']['error'] += array('_main' => array($e->getTextMessage())); + $aData['messages']['error'] += ['_main' => [$e->getTextMessage()]]; if (false === $bExceptionLogged) { IssueLog::Error(__METHOD__.' at line '.__LINE__.' : '.$e->getMessage()); } - } - catch (Exception $e) { + } catch (Exception $e) { $aData['valid'] = false; $aData['messages']['error'] += [ - '_main' => [ ($e instanceof CoreCannotSaveObjectException) ? $e->getTextMessage() : $e->getMessage()] + '_main' => [ ($e instanceof CoreCannotSaveObjectException) ? $e->getTextMessage() : $e->getMessage()], ]; if (false === $bExceptionLogged) { IssueLog::Error(__METHOD__.' at line '.__LINE__.' : '.$e->getMessage()); @@ -1016,11 +966,9 @@ class ObjectFormManager extends FormManager { $aFormProperties = []; - if (is_array($aArgs)) - { + if (is_array($aArgs)) { // Then we retrieve properties of the form to build - if (isset($aArgs['formProperties'])) - { + if (isset($aArgs['formProperties'])) { $aFormProperties = $aArgs['formProperties']; } } @@ -1054,20 +1002,17 @@ class ObjectFormManager extends FormManager */ protected function FinalizeAttachments($aAttachmentIds) { - $aRemovedAttachmentsIds = (isset($aAttachmentIds['removed_attachments_ids'])) ? $aAttachmentIds['removed_attachments_ids'] : array(); + $aRemovedAttachmentsIds = (isset($aAttachmentIds['removed_attachments_ids'])) ? $aAttachmentIds['removed_attachments_ids'] : []; // Not used for now. //$aActualAttachmentsIds = (isset($aAttachmentIds['actual_attachments_ids'])) ? $aAttachmentIds['actual_attachments_ids'] : array(); - $aActions = array(); + $aActions = []; // Removing attachments from currents - if (!empty($aRemovedAttachmentsIds)) - { + if (!empty($aRemovedAttachmentsIds)) { $oSearch = DBObjectSearch::FromOQL("SELECT Attachment WHERE item_class = :class AND item_id = :item_id"); - $oSet = new DBObjectSet($oSearch, array(), array('class' => get_class($this->oObject), 'item_id' => $this->oObject->GetKey())); - while ($oAttachment = $oSet->Fetch()) - { + $oSet = new DBObjectSet($oSearch, [], ['class' => get_class($this->oObject), 'item_id' => $this->oObject->GetKey()]); + while ($oAttachment = $oSet->Fetch()) { // Remove attachments that are no longer attached to the current object - if (in_array($oAttachment->GetKey(), $aRemovedAttachmentsIds)) - { + if (in_array($oAttachment->GetKey(), $aRemovedAttachmentsIds)) { $aData = ['attachment' => $oAttachment]; $this->oObject->FireEvent(EVENT_REMOVE_ATTACHMENT_FROM_OBJECT, $aData); $oAttachment->DBDelete(); @@ -1080,16 +1025,12 @@ class ObjectFormManager extends FormManager $sTempId = utils::GetUploadTempId($this->oForm->GetTransactionId()); $sOQL = 'SELECT Attachment WHERE temp_id = :temp_id'; $oSearch = DBObjectSearch::FromOQL($sOQL); - $oSet = new DBObjectSet($oSearch, array(), array('temp_id' => $sTempId)); - while ($oAttachment = $oSet->Fetch()) - { + $oSet = new DBObjectSet($oSearch, [], ['temp_id' => $sTempId]); + while ($oAttachment = $oSet->Fetch()) { // Temp attachment removed - if (in_array($oAttachment->GetKey(), $aRemovedAttachmentsIds)) - { + if (in_array($oAttachment->GetKey(), $aRemovedAttachmentsIds)) { $oAttachment->DBDelete(); - } - else - { + } else { $oAttachment->SetItem($this->oObject); $oAttachment->Set('temp_id', ''); $oAttachment->DBUpdate(); @@ -1101,8 +1042,7 @@ class ObjectFormManager extends FormManager // Save changes to current object history // inspired from itop-attachments/main.attachments.php / RecordHistory - foreach ($aActions as $oChangeOp) - { + foreach ($aActions as $oChangeOp) { $oChangeOp->Set("objclass", get_class($this->oObject)); $oChangeOp->Set("objkey", $this->oObject->GetKey()); $oChangeOp->DBInsertNoReload(); @@ -1125,9 +1065,8 @@ class ObjectFormManager extends FormManager $sTempId = utils::GetUploadTempId($this->oForm->GetTransactionId()); $sOQL = 'SELECT Attachment WHERE temp_id = :temp_id'; $oSearch = DBObjectSearch::FromOQL($sOQL); - $oSet = new DBObjectSet($oSearch, array(), array('temp_id' => $sTempId)); - while ($oAttachment = $oSet->Fetch()) - { + $oSet = new DBObjectSet($oSearch, [], ['temp_id' => $sTempId]); + while ($oAttachment = $oSet->Fetch()) { $oAttachment->DBDelete(); } } @@ -1147,14 +1086,11 @@ class ObjectFormManager extends FormManager { $oBlob = $oAttachment->Get('contents'); $sFileName = $oBlob->GetFileName(); - if ($bCreate) - { + if ($bCreate) { $oChangeOp = new CMDBChangeOpAttachmentAdded(); $oChangeOp->Set('attachment_id', $oAttachment->GetKey()); $oChangeOp->Set('filename', $sFileName); - } - else - { + } else { $oChangeOp = new CMDBChangeOpAttachmentRemoved(); $oChangeOp->Set('filename', $sFileName); } @@ -1238,8 +1174,7 @@ class ObjectFormManager extends FormManager { $sObjectClass = get_class($this->oObject); - foreach ($aCurrentValues as $sAttCode => $value) - { + foreach ($aCurrentValues as $sAttCode => $value) { if (count($this->aFieldsAtts) !== 0) { if (!array_key_exists($sAttCode, $this->aFieldsAtts)) { continue; @@ -1342,8 +1277,7 @@ class ObjectFormManager extends FormManager } $oOrmSet->ApplyDelta(json_decode($value, true)); $this->oObject->Set($sAttCode, $oOrmSet); - } elseif ($oAttDef instanceof AttributeDateTime) // AttributeDate is derived from AttributeDateTime - { + } elseif ($oAttDef instanceof AttributeDateTime) { // AttributeDate is derived from AttributeDateTime if ($value != null) { $value = $oAttDef->GetFormat()->Parse($value); if (is_object($value)) { @@ -1351,11 +1285,9 @@ class ObjectFormManager extends FormManager } } $this->oObject->Set($sAttCode, $value); - } - elseif ($oAttDef->IsScalar() && is_array($value)) { + } elseif ($oAttDef->IsScalar() && is_array($value)) { $this->oObject->Set($sAttCode, current($value)); - } - elseif ($oAttDef->GetEditClass() === 'CustomFields') { + } elseif ($oAttDef->GetEditClass() === 'CustomFields') { // We don't update attribute as ormCustomField comparaison is not working as excepted. // When several templates available, "template_id" is not sent by the portal has it is a read-only select input // therefore, the TemplateFieldsHandler::CompareValues() doesn't work. @@ -1377,8 +1309,7 @@ class ObjectFormManager extends FormManager $this->oObject->Set($sAttCode, $value); } // Else don't update! Otherwise we might loose current value - } - else { + } else { $this->oObject->Set($sAttCode, $value); } } @@ -1400,9 +1331,9 @@ class ObjectFormManager extends FormManager public function PrepareFields(): void { $sObjectClass = get_class($this->oObject); - $this->aFieldsAtts = array(); - $this->aExtraData = array(); - $aFieldsDMOnlyAttCodes = array(); + $this->aFieldsAtts = []; + $this->aExtraData = []; + $aFieldsDMOnlyAttCodes = []; if (array_key_exists('type', $this->aFormProperties)) { switch ($this->aFormProperties['type']) { case 'custom_list': @@ -1518,8 +1449,7 @@ class ObjectFormManager extends FormManager if (array_key_exists('type', $this->aFormProperties) && $this->aFormProperties['type'] !== 'static') { if ($this->IsTransitionForm()) { $aDatamodelAttCodes = $this->oObject->GetTransitionAttributes($this->aFormProperties['stimulus_code']); - } - else { + } else { $aDatamodelAttCodes = MetaModel::ListAttributeDefs($sObjectClass); } @@ -1536,12 +1466,10 @@ class ObjectFormManager extends FormManager // Retrieving only mandatory flag from DM when on a transition $iFieldFlags = $value & OPT_ATT_MANDATORY; $oAttDef = MetaModel::GetAttributeDef(get_class($this->oObject), $sAttCode); - } - elseif ($this->oObject->IsNew()) { + } elseif ($this->oObject->IsNew()) { $iFieldFlags = $this->oObject->GetInitialStateAttributeFlags($sAttCode); $oAttDef = $value; - } - else { + } else { $iFieldFlags = $this->oObject->GetAttributeFlags($sAttCode); $oAttDef = $value; } @@ -1581,11 +1509,9 @@ class ObjectFormManager extends FormManager if ($this->IsTransitionForm()) { $aTransitionAtts = $this->oObject->GetTransitionAttributes($this->aFormProperties['stimulus_code']); $iFieldFlags = $aTransitionAtts[$sAttCode]; - } - elseif ($this->oObject->IsNew()) { + } elseif ($this->oObject->IsNew()) { $iFieldFlags = $this->oObject->GetInitialStateAttributeFlags($sAttCode); - } - else { + } else { $iFieldFlags = $this->oObject->GetAttributeFlags($sAttCode); } @@ -1629,7 +1555,7 @@ class ObjectFormManager extends FormManager $sRendered = $this->oFormHandlerHelper->RenderFormFromTwig( 999, // doesn't matter here $this->aFormProperties['layout']['content'], - array('oRenderer' => $this->oRenderer, 'oObject' => $this->oObject) + ['oRenderer' => $this->oRenderer, 'oObject' => $this->oObject] ); } else { $sRendered = 'Form not rendered because of missing container'; diff --git a/datamodels/2.x/itop-portal-base/portal/src/Form/PasswordFormManager.php b/datamodels/2.x/itop-portal-base/portal/src/Form/PasswordFormManager.php index 469bef628..096b2a767 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Form/PasswordFormManager.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Form/PasswordFormManager.php @@ -39,7 +39,7 @@ use UserRights; class PasswordFormManager extends FormManager { /** @var string FORM_TYPE */ - const FORM_TYPE = 'change_password'; + public const FORM_TYPE = 'change_password'; /** * @throws \Exception @@ -106,87 +106,66 @@ class PasswordFormManager extends FormManager $this->OnUpdate($aArgs); // Check if form valid - if ($this->oForm->Validate()) - { + if ($this->oForm->Validate()) { // The try catch is essentially to start a MySQL transaction - try - { + try { // Updating password $sAuthUser = Session::Get('auth_user'); $sOldPassword = $this->oForm->GetField('old_password')->GetCurrentValue(); $sNewPassword = $this->oForm->GetField('new_password')->GetCurrentValue(); $sConfirmPassword = $this->oForm->GetField('confirm_password')->GetCurrentValue(); - if ($sOldPassword !== '' && $sNewPassword !== '' && $sConfirmPassword !== '') - { - if (!UserRights::CanChangePassword()) - { + if ($sOldPassword !== '' && $sNewPassword !== '' && $sConfirmPassword !== '') { + if (!UserRights::CanChangePassword()) { $aData['valid'] = false; - $aData['messages']['error'] += array( - '_main' => array( + $aData['messages']['error'] += [ + '_main' => [ Dict::Format('Brick:Portal:UserProfile:Password:CantChangeContactAdministrator', ITOP_APPLICATION_SHORT), - ), - ); - } - else - { - if (!UserRights::CheckCredentials($sAuthUser, $sOldPassword)) - { + ], + ]; + } else { + if (!UserRights::CheckCredentials($sAuthUser, $sOldPassword)) { $aData['valid'] = false; - $aData['messages']['error'] += array('old_password' => array(Dict::S('UI:Login:IncorrectOldPassword'))); - } - else - { - if ($sNewPassword !== $sConfirmPassword) - { + $aData['messages']['error'] += ['old_password' => [Dict::S('UI:Login:IncorrectOldPassword')]]; + } else { + if ($sNewPassword !== $sConfirmPassword) { $aData['valid'] = false; - $aData['messages']['error'] += array('confirm_password' => array(Dict::S('UI:Login:RetypePwdDoesNotMatch'))); - } - elseif ($sNewPassword === $sOldPassword) - { + $aData['messages']['error'] += ['confirm_password' => [Dict::S('UI:Login:RetypePwdDoesNotMatch')]]; + } elseif ($sNewPassword === $sOldPassword) { $aData['valid'] = false; - $aData['messages']['error'] += array('new_password' => array(Dict::S('UI:Login:PasswordNotChanged'))); - } - else - { + $aData['messages']['error'] += ['new_password' => [Dict::S('UI:Login:PasswordNotChanged')]]; + } else { try { - if (!UserRights::ChangePassword($sOldPassword, $sNewPassword)) - { + if (!UserRights::ChangePassword($sOldPassword, $sNewPassword)) { $aData['valid'] = false; - $aData['messages']['error'] += array( - 'confirm_password' => array( - Dict::Format('Brick:Portal:UserProfile:Password:CantChangeForUnknownReason', - ITOP_APPLICATION_SHORT), - ), - ); + $aData['messages']['error'] += [ + 'confirm_password' => [ + Dict::Format( + 'Brick:Portal:UserProfile:Password:CantChangeForUnknownReason', + ITOP_APPLICATION_SHORT + ), + ], + ]; + } else { + $aData['messages']['success'] += ['_main' => [Dict::S('Brick:Portal:Object:Form:Message:Saved')]]; } - else - { - $aData['messages']['success'] += array('_main' => array(Dict::S('Brick:Portal:Object:Form:Message:Saved'))); - } - } - catch (\CoreCannotSaveObjectException $e) - { + } catch (\CoreCannotSaveObjectException $e) { $aData['valid'] = false; - $aData['messages']['error'] += array( + $aData['messages']['error'] += [ 'new_password' => $e->getIssues(), - 'confirm_password' => array(), - ); + 'confirm_password' => [], + ]; } } } } } - } - catch (Exception $e) - { + } catch (Exception $e) { $aData['valid'] = false; - $aData['messages']['error'] += array('_main' => array($e->getMessage())); + $aData['messages']['error'] += ['_main' => [$e->getMessage()]]; IssueLog::Error(__METHOD__.' at line '.__LINE__.' : Exception during submit ('.$e->getMessage().')'); } - } - else - { + } else { // Handle errors $aData['valid'] = false; $aData['messages']['error'] += $this->oForm->GetErrorMessages(); @@ -207,12 +186,9 @@ class PasswordFormManager extends FormManager $this->Build(); // Then we update it with new values - if (is_array($aArgs)) - { - if (isset($aArgs['currentValues'])) - { - foreach ($aArgs['currentValues'] as $sPreferenceName => $value) - { + if (is_array($aArgs)) { + if (isset($aArgs['currentValues'])) { + foreach ($aArgs['currentValues'] as $sPreferenceName => $value) { $this->oForm->GetField($sPreferenceName)->SetCurrentValue($value); } } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Form/PreferencesFormManager.php b/datamodels/2.x/itop-portal-base/portal/src/Form/PreferencesFormManager.php index c41f71326..d56ffdd3c 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Form/PreferencesFormManager.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Form/PreferencesFormManager.php @@ -39,7 +39,7 @@ use UserRights; class PreferencesFormManager extends FormManager { /** @var string FORM_TYPE */ - const FORM_TYPE = 'preferences'; + public const FORM_TYPE = 'preferences'; /** * @throws \Exception @@ -63,9 +63,8 @@ class PreferencesFormManager extends FormManager ->SetCurrentValue(Dict::GetUserLanguage()) ->SetStartsWithNullChoice(false); // - Preparing choices - $aChoices = array(); - foreach (Dict::GetLanguages() as $sCode => $aLanguage) - { + $aChoices = []; + foreach (Dict::GetLanguages() as $sCode => $aLanguage) { $aChoices[$sCode] = $aLanguage['description'].' ('.$aLanguage['localized_description'].')'; } asort($aChoices); @@ -109,11 +108,9 @@ class PreferencesFormManager extends FormManager $this->OnUpdate($aArgs); // Check if form valid - if ($this->oForm->Validate()) - { + if ($this->oForm->Validate()) { // The try catch is essentially to start a MySQL transaction - try - { + try { // Starting transaction CMDBSource::Query('START TRANSACTION'); $iFieldChanged = 0; @@ -123,34 +120,28 @@ class PreferencesFormManager extends FormManager $oCurUser = UserRights::GetUserObject(); // - Language $sLanguage = $this->oForm->GetField('language')->GetCurrentValue(); - if (($sLanguage !== null) && ($oCurUser->Get('language') !== $sLanguage)) - { + if (($sLanguage !== null) && ($oCurUser->Get('language') !== $sLanguage)) { $oCurUser->Set('language', $sLanguage); $iFieldChanged++; } // Updating only if preferences changed - if ($iFieldChanged > 0) - { + if ($iFieldChanged > 0) { $oCurUser->AllowWrite(true); $oCurUser->DBUpdate(); - $aData['messages']['success'] += array('_main' => array(Dict::S('Brick:Portal:Object:Form:Message:Saved'))); + $aData['messages']['success'] += ['_main' => [Dict::S('Brick:Portal:Object:Form:Message:Saved')]]; } // Ending transaction with a commit as everything was fine CMDBSource::Query('COMMIT'); - } - catch (Exception $e) - { + } catch (Exception $e) { // End transaction with a rollback as something failed CMDBSource::Query('ROLLBACK'); $aData['valid'] = false; - $aData['messages']['error'] += array('_main' => array($e->getMessage())); + $aData['messages']['error'] += ['_main' => [$e->getMessage()]]; IssueLog::Error(__METHOD__.' at line '.__LINE__.' : Rollback during submit ('.$e->getMessage().')'); } - } - else - { + } else { // Handle errors $aData['valid'] = false; $aData['messages']['error'] += $this->oForm->GetErrorMessages(); @@ -171,12 +162,9 @@ class PreferencesFormManager extends FormManager $this->Build(); // Then we update it with new values - if (is_array($aArgs)) - { - if (isset($aArgs['currentValues'])) - { - foreach ($aArgs['currentValues'] as $sPreferenceName => $value) - { + if (is_array($aArgs)) { + if (isset($aArgs['currentValues'])) { + foreach ($aArgs['currentValues'] as $sPreferenceName => $value) { $this->oForm->GetField($sPreferenceName)->SetCurrentValue($value); } } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/BrickControllerHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/BrickControllerHelper.php index 2bb8725db..c0c1a7dc0 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/BrickControllerHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/BrickControllerHelper.php @@ -18,7 +18,6 @@ * You should have received a copy of the GNU Affero General Public License */ - namespace Combodo\iTop\Portal\Helper; /** @@ -53,14 +52,13 @@ class BrickControllerHelper public function ExtractSortParams() { // Getting sort params - $aSortParams = $this->oRequestManipulator->ReadParam('aSortParams', array(), FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY); + $aSortParams = $this->oRequestManipulator->ReadParam('aSortParams', [], FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY); // Converting sort direction to proper format for DBObjectSet as it only accept real booleans - foreach ($aSortParams as $sAttributeAlias => $sDirection) - { + foreach ($aSortParams as $sAttributeAlias => $sDirection) { $aSortParams[$sAttributeAlias] = ($sDirection === 'true'); } return $aSortParams; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/BrowseBrickHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/BrowseBrickHelper.php index f9d3006e8..a646469c1 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/BrowseBrickHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/BrowseBrickHelper.php @@ -18,10 +18,8 @@ * You should have received a copy of the GNU Affero General Public License */ - namespace Combodo\iTop\Portal\Helper; - use AttributeImage; use AttributeSet; use AttributeTagSet; @@ -44,9 +42,9 @@ use utils; class BrowseBrickHelper { /** @var string LEVEL_SEPARATOR */ - const LEVEL_SEPARATOR = '-'; + public const LEVEL_SEPARATOR = '-'; /** @var array OPTIONAL_ATTRIBUTES */ - const OPTIONAL_ATTRIBUTES = array('tooltip_att', 'description_att', 'image_att'); + public const OPTIONAL_ATTRIBUTES = ['tooltip_att', 'description_att', 'image_att']; /** @var \Combodo\iTop\Portal\Helper\SecurityHelper */ private $oSecurityHelper; @@ -62,7 +60,10 @@ class BrowseBrickHelper * @param \Combodo\iTop\Portal\Helper\ScopeValidatorHelper $oScopeValidator * @param \Symfony\Component\Routing\Generator\UrlGeneratorInterface $oUrlGenerator */ - public function __construct(SecurityHelper $oSecurityHelper, ScopeValidatorHelper $oScopeValidator, UrlGeneratorInterface $oUrlGenerator + public function __construct( + SecurityHelper $oSecurityHelper, + ScopeValidatorHelper $oScopeValidator, + UrlGeneratorInterface $oUrlGenerator ) { $this->oSecurityHelper = $oSecurityHelper; $this->oScopeValidator = $oScopeValidator; @@ -89,24 +90,24 @@ class BrowseBrickHelper */ public function TreeToFlatLevelsProperties(array $aLevels, array &$aLevelsProperties, $sLevelAliasPrefix = 'L') { - foreach ($aLevels as $aLevel) - { + foreach ($aLevels as $aLevel) { $sCurrentLevelAlias = $sLevelAliasPrefix.static::LEVEL_SEPARATOR.$aLevel['id']; $oSearch = DBSearch::CloneWithAlias(DBSearch::FromOQL($aLevel['oql']), $sCurrentLevelAlias); // Restricting to the allowed scope - $oScopeSearch = $this->oScopeValidator->GetScopeFilterForProfiles(UserRights::ListProfiles(), $oSearch->GetClass(), - UR_ACTION_READ); + $oScopeSearch = $this->oScopeValidator->GetScopeFilterForProfiles( + UserRights::ListProfiles(), + $oSearch->GetClass(), + UR_ACTION_READ + ); $oSearch = ($oScopeSearch !== null) ? $oSearch->Intersect($oScopeSearch) : null; // - Allowing all data if necessary - if ($oScopeSearch !== null && $oScopeSearch->IsAllDataAllowed()) - { + if ($oScopeSearch !== null && $oScopeSearch->IsAllDataAllowed()) { $oSearch->AllowAllData(); } - if ($oSearch !== null) - { - $aLevelsProperties[$sCurrentLevelAlias] = array( + if ($oSearch !== null) { + $aLevelsProperties[$sCurrentLevelAlias] = [ 'alias' => $sCurrentLevelAlias, 'title' => ($aLevel['title'] !== null) ? Dict::S($aLevel['title']) : MetaModel::GetName($oSearch->GetClass()), 'parent_att' => $aLevel['parent_att'], @@ -115,42 +116,35 @@ class BrowseBrickHelper 'description_att' => $aLevel['description_att'], 'image_att' => $aLevel['image_att'], 'search' => $oSearch, - 'fields' => array(), - 'actions' => array(), - ); + 'fields' => [], + 'actions' => [], + ]; // Adding current level's fields - if (isset($aLevel['fields'])) - { - $aLevelsProperties[$sCurrentLevelAlias]['fields'] = array(); + if (isset($aLevel['fields'])) { + $aLevelsProperties[$sCurrentLevelAlias]['fields'] = []; - foreach ($aLevel['fields'] as $sFieldAttCode => $aFieldProperties) - { - $aLevelsProperties[$sCurrentLevelAlias]['fields'][] = array( + foreach ($aLevel['fields'] as $sFieldAttCode => $aFieldProperties) { + $aLevelsProperties[$sCurrentLevelAlias]['fields'][] = [ 'code' => $sFieldAttCode, 'label' => MetaModel::GetAttributeDef($oSearch->GetClass(), $sFieldAttCode)->GetLabel(), 'hidden' => $aFieldProperties['hidden'], - ); + ]; } } // Flattening and adding sub levels - if (isset($aLevel['levels'])) - { - foreach ($aLevel['levels'] as $aChildLevel) - { + if (isset($aLevel['levels'])) { + foreach ($aLevel['levels'] as $aChildLevel) { // Checking if the sub level if allowed $oChildSearch = DBSearch::FromOQL($aChildLevel['oql']); - if ($this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $oChildSearch->GetClass())) - { + if ($this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $oChildSearch->GetClass())) { // Adding the sub level to this one $aLevelsProperties[$sCurrentLevelAlias]['levels'][] = $sCurrentLevelAlias.static::LEVEL_SEPARATOR.$aChildLevel['id']; // Adding drill down action if necessary - foreach ($aLevel['actions'] as $sId => $aAction) - { - if ($aAction['type'] === BrowseBrick::ENUM_ACTION_DRILLDOWN) - { + foreach ($aLevel['actions'] as $sId => $aAction) { + if ($aAction['type'] === BrowseBrick::ENUM_ACTION_DRILLDOWN) { $aLevelsProperties[$sCurrentLevelAlias]['actions'][$sId] = $aAction; break; } @@ -162,49 +156,43 @@ class BrowseBrickHelper } // Adding actions to the level - foreach ($aLevel['actions'] as $sId => $aAction) - { + foreach ($aLevel['actions'] as $sId => $aAction) { // ... Only if it's not already there (eg. the drilldown added with the sublevels) - if (!array_key_exists($sId, $aLevelsProperties[$sCurrentLevelAlias]['actions'])) - { + if (!array_key_exists($sId, $aLevelsProperties[$sCurrentLevelAlias]['actions'])) { // Adding action only if allowed - if (($aAction['type'] === BrowseBrick::ENUM_ACTION_VIEW) && !$this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, - $oSearch->GetClass())) - { + if (($aAction['type'] === BrowseBrick::ENUM_ACTION_VIEW) && !$this->oSecurityHelper->IsActionAllowed( + UR_ACTION_READ, + $oSearch->GetClass() + )) { continue; - } - elseif (($aAction['type'] === BrowseBrick::ENUM_ACTION_EDIT) && !$this->oSecurityHelper->IsActionAllowed(UR_ACTION_MODIFY, - $oSearch->GetClass())) - { + } elseif (($aAction['type'] === BrowseBrick::ENUM_ACTION_EDIT) && !$this->oSecurityHelper->IsActionAllowed( + UR_ACTION_MODIFY, + $oSearch->GetClass() + )) { continue; - } - elseif ($aAction['type'] === BrowseBrick::ENUM_ACTION_DRILLDOWN) - { + } elseif ($aAction['type'] === BrowseBrick::ENUM_ACTION_DRILLDOWN) { continue; } // Setting action title - if (isset($aAction['title'])) - { + if (isset($aAction['title'])) { // Note : There could be an enhancement here, by checking if the string code has the '%1' needle and use Dict::S or Dict::Format accordingly. // But it would require to benchmark a potential performance drop as it will be done for all items $aAction['title'] = Dict::S($aAction['title']); - } - else - { - switch ($aAction['type']) - { + } else { + switch ($aAction['type']) { case BrowseBrick::ENUM_ACTION_CREATE_FROM_THIS: // We can only make translate a dictionary entry with a class placeholder when the action has a class tag. if it has a factory method, we don't know yet what class is going to be created - if ($aAction['factory']['type'] === BrowseBrick::ENUM_FACTORY_TYPE_CLASS) - { - $aAction['title'] = Dict::Format('Brick:Portal:Browse:Action:CreateObjectFromThis', - MetaModel::GetName($aAction['factory']['value'])); - $aAction['url'] = $this->oUrlGenerator->generate('p_object_create', - array('sObjectClass' => $aAction['factory']['value'])); - } - else - { + if ($aAction['factory']['type'] === BrowseBrick::ENUM_FACTORY_TYPE_CLASS) { + $aAction['title'] = Dict::Format( + 'Brick:Portal:Browse:Action:CreateObjectFromThis', + MetaModel::GetName($aAction['factory']['value']) + ); + $aAction['url'] = $this->oUrlGenerator->generate( + 'p_object_create', + ['sObjectClass' => $aAction['factory']['value']] + ); + } else { $aAction['title'] = Dict::S('Brick:Portal:Browse:Action:Create'); } break; @@ -221,10 +209,8 @@ class BrowseBrickHelper } // Setting action icon class - if (!isset($aAction['icon_class'])) - { - switch ($aAction['type']) - { + if (!isset($aAction['icon_class'])) { + switch ($aAction['type']) { case BrowseBrick::ENUM_ACTION_CREATE_FROM_THIS: $aAction['icon_class'] = BrowseBrick::ENUM_ACTION_ICON_CLASS_CREATE_FROM_THIS; break; @@ -241,21 +227,19 @@ class BrowseBrickHelper } // Setting action url - switch ($aAction['type']) - { + switch ($aAction['type']) { case BrowseBrick::ENUM_ACTION_CREATE_FROM_THIS: - if ($aAction['factory']['type'] === BrowseBrick::ENUM_FACTORY_TYPE_CLASS) - { - $aAction['url'] = $this->oUrlGenerator->generate('p_object_create', - array('sObjectClass' => $aAction['factory']['value'])); - } - else - { - $aAction['url'] = $this->oUrlGenerator->generate('p_object_create_from_factory', array( + if ($aAction['factory']['type'] === BrowseBrick::ENUM_FACTORY_TYPE_CLASS) { + $aAction['url'] = $this->oUrlGenerator->generate( + 'p_object_create', + ['sObjectClass' => $aAction['factory']['value']] + ); + } else { + $aAction['url'] = $this->oUrlGenerator->generate('p_object_create_from_factory', [ 'sEncodedMethodName' => base64_encode($aAction['factory']['value']), 'sObjectClass' => '-objectClass-', 'sObjectId' => '-objectId-', - )); + ]); } break; } @@ -278,10 +262,9 @@ class BrowseBrickHelper */ public function PrepareActionRulesForItems(array $aItems, $sLevelsAlias, array &$aLevelsProperties) { - $aActionRules = array(); + $aActionRules = []; - foreach ($aLevelsProperties[$sLevelsAlias]['actions'] as $sId => $aAction) - { + foreach ($aLevelsProperties[$sLevelsAlias]['actions'] as $sId => $aAction) { $aActionRules[$sId] = ContextManipulatorHelper::PrepareAndEncodeRulesToken($aAction['rules'], $aItems); } @@ -317,11 +300,10 @@ class BrowseBrickHelper */ public function AddToFlatItems(array $aCurrentRow, array &$aLevelsProperties) { - $aRow = array(); + $aRow = []; /** @var \DBObject $value */ - foreach ($aCurrentRow as $key => $value) - { + foreach ($aCurrentRow as $key => $value) { // Retrieving objects from all levels $aItems = array_values($aCurrentRow); @@ -332,36 +314,31 @@ class BrowseBrickHelper $sNameAttDef = MetaModel::GetAttributeDef($sCurrentObjectClass, $sNameAttCode); $sNameAttDefClass = get_class($sNameAttDef); - $aRow[$key] = array( + $aRow[$key] = [ 'level_alias' => $key, 'id' => $sCurrentObjectId, 'name' => utils::EscapeHtml($value->Get($sNameAttCode)), 'class' => $sCurrentObjectClass, 'action_rules_token' => $this->PrepareActionRulesForItems($aItems, $key, $aLevelsProperties), - 'metadata' => array( + 'metadata' => [ 'object_class' => $sCurrentObjectClass, 'object_id' => $sCurrentObjectId, 'attribute_code' => $sNameAttCode, 'attribute_type' => $sNameAttDefClass, 'value_raw' => $value->Get($sNameAttCode), - ), - ); + ], + ]; // Adding optional attributes if necessary - foreach (static::OPTIONAL_ATTRIBUTES as $sOptionalAttribute) - { - if ($aLevelsProperties[$key][$sOptionalAttribute] !== null) - { + foreach (static::OPTIONAL_ATTRIBUTES as $sOptionalAttribute) { + if ($aLevelsProperties[$key][$sOptionalAttribute] !== null) { $sPropertyName = substr($sOptionalAttribute, 0, -4); $oAttDef = MetaModel::GetAttributeDef($sCurrentObjectClass, $aLevelsProperties[$key][$sOptionalAttribute]); - if ($oAttDef instanceof AttributeImage) - { + if ($oAttDef instanceof AttributeImage) { $tmpAttValue = $value->Get($aLevelsProperties[$key][$sOptionalAttribute]); - if ($sOptionalAttribute === 'image_att') - { - if (is_object($tmpAttValue) && !$tmpAttValue->IsEmpty()) - { + if ($sOptionalAttribute === 'image_att') { + if (is_object($tmpAttValue) && !$tmpAttValue->IsEmpty()) { $oOrmDoc = $tmpAttValue; $tmpAttValue = $this->oUrlGenerator->generate('p_object_document_display', [ 'sObjectClass' => $sCurrentObjectClass, @@ -370,15 +347,11 @@ class BrowseBrickHelper 'cache' => 86400, 's' => $oOrmDoc->GetSignature(), ]); - } - else - { + } else { $tmpAttValue = $oAttDef->Get('default_image'); } } - } - else - { + } else { $tmpAttValue = $value->GetAsHTML($aLevelsProperties[$key][$sOptionalAttribute]); } @@ -386,16 +359,13 @@ class BrowseBrickHelper } } // Adding fields attributes if necessary - if (!empty($aLevelsProperties[$key]['fields'])) - { - $aRow[$key]['fields'] = array(); - foreach ($aLevelsProperties[$key]['fields'] as $aField) - { + if (!empty($aLevelsProperties[$key]['fields'])) { + $aRow[$key]['fields'] = []; + foreach ($aLevelsProperties[$key]['fields'] as $aField) { $oAttDef = MetaModel::GetAttributeDef($sCurrentObjectClass, $aField['code']); $sAttDefClass = get_class($oAttDef); - switch (true) - { + switch (true) { case $oAttDef instanceof AttributeTagSet: /** @var \ormTagSet $oSetValues */ $oSetValues = $value->Get($aField['code']); @@ -412,8 +382,7 @@ class BrowseBrickHelper case $oAttDef instanceof AttributeImage: // Todo: This should be refactored, it has been seen multiple times in the portal $oOrmDoc = $value->Get($aField['code']); - if (is_object($oOrmDoc) && !$oOrmDoc->IsEmpty()) - { + if (is_object($oOrmDoc) && !$oOrmDoc->IsEmpty()) { $sUrl = $this->oUrlGenerator->generate('p_object_document_display', [ 'sObjectClass' => $sCurrentObjectClass, 'sObjectId' => $sCurrentObjectId, @@ -421,9 +390,7 @@ class BrowseBrickHelper 'cache' => 86400, 's' => $oOrmDoc->GetSignature(), ]); - } - else - { + } else { $sUrl = $oAttDef->Get('default_image'); } $sHtmlForFieldValue = ''; @@ -436,24 +403,22 @@ class BrowseBrickHelper // For simple fields, we get the raw (stored) value as well $bExcludeRawValue = false; - foreach (ApplicationHelper::GetAttDefClassesToExcludeFromMarkupMetadataRawValue() as $sAttDefClassToExclude) - { - if (is_a($sAttDefClass, $sAttDefClassToExclude, true)) - { + foreach (ApplicationHelper::GetAttDefClassesToExcludeFromMarkupMetadataRawValue() as $sAttDefClassToExclude) { + if (is_a($sAttDefClass, $sAttDefClassToExclude, true)) { $bExcludeRawValue = true; break; } } $attValueRaw = ($bExcludeRawValue === false) ? $value->Get($aField['code']) : null; - $aRow[$key]['fields'][$aField['code']] = array( + $aRow[$key]['fields'][$aField['code']] = [ 'object_class' => $sCurrentObjectClass, 'object_id' => $sCurrentObjectId, 'attribute_code' => $aField['code'], 'attribute_type' => $sAttDefClass, 'value_raw' => $attValueRaw, 'value_html' => $sHtmlForFieldValue, - ); + ]; } } } @@ -503,39 +468,34 @@ class BrowseBrickHelper // We make sure to keep all row objects through levels by copying them when processing the first level. // Otherwise they will be sliced through levels, one by one. - if ($aCurrentRowObjects === null) - { + if ($aCurrentRowObjects === null) { $aCurrentRowObjects = $aCurrentRowValues; } - if (!isset($aItems[$sCurrentIndex])) - { - $aItems[$sCurrentIndex] = array( + if (!isset($aItems[$sCurrentIndex])) { + $aItems[$sCurrentIndex] = [ 'level_alias' => $aCurrentRowKeys[0], 'id' => $aCurrentRowValues[0]->GetKey(), 'name' => utils::EscapeHtml($aCurrentRowValues[0]->Get($aLevelsProperties[$aCurrentRowKeys[0]]['name_att'])), 'class' => get_class($aCurrentRowValues[0]), - 'subitems' => array(), + 'subitems' => [], 'filter_data' => $this->GetFilterData($aLevelsProperties[$aCurrentRowKeys[0]], $aCurrentRowKeys[0], $aCurrentRowValues[0]), 'action_rules_token' => $this->PrepareActionRulesForItems($aCurrentRowObjects, $aCurrentRowKeys[0], $aLevelsProperties), - ); + ]; // Adding optional attributes if necessary - foreach (static::OPTIONAL_ATTRIBUTES as $sOptionalAttribute) - { - if ($aLevelsProperties[$aCurrentRowKeys[0]][$sOptionalAttribute] !== null) - { + foreach (static::OPTIONAL_ATTRIBUTES as $sOptionalAttribute) { + if ($aLevelsProperties[$aCurrentRowKeys[0]][$sOptionalAttribute] !== null) { $sPropertyName = substr($sOptionalAttribute, 0, -4); - $oAttDef = MetaModel::GetAttributeDef(get_class($aCurrentRowValues[0]), - $aLevelsProperties[$aCurrentRowKeys[0]][$sOptionalAttribute]); + $oAttDef = MetaModel::GetAttributeDef( + get_class($aCurrentRowValues[0]), + $aLevelsProperties[$aCurrentRowKeys[0]][$sOptionalAttribute] + ); - if ($oAttDef instanceof AttributeImage) - { + if ($oAttDef instanceof AttributeImage) { $tmpAttValue = $aCurrentRowValues[0]->Get($aLevelsProperties[$aCurrentRowKeys[0]][$sOptionalAttribute]); - if ($sOptionalAttribute === 'image_att') - { - if (is_object($tmpAttValue) && !$tmpAttValue->IsEmpty()) - { + if ($sOptionalAttribute === 'image_att') { + if (is_object($tmpAttValue) && !$tmpAttValue->IsEmpty()) { $oOrmDoc = $tmpAttValue; $tmpAttValue = $this->oUrlGenerator->generate('p_object_document_display', [ 'sObjectClass' => get_class($aCurrentRowValues[0]), @@ -544,15 +504,11 @@ class BrowseBrickHelper 'cache' => 86400, 's' => $oOrmDoc->GetSignature(), ]); - } - else - { + } else { $tmpAttValue = $oAttDef->Get('default_image'); } } - } - else - { + } else { $tmpAttValue = $aCurrentRowValues[0]->GetAsHTML($aLevelsProperties[$aCurrentRowKeys[0]][$sOptionalAttribute]); } @@ -562,8 +518,7 @@ class BrowseBrickHelper } $aCurrentRowSliced = array_slice($aCurrentRow, 1); - if (!empty($aCurrentRowSliced)) - { + if (!empty($aCurrentRowSliced)) { $this->AddToTreeItems($aItems[$sCurrentIndex]['subitems'], $aCurrentRowSliced, $aLevelsProperties, $aCurrentRowObjects); } } @@ -580,7 +535,7 @@ class BrowseBrickHelper * @throws \CoreException * @throws \Exception */ - private function GetFilterData(array $aLevelProperties, string $sRowKey, DBObject $oRowValue) : array + private function GetFilterData(array $aLevelProperties, string $sRowKey, DBObject $oRowValue): array { // result $sValues = ""; @@ -599,17 +554,17 @@ class BrowseBrickHelper $sValue = $oAttDef->GetAsHTML($oRowValue->Get($aField['code'])); // do not print empty fields - if(!utils::IsNullOrEmptyString($sValue)){ + if (!utils::IsNullOrEmptyString($sValue)) { // append to result $sValues .= $sValue; - $sValuesAndCodes .= '' . $aField['label'] . ': ' . $sValue . ''; + $sValuesAndCodes .= ''.$aField['label'].': '.$sValue.''; } } return [ 'values' => $sValues, - 'values_and_codes' => $sValuesAndCodes + 'values_and_codes' => $sValuesAndCodes, ]; } } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/ExtensibilityHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/ExtensibilityHelper.php index dc32ad9fc..f21fc108b 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/ExtensibilityHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/ExtensibilityHelper.php @@ -1,4 +1,5 @@ sFilename = "{$sPortalId}.lifecycle.php"; $this->sCachePath = $sPortalCachePath; - $this->sInstancePrefix = "{$sPortalId}-";; + $this->sInstancePrefix = "{$sPortalId}-"; + ; $this->sGeneratedClass = static::DEFAULT_GENERATED_CLASS; - $this->aProfilesMatrix = array(); + $this->aProfilesMatrix = []; $this->Init($moduleDesign->GetNodes('/module_design/classes/class')); } @@ -143,8 +144,7 @@ class LifecycleValidatorHelper public function Init(DOMNodeList $oNodes) { // Checking cache path - if ($this->sCachePath === null) - { + if ($this->sCachePath === null) { $this->sCachePath = utils::GetCachePath(); } // Building full pathname for file @@ -152,61 +152,48 @@ class LifecycleValidatorHelper // Creating file if not existing // Note: This is a temporary cache system, it should soon evolve to a cache provider (fs, apc, memcache, ...) - if (!file_exists($sFilePath)) - { + if (!file_exists($sFilePath)) { // - Build php array from xml - $aProfiles = array(); + $aProfiles = []; // This will be used to know which classes have been set, so we can set the missing ones. - $aProfileClasses = array(); + $aProfileClasses = []; // Iterating over the class nodes /** @var \Combodo\iTop\DesignElement $oClassNode */ - foreach ($oNodes as $oClassNode) - { + foreach ($oNodes as $oClassNode) { // Retrieving mandatory class id attribute $sClass = $oClassNode->getAttribute('id'); - if ($sClass === '') - { + if ($sClass === '') { throw new DOMFormatException('Class tag must have an id attribute.', null, null, $oClassNode); } // Retrieving lifecycle node of the class $oLifecycleNode = $oClassNode->GetOptionalElement('lifecycle'); - if ($oLifecycleNode !== null) - { + if ($oLifecycleNode !== null) { // Iterating over scope nodes of the class $oStimuliNode = $oLifecycleNode->GetOptionalElement('stimuli'); - if ($oStimuliNode !== null) - { + if ($oStimuliNode !== null) { /** @var \Combodo\iTop\DesignElement $oStimulusNode */ - foreach ($oStimuliNode->GetNodes('./stimulus') as $oStimulusNode) - { + foreach ($oStimuliNode->GetNodes('./stimulus') as $oStimulusNode) { // Retrieving mandatory scope id attribute $sStimulusId = $oStimulusNode->getAttribute('id'); - if ($sStimulusId === '') - { + if ($sStimulusId === '') { throw new DOMFormatException('Stimulus tag must have an id attribute.', null, null, $oStimulusNode); } // Retrieving profiles for the stimulus $oProfilesNode = $oStimulusNode->GetOptionalElement('denied_profiles'); - $aProfilesNames = array(); + $aProfilesNames = []; // If no profile is specified, we consider that it's for ALL the profiles - if (($oProfilesNode === null) || ($oProfilesNode->GetNodes('./denied_profile')->length === 0)) - { - foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) - { + if (($oProfilesNode === null) || ($oProfilesNode->GetNodes('./denied_profile')->length === 0)) { + foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) { $aProfilesNames[] = $aValue['name']; } - } - else - { + } else { /** @var \Combodo\iTop\DesignElement $oProfileNode */ - foreach ($oProfilesNode->GetNodes('./denied_profile') as $oProfileNode) - { + foreach ($oProfilesNode->GetNodes('./denied_profile') as $oProfileNode) { // Retrieving mandatory profile id attribute $sProfileId = $oProfileNode->getAttribute('id'); - if ($sProfileId === '') - { + if ($sProfileId === '') { throw new DOMFormatException('Profile tag must have an id attribute.', null, null, $oProfileNode); } $aProfilesNames[] = $sProfileId; @@ -214,21 +201,18 @@ class LifecycleValidatorHelper } // - foreach ($aProfilesNames as $sProfileName) - { + foreach ($aProfilesNames as $sProfileName) { // Stimulus profile id $iProfileId = $this->GetProfileIdFromProfileName($sProfileName); // Now that we have the queries infos, we are going to build the queries for that profile / class $sMatrixPrefix = $iProfileId.'_'.$sClass; // - Creating profile / class entry if not already present - if (!array_key_exists($sMatrixPrefix, $aProfiles)) - { - $aProfiles[$sMatrixPrefix] = array(); + if (!array_key_exists($sMatrixPrefix, $aProfiles)) { + $aProfiles[$sMatrixPrefix] = []; } // - Adding stimulus if not already present - if (!in_array($sStimulusId, $aProfiles[$sMatrixPrefix])) - { + if (!in_array($sStimulusId, $aProfiles[$sMatrixPrefix])) { $aProfiles[$sMatrixPrefix][] = $sStimulusId; } } @@ -244,20 +228,15 @@ class LifecycleValidatorHelper // If not, we add them // // Note: Classes / Stimuli not in the matrix are implicitly ALLOWED. That can happen by omitting the in a - foreach ($aProfileClasses as $sProfileClass) - { - foreach (MetaModel::EnumChildClasses($sProfileClass) as $sChildClass) - { + foreach ($aProfileClasses as $sProfileClass) { + foreach (MetaModel::EnumChildClasses($sProfileClass) as $sChildClass) { // If the child class is not in the scope, we are going to try to add it - if (!in_array($sChildClass, $aProfileClasses)) - { - foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) - { + if (!in_array($sChildClass, $aProfileClasses)) { + foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) { $iProfileId = $iKey; // If the current profile has scope for that class in that mode, we duplicate it - if (isset($aProfiles[$iProfileId.'_'.$sProfileClass])) - { + if (isset($aProfiles[$iProfileId.'_'.$sProfileClass])) { $aProfiles[$iProfileId.'_'.$sChildClass] = $aProfiles[$iProfileId.'_'.$sProfileClass]; } } @@ -270,14 +249,12 @@ class LifecycleValidatorHelper // - Write file on disk // - Creating dir if necessary - if (!is_dir($this->sCachePath)) - { + if (!is_dir($this->sCachePath)) { mkdir($this->sCachePath, 0777, true); } // -- Then creating the file $ret = file_put_contents($sFilePath, $sPHP); - if ($ret === false) - { + if ($ret === false) { $iLen = strlen($sPHP); $fFree = @disk_free_space(dirname($sFilePath)); $aErr = error_get_last(); @@ -285,8 +262,7 @@ class LifecycleValidatorHelper } } - if (!class_exists($this->sGeneratedClass)) - { + if (!class_exists($this->sGeneratedClass)) { require_once $this->sCachePath.$this->sFilename; } } @@ -303,7 +279,7 @@ class LifecycleValidatorHelper */ public function GetStimuliForProfile($sProfile, $sClass) { - return $this->GetStimuliForProfiles(array($sProfile), $sClass); + return $this->GetStimuliForProfiles([$sProfile], $sClass); } /** @@ -319,17 +295,15 @@ class LifecycleValidatorHelper */ public function GetStimuliForProfiles($aProfiles, $sClass) { - $aStimuli = array(); + $aStimuli = []; // Preparing available stimuli - foreach (MetaModel::EnumStimuli($sClass) as $sStimulusCode => $aData) - { + foreach (MetaModel::EnumStimuli($sClass) as $sStimulusCode => $aData) { $aStimuli[$sStimulusCode] = true; } // Iterating on profiles to retrieving the different OQLs parts - foreach ($aProfiles as $sProfile) - { + foreach ($aProfiles as $sProfile) { // Retrieving matrix information $iProfileId = $this->GetProfileIdFromProfileName($sProfile); @@ -337,10 +311,8 @@ class LifecycleValidatorHelper $sLifecycleValuesClass = $this->sGeneratedClass; $aProfileMatrix = $sLifecycleValuesClass::GetProfileStimuli($iProfileId, $sClass); - foreach ($aProfileMatrix as $sStimulusCode) - { - if (array_key_exists($sStimulusCode, $aStimuli)) - { + foreach ($aProfileMatrix as $sStimulusCode) { + if (array_key_exists($sStimulusCode, $aStimuli)) { unset($aStimuli[$sStimulusCode]); } } @@ -364,18 +336,12 @@ class LifecycleValidatorHelper // We try to find the profile from its name in order to retrieve it's id // - If the regular UserRights add-on is installed we check the profiles array - if (class_exists('ProfilesConfig')) - { - if (defined($sProfile) && in_array($sProfile, ProfilesConfig::GetProfilesValues())) - { + if (class_exists('ProfilesConfig')) { + if (defined($sProfile) && in_array($sProfile, ProfilesConfig::GetProfilesValues())) { $iProfileId = constant($sProfile); - } - else - { - foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) - { - if ($aValue['name'] === $sProfile) - { + } else { + foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) { + if ($aValue['name'] === $sProfile) { $iProfileId = $iKey; break; } @@ -383,14 +349,12 @@ class LifecycleValidatorHelper } } // - Else, we can't find the id from the name as we don't know the used UserRights add-on. It has to be a constant - else - { + else { throw new Exception('Lifecycle validator : Unknown UserRights addon, lifecycle\'s profile must be a constant'); } // If profile was not found from its name or from a constant, we throw an exception - if ($iProfileId === null) - { + if ($iProfileId === null) { throw new Exception('Lifecycle validator : Could not find "'.$sProfile.'" in the profiles list'); } @@ -404,7 +368,7 @@ class LifecycleValidatorHelper * * @return string */ - protected function BuildPHPClass($aProfiles = array()) + protected function BuildPHPClass($aProfiles = []) { $sProfiles = var_export($aProfiles, true); $sClassName = $this->sGeneratedClass; @@ -447,4 +411,3 @@ EOF; } } - diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/NavigationRuleHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/NavigationRuleHelper.php index 95e3ce488..7d48cecfb 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/NavigationRuleHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/NavigationRuleHelper.php @@ -44,50 +44,50 @@ use utils; class NavigationRuleHelper { // Available point of origin for the navigation - const ENUM_ORIGIN_PAGE = 'default'; - const ENUM_ORIGIN_MODAL = 'modal'; + public const ENUM_ORIGIN_PAGE = 'default'; + public const ENUM_ORIGIN_MODAL = 'modal'; // Available rule categories (of rule types) /** @var string ENUM_RULE_CAT_CLOSE (eg. close modal/window) */ - const ENUM_RULE_CAT_CLOSE = 'close'; + public const ENUM_RULE_CAT_CLOSE = 'close'; /** @var string ENUM_RULE_CAT_REDIRECT (eg. go-to-homepage, go-to-object, go-to-brick, ...) */ - const ENUM_RULE_CAT_REDIRECT = 'redirect'; + public const ENUM_RULE_CAT_REDIRECT = 'redirect'; // Available rule types /** @var string ENUM_RULE_CLOSE */ - const ENUM_RULE_CLOSE = 'close'; + public const ENUM_RULE_CLOSE = 'close'; /** @var string ENUM_RULE_GO_TO_HOMEPAGE */ - const ENUM_RULE_GO_TO_HOMEPAGE = 'go-to-homepage'; + public const ENUM_RULE_GO_TO_HOMEPAGE = 'go-to-homepage'; /** @var string ENUM_RULE_GO_TO_OBJECT */ - const ENUM_RULE_GO_TO_OBJECT = 'go-to-object'; + public const ENUM_RULE_GO_TO_OBJECT = 'go-to-object'; /** @var string ENUM_RULE_GO_TO_BRICK */ - const ENUM_RULE_GO_TO_BRICK = 'go-to-brick'; + public const ENUM_RULE_GO_TO_BRICK = 'go-to-brick'; /** @var string ENUM_RULE_GO_TO_MANAGE_BRICK */ - const ENUM_RULE_GO_TO_MANAGE_BRICK = 'go-to-manage-brick'; + public const ENUM_RULE_GO_TO_MANAGE_BRICK = 'go-to-manage-brick'; /** @var string ENUM_RULE_GO_TO_BROWSE_BRICK */ - const ENUM_RULE_GO_TO_BROWSE_BRICK = 'go-to-browse-brick'; + public const ENUM_RULE_GO_TO_BROWSE_BRICK = 'go-to-browse-brick'; // - Defaults /** @var string DEFAULT_RULE_SUBMIT_PAGE */ - const DEFAULT_RULE_SUBMIT_PAGE = self::ENUM_RULE_GO_TO_OBJECT; + public const DEFAULT_RULE_SUBMIT_PAGE = self::ENUM_RULE_GO_TO_OBJECT; /** @var string DEFAULT_RULE_SUBMIT_MODAL */ - const DEFAULT_RULE_SUBMIT_MODAL = self::ENUM_RULE_CLOSE; + public const DEFAULT_RULE_SUBMIT_MODAL = self::ENUM_RULE_CLOSE; /** @var string DEFAULT_RULE_CANCEL_PAGE */ - const DEFAULT_RULE_CANCEL_PAGE = self::ENUM_RULE_CLOSE; + public const DEFAULT_RULE_CANCEL_PAGE = self::ENUM_RULE_CLOSE; /** @var string DEFAULT_RULE_CANCEL_MODAL */ - const DEFAULT_RULE_CANCEL_MODAL = self::ENUM_RULE_CLOSE; + public const DEFAULT_RULE_CANCEL_MODAL = self::ENUM_RULE_CLOSE; // Rule go-to-object properties /** @var string DEFAULT_RULE_GO_TO_OBJECT_PROP_MODE */ - const DEFAULT_RULE_GO_TO_OBJECT_PROP_MODE = ObjectFormHandlerHelper::ENUM_MODE_VIEW; + public const DEFAULT_RULE_GO_TO_OBJECT_PROP_MODE = ObjectFormHandlerHelper::ENUM_MODE_VIEW; /** @var string ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_MODAL */ - const ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_MODAL = 'modal'; + public const ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_MODAL = 'modal'; /** @var string ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_PAGE */ - const ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_PAGE = 'page'; + public const ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_PAGE = 'page'; /** @var string ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_CURRENT */ - const ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_CURRENT = 'current'; + public const ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_CURRENT = 'current'; /** @var string DEFAULT_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET */ - const DEFAULT_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET = self::ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_MODAL; + public const DEFAULT_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET = self::ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_MODAL; // Rule go-to-brick properties // TODO @@ -112,9 +112,12 @@ class NavigationRuleHelper * @throws \DOMFormatException */ public function __construct( - ModuleDesign $oModuleDesign, RouterInterface $oRouter, BrickCollection $oBrickCollection, ScopeValidatorHelper $oScopeValidator + ModuleDesign $oModuleDesign, + RouterInterface $oRouter, + BrickCollection $oBrickCollection, + ScopeValidatorHelper $oScopeValidator ) { - $this->aRules = array(); + $this->aRules = []; $this->oRouter = $oRouter; $this->oBrickCollection = $oBrickCollection; @@ -132,31 +135,29 @@ class NavigationRuleHelper */ public function Init(DOMNodeList $oNodes) { - $this->aRules = array(); + $this->aRules = []; // Iterating over the navigation_rule nodes /** @var \Combodo\iTop\DesignElement $oRuleNode */ - foreach ($oNodes as $oRuleNode) - { + foreach ($oNodes as $oRuleNode) { // Checking node name - if ($oRuleNode->nodeName !== 'navigation_rule') - { + if ($oRuleNode->nodeName !== 'navigation_rule') { continue; } // Retrieving mandatory attributes // - ID $sRuleId = $oRuleNode->getAttribute('id'); - if ($sRuleId === '') - { + if ($sRuleId === '') { throw new DOMFormatException('Rule tag must have an id attribute.', null, null, $oRuleNode); } // - Type $sRuleType = $oRuleNode->getAttribute('xsi:type'); - if (($sRuleType === '') || !in_array($sRuleType, static::GetAllowedTypes())) - { - throw new DOMFormatException('Navigation rule tag must have a valid xsi:type, "'.$sRuleType.'" given, expected '.implode('|', - static::GetAllowedTypes()), null, null, $oRuleNode); + if (($sRuleType === '') || !in_array($sRuleType, static::GetAllowedTypes())) { + throw new DOMFormatException('Navigation rule tag must have a valid xsi:type, "'.$sRuleType.'" given, expected '.implode( + '|', + static::GetAllowedTypes() + ), null, null, $oRuleNode); } // Load rule from XML @@ -176,10 +177,10 @@ class NavigationRuleHelper */ public static function GetAllowedOrigins() { - return array( + return [ static::ENUM_ORIGIN_PAGE, static::ENUM_ORIGIN_MODAL, - ); + ]; } /** @@ -189,14 +190,14 @@ class NavigationRuleHelper */ public static function GetAllowedTypes() { - return array( + return [ static::ENUM_RULE_CLOSE, static::ENUM_RULE_GO_TO_HOMEPAGE, static::ENUM_RULE_GO_TO_OBJECT, static::ENUM_RULE_GO_TO_BRICK, static::ENUM_RULE_GO_TO_BROWSE_BRICK, static::ENUM_RULE_GO_TO_MANAGE_BRICK, - ); + ]; } /** @@ -209,8 +210,7 @@ class NavigationRuleHelper */ public function GetRuleDefinition($sId) { - if (!array_key_exists($sId, $this->aRules)) - { + if (!array_key_exists($sId, $this->aRules)) { throw new Exception('NavigationRuleHelper: Could not find "'.$sId.'" in the rules list'); } @@ -251,10 +251,10 @@ class NavigationRuleHelper */ public function GetDefaultCloseRuleDefinition() { - return array( + return [ 'category' => static::ENUM_RULE_CAT_CLOSE, 'type' => static::ENUM_RULE_CLOSE, - ); + ]; } /** @@ -264,10 +264,10 @@ class NavigationRuleHelper */ public function GetDefaultGoToHomepageRuleDefinition() { - return array( + return [ 'category' => static::ENUM_RULE_CAT_REDIRECT, 'type' => static::ENUM_RULE_GO_TO_HOMEPAGE, - ); + ]; } /** @@ -277,15 +277,15 @@ class NavigationRuleHelper */ public function GetDefaultGoToObjectRuleDefinition() { - return array( + return [ 'category' => static::ENUM_RULE_CAT_REDIRECT, 'type' => static::ENUM_RULE_GO_TO_OBJECT, - 'properties' => array( + 'properties' => [ 'mode' => static::DEFAULT_RULE_GO_TO_OBJECT_PROP_MODE, 'opening_target' => static::DEFAULT_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET, 'oql' => null, - ), - ); + ], + ]; } /** @@ -295,16 +295,16 @@ class NavigationRuleHelper */ public function GetDefaultGoToBrickRuleDefinition() { - return array( + return [ 'category' => static::ENUM_RULE_CAT_REDIRECT, 'type' => static::ENUM_RULE_GO_TO_BRICK, - 'properties' => array( - 'route' => array( + 'properties' => [ + 'route' => [ 'id' => null, - 'params' => array(), - ), - ), - ); + 'params' => [], + ], + ], + ]; } //---------------------------- @@ -351,21 +351,18 @@ class NavigationRuleHelper // Default values $aRule = $this->GetDefaultGoToObjectRuleDefinition(); - $aAllowedOpeningTarget = array( + $aAllowedOpeningTarget = [ static::ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_CURRENT, static::ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_MODAL, static::ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_PAGE, - ); + ]; /** @var \Combodo\iTop\DesignElement $oPropNode */ - foreach($oRuleNode->GetNodes('*') as $oPropNode) - { - switch($oPropNode->nodeName) - { + foreach ($oRuleNode->GetNodes('*') as $oPropNode) { + switch ($oPropNode->nodeName) { case 'mode': $sMode = $oPropNode->GetText(); - if(!in_array($sMode, ObjectFormHandlerHelper::GetAllowedModes())) - { + if (!in_array($sMode, ObjectFormHandlerHelper::GetAllowedModes())) { throw new DOMFormatException('mode tag of navigation_rule "'.$sRuleId.'" must be valid. Expected '.implode('|', ObjectFormHandlerHelper::GetAllowedModes()).', "'.$sMode.'" given.', null, null, $oRuleNode); } $aRule['properties']['mode'] = $sMode; @@ -373,8 +370,7 @@ class NavigationRuleHelper case 'opening_target': $sOpeningTarget = $oPropNode->GetText(); - if(!in_array($sOpeningTarget, $aAllowedOpeningTarget)) - { + if (!in_array($sOpeningTarget, $aAllowedOpeningTarget)) { throw new DOMFormatException('opening_target tag of navigation_rule "'.$sRuleId.'" must be valid. Expected '.implode('|', $aAllowedOpeningTarget).', "'.$sOpeningTarget.'" given.', null, null, $oRuleNode); } $aRule['properties']['opening_target'] = $sOpeningTarget; @@ -382,8 +378,7 @@ class NavigationRuleHelper case 'oql': $sOQL = $oPropNode->GetText(); - if(empty($sOQL)) - { + if (empty($sOQL)) { throw new DOMFormatException('oql tag of navigation_rule "'.$sRuleId.'" can not be empty.'); } $aRule['properties']['oql'] = $sOQL; @@ -409,30 +404,24 @@ class NavigationRuleHelper $aRule = $this->GetDefaultGoToBrickRuleDefinition(); /** @var \Combodo\iTop\DesignElement $oPropNode */ - foreach($oRuleNode->GetNodes('*') as $oPropNode) - { - switch($oPropNode->nodeName) - { + foreach ($oRuleNode->GetNodes('*') as $oPropNode) { + switch ($oPropNode->nodeName) { case 'route': /** @var array $aRouteProperties Route ID and parameters */ - $aRouteProperties = array(); + $aRouteProperties = []; /** @var DesignElement $oRoutePropNode */ - foreach($oPropNode->GetNodes('*') as $oRoutePropNode) - { - switch($oRoutePropNode->nodeName) - { + foreach ($oPropNode->GetNodes('*') as $oRoutePropNode) { + switch ($oRoutePropNode->nodeName) { case 'id': $aRouteProperties['id'] = $oRoutePropNode->GetText(); break; case 'params': /** @var DesignElement $oRouteParamNode */ - foreach($oRoutePropNode->GetNodes('*') as $oRouteParamNode) - { + foreach ($oRoutePropNode->GetNodes('*') as $oRouteParamNode) { $sRouteParamId = $oRouteParamNode->getAttribute('id'); $sRouteParamValue = $oRouteParamNode->GetText(); - if(empty($sRouteParamId) || empty($sRouteParamValue)) - { + if (empty($sRouteParamId) || empty($sRouteParamValue)) { throw new DOMFormatException('param tag of navigation_rule "'.$sRuleId.'" must have a valid ID and value.', null, null, $oRuleNode); } @@ -443,8 +432,7 @@ class NavigationRuleHelper } // Consistency check - if(empty($aRouteProperties['id'])) - { + if (empty($aRouteProperties['id'])) { throw new DOMFormatException('navigation_rule "'.$sRuleId.'" must have a valid ID', null, null, $oRuleNode); } @@ -474,16 +462,15 @@ class NavigationRuleHelper $aRule['properties']['route']['params']['sDisplayMode'] = ManageBrick::DEFAULT_DISPLAY_MODE; // Rule parameters to automatically map to the route parameters - $aParamsMapping = array( + $aParamsMapping = [ 'id' => 'sBrickId', 'display_mode' => 'sDisplayMode', 'grouping_tab' => 'sGroupingTab', 'filter' => 'sSearchValue', - ); + ]; /** @var \Combodo\iTop\DesignElement $oPropNode */ - foreach($oRuleNode->GetNodes('*') as $oPropNode) - { + foreach ($oRuleNode->GetNodes('*') as $oPropNode) { $sRouteParamId = (array_key_exists($oPropNode->nodeName, $aParamsMapping)) ? $aParamsMapping[$oPropNode->nodeName] : $oPropNode->nodeName; $aRule['properties']['route']['params'][$sRouteParamId] = $oPropNode->GetText(); } @@ -509,15 +496,14 @@ class NavigationRuleHelper $aRule['properties']['route']['params']['sBrowseMode'] = BrowseBrick::DEFAULT_BROWSE_MODE; // Rule parameters to automatically map to the route parameters - $aParamsMapping = array( + $aParamsMapping = [ 'id' => 'sBrickId', 'browse_mode' => 'sBrowseMode', 'filter' => 'sSearchValue', - ); + ]; /** @var \Combodo\iTop\DesignElement $oPropNode */ - foreach($oRuleNode->GetNodes('*') as $oPropNode) - { + foreach ($oRuleNode->GetNodes('*') as $oPropNode) { $sRouteParamId = (array_key_exists($oPropNode->nodeName, $aParamsMapping)) ? $aParamsMapping[$oPropNode->nodeName] : $oPropNode->nodeName; $aRule['properties']['route']['params'][$sRouteParamId] = $oPropNode->GetText(); } @@ -555,33 +541,30 @@ class NavigationRuleHelper public function PrepareRulesForForm(array $aFormProperties, DBObject $oCurrentObject, $bIsCurrentFormInModal = false) { // Default values - $aResults = array( - 'submit' => array( + $aResults = [ + 'submit' => [ 'category' => static::ENUM_RULE_CAT_REDIRECT, 'url' => null, 'modal' => false, - ), - 'cancel' => array( + ], + 'cancel' => [ 'category' => static::ENUM_RULE_CAT_CLOSE, 'url' => null, 'modal' => false, - ), - ); + ], + ]; // Get form's navigation rules - $aFormNavRules = (isset($aFormProperties['properties']['navigation_rules'])) ? $aFormProperties['properties']['navigation_rules'] : array('submit' => null, 'cancel' => null); + $aFormNavRules = (isset($aFormProperties['properties']['navigation_rules'])) ? $aFormProperties['properties']['navigation_rules'] : ['submit' => null, 'cancel' => null]; // Check from which origin the rule will be called $sRuleCallOrigin = ($bIsCurrentFormInModal) ? 'modal' : 'default'; - foreach(array_keys($aResults) as $sButtonCode) - { + foreach (array_keys($aResults) as $sButtonCode) { // Retrieve rule definition // - Default behavior when no rule specified - if(empty($aFormNavRules[$sButtonCode][$sRuleCallOrigin])) - { - switch($sButtonCode) - { + if (empty($aFormNavRules[$sButtonCode][$sRuleCallOrigin])) { + switch ($sButtonCode) { case 'submit': $sDefaultRuleType = ($bIsCurrentFormInModal) ? static::DEFAULT_RULE_SUBMIT_MODAL : static::DEFAULT_RULE_SUBMIT_PAGE; break; @@ -593,8 +576,7 @@ class NavigationRuleHelper $aRuleDef = $this->GetDefaultRuleDefinitionFromType($sDefaultRuleType); } // - Specified rule - else - { + else { $sRuleId = $aFormNavRules[$sButtonCode][$sRuleCallOrigin]; $aRuleDef = $this->GetRuleDefinition($sRuleId); } @@ -603,36 +585,31 @@ class NavigationRuleHelper $aResults[$sButtonCode]['category'] = $aRuleDef['category']; // Set properties regarding the type - switch($aRuleDef['type']) - { + switch ($aRuleDef['type']) { case static::ENUM_RULE_GO_TO_HOMEPAGE: $aResults[$sButtonCode]['url'] = $this->oRouter->generate('p_home'); break; case static::ENUM_RULE_GO_TO_OBJECT: // Target opening mode to modal if specified or should be as current form - if( ($aRuleDef['properties']['opening_target'] === static::ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_MODAL) + if (($aRuleDef['properties']['opening_target'] === static::ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_MODAL) || (($aRuleDef['properties']['opening_target'] === static::ENUM_RULE_GO_TO_OBJECT_PROP_OPENING_TARGET_CURRENT) && ($bIsCurrentFormInModal === true)) - ) - { + ) { $aResults[$sButtonCode]['modal'] = true; } // Target URL // - Find object - if(empty($aRuleDef['properties']['oql'])) - { + if (empty($aRuleDef['properties']['oql'])) { $oTargetObject = $oCurrentObject; - } - else - { + } else { $oSearch = DBSearch::FromOQL($aRuleDef['properties']['oql']); - $oSet = new DBObjectSet($oSearch, array(), array('this' => $oCurrentObject)); - $oSet->OptimizeColumnLoad(array($oSearch->GetClassAlias() => array())); + $oSet = new DBObjectSet($oSearch, [], ['this' => $oCurrentObject]); + $oSet->OptimizeColumnLoad([$oSearch->GetClassAlias() => []]); $oTargetObject = $oSet->Fetch(); } // - Build URL - $aResults[$sButtonCode]['url'] = $this->oRouter->generate('p_object_'.$aRuleDef['properties']['mode'], array('sObjectClass' => get_class($oTargetObject), 'sObjectId' => $oTargetObject->GetKey())); + $aResults[$sButtonCode]['url'] = $this->oRouter->generate('p_object_'.$aRuleDef['properties']['mode'], ['sObjectClass' => get_class($oTargetObject), 'sObjectId' => $oTargetObject->GetKey()]); break; case static::ENUM_RULE_GO_TO_BRICK: diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/ObjectFormHandlerHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/ObjectFormHandlerHelper.php index 15103692d..852ac9be7 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/ObjectFormHandlerHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/ObjectFormHandlerHelper.php @@ -18,7 +18,6 @@ * You should have received a copy of the GNU Affero General Public License */ - namespace Combodo\iTop\Portal\Helper; use ApplicationContext; @@ -51,16 +50,16 @@ use UserRights; class ObjectFormHandlerHelper { /** @var string */ - const ENUM_MODE_VIEW = 'view'; + public const ENUM_MODE_VIEW = 'view'; /** @var string */ - const ENUM_MODE_EDIT = 'edit'; + public const ENUM_MODE_EDIT = 'edit'; /** @var string */ - const ENUM_MODE_CREATE = 'create'; + public const ENUM_MODE_CREATE = 'create'; /** * @var string * @since 2.7.7 3.0.1 3.1.0 */ - const ENUM_MODE_APPLY_STIMULUS = 'apply_stimulus'; + public const ENUM_MODE_APPLY_STIMULUS = 'apply_stimulus'; /** @var \Combodo\iTop\Portal\Helper\RequestManipulatorHelper $oRequestManipulator */ private $oRequestManipulator; @@ -95,10 +94,16 @@ class ObjectFormHandlerHelper * @param \Combodo\iTop\Portal\Twig\AppExtension $oAppExtension */ public function __construct( - RequestManipulatorHelper $oRequestManipulator, ContextManipulatorHelper $oContextManipulator, NavigationRuleHelper $oNavigationRuleHelper, ScopeValidatorHelper $oScopeValidator, SecurityHelper $oSecurityHelper, UrlGeneratorInterface $oUrlGenerator, $aCombodoPortalInstanceConf, $sPortalId, + RequestManipulatorHelper $oRequestManipulator, + ContextManipulatorHelper $oContextManipulator, + NavigationRuleHelper $oNavigationRuleHelper, + ScopeValidatorHelper $oScopeValidator, + SecurityHelper $oSecurityHelper, + UrlGeneratorInterface $oUrlGenerator, + $aCombodoPortalInstanceConf, + $sPortalId, AppExtension $oAppExtension - ) - { + ) { $this->oRequestManipulator = $oRequestManipulator; $this->oContextManipulator = $oContextManipulator; $this->oNavigationRuleHelper = $oNavigationRuleHelper; @@ -126,7 +131,7 @@ class ObjectFormHandlerHelper */ public function HandleForm(Request $oRequest, $sMode, $sObjectClass, $sObjectId = null, array $aFormProperties = null) { - $aFormData = array(); + $aFormData = []; $sOperation = $this->oRequestManipulator->ReadParam('operation', ''); $bModal = ($oRequest->isXmlHttpRequest() && empty($sOperation)); @@ -134,71 +139,58 @@ class ObjectFormHandlerHelper $aFormProperties = $aFormProperties ?? ApplicationHelper::GetLoadedFormFromClass($this->aCombodoPortalInstanceConf['forms'], $sObjectClass, $sMode); // - Create and - if (empty($sOperation)) - { + if (empty($sOperation)) { // Retrieving action rules // // Note : The action rules must be a base64-encoded JSON object, this is just so users are tempted to changes values. // But it would not be a security issue as it only presets values in the form. $sActionRulesToken = $this->oRequestManipulator->ReadParam('ar_token', ''); - $aActionRules = (!empty($sActionRulesToken)) ? ContextManipulatorHelper::DecodeRulesToken($sActionRulesToken) : array(); + $aActionRules = (!empty($sActionRulesToken)) ? ContextManipulatorHelper::DecodeRulesToken($sActionRulesToken) : []; // Preparing object - if ($sObjectId === null) - { + if ($sObjectId === null) { // Create new UserRequest $oObject = MetaModel::NewObject($sObjectClass); // Retrieve action rules information to auto-fill the form if available // Preparing object $this->oContextManipulator->PrepareObject($aActionRules, $oObject); - $aPrefillFormParam = array( + $aPrefillFormParam = [ 'user' => UserRights::GetUser(), 'origin' => 'portal', - ); + ]; $oObject->PrefillForm('creation_from_0', $aPrefillFormParam); - } - else - { + } else { $oObject = MetaModel::GetObject($sObjectClass, $sObjectId, true, $this->oScopeValidator->IsAllDataAllowedForScope(UserRights::ListProfiles(), $sObjectClass)); } // Preparing buttons - $aFormData['buttons'] = array( - 'transitions' => array(), - 'actions' => array(), - 'links' => array(), - 'submit' => array( + $aFormData['buttons'] = [ + 'transitions' => [], + 'actions' => [], + 'links' => [], + 'submit' => [ 'label' => Dict::S('Portal:Button:Submit'), - ), - ); - if ($sMode !== static::ENUM_MODE_APPLY_STIMULUS) - { + ], + ]; + if ($sMode !== static::ENUM_MODE_APPLY_STIMULUS) { // Add transition buttons $oSetToCheckRights = DBObjectSet::FromObject($oObject); $aStimuli = Metamodel::EnumStimuli($sObjectClass); - foreach ($oObject->EnumTransitions() as $sStimulusCode => $aTransitionDef) - { - if ($this->oSecurityHelper->IsStimulusAllowed($sStimulusCode, $sObjectClass, $oSetToCheckRights)) - { + foreach ($oObject->EnumTransitions() as $sStimulusCode => $aTransitionDef) { + if ($this->oSecurityHelper->IsStimulusAllowed($sStimulusCode, $sObjectClass, $oSetToCheckRights)) { $aFormData['buttons']['transitions'][$sStimulusCode] = $aStimuli[$sStimulusCode]->GetLabel(); } } // Add plugin buttons /** @var \iPopupMenuExtension $oExtensionInstance */ - foreach (MetaModel::EnumPlugins('iPopupMenuExtension') as $oExtensionInstance) - { - foreach ($oExtensionInstance->EnumItems(iPopupMenuExtension::PORTAL_OBJDETAILS_ACTIONS, array('portal_id' => $this->sPortalId, 'object' => $oObject, 'mode' => $sMode)) as $oMenuItem) - { - if (is_object($oMenuItem)) - { - if ($oMenuItem instanceof JSButtonItem) - { - $aFormData['buttons']['actions'][] = $oMenuItem->GetMenuItem() + array('js_files' => $oMenuItem->GetLinkedScripts()); - } - elseif ($oMenuItem instanceof URLButtonItem) - { + foreach (MetaModel::EnumPlugins('iPopupMenuExtension') as $oExtensionInstance) { + foreach ($oExtensionInstance->EnumItems(iPopupMenuExtension::PORTAL_OBJDETAILS_ACTIONS, ['portal_id' => $this->sPortalId, 'object' => $oObject, 'mode' => $sMode]) as $oMenuItem) { + if (is_object($oMenuItem)) { + if ($oMenuItem instanceof JSButtonItem) { + $aFormData['buttons']['actions'][] = $oMenuItem->GetMenuItem() + ['js_files' => $oMenuItem->GetLinkedScripts()]; + } elseif ($oMenuItem instanceof URLButtonItem) { $aFormData['buttons']['links'][] = $oMenuItem->GetMenuItem(); } } @@ -206,22 +198,17 @@ class ObjectFormHandlerHelper } // Hiding submit button or changing its label if necessary - if (!empty($aFormData['buttons']['transitions']) && isset($aFormProperties['properties']) && $aFormProperties['properties']['always_show_submit'] === false) - { + if (!empty($aFormData['buttons']['transitions']) && isset($aFormProperties['properties']) && $aFormProperties['properties']['always_show_submit'] === false) { unset($aFormData['buttons']['submit']); - } - elseif ($sMode === static::ENUM_MODE_EDIT) - { + } elseif ($sMode === static::ENUM_MODE_EDIT) { $aFormData['buttons']['submit']['label'] = Dict::S('Portal:Button:Apply'); } - } - else - { - $aPrefillFormParam = array( + } else { + $aPrefillFormParam = [ 'user' => UserRights::GetUser(), 'origin' => 'portal', 'stimulus' => $this->oRequestManipulator->ReadParam('apply_stimulus', null, FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY)['code'], - ); + ]; $oObject->PrefillForm('state_change', $aPrefillFormParam); } @@ -235,32 +222,31 @@ class ObjectFormHandlerHelper // Preparing renderer // Note : We might need to distinguish form & renderer endpoints - switch($sMode) - { + switch ($sMode) { case static::ENUM_MODE_CREATE: case static::ENUM_MODE_EDIT: case static::ENUM_MODE_VIEW: - if(array_key_exists('submit_endpoint', $aFormProperties)) { - $sFormEndpoint = $aFormProperties['submit_endpoint']; - } else { - $sFormEndpoint = $this->oUrlGenerator->generate( - 'p_object_' . $sMode, - array( - 'sObjectClass' => $sObjectClass, - 'sObjectId' => $sObjectId, - ) - ); - } + if (array_key_exists('submit_endpoint', $aFormProperties)) { + $sFormEndpoint = $aFormProperties['submit_endpoint']; + } else { + $sFormEndpoint = $this->oUrlGenerator->generate( + 'p_object_'.$sMode, + [ + 'sObjectClass' => $sObjectClass, + 'sObjectId' => $sObjectId, + ] + ); + } break; case static::ENUM_MODE_APPLY_STIMULUS: $sFormEndpoint = $this->oUrlGenerator->generate( 'p_object_apply_stimulus', - array( + [ 'sObjectClass' => $sObjectClass, 'sObjectId' => $sObjectId, 'sStimulusCode' => $this->oRequestManipulator->ReadParam('sStimulusCode'), - ) + ] ); break; @@ -294,8 +280,7 @@ class ObjectFormHandlerHelper /** @var \Combodo\iTop\Portal\Form\ObjectFormManager $sFormManagerClass */ $sFormManagerClass = $this->oRequestManipulator->ReadParam('formmanager_class', '', FILTER_UNSAFE_RAW); $sFormManagerData = $this->oRequestManipulator->ReadParam('formmanager_data', '', FILTER_UNSAFE_RAW); - if (empty($sFormManagerClass) || empty($sFormManagerData)) - { + if (empty($sFormManagerClass) || empty($sFormManagerData)) { IssueLog::Error(__METHOD__.' at line '.__LINE__.' : Parameters formmanager_class and formmanager_data must be defined.'); throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, 'Parameters formmanager_class and formmanager_data must be defined.'); } @@ -312,48 +297,45 @@ class ObjectFormHandlerHelper $oFormManager->SetObject($oObj); } - switch ($sOperation) - { + switch ($sOperation) { case 'submit': // Applying modification to object $aFormData['validation'] = $oFormManager->OnSubmit( - array( - 'currentValues' => $this->oRequestManipulator->ReadParam('current_values', array(), FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY), - 'attachmentIds' => $this->oRequestManipulator->ReadParam('attachment_ids', array(), FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY), + [ + 'currentValues' => $this->oRequestManipulator->ReadParam('current_values', [], FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY), + 'attachmentIds' => $this->oRequestManipulator->ReadParam('attachment_ids', [], FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY), 'formProperties' => $aFormProperties, 'applyStimulus' => $this->oRequestManipulator->ReadParam('apply_stimulus', null, FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY), - ) + ] ); - if ($aFormData['validation']['valid'] === true) - { + if ($aFormData['validation']['valid'] === true) { // Note : We don't use $sObjectId there as it can be null if we are creating a new one. Instead we use the id from the created object once it has been serialized // Check if stimulus has to be applied $sStimulusCode = $this->oRequestManipulator->ReadParam('stimulus_code', ''); - if (!empty($sStimulusCode)) - { - $aFormData['validation']['redirection'] = array( - 'url' => $this->oUrlGenerator->generate('p_object_apply_stimulus', array('sObjectClass' => $sObjectClass, 'sObjectId' => $oFormManager->GetObject()->GetKey(), 'sStimulusCode' => $sStimulusCode)), + if (!empty($sStimulusCode)) { + $aFormData['validation']['redirection'] = [ + 'url' => $this->oUrlGenerator->generate('p_object_apply_stimulus', ['sObjectClass' => $sObjectClass, 'sObjectId' => $oFormManager->GetObject()->GetKey(), 'sStimulusCode' => $sStimulusCode]), 'modal' => true, - ); + ]; } } else { - $sErrorMessages = ''; - foreach ($aFormData['validation']['messages']['error'] as $sFieldId => $aMessages) { - if ($sFieldId == '_main') { - $sErrorMessages .= implode(' - ', $aFormData['validation']['messages']['error']['_main']); - } else { - $oObj = $oFormManager->GetObject(); - $sLabel = $oObj->GetLabel($sFieldId); - $sErrorMessages .= Dict::Format('Portal:Error:CheckToWriteFailed', $sLabel, (is_array($aMessages) ? implode(' - ', $aMessages) : $aMessages)); - } - } + $sErrorMessages = ''; + foreach ($aFormData['validation']['messages']['error'] as $sFieldId => $aMessages) { + if ($sFieldId == '_main') { + $sErrorMessages .= implode(' - ', $aFormData['validation']['messages']['error']['_main']); + } else { + $oObj = $oFormManager->GetObject(); + $sLabel = $oObj->GetLabel($sFieldId); + $sErrorMessages .= Dict::Format('Portal:Error:CheckToWriteFailed', $sLabel, (is_array($aMessages) ? implode(' - ', $aMessages) : $aMessages)); + } + } - throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, $sErrorMessages); + throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, $sErrorMessages); } break; case 'update': - $oFormManager->OnUpdate(array('currentValues' => $this->oRequestManipulator->ReadParam('current_values', array(), FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY), 'formProperties' => $aFormProperties)); + $oFormManager->OnUpdate(['currentValues' => $this->oRequestManipulator->ReadParam('current_values', [], FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY), 'formProperties' => $aFormProperties]); break; case 'cancel': @@ -363,33 +345,27 @@ class ObjectFormHandlerHelper } // Preparing field_set data - $aFieldSetData = array( + $aFieldSetData = [ //'fields_list' => $oFormManager->GetRenderer()->Render(), // GLA : This should be done just after in the if statement. 'fields_impacts' => $oFormManager->GetForm()->GetFieldsImpacts(), 'form_path' => $oFormManager->GetForm()->GetId(), - ); + ]; // Preparing fields list regarding the operation - if ($sOperation === 'update') - { - $aRequestedFields = $this->oRequestManipulator->ReadParam('requested_fields', array(), FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY); + if ($sOperation === 'update') { + $aRequestedFields = $this->oRequestManipulator->ReadParam('requested_fields', [], FILTER_UNSAFE_RAW, FILTER_REQUIRE_ARRAY); $sFormPath = $this->oRequestManipulator->ReadParam('form_path', ''); // Checking if the update was on a subform, if so we need to make the rendering for that part only - if (!empty($sFormPath) && $sFormPath !== $oFormManager->GetForm()->GetId()) - { + if (!empty($sFormPath) && $sFormPath !== $oFormManager->GetForm()->GetId()) { $oSubForm = $oFormManager->GetForm()->FindSubForm($sFormPath); $oSubFormRenderer = new BsFormRenderer($oSubForm); $oSubFormRenderer->SetEndpoint($oFormManager->GetRenderer()->GetEndpoint()); $aFormData['updated_fields'] = $oSubFormRenderer->Render($aRequestedFields); - } - else - { + } else { $aFormData['updated_fields'] = $oFormManager->GetRenderer()->Render($aRequestedFields); } - } - else - { + } else { $aFieldSetData['fields_list'] = $oFormManager->GetRenderer()->Render(); } @@ -407,8 +383,7 @@ class ObjectFormHandlerHelper $aFormData['display_mode'] = (isset($aFormProperties['properties'])) ? $aFormProperties['properties']['display_mode'] : ApplicationHelper::FORM_DEFAULT_DISPLAY_MODE; $aFormData['hidden_fields'] = $oFormManager->GetHiddenFieldsId(); // - Set a text to be copied on title if the object is not in creation - if($sMode !== static::ENUM_MODE_CREATE && !empty($sObjectId)) - { + if ($sMode !== static::ENUM_MODE_CREATE && !empty($sObjectId)) { $aFormData['title_clipboard_text'] = Dict::Format( 'Brick:Portal:Object:Copy:TextToCopy', $aFormData['object_name'], @@ -435,17 +410,15 @@ class ObjectFormHandlerHelper public function RenderFormFromTwig($sId, $sTwigString, $aData) { // Creating sandbox twig env. to load and test the custom form template - $oTwig = new Environment(new ArrayLoader(array($sId => $sTwigString))); + $oTwig = new Environment(new ArrayLoader([$sId => $sTwigString])); // Manually registering filters and functions as we didn't find how to do it automatically $aFilters = $this->oAppExtension->getFilters(); - foreach ($aFilters as $oFilter) - { + foreach ($aFilters as $oFilter) { $oTwig->addFilter($oFilter); } $aFunctions = $this->oAppExtension->getFunctions(); - foreach ($aFunctions as $oFunction) - { + foreach ($aFunctions as $oFunction) { $oTwig->addFunction($oFunction); } @@ -469,9 +442,9 @@ class ObjectFormHandlerHelper public function CheckReadFormDataAllowed($sFormManagerData) { $aJsonFromData = ObjectFormManager::DecodeFormManagerData($sFormManagerData); - if(isset($aJsonFromData['formobject_class']) + if (isset($aJsonFromData['formobject_class']) && isset($aJsonFromData['formobject_id']) - && !$this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $aJsonFromData['formobject_class'], $aJsonFromData['formobject_id'])){ + && !$this->oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $aJsonFromData['formobject_class'], $aJsonFromData['formobject_id'])) { throw new HttpException(Response::HTTP_INTERNAL_SERVER_ERROR, 'Form data access denied.'); } } @@ -484,11 +457,11 @@ class ObjectFormHandlerHelper */ public static function GetAllowedModes() { - return array( + return [ static::ENUM_MODE_VIEW, static::ENUM_MODE_EDIT, static::ENUM_MODE_CREATE, - ); + ]; } /** @@ -530,4 +503,4 @@ class ObjectFormHandlerHelper { return $this->aCombodoPortalInstanceConf; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/RequestManipulatorHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/RequestManipulatorHelper.php index f46525335..97b890119 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/RequestManipulatorHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/RequestManipulatorHelper.php @@ -63,18 +63,15 @@ class RequestManipulatorHelper */ public function HasParam($sKey) { - if ($this->GetCurrentRequest()->query->has($sKey)) - { + if ($this->GetCurrentRequest()->query->has($sKey)) { return true; } - if ($this->GetCurrentRequest()->attributes->has($sKey)) - { + if ($this->GetCurrentRequest()->attributes->has($sKey)) { return true; } - if ($this->GetCurrentRequest()->request->has($sKey)) - { + if ($this->GetCurrentRequest()->request->has($sKey)) { return true; } @@ -90,7 +87,7 @@ class RequestManipulatorHelper * @param string $sKey * @param mixed $default * @param int $iFilter Default is FILTER_SANITIZE_SPECIAL_CHARS - * @param int $aFilterOptions @since 3.2.0 - N°6934 - Symfony 6.4 - upgrade Symfony bundles to 6.4 + * @param int $aFilterOptions @since 3.2.0 - N°6934 - Symfony 6.4 - upgrade Symfony bundles to 6.4 * * @return mixed|null * @@ -98,18 +95,15 @@ class RequestManipulatorHelper */ public function ReadParam($sKey, $default = null, $iFilter = FILTER_SANITIZE_SPECIAL_CHARS, $aFilterOptions = []) { - if ($this->GetCurrentRequest()->query->has($sKey)) - { + if ($this->GetCurrentRequest()->query->has($sKey)) { return $this->GetCurrentRequest()->query->filter($sKey, $default, $iFilter, $aFilterOptions); } - if ($this->GetCurrentRequest()->attributes->has($sKey)) - { + if ($this->GetCurrentRequest()->attributes->has($sKey)) { return $this->GetCurrentRequest()->attributes->filter($sKey, $default, $iFilter, $aFilterOptions); } - if ($this->GetCurrentRequest()->request->has($sKey)) - { + if ($this->GetCurrentRequest()->request->has($sKey)) { return $this->GetCurrentRequest()->request->filter($sKey, $default, $iFilter, $aFilterOptions); } diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/ScopeValidatorHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/ScopeValidatorHelper.php index 6332a56c4..ed885e0ce 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/ScopeValidatorHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/ScopeValidatorHelper.php @@ -41,18 +41,18 @@ use utils; class ScopeValidatorHelper { /** @var string ENUM_MODE_READ */ - const ENUM_MODE_READ = 'r'; + public const ENUM_MODE_READ = 'r'; /** @var string ENUM_MODE_WRITE */ - const ENUM_MODE_WRITE = 'w'; + public const ENUM_MODE_WRITE = 'w'; /** @var string ENUM_TYPE_ALLOW */ - const ENUM_TYPE_ALLOW = 'allow'; + public const ENUM_TYPE_ALLOW = 'allow'; /** @var string ENUM_TYPE_RESTRICT */ - const ENUM_TYPE_RESTRICT = 'restrict'; + public const ENUM_TYPE_RESTRICT = 'restrict'; /** @var string DEFAULT_GENERATED_CLASS */ - const DEFAULT_GENERATED_CLASS = '\\PortalScopesValues'; + public const DEFAULT_GENERATED_CLASS = '\\PortalScopesValues'; /** @var bool DEFAULT_IGNORE_SILOS */ - const DEFAULT_IGNORE_SILOS = false; + public const DEFAULT_IGNORE_SILOS = false; /** @var string|null $sCachePath */ protected $sCachePath; @@ -80,7 +80,7 @@ class ScopeValidatorHelper $this->sCachePath = $sPortalCachePath; $this->sInstancePrefix = "{$sPortalId}-"; $this->sGeneratedClass = static::DEFAULT_GENERATED_CLASS; - $this->aProfilesMatrix = array(); + $this->aProfilesMatrix = []; $this->Init($moduleDesign->GetNodes('/module_design/classes/class')); } @@ -96,8 +96,7 @@ class ScopeValidatorHelper public function Init(DOMNodeList $oNodes) { // Checking cache path - if ($this->sCachePath === null) - { + if ($this->sCachePath === null) { $this->sCachePath = utils::GetCachePath(); } // Building full pathname for file @@ -105,20 +104,18 @@ class ScopeValidatorHelper // Creating file if not existing // Note : This is a temporary cache system, it should soon evolve to a cache provider (fs, apc, memcache, ...) - if (!file_exists($sFilePath)) - { + if (!file_exists($sFilePath)) { $this->InitGenerateAndWriteCache($oNodes, $sFilePath); } - if (!class_exists($this->sGeneratedClass)) - { + if (!class_exists($this->sGeneratedClass)) { require_once $this->sCachePath.$this->sFilename; } } public static function EnumTypeValues() { - return array(static::ENUM_TYPE_ALLOW, static::ENUM_TYPE_RESTRICT); + return [static::ENUM_TYPE_ALLOW, static::ENUM_TYPE_RESTRICT]; } /** @@ -197,7 +194,7 @@ class ScopeValidatorHelper */ public function GetScopeFilterForProfile($sProfile, $sClass, $iAction = null) { - return $this->GetScopeFilterForProfiles(array($sProfile), $sClass, $iAction); + return $this->GetScopeFilterForProfiles([$sProfile], $sClass, $iAction); } /** @@ -217,19 +214,17 @@ class ScopeValidatorHelper public function GetScopeFilterForProfiles($aProfiles, $sClass, $iAction = null) { $oSearch = null; - $aAllowSearches = array(); - $aRestrictSearches = array(); + $aAllowSearches = []; + $aRestrictSearches = []; $bIgnoreSilos = static::DEFAULT_IGNORE_SILOS; // Checking the default mode - if ($iAction === null) - { + if ($iAction === null) { $iAction = UR_ACTION_READ; } // Iterating on profiles to retrieving the different OQLs parts - foreach ($aProfiles as $sProfile) - { + foreach ($aProfiles as $sProfile) { // Retrieving matrix information $iProfileId = $this->GetProfileIdFromProfileName($sProfile); $sMode = ($iAction === UR_ACTION_READ) ? static::ENUM_MODE_READ : static::ENUM_MODE_WRITE; @@ -237,39 +232,31 @@ class ScopeValidatorHelper // Retrieving profile OQLs $sScopeValuesClass = $this->sGeneratedClass; $aProfileMatrix = $sScopeValuesClass::GetProfileScope($iProfileId, $sClass, $sMode); - if ($aProfileMatrix !== null) - { - if (isset($aProfileMatrix['allow']) && $aProfileMatrix['allow'] !== null) - { + if ($aProfileMatrix !== null) { + if (isset($aProfileMatrix['allow']) && $aProfileMatrix['allow'] !== null) { $aAllowSearches[] = DBSearch::FromOQL($aProfileMatrix['allow']); } - if (isset($aProfileMatrix['restrict']) && $aProfileMatrix['restrict'] !== null) - { + if (isset($aProfileMatrix['restrict']) && $aProfileMatrix['restrict'] !== null) { $aRestrictSearches[] = DBSearch::FromOQL($aProfileMatrix['restrict']); } // If a profile should ignore allowed org, we set it for all its queries no matter the profile - if (isset($aProfileMatrix['ignore_silos']) && $aProfileMatrix['ignore_silos'] === true) - { + if (isset($aProfileMatrix['ignore_silos']) && $aProfileMatrix['ignore_silos'] === true) { $bIgnoreSilos = true; } } } // Building the real OQL from all the parts from the different profiles - for ($i = 0; $i < count($aAllowSearches); $i++) - { - foreach ($aRestrictSearches as $oRestrictSearch) - { + for ($i = 0; $i < count($aAllowSearches); $i++) { + foreach ($aRestrictSearches as $oRestrictSearch) { $aAllowSearches[$i] = $aAllowSearches[$i]->Intersect($oRestrictSearch); } } - if (count($aAllowSearches) > 0) - { + if (count($aAllowSearches) > 0) { $oSearch = new DBUnionSearch($aAllowSearches); $oSearch = $oSearch->RemoveDuplicateQueries(); } - if ($bIgnoreSilos === true) - { + if ($bIgnoreSilos === true) { $oSearch->AllowAllData(); } @@ -291,12 +278,10 @@ class ScopeValidatorHelper public function AddScopeToQuery(DBSearch &$oQuery, $sClass, $sAction = UR_ACTION_READ) { $oScopeQuery = $this->GetScopeFilterForProfiles(UserRights::ListProfiles(), $sClass, $sAction); - if ($oScopeQuery !== null) - { + if ($oScopeQuery !== null) { $oQuery = $oQuery->Intersect($oScopeQuery); // - Allowing all data if necessary - if ($oScopeQuery->IsAllDataAllowed()) - { + if ($oScopeQuery->IsAllDataAllowed()) { $oQuery->AllowAllData(); } @@ -321,19 +306,16 @@ class ScopeValidatorHelper $bIgnoreSilos = false; // Iterating on profiles to retrieving the different OQLs parts - foreach ($aProfiles as $sProfile) - { + foreach ($aProfiles as $sProfile) { // Retrieving matrix information $iProfileId = $this->GetProfileIdFromProfileName($sProfile); // Retrieving profile OQLs $sScopeValuesClass = $this->sGeneratedClass; $aProfileMatrix = $sScopeValuesClass::GetProfileScope($iProfileId, $sClass, static::ENUM_MODE_READ); - if ($aProfileMatrix !== null) - { + if ($aProfileMatrix !== null) { // If a profile should ignore allowed org, we set it for all its queries no matter the profile - if (isset($aProfileMatrix['ignore_silos']) && $aProfileMatrix['ignore_silos'] === true) - { + if (isset($aProfileMatrix['ignore_silos']) && $aProfileMatrix['ignore_silos'] === true) { $bIgnoreSilos = true; } } @@ -357,18 +339,12 @@ class ScopeValidatorHelper // We try to find the profile from its name in order to retrieve it's id // - If the regular UserRights add-on is installed we check the profiles array - if (class_exists('ProfilesConfig')) - { - if (defined($sProfile) && in_array($sProfile, ProfilesConfig::GetProfilesValues())) - { + if (class_exists('ProfilesConfig')) { + if (defined($sProfile) && in_array($sProfile, ProfilesConfig::GetProfilesValues())) { $iProfileId = constant($sProfile); - } - else - { - foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) - { - if ($aValue['name'] === $sProfile) - { + } else { + foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) { + if ($aValue['name'] === $sProfile) { $iProfileId = $iKey; break; } @@ -376,14 +352,12 @@ class ScopeValidatorHelper } } // - Else, we can't find the id from the name as we don't know the used UserRights add-on. It has to be a constant - else - { + else { throw new Exception('Scope validator : Unknown UserRights addon, scope\'s profile must be a constant'); } // If profile was not found from its name or from a constant, we throw an exception - if ($iProfileId === null) - { + if ($iProfileId === null) { throw new Exception('Scope validator : Could not find "'.$sProfile.'" in the profiles list'); } @@ -397,7 +371,7 @@ class ScopeValidatorHelper * * @return string */ - protected function BuildPHPClass($aProfiles = array()) + protected function BuildPHPClass($aProfiles = []) { $sProfiles = var_export($aProfiles, true); $sClassName = ltrim($this->sGeneratedClass, '\\'); @@ -450,31 +424,26 @@ EOF; protected function InitGenerateAndWriteCache(DOMNodeList $oNodes, $sFilePath) { // - Build php array from xml - $aProfiles = array(); + $aProfiles = []; // This will be used to know which classes have been set, so we can set the missing ones. - $aProfileClasses = array(); + $aProfileClasses = []; // Iterating over the class nodes /** @var \Combodo\iTop\DesignElement $oClassNode */ - foreach ($oNodes as $oClassNode) - { + foreach ($oNodes as $oClassNode) { // retrieving mandatory class id attribute $sClass = $oClassNode->getAttribute('id'); - if ($sClass === '') - { + if ($sClass === '') { throw new DOMFormatException('Class tag must have an id attribute.', null, null, $oClassNode); } // Iterating over scope nodes of the class $oScopesNode = $oClassNode->GetOptionalElement('scopes'); - if ($oScopesNode !== null) - { + if ($oScopesNode !== null) { /** @var \Combodo\iTop\DesignElement $oScopeNode */ - foreach ($oScopesNode->GetNodes('./scope') as $oScopeNode) - { + foreach ($oScopesNode->GetNodes('./scope') as $oScopeNode) { // Retrieving mandatory scope id attribute $sScopeId = $oScopeNode->getAttribute('id'); - if ($sScopeId === '') - { + if ($sScopeId === '') { throw new DOMFormatException('Scope tag must have an id attribute.', null, null, $oScopeNode); } @@ -486,8 +455,7 @@ EOF; // Retrieving the view query $oOqlViewNode = $oScopeNode->GetUniqueElement('oql_view'); $sOqlView = $oOqlViewNode->GetText(); - if ($sOqlView === null) - { + if ($sOqlView === null) { throw new DOMFormatException( 'Scope tag in class must have a not empty oql_view tag', 0, @@ -504,24 +472,18 @@ EOF; // Retrieving profiles for the scope $oProfilesNode = $oScopeNode->GetOptionalElement('allowed_profiles'); - $aProfilesNames = array(); + $aProfilesNames = []; // If no profile is specified, we consider that it's for ALL the profiles - if (($oProfilesNode === null) || ($oProfilesNode->GetNodes('./allowed_profile')->length === 0)) - { - foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) - { + if (($oProfilesNode === null) || ($oProfilesNode->GetNodes('./allowed_profile')->length === 0)) { + foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) { $aProfilesNames[] = $aValue['name']; } - } - else - { + } else { /** @var \Combodo\iTop\DesignElement $oProfileNode */ - foreach ($oProfilesNode->GetNodes('./allowed_profile') as $oProfileNode) - { + foreach ($oProfilesNode->GetNodes('./allowed_profile') as $oProfileNode) { // Retrieving mandatory profile id attribute $sProfileId = $oProfileNode->getAttribute('id'); - if ($sProfileId === '') - { + if ($sProfileId === '') { throw new DOMFormatException( 'Scope tag must have an id attribute.', null, @@ -534,8 +496,7 @@ EOF; } // - foreach ($aProfilesNames as $sProfileName) - { + foreach ($aProfilesNames as $sProfileName) { // Scope profile id $iProfileId = $this->GetProfileIdFromProfileName($sProfileName); @@ -545,48 +506,37 @@ EOF; $oViewFilter = DBSearch::FromOQL($sOqlView); // ... We have to union the query if this profile has another scope for that class if (array_key_exists($sMatrixPrefix.static::ENUM_MODE_READ, $aProfiles) && array_key_exists( - $sOqlViewType, - $aProfiles[$sMatrixPrefix.static::ENUM_MODE_READ] - )) - { + $sOqlViewType, + $aProfiles[$sMatrixPrefix.static::ENUM_MODE_READ] + )) { $oExistingFilter = DBSearch::FromOQL( $aProfiles[$sMatrixPrefix.static::ENUM_MODE_READ][$sOqlViewType] ); - $aFilters = array($oExistingFilter, $oViewFilter); + $aFilters = [$oExistingFilter, $oViewFilter]; $oResFilter = new DBUnionSearch($aFilters); // Applying ignore_silos flag on result filter if necessary (As the union will remove it if it is not on all sub-queries) - if ($aProfiles[$sMatrixPrefix.static::ENUM_MODE_READ]['ignore_silos'] === true) - { + if ($aProfiles[$sMatrixPrefix.static::ENUM_MODE_READ]['ignore_silos'] === true) { $bIgnoreSilos = true; } - } - else - { + } else { $oResFilter = $oViewFilter; } - $aProfiles[$sMatrixPrefix.static::ENUM_MODE_READ] = array( + $aProfiles[$sMatrixPrefix.static::ENUM_MODE_READ] = [ $sOqlViewType => $oResFilter->ToOQL(), 'ignore_silos' => $bIgnoreSilos, - ); + ]; // - Edit query - if ($sOqlEdit !== null) - { + if ($sOqlEdit !== null) { $oEditFilter = DBSearch::FromOQL($sOqlEdit); // - If the queries are the same, we don't make an intersect, we just reuse the view query - if ($sOqlEdit === $sOqlView) - { + if ($sOqlEdit === $sOqlView) { // Do not intersect, edit query is identical to view query - } - else - { - if (($oEditFilter->GetClass() === $oViewFilter->GetClass()) && $oEditFilter->IsAny()) - { + } else { + if (($oEditFilter->GetClass() === $oViewFilter->GetClass()) && $oEditFilter->IsAny()) { $oEditFilter = $oViewFilter; // Do not intersect, edit query is identical to view query - } - else - { + } else { // Intersect $oEditFilter = $oViewFilter->Intersect($oEditFilter); } @@ -594,27 +544,24 @@ EOF; // ... We have to union the query if this profile has another scope for that class if (array_key_exists( - $sMatrixPrefix.static::ENUM_MODE_WRITE, - $aProfiles - ) && array_key_exists( - $sOqlViewType, - $aProfiles[$sMatrixPrefix.static::ENUM_MODE_WRITE] - )) - { + $sMatrixPrefix.static::ENUM_MODE_WRITE, + $aProfiles + ) && array_key_exists( + $sOqlViewType, + $aProfiles[$sMatrixPrefix.static::ENUM_MODE_WRITE] + )) { $oExistingFilter = DBSearch::FromOQL( $aProfiles[$sMatrixPrefix.static::ENUM_MODE_WRITE][$sOqlViewType] ); - $aFilters = array($oExistingFilter, $oEditFilter); + $aFilters = [$oExistingFilter, $oEditFilter]; $oResFilter = new DBUnionSearch($aFilters); - } - else - { + } else { $oResFilter = $oEditFilter; } - $aProfiles[$sMatrixPrefix.static::ENUM_MODE_WRITE] = array( + $aProfiles[$sMatrixPrefix.static::ENUM_MODE_WRITE] = [ $sOqlViewType => $oResFilter->ToOQL(), 'ignore_silos' => $bIgnoreSilos, - ); + ]; } } } @@ -626,27 +573,19 @@ EOF; // Filling the array with missing classes from MetaModel, so we can have an inheritance principle on the scope // For each class explicitly given in the scopes, we check if its child classes were also in the scope : // If not, we add them with the same OQL - foreach ($aProfileClasses as $sProfileClass) - { - foreach (MetaModel::EnumChildClasses($sProfileClass) as $sChildClass) - { + foreach ($aProfileClasses as $sProfileClass) { + foreach (MetaModel::EnumChildClasses($sProfileClass) as $sChildClass) { // If the child class is not in the scope, we are going to try to add it - if (!in_array($sChildClass, $aProfileClasses)) - { - foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) - { + if (!in_array($sChildClass, $aProfileClasses)) { + foreach (ProfilesConfig::GetProfilesValues() as $iKey => $aValue) { $iProfileId = $iKey; - foreach (array(static::ENUM_MODE_READ, static::ENUM_MODE_WRITE) as $sAction) - { + foreach ([static::ENUM_MODE_READ, static::ENUM_MODE_WRITE] as $sAction) { // If the current profile has scope for that class in that mode, we duplicate it - if (isset($aProfiles[$iProfileId.'_'.$sProfileClass.'_'.$sAction])) - { + if (isset($aProfiles[$iProfileId.'_'.$sProfileClass.'_'.$sAction])) { $aTmpProfile = $aProfiles[$iProfileId.'_'.$sProfileClass.'_'.$sAction]; - foreach ($aTmpProfile as $sType => $sOql) - { + foreach ($aTmpProfile as $sType => $sOql) { // IF condition is just to skip the 'ignore_silos' flag - if (in_array($sType, array(static::ENUM_TYPE_ALLOW, static::ENUM_TYPE_RESTRICT))) - { + if (in_array($sType, [static::ENUM_TYPE_ALLOW, static::ENUM_TYPE_RESTRICT])) { $oTmpFilter = DBSearch::FromOQL($sOql); $oTmpFilter->ChangeClass($sChildClass); @@ -667,14 +606,12 @@ EOF; // - Write file on disk // - Creating dir if necessary - if (!is_dir($this->sCachePath)) - { + if (!is_dir($this->sCachePath)) { mkdir($this->sCachePath, 0777, true); } // -- Then creating the file $ret = file_put_contents($sFilePath, $sPHP); - if ($ret === false) - { + if ($ret === false) { $iLen = strlen($sPHP); $fFree = @disk_free_space(dirname($sFilePath)); $aErr = error_get_last(); @@ -685,4 +622,3 @@ EOF; } } - diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/SecurityHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/SecurityHelper.php index 1b95179d0..eb6796a80 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/SecurityHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/SecurityHelper.php @@ -43,10 +43,10 @@ use BinaryExpression; class SecurityHelper { /** @var array $aAllowedScopeObjectsCache */ - public static $aAllowedScopeObjectsCache = array( - UR_ACTION_READ => array(), - UR_ACTION_MODIFY => array(), - ); + public static $aAllowedScopeObjectsCache = [ + UR_ACTION_READ => [], + UR_ACTION_MODIFY => [], + ]; /** @var \Combodo\iTop\Portal\Helper\ScopeValidatorHelper $oScopeValidator */ private $oScopeValidator; @@ -69,7 +69,6 @@ class SecurityHelper $this->bDebug = $bDebug; } - /** * Returns true if the current user is allowed to do the $sAction on an $sObjectClass object (with optional $sObjectId id) * Checks are: @@ -94,45 +93,37 @@ class SecurityHelper $sDebugTracePrefix = __CLASS__.' / '.__METHOD__.' : Returned false for action '.$sAction.' on '.$sObjectClass.'::'.$sObjectId; // Checking action type - if (!in_array($sAction, array(UR_ACTION_READ, UR_ACTION_MODIFY, UR_ACTION_CREATE))) - { + if (!in_array($sAction, [UR_ACTION_READ, UR_ACTION_MODIFY, UR_ACTION_CREATE])) { IssueLog::Debug($sDebugTracePrefix.' as the action value could not be understood ('.UR_ACTION_READ.'/'.UR_ACTION_MODIFY.'/'.UR_ACTION_CREATE.' expected', LogChannels::PORTAL); return false; } // Forcing allowed writing on the object if necessary. This is used in some particular cases. $bObjectIsCurrentUser = ($sObjectClass === 'Person' && $sObjectId == UserRights::GetContactId()); - if(in_array($sAction , array(UR_ACTION_MODIFY, UR_ACTION_READ)) && $bObjectIsCurrentUser){ + if (in_array($sAction, [UR_ACTION_MODIFY, UR_ACTION_READ]) && $bObjectIsCurrentUser) { return true; - } + } // Checking the scopes layer // - Transforming scope action as there is only 2 values $sScopeAction = ($sAction === UR_ACTION_READ) ? UR_ACTION_READ : UR_ACTION_MODIFY; // - Retrieving the query. If user has no scope, it can't access that kind of objects $oScopeQuery = $this->oScopeValidator->GetScopeFilterForProfiles(UserRights::ListProfiles(), $sObjectClass, $sScopeAction); - if ($oScopeQuery === null) - { + if ($oScopeQuery === null) { IssueLog::Debug($sDebugTracePrefix.' as there was no scope defined for action '.$sScopeAction.' and profiles '.implode('/', UserRights::ListProfiles()), LogChannels::PORTAL); return false; } // - If action != create we do some additionnal checks - if ($sAction !== UR_ACTION_CREATE) - { + if ($sAction !== UR_ACTION_CREATE) { // - Checking specific object if id is specified - if ($sObjectId !== null) - { + if ($sObjectId !== null) { // Checking if object status is in cache (to avoid unnecessary query) - if (isset(static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass][$sObjectId])) - { - if (static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass][$sObjectId] === false) - { + if (isset(static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass][$sObjectId])) { + if (static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass][$sObjectId] === false) { IssueLog::Debug($sDebugTracePrefix.' as it was denied in the scope objects cache', LogChannels::PORTAL); return false; } - } - else - { + } else { // Modifying query to filter on the ID // - Adding expression $sObjectKeyAtt = MetaModel::DBGetKey($sObjectClass); @@ -147,8 +138,7 @@ class SecurityHelper // - Checking if query result is null (which means that the user has no right to view this specific object) $oSet = new DBObjectSet($oScopeQuery); - if ($oSet->Count() === 0) - { + if ($oSet->Count() === 0) { // Updating cache static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass][$sObjectId] = false; @@ -163,8 +153,7 @@ class SecurityHelper } // Checking reading security layer. The object could be listed, check if it is actually allowed to view it - if (UserRights::IsActionAllowed($sObjectClass, $sAction) == UR_ALLOWED_NO) - { + if (UserRights::IsActionAllowed($sObjectClass, $sAction) == UR_ALLOWED_NO) { // For security reasons, we don't want to give the user too many information on why he cannot access the object. //throw new SecurityException('User not allowed to view this object', array('class' => $sObjectClass, 'id' => $sObjectId)); IssueLog::Debug($sDebugTracePrefix.' as the user is not allowed to access this object according to the datamodel security (cf. Console settings)', LogChannels::PORTAL); @@ -187,15 +176,13 @@ class SecurityHelper // Checking DataModel layer $aStimuliFromDatamodel = Metamodel::EnumStimuli($sObjectClass); $iActionAllowed = (get_class($aStimuliFromDatamodel[$sStimulusCode]) == 'StimulusUserAction') ? UserRights::IsStimulusAllowed($sObjectClass, $sStimulusCode, $oInstanceSet) : UR_ALLOWED_NO; - if (($iActionAllowed === false) || ($iActionAllowed === UR_ALLOWED_NO)) - { + if (($iActionAllowed === false) || ($iActionAllowed === UR_ALLOWED_NO)) { return false; } // Checking portal security layer $aStimuliFromPortal = $this->oLifecycleValidator->GetStimuliForProfiles(UserRights::ListProfiles(), $sObjectClass); - if (!in_array($sStimulusCode, $aStimuliFromPortal)) - { + if (!in_array($sStimulusCode, $aStimuliFromPortal)) { return false; } @@ -217,20 +204,17 @@ class SecurityHelper public function PreloadForCache(DBSearch $oSearch, $aExtKeysToPreload = null) { $sObjectClass = $oSearch->GetClass(); - $aObjectIds = array(); - $aExtKeysIds = array(); - $aColumnsToLoad = array(); + $aObjectIds = []; + $aExtKeysIds = []; + $aColumnsToLoad = []; - if ($aExtKeysToPreload !== null) - { - foreach ($aExtKeysToPreload as $sAttCode) - { + if ($aExtKeysToPreload !== null) { + foreach ($aExtKeysToPreload as $sAttCode) { /** @var \AttributeDefinition $oAttDef */ $oAttDef = MetaModel::GetAttributeDef($sObjectClass, $sAttCode); - if ($oAttDef->IsExternalKey()) - { + if ($oAttDef->IsExternalKey()) { /** @var \AttributeExternalKey $oAttDef */ - $aExtKeysIds[$oAttDef->GetTargetClass()] = array(); + $aExtKeysIds[$oAttDef->GetTargetClass()] = []; $aColumnsToLoad[] = $sAttCode; } } @@ -239,69 +223,56 @@ class SecurityHelper // Retrieving IDs of all objects // Note: We have to clone $oSet otherwise the source object will be modified $oSet = new DBObjectSet($oSearch); - $oSet->OptimizeColumnLoad(array($oSearch->GetClassAlias() => $aColumnsToLoad)); - while ($oCurrentRow = $oSet->Fetch()) - { + $oSet->OptimizeColumnLoad([$oSearch->GetClassAlias() => $aColumnsToLoad]); + while ($oCurrentRow = $oSet->Fetch()) { // Note: By presetting value to false, it is quicker to find which objects where not returned by the scope query later $aObjectIds[$oCurrentRow->GetKey()] = false; // Preparing ExtKeys to preload - foreach ($aColumnsToLoad as $sAttCode) - { + foreach ($aColumnsToLoad as $sAttCode) { $iExtKey = $oCurrentRow->Get($sAttCode); - if ($iExtKey > 0) - { + if ($iExtKey > 0) { /** @var \AttributeExternalKey $oAttDef */ $oAttDef = MetaModel::GetAttributeDef($sObjectClass, $sAttCode); - if (!in_array($iExtKey, $aExtKeysIds[$oAttDef->GetTargetClass()])) - { + if (!in_array($iExtKey, $aExtKeysIds[$oAttDef->GetTargetClass()])) { $aExtKeysIds[$oAttDef->GetTargetClass()][] = $iExtKey; } } } } - foreach (array(UR_ACTION_READ, UR_ACTION_MODIFY) as $sScopeAction) - { + foreach ([UR_ACTION_READ, UR_ACTION_MODIFY] as $sScopeAction) { // Retrieving scope query /** @var DBSearch $oScopeQuery */ $oScopeQuery = $this->oScopeValidator->GetScopeFilterForProfiles(UserRights::ListProfiles(), $sObjectClass, $sScopeAction); - if ($oScopeQuery !== null) - { + if ($oScopeQuery !== null) { // Restricting scope if specified - if (!empty($aObjectIds)) - { + if (!empty($aObjectIds)) { $oScopeQuery->AddCondition('id', array_keys($aObjectIds), 'IN'); } // Preparing object set $oScopeSet = new DBObjectSet($oScopeQuery); - $oScopeSet->OptimizeColumnLoad(array($oScopeQuery->GetClassAlias() => array())); + $oScopeSet->OptimizeColumnLoad([$oScopeQuery->GetClassAlias() => []]); // Checking objects status $aScopeObjectIds = $aObjectIds; - while ($oCurrentRow = $oScopeSet->Fetch()) - { + while ($oCurrentRow = $oScopeSet->Fetch()) { $aScopeObjectIds[$oCurrentRow->GetKey()] = true; } // Updating cache - if (!isset(static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass])) - { + if (!isset(static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass])) { static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass] = $aScopeObjectIds; - } - else - { + } else { static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass] = array_merge_recursive(static::$aAllowedScopeObjectsCache[$sScopeAction][$sObjectClass], $aScopeObjectIds); } } } // Preloading ExtKeys - foreach ($aExtKeysIds as $sTargetClass => $aTargetIds) - { - if (!empty($aTargetIds)) - { + foreach ($aExtKeysIds as $sTargetClass => $aTargetIds) { + if (!empty($aTargetIds)) { $oTargetSearch = new DBObjectSearch($sTargetClass); $oTargetSearch->AddCondition('id', $aTargetIds, 'IN'); diff --git a/datamodels/2.x/itop-portal-base/portal/src/Helper/UIExtensionsHelper.php b/datamodels/2.x/itop-portal-base/portal/src/Helper/UIExtensionsHelper.php index 0b2f6bc01..e18f090d3 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Helper/UIExtensionsHelper.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Helper/UIExtensionsHelper.php @@ -18,10 +18,8 @@ * You should have received a copy of the GNU Affero General Public License */ - namespace Combodo\iTop\Portal\Helper; - use InvalidParameterException; use iPortalUIExtension; use MetaModel; @@ -66,13 +64,11 @@ class UIExtensionsHelper */ public function __get($sPropName) { - if ($this->aUIExtensions === null) - { + if ($this->aUIExtensions === null) { $this->InitUIExtensions(); } - if (array_key_exists($sPropName, $this->aUIExtensions)) - { + if (array_key_exists($sPropName, $this->aUIExtensions)) { return $this->aUIExtensions[$sPropName]; } @@ -87,8 +83,7 @@ class UIExtensionsHelper */ public function __isset($sPropName) { - if ($this->aUIExtensions === null) - { + if ($this->aUIExtensions === null) { $this->InitUIExtensions(); } @@ -110,67 +105,63 @@ class UIExtensionsHelper */ protected function InitUIExtensions() { - $aUIExtensions = array( - 'css_files' => array(), + $aUIExtensions = [ + 'css_files' => [], 'css_inline' => null, - 'js_files' => array(), + 'js_files' => [], 'js_inline' => null, - 'html' => array(), - ); + 'html' => [], + ]; - $aUIExtensionHooks = array( + $aUIExtensionHooks = [ iPortalUIExtension::ENUM_PORTAL_EXT_UI_BODY, iPortalUIExtension::ENUM_PORTAL_EXT_UI_NAVIGATION_MENU, iPortalUIExtension::ENUM_PORTAL_EXT_UI_MAIN_CONTENT, - ); + ]; /** @var iPortalUIExtension $oExtensionInstance */ - foreach (MetaModel::EnumPlugins('iPortalUIExtension') as $oExtensionInstance) - { + foreach (MetaModel::EnumPlugins('iPortalUIExtension') as $oExtensionInstance) { // Adding CSS files - $aImportPaths = array($_ENV['COMBODO_PORTAL_BASE_ABSOLUTE_PATH'].'css/'); - foreach ($oExtensionInstance->GetCSSFiles($this->oContainer) as $sCSSFile) - { + $aImportPaths = [$_ENV['COMBODO_PORTAL_BASE_ABSOLUTE_PATH'].'css/']; + foreach ($oExtensionInstance->GetCSSFiles($this->oContainer) as $sCSSFile) { // Removing app root url as we need to pass a path on the file system (relative to app root) $sCSSFilePath = str_replace(utils::GetAbsoluteUrlAppRoot(), '', $sCSSFile); // Compiling SCSS file - $sCSSFileCompiled = utils::GetAbsoluteUrlAppRoot().utils::GetCSSFromSASS($sCSSFilePath, - $aImportPaths); + $sCSSFileCompiled = utils::GetAbsoluteUrlAppRoot().utils::GetCSSFromSASS( + $sCSSFilePath, + $aImportPaths + ); - if (!in_array($sCSSFileCompiled, $aUIExtensions['css_files'])) - { + if (!in_array($sCSSFileCompiled, $aUIExtensions['css_files'])) { $aUIExtensions['css_files'][] = $sCSSFileCompiled; } } // Adding CSS inline $sCSSInline = $oExtensionInstance->GetCSSInline($this->oContainer); - if ($sCSSInline !== null) - { + if ($sCSSInline !== null) { $aUIExtensions['css_inline'] .= "\n\n".$sCSSInline; } // Adding JS files - $aUIExtensions['js_files'] = array_merge($aUIExtensions['js_files'], - $oExtensionInstance->GetJSFiles($this->oContainer)); + $aUIExtensions['js_files'] = array_merge( + $aUIExtensions['js_files'], + $oExtensionInstance->GetJSFiles($this->oContainer) + ); // Adding JS inline $sJSInline = $oExtensionInstance->GetJSInline($this->oContainer); - if ($sJSInline !== null) - { + if ($sJSInline !== null) { // Note: Semi-colon is to prevent previous script that would have omitted it. $aUIExtensions['js_inline'] .= "\n\n;\n".$sJSInline; } // Adding HTML for each hook - foreach ($aUIExtensionHooks as $sUIExtensionHook) - { + foreach ($aUIExtensionHooks as $sUIExtensionHook) { $sFunctionName = 'Get'.$sUIExtensionHook.'HTML'; $sHTML = $oExtensionInstance->$sFunctionName($this->oContainer); - if ($sHTML !== null) - { - if (!array_key_exists($sUIExtensionHook, $aUIExtensions['html'])) - { + if ($sHTML !== null) { + if (!array_key_exists($sUIExtensionHook, $aUIExtensions['html'])) { $aUIExtensions['html'][$sUIExtensionHook] = ''; } $aUIExtensions['html'][$sUIExtensionHook] .= "\n\n".$sHTML; @@ -180,4 +171,4 @@ class UIExtensionsHelper $this->aUIExtensions = $aUIExtensions; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Hook/iAbstractPortalTabContentExtension.php b/datamodels/2.x/itop-portal-base/portal/src/Hook/iAbstractPortalTabContentExtension.php index 8fa7027e1..003abecd0 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Hook/iAbstractPortalTabContentExtension.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Hook/iAbstractPortalTabContentExtension.php @@ -1,4 +1,5 @@ sInitialValue = $sPath; } @@ -89,7 +88,7 @@ class TemplateDefinitionDto */ public function GetPath(bool $bInitialValue = false): string { - if($bInitialValue){ + if ($bInitialValue) { return $this->sInitialValue !== null ? $this->sInitialValue : ''; } @@ -142,4 +141,4 @@ class TemplateDefinitionDto return $this->bIsOverridden; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderInterface.php b/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderInterface.php index d0eb9f484..2be6372fc 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderInterface.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderInterface.php @@ -36,4 +36,4 @@ interface TemplatesProviderInterface * @return void */ public static function RegisterTemplates(TemplatesRegister $oTemplatesRegister): void; -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderService.php b/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderService.php index dbe7dd9e5..b2028e398 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderService.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Service/TemplatesProvider/TemplatesProviderService.php @@ -281,8 +281,7 @@ class TemplatesProviderService if ($oParent) { $sCurrentClass = $oReflexion->getParentClass()->getName(); } - } - catch (Exception) { + } catch (Exception) { } } while ($oParent); // continue while parent class exists @@ -327,4 +326,4 @@ class TemplatesProviderService && array_key_exists($sTemplateId, $this->aInstancesOverriddenTemplatesPaths[$sObjectId]['templates'])); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Twig/AppExtension.php b/datamodels/2.x/itop-portal-base/portal/src/Twig/AppExtension.php index 696cf68db..9cbed990c 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Twig/AppExtension.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Twig/AppExtension.php @@ -1,4 +1,5 @@ userProvider->getAllowedPortals(); $data['user_preferences'] = json_decode(appUserPreferences::GetAsJSON(), true); @@ -64,4 +65,4 @@ class AppGlobal extends AbstractExtension implements GlobalsInterface return $data; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Twig/AppVariable.php b/datamodels/2.x/itop-portal-base/portal/src/Twig/AppVariable.php index de0751e38..b6081d0dc 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Twig/AppVariable.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Twig/AppVariable.php @@ -1,4 +1,5 @@ decorated = $decorated; + $this->container = $container; + } - public function __construct(DecoratedAppVariable $decorated, ContainerInterface $container = null) - { - $this->decorated = $decorated; - $this->container = $container; - } + public function __call($name, $arguments) + { + if ($this->silexApplicationEmulation->offsetExists($name)) { + return $this->silexApplicationEmulation->offsetGet($name); + } - public function __call($name, $arguments) - { - if ($this->silexApplicationEmulation->offsetExists($name)) { - return $this->silexApplicationEmulation->offsetGet($name); - } + return $this->decorated->$name(...$arguments); //WARNING: use of http://php.net/manual/fr/functions.arguments.php#functions.variable-arg-list + } - return $this->decorated->$name(...$arguments); //WARNING: use of http://php.net/manual/fr/functions.arguments.php#functions.variable-arg-list - } + /** + * @inheritDoc + */ + public function offsetExists($offset): bool + { + if ($this->container->hasParameter($offset)) { + return true; + } + if ($this->container->has($offset)) { + return true; + } - /** - * @inheritDoc - */ - public function offsetExists($offset): bool - { - if ($this->container->hasParameter($offset)) { - return true; - } - if ($this->container->has($offset)) { - return true; - } + return false; + } - return false; - } - - /** - * @inheritDoc - */ + /** + * @inheritDoc + */ #[\ReturnTypeWillChange] - public function offsetGet($offset) - { - if ($this->container->hasParameter($offset)) { - return $this->container->getParameter($offset); - } - if ($this->container->has($offset)) { - return $this->container->get($offset); - } + public function offsetGet($offset) + { + if ($this->container->hasParameter($offset)) { + return $this->container->getParameter($offset); + } + if ($this->container->has($offset)) { + return $this->container->get($offset); + } - return null; - } + return null; + } - /** - * @inheritDoc - */ - public function offsetSet($offset, $value): void - { + /** + * @inheritDoc + */ + public function offsetSet($offset, $value): void + { - if ($this->container->hasParameter($offset)) { - $this->container->setParameter($offset, $value); - return; - } + if ($this->container->hasParameter($offset)) { + $this->container->setParameter($offset, $value); + return; + } - if ($this->container->has($offset)) { - $this->container->set($offset, $value); - return; - } + if ($this->container->has($offset)) { + $this->container->set($offset, $value); + return; + } - if (is_object($value)) { - $this->container->set($offset, $value); - return; - } + if (is_object($value)) { + $this->container->set($offset, $value); + return; + } - $this->container->setParameter($offset, $value); - } + $this->container->setParameter($offset, $value); + } - /** - * @inheritDoc - */ - public function offsetUnset($offset): void - { - if ($this->container->hasParameter($offset)) { - $this->container->setParameter($offset, null); - } else if ($this->container->has($offset)) { - $this->container->set($offset, null); - } - } + /** + * @inheritDoc + */ + public function offsetUnset($offset): void + { + if ($this->container->hasParameter($offset)) { + $this->container->setParameter($offset, null); + } elseif ($this->container->has($offset)) { + $this->container->set($offset, null); + } + } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Twig/CKEditorExtension.php b/datamodels/2.x/itop-portal-base/portal/src/Twig/CKEditorExtension.php index f141d3c5d..117e5dbfc 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Twig/CKEditorExtension.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Twig/CKEditorExtension.php @@ -1,4 +1,5 @@ '; + $sScriptTemplate .= ''; } return $sScriptTemplate; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Twig/CurrentUserAccessor.php b/datamodels/2.x/itop-portal-base/portal/src/Twig/CurrentUserAccessor.php index e75c7f919..cea50f474 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Twig/CurrentUserAccessor.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Twig/CurrentUserAccessor.php @@ -1,4 +1,5 @@ userProvider->getCurrentUserCanLogOff(); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Twig/PortalBlockExtension.php b/datamodels/2.x/itop-portal-base/portal/src/Twig/PortalBlockExtension.php index 1868287e7..b7b62a7bc 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Twig/PortalBlockExtension.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Twig/PortalBlockExtension.php @@ -1,4 +1,5 @@ sTwig = $sTwig; $this->aData = $aData; diff --git a/datamodels/2.x/itop-portal-base/portal/src/Twig/PortalTwigContext.php b/datamodels/2.x/itop-portal-base/portal/src/Twig/PortalTwigContext.php index 978a12166..cc69f5bac 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Twig/PortalTwigContext.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Twig/PortalTwigContext.php @@ -1,4 +1,5 @@ aBlockExtension[$sBlockName] = $oBlockExtension; } @@ -58,4 +58,4 @@ class PortalTwigContext $oBlockExtension = $this->aBlockExtension[$sBlockName] ?? null; return $oBlockExtension; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/Twig/TemplatesTwigExtension.php b/datamodels/2.x/itop-portal-base/portal/src/Twig/TemplatesTwigExtension.php index f7ac030f8..c59f439c3 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/Twig/TemplatesTwigExtension.php +++ b/datamodels/2.x/itop-portal-base/portal/src/Twig/TemplatesTwigExtension.php @@ -1,4 +1,5 @@ oTemplatesService->GetTemplatePath($sProviderClass, $sId, true); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/UrlMaker/AbstractPortalUrlMaker.php b/datamodels/2.x/itop-portal-base/portal/src/UrlMaker/AbstractPortalUrlMaker.php index f0e7cf67c..2ea220f83 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/UrlMaker/AbstractPortalUrlMaker.php +++ b/datamodels/2.x/itop-portal-base/portal/src/UrlMaker/AbstractPortalUrlMaker.php @@ -37,10 +37,10 @@ use utils; abstract class AbstractPortalUrlMaker implements iDBObjectURLMaker { /** @var string PORTAL_ID */ - const PORTAL_ID = ''; + public const PORTAL_ID = ''; /** @var \Combodo\iTop\Portal\Kernel[] $aKernels */ - private static $aKernels = array(); + private static $aKernels = []; /** * Generate an (absolute) URL to an object, either in view or edit mode. @@ -64,8 +64,7 @@ abstract class AbstractPortalUrlMaker implements iDBObjectURLMaker $sUrl = self::DoPrepareObjectURL($sClass, $iId, $sMode); - if (!empty($sPreviousPortalId)) - { + if (!empty($sPreviousPortalId)) { $_ENV['PORTAL_ID'] = $sPreviousPortalId; } @@ -97,48 +96,39 @@ abstract class AbstractPortalUrlMaker implements iDBObjectURLMaker // // Note: Scopes only apply when URL check is triggered from the portal GUI. $sObjectQueryString = null; - switch ($sMode) - { + switch ($sMode) { case 'view': - if (!ContextTag::Check(ContextTag::TAG_PORTAL) || $oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sClass, $iId)) - { - $sObjectQueryString = $oUrlGenerator->generate('p_object_view', array('sObjectClass' => $sClass, 'sObjectId' => $iId)); + if (!ContextTag::Check(ContextTag::TAG_PORTAL) || $oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sClass, $iId)) { + $sObjectQueryString = $oUrlGenerator->generate('p_object_view', ['sObjectClass' => $sClass, 'sObjectId' => $iId]); } break; case 'edit': default: // Checking if user is allowed to edit object, if not we check if it can at least view it. - if (!ContextTag::Check(ContextTag::TAG_PORTAL) || $oSecurityHelper->IsActionAllowed(UR_ACTION_MODIFY, $sClass, $iId)) - { - $sObjectQueryString = $oUrlGenerator->generate('p_object_edit', array('sObjectClass' => $sClass, 'sObjectId' => $iId)); - } - elseif (!ContextTag::Check(ContextTag::TAG_PORTAL) || $oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sClass, $iId)) - { - $sObjectQueryString = $oUrlGenerator->generate('p_object_view', array('sObjectClass' => $sClass, 'sObjectId' => $iId)); + if (!ContextTag::Check(ContextTag::TAG_PORTAL) || $oSecurityHelper->IsActionAllowed(UR_ACTION_MODIFY, $sClass, $iId)) { + $sObjectQueryString = $oUrlGenerator->generate('p_object_edit', ['sObjectClass' => $sClass, 'sObjectId' => $iId]); + } elseif (!ContextTag::Check(ContextTag::TAG_PORTAL) || $oSecurityHelper->IsActionAllowed(UR_ACTION_READ, $sClass, $iId)) { + $sObjectQueryString = $oUrlGenerator->generate('p_object_view', ['sObjectClass' => $sClass, 'sObjectId' => $iId]); } break; } - $sPortalAbsoluteUrl = utils::GetAbsoluteUrlModulePage('itop-portal-base', 'index.php', array('portal_id' => $sPortalId)); - if ($sObjectQueryString === null) - { + $sPortalAbsoluteUrl = utils::GetAbsoluteUrlModulePage('itop-portal-base', 'index.php', ['portal_id' => $sPortalId]); + if ($sObjectQueryString === null) { $sUrl = null; - } - elseif (strpos($sPortalAbsoluteUrl, '?') !== false) - { + } elseif (strpos($sPortalAbsoluteUrl, '?') !== false) { // Removing generated url query parameters so it can be replaced with those from the absolute url // Mostly necessary when iTop instance has multiple portals - if (strpos($sObjectQueryString, '?') !== false) - { + if (strpos($sObjectQueryString, '?') !== false) { $sObjectQueryString = substr($sObjectQueryString, 0, strpos($sObjectQueryString, '?')); } - $sUrl = substr($sPortalAbsoluteUrl, 0, strpos($sPortalAbsoluteUrl, '?')).$sObjectQueryString.substr($sPortalAbsoluteUrl, - strpos($sPortalAbsoluteUrl, '?')); - } - else - { + $sUrl = substr($sPortalAbsoluteUrl, 0, strpos($sPortalAbsoluteUrl, '?')).$sObjectQueryString.substr( + $sPortalAbsoluteUrl, + strpos($sPortalAbsoluteUrl, '?') + ); + } else { $sUrl = $sPortalAbsoluteUrl.$sObjectQueryString; } @@ -153,8 +143,7 @@ abstract class AbstractPortalUrlMaker implements iDBObjectURLMaker */ private static function GetKernelInstance() { - if (!array_key_exists(static::PORTAL_ID, self::$aKernels)) - { + if (!array_key_exists(static::PORTAL_ID, self::$aKernels)) { self::$aKernels[static::PORTAL_ID] = new Kernel($_SERVER['APP_ENV'], (bool)$_SERVER['APP_DEBUG']); self::$aKernels[static::PORTAL_ID]->boot(); } @@ -175,4 +164,3 @@ abstract class AbstractPortalUrlMaker implements iDBObjectURLMaker return static::PrepareObjectURL($sClass, $iId, 'edit'); } } - diff --git a/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/AbstractStringVariableAccessor.php b/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/AbstractStringVariableAccessor.php index f4435a842..a843f00b0 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/AbstractStringVariableAccessor.php +++ b/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/AbstractStringVariableAccessor.php @@ -1,4 +1,5 @@ getVariable(); } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/AbstractVariableAccessor.php b/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/AbstractVariableAccessor.php index 25033e518..065db068a 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/AbstractVariableAccessor.php +++ b/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/AbstractVariableAccessor.php @@ -1,4 +1,5 @@ storedVariable = $variableToStore; - } + /** + * @param string $variableToStore + */ + public function __construct($variableToStore) + { + $this->storedVariable = $variableToStore; + } /** * @return string */ - public function getVariable() - { - return $this->storedVariable; - } -} \ No newline at end of file + public function getVariable() + { + return $this->storedVariable; + } +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php b/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php index a17c10ea3..bda2d113f 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php +++ b/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/CombodoCurrentContactPhotoUrl.php @@ -1,4 +1,5 @@ oUserProvider->getCurrentUser(); $oAllowedOrgSet = $oUser->Get('allowed_org_list'); if ($oAllowedOrgSet->Count() > 0) { @@ -118,4 +117,4 @@ class CombodoCurrentContactPhotoUrl return $sContactPhotoUrl; } -} \ No newline at end of file +} diff --git a/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/CombodoPortalInstanceConf.php b/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/CombodoPortalInstanceConf.php index 98051c9cd..c47290f81 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/CombodoPortalInstanceConf.php +++ b/datamodels/2.x/itop-portal-base/portal/src/VariableAccessor/CombodoPortalInstanceConf.php @@ -1,4 +1,5 @@ * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'portal:itop-portal' => 'Standardní portál', 'Page:DefaultTitle' => '%1$s - Uživatelský portál', 'Brick:Portal:UserProfile:Title' => 'Můj profil', @@ -26,4 +27,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Brick:Portal:ListAllRequests:Tab' => 'Probíhající a uzavřené', 'Brick:Portal:SearchInAllRequests:Title' => 'Vyhledávání ve všech požadavcích', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Bez ohledu na jejich stav.

        ', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/da.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/da.dict.itop-portal.php index 501245a56..256c63184 100644 --- a/datamodels/2.x/itop-portal/dictionaries/da.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/da.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'portal:itop-portal' => 'Standard portal~~', 'Page:DefaultTitle' => '%1$s - User portal~~', 'Brick:Portal:UserProfile:Title' => 'My profile~~', @@ -26,4 +27,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/de.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/de.dict.itop-portal.php index d724506e4..698c57945 100644 --- a/datamodels/2.x/itop-portal/dictionaries/de.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/de.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'portal:itop-portal' => 'Standard Portal', 'Page:DefaultTitle' => '%1$s - Benutzer Portal', 'Brick:Portal:UserProfile:Title' => 'Mein Profile', @@ -26,4 +27,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Brick:Portal:ListAllRequests:Tab' => 'Laufend und abgeschlossen', 'Brick:Portal:SearchInAllRequests:Title' => 'In allen Anfragen suchen', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Unabhängig von ihrem Status.

        ', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/en.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/en.dict.itop-portal.php index 2807892c5..2397a146a 100644 --- a/datamodels/2.x/itop-portal/dictionaries/en.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/en.dict.itop-portal.php @@ -1,4 +1,5 @@ 'Standard portal', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus) 'Page:DefaultTitle' => '%1$s - User portal', 'Brick:Portal:UserProfile:Title' => 'My profile', @@ -45,4 +46,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/en_gb.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/en_gb.dict.itop-portal.php index 283338f2b..79f8d9b6a 100644 --- a/datamodels/2.x/itop-portal/dictionaries/en_gb.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/en_gb.dict.itop-portal.php @@ -1,4 +1,5 @@ 'Standard portal', 'Page:DefaultTitle' => '%1$s - User portal', 'Brick:Portal:UserProfile:Title' => 'My profile', @@ -45,4 +46,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/es_cr.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/es_cr.dict.itop-portal.php index 0b45ec818..b992276ea 100644 --- a/datamodels/2.x/itop-portal/dictionaries/es_cr.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/es_cr.dict.itop-portal.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'portal:itop-portal' => 'Portal de Usuario', 'Page:DefaultTitle' => 'ITop - Portal de Usuario', 'Brick:Portal:UserProfile:Title' => 'Mi perfil', @@ -23,4 +24,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Brick:Portal:ListAllRequests:Tab' => 'En proceso y cerrados', 'Brick:Portal:SearchInAllRequests:Title' => 'Buscar en todos los requerimientos', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Sin importar su estatus.

        ', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/fr.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/fr.dict.itop-portal.php index 2d1693809..848b8dca1 100644 --- a/datamodels/2.x/itop-portal/dictionaries/fr.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/fr.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'portal:itop-portal' => 'Portail standard', 'Page:DefaultTitle' => '%1$s - Portail utilisateur', 'Brick:Portal:UserProfile:Title' => 'Mon profil', @@ -26,4 +27,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Brick:Portal:ListAllRequests:Tab' => 'En cours et fermées', 'Brick:Portal:SearchInAllRequests:Title' => 'Rechercher une demande', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Quelque soit son état

        ', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/hu.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/hu.dict.itop-portal.php index af29c95db..e2833fb14 100644 --- a/datamodels/2.x/itop-portal/dictionaries/hu.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/hu.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'portal:itop-portal' => 'Standard portál', 'Page:DefaultTitle' => '%1$s - Felhasználói portál', 'Brick:Portal:UserProfile:Title' => 'Saját profil', @@ -26,4 +27,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/ja.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/ja.dict.itop-portal.php index 85a649656..fba1aa724 100644 --- a/datamodels/2.x/itop-portal/dictionaries/ja.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/ja.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'portal:itop-portal' => 'Standard portal~~', 'Page:DefaultTitle' => '%1$s - User portal~~', 'Brick:Portal:UserProfile:Title' => 'My profile~~', @@ -26,4 +27,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/nl.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/nl.dict.itop-portal.php index 9503706fe..513f4e877 100644 --- a/datamodels/2.x/itop-portal/dictionaries/nl.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/nl.dict.itop-portal.php @@ -1,16 +1,17 @@ * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'portal:itop-portal' => 'Standaard portaal', 'Page:DefaultTitle' => '%1$s - Gebruikersportaal', 'Brick:Portal:UserProfile:Title' => 'Mijn profiel', @@ -26,4 +27,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Brick:Portal:ListAllRequests:Tab' => 'Openstaand en gesloten', 'Brick:Portal:SearchInAllRequests:Title' => 'Zoek in alle verzoeken', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Ongeacht hun status.

        ', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/pl.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/pl.dict.itop-portal.php index b48eb098e..c3ff2500f 100644 --- a/datamodels/2.x/itop-portal/dictionaries/pl.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/pl.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'portal:itop-portal' => 'Portal standardowy', 'Page:DefaultTitle' => '%1$s portal użytkownika', 'Brick:Portal:UserProfile:Title' => 'Mój profil', @@ -26,4 +27,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Brick:Portal:ListAllRequests:Tab' => 'Otwarte i zamknięte', 'Brick:Portal:SearchInAllRequests:Title' => 'Szukaj we wszystkich wnioskach', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Niezależnie od ich statusu.

        ', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/pt_br.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/pt_br.dict.itop-portal.php index f211b3a74..d80b0c2f6 100644 --- a/datamodels/2.x/itop-portal/dictionaries/pt_br.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/pt_br.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'portal:itop-portal' => 'Portal do Usuário', 'Page:DefaultTitle' => ITOP_APPLICATION_SHORT.' - Portal do Usuário', 'Brick:Portal:UserProfile:Title' => 'Meu perfil', @@ -26,4 +27,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/ru.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/ru.dict.itop-portal.php index b2795e34d..cd3a33af2 100644 --- a/datamodels/2.x/itop-portal/dictionaries/ru.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/ru.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'portal:itop-portal' => 'Пользовательский портал', 'Page:DefaultTitle' => '%1$s - Пользовательский портал', 'Brick:Portal:UserProfile:Title' => 'Мой профиль', @@ -26,4 +27,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/sk.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/sk.dict.itop-portal.php index 2e0c7079c..826feccd0 100644 --- a/datamodels/2.x/itop-portal/dictionaries/sk.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/sk.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'portal:itop-portal' => 'Standard portal~~', 'Page:DefaultTitle' => '%1$s - User portal~~', 'Brick:Portal:UserProfile:Title' => 'My profile~~', @@ -26,4 +27,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/tr.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/tr.dict.itop-portal.php index ffd723728..7fcf39408 100644 --- a/datamodels/2.x/itop-portal/dictionaries/tr.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/tr.dict.itop-portal.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'portal:itop-portal' => 'Standard portal~~', 'Page:DefaultTitle' => '%1$s - User portal~~', 'Brick:Portal:UserProfile:Title' => 'My profile~~', @@ -26,4 +27,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-portal/dictionaries/zh_cn.dict.itop-portal.php b/datamodels/2.x/itop-portal/dictionaries/zh_cn.dict.itop-portal.php index 56bc72e04..dd0993287 100644 --- a/datamodels/2.x/itop-portal/dictionaries/zh_cn.dict.itop-portal.php +++ b/datamodels/2.x/itop-portal/dictionaries/zh_cn.dict.itop-portal.php @@ -1,4 +1,5 @@ '标准门户', // This is the portal name that will be displayed in portal dispatcher (eg. URL in menus) 'Page:DefaultTitle' => '%1$s - 用户门户', 'Brick:Portal:UserProfile:Title' => '我的设置', @@ -43,4 +44,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Brick:Portal:ListAllRequests:Tab' => 'On-going and closed~~', 'Brick:Portal:SearchInAllRequests:Title' => 'Search in all requests~~', 'Brick:Portal:SearchInAllRequests:Title+' => '

        Regardless of their status.

        ~~', -)); +]); diff --git a/datamodels/2.x/itop-portal/index.php b/datamodels/2.x/itop-portal/index.php index 6595a0a61..5a62e455a 100644 --- a/datamodels/2.x/itop-portal/index.php +++ b/datamodels/2.x/itop-portal/index.php @@ -38,19 +38,15 @@ ); // Load current environment -if (file_exists(__DIR__.'/../../approot.inc.php')) -{ +if (file_exists(__DIR__.'/../../approot.inc.php')) { require_once __DIR__.'/../../approot.inc.php'; // When in env-xxxx folder -} -else -{ +} else { require_once __DIR__.'/../../../approot.inc.php'; // When in datamodels/x.x folder } require_once APPROOT.'application/startup.inc.php'; // Protection against setup in the following configuration : ITIL Ticket with Enhanced Portal selected but neither UserRequest or Incident. Which would crash the portal. -if (!class_exists('UserRequest') && !class_exists('Incident')) -{ +if (!class_exists('UserRequest') && !class_exists('Incident')) { die('iTop has neither been installed with User Request nor Incident tickets. Please contact your administrator.'); } diff --git a/datamodels/2.x/itop-portal/main.itop-portal.php b/datamodels/2.x/itop-portal/main.itop-portal.php index 5af0633b5..bff3f70b4 100644 --- a/datamodels/2.x/itop-portal/main.itop-portal.php +++ b/datamodels/2.x/itop-portal/main.itop-portal.php @@ -1,4 +1,5 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:ProblemManagement' => 'Správa problémů', 'Menu:ProblemManagement+' => 'Správa problémů', 'Menu:Problem:Overview' => 'Přehled', @@ -34,12 +35,12 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard pro správu problémů (Problem management)', 'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard pro správu problémů (Problem management)', -)); +]); // // Class: Problem // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Problem' => 'Problém', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Stav', @@ -112,4 +113,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Uzavřít', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/da.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/da.dict.itop-problem-mgmt.php index 8ac4f3a52..271e3dcdd 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/da.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/da.dict.itop-problem-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:ProblemManagement' => 'Problem Management', 'Menu:ProblemManagement+' => 'Problem Management', 'Menu:Problem:Overview' => 'Oversigt', @@ -33,12 +34,12 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard for problem Management', 'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard for problem Management', -)); +]); // // Class: Problem // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Problem' => 'Problem', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Status', @@ -111,4 +112,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Luk', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/de.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/de.dict.itop-problem-mgmt.php index dd20d68e6..5138bd64b 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/de.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/de.dict.itop-problem-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:ProblemManagement' => 'Problem Management', 'Menu:ProblemManagement+' => '', 'Menu:Problem:Overview' => 'Übersicht', @@ -33,12 +34,12 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard für das Problem Management', 'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard für das Problem Management', -)); +]); // // Class: Problem // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Problem' => 'Problem', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Status', @@ -111,4 +112,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Schließen', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/en.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/en.dict.itop-problem-mgmt.php index 8a902de2f..ddc242392 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/en.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/en.dict.itop-problem-mgmt.php @@ -1,4 +1,5 @@ /Stimulus: // Class:/Stimulus:+ - -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:ProblemManagement' => 'Problem management', 'Menu:ProblemManagement+' => 'Problem management', 'Menu:Problem:Overview' => 'Overview', @@ -70,12 +70,12 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard for Problem Management', 'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard for Problem Management', -)); +]); // // Class: Problem // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Problem' => 'Problem', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Status', @@ -148,4 +148,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Close', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/en_gb.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/en_gb.dict.itop-problem-mgmt.php index 0e8c5069c..fb3a7b9cf 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/en_gb.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/en_gb.dict.itop-problem-mgmt.php @@ -1,4 +1,5 @@ /Stimulus: // Class:/Stimulus:+ - -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:ProblemManagement' => 'Problem management', 'Menu:ProblemManagement+' => 'Problem management', 'Menu:Problem:Overview' => 'Overview', @@ -70,12 +70,12 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard for Problem Management', 'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard for Problem Management', -)); +]); // // Class: Problem // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Problem' => 'Problem', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Status', @@ -148,4 +148,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Close', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/es_cr.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/es_cr.dict.itop-problem-mgmt.php index 5b4317da7..a8f27c2a5 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/es_cr.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/es_cr.dict.itop-problem-mgmt.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:ProblemManagement' => 'Administración de Problemas', 'Menu:ProblemManagement+' => 'Administración de Problemas', 'Menu:Problem:Overview' => 'Resumen de problemas', @@ -30,12 +31,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Panel de Control de Administración de Problemas', 'UI:ProblemMgmtMenuOverview:Title+' => 'Panel de Control de Administración de Problemas', -)); +]); // // Class: Problem // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Problem' => 'Problema', 'Class:Problem+' => 'Problema', 'Class:Problem/Attribute:status' => 'Estatus', @@ -108,4 +109,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Problem/Stimulus:ev_resolve+' => 'Solucionar', 'Class:Problem/Stimulus:ev_close' => 'Cerrar', 'Class:Problem/Stimulus:ev_close+' => 'Cerrar', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/fr.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/fr.dict.itop-problem-mgmt.php index 4344e51f6..e8b8e041f 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/fr.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/fr.dict.itop-problem-mgmt.php @@ -1,15 +1,16 @@ 'Gestion des problèmes', 'Menu:ProblemManagement+' => '', 'Menu:Problem:Overview' => 'Vue d\'ensemble', @@ -32,12 +33,12 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Tableau de bord de la Gestion des Problèmes', 'UI:ProblemMgmtMenuOverview:Title+' => 'Tableau de bord de la Gestion des Problèmes', -)); +]); // // Class: Problem // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Problem' => 'Problème', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Etat', @@ -127,5 +128,5 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Problem/Stimulus:ev_resolve' => 'Résoudre', 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Fermer', - 'Class:Problem/Stimulus:ev_close+' => '' -)); + 'Class:Problem/Stimulus:ev_close+' => '', +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/hu.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/hu.dict.itop-problem-mgmt.php index 0d8f17c2e..977c4e975 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/hu.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/hu.dict.itop-problem-mgmt.php @@ -1,15 +1,16 @@ 'Problémakezelés', 'Menu:ProblemManagement+' => '', 'Menu:Problem:Overview' => 'Áttekintő', @@ -32,12 +33,12 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Problémakezelés műszerfal', 'UI:ProblemMgmtMenuOverview:Title+' => '', -)); +]); // // Class: Problem // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Problem' => 'Probléma', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Állapot', @@ -110,4 +111,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Lezárás', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/ja.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/ja.dict.itop-problem-mgmt.php index 77b6ddd36..d5b51fd54 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/ja.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/ja.dict.itop-problem-mgmt.php @@ -1,15 +1,16 @@ '問題管理', 'Menu:ProblemManagement+' => '問題管理', 'Menu:Problem:Overview' => '概要', @@ -32,12 +33,12 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:ProblemMgmtMenuOverview:Title' => '問題管理ダッシュボード', 'UI:ProblemMgmtMenuOverview:Title+' => '問題管理ダッシュボード', -)); +]); // // Class: Problem // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Problem' => '問題', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => '状態', @@ -110,4 +111,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'クローズ', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/nl.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/nl.dict.itop-problem-mgmt.php index 3f00f2be6..3c4e19d7e 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/nl.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/nl.dict.itop-problem-mgmt.php @@ -1,10 +1,11 @@ @@ -12,7 +13,7 @@ * @author Jeffrey Bostoen (2018 - 2022) * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:ProblemManagement' => 'Probleem Management', 'Menu:ProblemManagement+' => 'Probleem Management', 'Menu:Problem:Overview' => 'Overzicht', @@ -35,12 +36,12 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard voor Probleem Management', 'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard voor Probleem Management', -)); +]); // // Class: Problem // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Problem' => 'Probleem', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Status', @@ -113,4 +114,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Sluit', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/pl.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/pl.dict.itop-problem-mgmt.php index 377e79353..da1756563 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/pl.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/pl.dict.itop-problem-mgmt.php @@ -1,15 +1,16 @@ 'Zarządzanie problemami', 'Menu:ProblemManagement+' => 'Zarządzanie problemami', 'Menu:Problem:Overview' => 'Przegląd', @@ -32,12 +33,12 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Pulpit do zarządzania problemami', 'UI:ProblemMgmtMenuOverview:Title+' => 'Pulpit do zarządzania problemami', -)); +]); // // Class: Problem // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Problem' => 'Problem', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Status', @@ -110,4 +111,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Zamknij', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/pt_br.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/pt_br.dict.itop-problem-mgmt.php index 5f10cf5ff..5fda55063 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/pt_br.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/pt_br.dict.itop-problem-mgmt.php @@ -1,15 +1,16 @@ 'Gerenciamento de problemas', 'Menu:ProblemManagement+' => 'Lista de gerenciamento de problemas', 'Menu:Problem:Overview' => 'Visão geral', @@ -32,12 +33,12 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Painel de gerenciamento de problemas', 'UI:ProblemMgmtMenuOverview:Title+' => '', -)); +]); // // Class: Problem // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:Problem' => 'Problema', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Status', @@ -110,4 +111,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Fechar', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/ru.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/ru.dict.itop-problem-mgmt.php index 5b95b1130..7e4f7a764 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/ru.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/ru.dict.itop-problem-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:ProblemManagement' => 'Управление проблемами', 'Menu:ProblemManagement+' => 'Управление проблемами', 'Menu:Problem:Overview' => 'Обзор', @@ -33,12 +34,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Панель управления проблемами', 'UI:ProblemMgmtMenuOverview:Title+' => 'Панель управления проблемами', -)); +]); // // Class: Problem // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Problem' => 'Проблема', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Статус', @@ -111,4 +112,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Закрыть', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/sk.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/sk.dict.itop-problem-mgmt.php index 6e635dc8d..fe7c5cf73 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/sk.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/sk.dict.itop-problem-mgmt.php @@ -1,15 +1,16 @@ 'Problem management~~', 'Menu:ProblemManagement+' => 'Problem management~~', 'Menu:Problem:Overview' => 'Overview~~', @@ -32,12 +33,12 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Dashboard for Problem Management~~', 'UI:ProblemMgmtMenuOverview:Title+' => 'Dashboard for Problem Management~~', -)); +]); // // Class: Problem // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Problem' => 'Problem~~', 'Class:Problem+' => '~~', 'Class:Problem/Attribute:status' => 'Status~~', @@ -110,4 +111,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Problem/Stimulus:ev_resolve+' => '~~', 'Class:Problem/Stimulus:ev_close' => 'Close~~', 'Class:Problem/Stimulus:ev_close+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/tr.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/tr.dict.itop-problem-mgmt.php index b969b410b..d8bacb5f6 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/tr.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/tr.dict.itop-problem-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:ProblemManagement' => 'Problem yönetimi', 'Menu:ProblemManagement+' => 'Problem yönetimi', 'Menu:Problem:Overview' => 'Özet', @@ -33,12 +34,12 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:ProblemMgmtMenuOverview:Title' => 'Problem Yönetimi Gösterge Tablosu', 'UI:ProblemMgmtMenuOverview:Title+' => 'Problem Yönetimi Gösterge Tablosu', -)); +]); // // Class: Problem // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Problem' => 'Problem', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => 'Durum', @@ -111,4 +112,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => 'Kapat', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/zh_cn.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/zh_cn.dict.itop-problem-mgmt.php index 90d2a09bf..1cf347a8b 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/zh_cn.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/zh_cn.dict.itop-problem-mgmt.php @@ -1,4 +1,5 @@ /Attribute:/Value:+ // Class:/Stimulus: // Class:/Stimulus:+ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:ProblemManagement' => '问题管理', 'Menu:ProblemManagement+' => '问题管理', 'Menu:Problem:Overview' => '概况', @@ -65,12 +66,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:ProblemMgmtMenuOverview:Title' => '问题管理仪表盘', 'UI:ProblemMgmtMenuOverview:Title+' => '问题管理仪表盘', -)); +]); // // Class: Problem // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Problem' => '问题', 'Class:Problem+' => '', 'Class:Problem/Attribute:status' => '状态', @@ -143,4 +144,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Problem/Stimulus:ev_resolve+' => '', 'Class:Problem/Stimulus:ev_close' => '关闭', 'Class:Problem/Stimulus:ev_close+' => '', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/cs.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/cs.dict.itop-request-mgmt-itil.php index a5e7b5b5e..89a9fe0e0 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/cs.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/cs.dict.itop-request-mgmt-itil.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => 'Helpdesk', 'Menu:RequestManagementProvider' => 'Poskytovatel helpdesku', @@ -43,7 +44,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Otevřené požadavky podle zákazníka', 'Class:UserRequest:KnownErrorList' => 'Známé chyby', 'Class:UserRequest:KnownErrorList+' => 'Známé chyby související s funkční konfigurační položkou spojenou s daným tiketem', -)); +]); // Dictionnay conventions // Class: @@ -59,7 +60,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( // Class: UserRequest // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:UserRequest' => 'Uživatelský požadavek', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Stav', @@ -257,11 +258,10 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Požadavek nemůže být nadřazený sám sobě', 'Class:UserRequest/Method:ResolveChildTickets' => 'Vyřešit podřízené tikety', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Kaskádovat vyřešení do podřízeného požadavku (ev_autoresolve) a sjednotit následující vlastnosti: služba, tým, řešitel, informace o vyřešení', -)); +]); - -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Organization:Overview:UserRequests' => 'Uživatelské požadavky z této organizace', 'Organization:Overview:MyUserRequests' => 'Moje uživatelské požadavky pro tuto organizaci', 'Organization:Overview:Tickets' => 'Tikety pro tuto organizaci', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/da.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/da.dict.itop-request-mgmt-itil.php index b3c45c098..51c2a62c5 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/da.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/da.dict.itop-request-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Helpdesk Leverandør', @@ -42,7 +43,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Åbne brugerhenvendelser efter bruger', 'Class:UserRequest:KnownErrorList' => 'Known Errors', 'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket~~', -)); +]); // Dictionnay conventions // Class: @@ -58,7 +59,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( // Class: UserRequest // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:UserRequest' => 'Brugerhenvendelse', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -256,11 +257,10 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info~~', -)); +]); - -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', 'Organization:Overview:Tickets' => 'Tickets for this organization~~', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/de.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/de.dict.itop-request-mgmt-itil.php index 740cbdb07..58eb04b7d 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/de.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/de.dict.itop-request-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => 'Verwaltung von Benutzeranfragen', 'Menu:RequestManagementProvider' => 'Helpdesk-Provider', @@ -42,7 +43,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Offene Benutzeranfragen nach Kunde', 'Class:UserRequest:KnownErrorList' => 'Known Errors', 'Class:UserRequest:KnownErrorList+' => 'Dokumentiere Fehler im Zusammenhang mit CIs, die mit dem aktuellen Ticket verknüpft sind', -)); +]); // Dictionnay conventions // Class: @@ -58,7 +59,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( // Class: UserRequest // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:UserRequest' => 'Benutzeranfrage', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -256,11 +257,10 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Kann Ticket nicht als eigenes Parent-Ticket verwenden', 'Class:UserRequest/Method:ResolveChildTickets' => 'Kind-Tickets lösen', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Lösung auf Kind-Tickets übertragen (ev_autoresolve), und folgende Ticket-Eigenschaften angleichen: Service, Team, Agent, Lösungsinformationen', -)); +]); - -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Organization:Overview:UserRequests' => 'Benutzeranfragen dieser Organisation', 'Organization:Overview:MyUserRequests' => 'Mir zugewiesene Benutzeranfragen dieser Organisation', 'Organization:Overview:Tickets' => 'Alle Tickets dieser Organisation', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/en.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/en.dict.itop-request-mgmt-itil.php index 533c1a46b..8d97ac7fd 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/en.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/en.dict.itop-request-mgmt-itil.php @@ -1,10 +1,11 @@ 'Helpdesk', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Helpdesk provider', @@ -36,7 +37,7 @@ Dict::Add('EN US', 'English', 'English', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Open requests by customer', 'Class:UserRequest:KnownErrorList' => 'Known Errors', 'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket', -)); +]); // Dictionnay conventions // Class: @@ -52,7 +53,7 @@ Dict::Add('EN US', 'English', 'English', array( // Class: UserRequest // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:UserRequest' => 'User Request', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -251,11 +252,10 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info', -)); +]); - -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization', 'Organization:Overview:Tickets' => 'Tickets for this organization', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/en_gb.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/en_gb.dict.itop-request-mgmt-itil.php index caebaab9c..a42dd5534 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/en_gb.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/en_gb.dict.itop-request-mgmt-itil.php @@ -1,10 +1,11 @@ 'Helpdesk', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Helpdesk provider', @@ -36,7 +37,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Open requests by customer', 'Class:UserRequest:KnownErrorList' => 'Known Errors', 'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket', -)); +]); // Dictionnay conventions // Class: @@ -52,7 +53,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Class: UserRequest // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:UserRequest' => 'User Request', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -251,11 +252,10 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info.', -)); +]); - -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Organization:Overview:UserRequests' => 'User Requests from this organisation', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organisation', 'Organization:Overview:Tickets' => 'Tickets for this organisation', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/es_cr.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/es_cr.dict.itop-request-mgmt-itil.php index 5be49f0db..74b22fcf1 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/es_cr.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/es_cr.dict.itop-request-mgmt-itil.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:RequestManagement' => 'Administración de Requerimientos', 'Menu:RequestManagement+' => 'Administración de Requerimientos', 'Menu:RequestManagementProvider' => 'Proveedor de Mesa de Ayuda', @@ -39,7 +40,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Requerimientos Abiertos por Cliente', 'Class:UserRequest:KnownErrorList' => 'Errores Conocidos', 'Class:UserRequest:KnownErrorList+' => 'Errores conocidos relacionados con el EC funcional vinculado al ticket actual', -)); +]); // Dictionnay conventions // Class: @@ -55,7 +56,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( // Class: UserRequest // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:UserRequest' => 'Requerimiento', 'Class:UserRequest+' => 'Requerimiento', 'Class:UserRequest/Attribute:status' => 'Estatus', @@ -253,11 +254,10 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'No puede asignarse el requerimiento Padre a si mismo', 'Class:UserRequest/Method:ResolveChildTickets' => 'Resolver tickets hijos', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascadear la solución a los tickets hijos (ev_autoresolve), y alinear las siguientes características: servicio, equipo, agente, información de solución', -)); +]); - -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Organization:Overview:UserRequests' => 'Requerimientos para esta Organización', 'Organization:Overview:MyUserRequests' => 'Mis Requerimientos para esta Organización', 'Organization:Overview:Tickets' => 'Tickets para esta Organización', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/fr.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/fr.dict.itop-request-mgmt-itil.php index 0fcf17fbd..8f3e0b446 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/fr.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/fr.dict.itop-request-mgmt-itil.php @@ -1,15 +1,16 @@ 'Gestion des demandes', 'Menu:RequestManagement+' => 'Gestion des demandes utilisateurs', 'Menu:RequestManagementProvider' => 'Gestion des demandes fournisseurs', @@ -41,7 +42,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Requêtes ouvertes par client', 'Class:UserRequest:KnownErrorList' => 'Erreurs connues', 'Class:UserRequest:KnownErrorList+' => 'Erreurs connues liées à des éléments de configuration impactés par ce ticket', -)); +]); // Dictionnay conventions // Class: @@ -57,7 +58,7 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class: UserRequest // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:UserRequest' => 'Demande Utilisateur', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Etat', @@ -260,12 +261,11 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'La demande parente ne peut pas être assignée à elle même', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets (résoudre les tickets fils)', - 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascader l\'action de résolution de la demande (ev_autoresolve), et aligner les caractéristiques suivantes : service, équipe, agent, information de résolution' -)); + 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascader l\'action de résolution de la demande (ev_autoresolve), et aligner les caractéristiques suivantes : service, équipe, agent, information de résolution', +]); - -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Organization:Overview:UserRequests' => 'Demandes Utilisateurs pour cette organisation', 'Organization:Overview:MyUserRequests' => 'Mes Demandes Utilisateurs pour cette organisation', 'Organization:Overview:Tickets' => 'Les Tickets de cette organisation', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/hu.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/hu.dict.itop-request-mgmt-itil.php index f33c471d6..53d38d66b 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/hu.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/hu.dict.itop-request-mgmt-itil.php @@ -1,15 +1,16 @@ 'Helpdesk', 'Menu:RequestManagement+' => 'Felhasználói kérések kezelése', 'Menu:RequestManagementProvider' => 'Helpdesk szolgáltató', @@ -41,7 +42,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Nyitott kérelmek ügyfelenként', 'Class:UserRequest:KnownErrorList' => 'Ismert hibák', 'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket~~', -)); +]); // Dictionnay conventions // Class: @@ -57,7 +58,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( // Class: UserRequest // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:UserRequest' => 'Felhasználói kérelem', 'Class:UserRequest+' => '~~', 'Class:UserRequest/Attribute:status' => 'Állapot', @@ -255,11 +256,10 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Nem lehet hozzárendelni a Fölérendelt kérelmet magához a kérelemhez', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'A megoldás kaszkádosítása a kapcsolódó kérésekhez (ev_autoresolve), és a kérés következő jellemzőinek összehangolása: szolgáltatás, csapat, ügyintéző, megoldási információ.', -)); +]); - -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Organization:Overview:UserRequests' => 'Felhasználói kérelmek ebből a szervezeti egységből', 'Organization:Overview:MyUserRequests' => 'Hozzám rendelt kérelmek ebből a szervezeti egységből', 'Organization:Overview:Tickets' => 'Hibajegyek ebből a szervezeti egységből', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/ja.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/ja.dict.itop-request-mgmt-itil.php index 395402c00..12c106936 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/ja.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/ja.dict.itop-request-mgmt-itil.php @@ -1,15 +1,16 @@ 'ヘルプデスク', 'Menu:RequestManagement+' => 'ヘルプデスクk', 'Menu:RequestManagementProvider' => 'ヘルプデスクプロバイダー', @@ -41,7 +42,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => '顧客別のオープンなリクエスト', 'Class:UserRequest:KnownErrorList' => '既知のエラー', 'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket~~', -)); +]); // Dictionnay conventions // Class: @@ -57,7 +58,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( // Class: UserRequest // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:UserRequest' => 'ユーザ要求', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => '状態', @@ -255,11 +256,10 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info~~', -)); +]); - -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', 'Organization:Overview:Tickets' => 'Tickets for this organization~~', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/nl.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/nl.dict.itop-request-mgmt-itil.php index 37c21d668..b72474c7f 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/nl.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/nl.dict.itop-request-mgmt-itil.php @@ -1,16 +1,17 @@ * @author Jeffrey Bostoen (2018 - 2022) */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => 'Helpdesk', 'Menu:RequestManagementProvider' => 'Helpdesk leverancier', @@ -42,7 +43,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Open verzoeken per organisatie', 'Class:UserRequest:KnownErrorList' => 'Gekende fouten', 'Class:UserRequest:KnownErrorList+' => 'Gekende fouten gerelateerd aan configuratie-items gekoppeld aan het huidige verzoek', -)); +]); // Dictionnay conventions // Class: @@ -58,7 +59,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( // Class: UserRequest // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:UserRequest' => 'Gebruikersverzoek', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -256,11 +257,10 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Kan het verzoek niet aan zichzelf toewijzen als hoofdincident', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets (los subverzoeken op)', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Pas de oplossing ook toe op subverzoeken (ev_autoresolve) en neem deze kenmerken over: service, team, agent, oplossing', -)); +]); - -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Organization:Overview:UserRequests' => 'Gebruikersverzoeken van deze organisatie', 'Organization:Overview:MyUserRequests' => 'Mijn gebruikersverzoeken voor deze organisatie', 'Organization:Overview:Tickets' => 'Tickets voor deze organisatie', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/pl.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/pl.dict.itop-request-mgmt-itil.php index f697feb93..f1a3a8921 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/pl.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/pl.dict.itop-request-mgmt-itil.php @@ -1,15 +1,16 @@ 'Pomoc techniczna', 'Menu:RequestManagement+' => 'Pomoc techniczna', 'Menu:RequestManagementProvider' => 'Dostawca pomocy technicznej', @@ -41,7 +42,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Otwarte zgłoszenia według klientów', 'Class:UserRequest:KnownErrorList' => 'Znane błędy', 'Class:UserRequest:KnownErrorList+' => 'Znane błędy związane z konfiguracją CI powiązaną z bieżącym zgłoszeniem', -)); +]); // Dictionnay conventions // Class: @@ -57,7 +58,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( // Class: UserRequest // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:UserRequest' => 'Zgłoszenie użytkownika', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -255,11 +256,10 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Nie można przypisać zgłoszenia nadrzędnego do samego siebie', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Połącz rozwiązanie kaskadowo do żądań podrzędnych (ev_autoresolve) i dopasuj następujące cechy zgłoszenia: usługa, zespół, agent, informacje o rozwiązaniu', -)); +]); - -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Organization:Overview:UserRequests' => 'Zgłoszenia użytkowników z tej organizacji', 'Organization:Overview:MyUserRequests' => 'Moje zgłoszenia użytkowników dla tej organizacji', 'Organization:Overview:Tickets' => 'Zgłoszenia tej organizacji', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/ru.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/ru.dict.itop-request-mgmt-itil.php index 0793f4865..bd84fc5f6 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/ru.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/ru.dict.itop-request-mgmt-itil.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:RequestManagement' => 'Управление запросами', 'Menu:RequestManagement+' => 'Управление запросами', 'Menu:RequestManagementProvider' => 'Поставщик техподдержки', @@ -42,7 +43,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Открытые запросы по заказчику', 'Class:UserRequest:KnownErrorList' => 'Известные ошибки', 'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket~~', -)); +]); // Dictionnay conventions // Class: @@ -58,7 +59,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( // Class: UserRequest // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:UserRequest' => 'Запрос', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Статус', @@ -256,11 +257,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Невозможно назначить этот же запрос в качестве родительского', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Каскадное решение дочерних запросов (ev_autoresolve) с установкой следующих параметров: услуга, команда, агент, информация о решении.', -)); +]); - -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Organization:Overview:UserRequests' => 'Запросы пользователей этой организации', 'Organization:Overview:MyUserRequests' => 'Мои запросы пользователей этой организации', 'Organization:Overview:Tickets' => 'Тикеты этой организации', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/sk.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/sk.dict.itop-request-mgmt-itil.php index a0a8e6bb1..494a91552 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/sk.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/sk.dict.itop-request-mgmt-itil.php @@ -1,15 +1,16 @@ 'Helpdesk', 'Menu:RequestManagement+' => '~~', 'Menu:RequestManagementProvider' => 'Poskytovateľ Helpdesku', @@ -41,7 +42,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Otvorené požiadavky podľa organizácie', 'Class:UserRequest:KnownErrorList' => 'Známe chyby', 'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket~~', -)); +]); // Dictionnay conventions // Class: @@ -57,7 +58,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( // Class: UserRequest // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:UserRequest' => 'Požiadavka užívateľa', 'Class:UserRequest+' => '~~', 'Class:UserRequest/Attribute:status' => 'Stav', @@ -255,11 +256,10 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info~~', -)); +]); - -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', 'Organization:Overview:Tickets' => 'Tickets for this organization~~', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/tr.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/tr.dict.itop-request-mgmt-itil.php index 0631ca91b..2fc111f20 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/tr.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/tr.dict.itop-request-mgmt-itil.php @@ -1,15 +1,16 @@ 'Helpdesk~~', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Helpdesk provider~~', @@ -41,7 +42,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => 'Open requests by customer~~', 'Class:UserRequest:KnownErrorList' => 'Known Errors~~', 'Class:UserRequest:KnownErrorList+' => 'Known Errors related to Functional CI linked to the current ticket~~', -)); +]); // Dictionnay conventions // Class: @@ -57,7 +58,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( // Class: UserRequest // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:UserRequest' => 'User Request~~', 'Class:UserRequest+' => '~~', 'Class:UserRequest/Attribute:status' => 'Status~~', @@ -255,11 +256,10 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info~~', -)); +]); - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', 'Organization:Overview:Tickets' => 'Tickets for this organization~~', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/zh_cn.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/zh_cn.dict.itop-request-mgmt-itil.php index 55dbe081f..2ac97877e 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/zh_cn.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/zh_cn.dict.itop-request-mgmt-itil.php @@ -1,9 +1,10 @@ '服务台', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => '服务台提供者', @@ -35,7 +36,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI-RequestManagementOverview-OpenRequestByCustomer' => '打开的需求 (按客户)', 'Class:UserRequest:KnownErrorList' => '已知错误', 'Class:UserRequest:KnownErrorList+' => '和当前工单关联的功能配置项相关的已知错误', -)); +]); // Dictionnay conventions // Class: @@ -51,7 +52,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Class: UserRequest // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:UserRequest' => '用户需求', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => '状态', @@ -249,11 +250,10 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => '无法分配父级需求给自己', 'Class:UserRequest/Method:ResolveChildTickets' => '解决子工单', 'Class:UserRequest/Method:ResolveChildTickets+' => '递归解决子工单 (自动解决), 并调整相关字段与父级工单保持一致: 服务, 团队, 办理人, 解决方案信息', -)); +]); - -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Organization:Overview:UserRequests' => '此组织的所有用户需求', 'Organization:Overview:MyUserRequests' => '我在此组织发起的需求', 'Organization:Overview:Tickets' => '此组织内的所有工单', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/cs.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/cs.dict.itop-request-mgmt.php index b3e0da582..ec9f68a43 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/cs.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/cs.dict.itop-request-mgmt.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => 'Helpdesk', 'Menu:RequestManagementProvider' => 'Poskytovatel helpdesku', @@ -47,7 +48,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Menu:UserRequest:MyWorkOrders+' => 'Všechny pracovní příkazy přidělené mně', 'Class:Problem:KnownProblemList' => 'Známé problémy', 'Tickets:Related:OpenIncidents' => 'Otevřené incidenty', -)); +]); // Dictionnay conventions // Class: @@ -63,7 +64,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( // Class: UserRequest // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:UserRequest' => 'Uživatelský požadavek', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Stav', @@ -257,10 +258,9 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Čeká na schválení', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Požadavek nemůže být nadřazený sám sobě', -)); +]); - -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Portal:TitleDetailsFor_Request' => 'Detaily požadavku', 'Portal:ButtonUpdate' => 'Aktualizovat', 'Portal:ButtonClose' => 'Uzavřít', @@ -285,11 +285,10 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Portal:ChooseYourFavoriteLanguage' => 'Vyberte svůj jazyk', 'Class:UserRequest/Method:ResolveChildTickets' => 'Vyřešit podřízené tikety', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Kaskádovat vyřešení do podřízeného požadavku (ev_autoresolve) a sjednotit následující vlastnosti: služba, tým, řešitel, informace o vyřešení', -)); +]); - -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Organization:Overview:UserRequests' => 'Uživatelské požadavky z této organizace', 'Organization:Overview:MyUserRequests' => 'Moje uživatelské požadavky pro tuto organizaci', 'Organization:Overview:Tickets' => 'Tikety pro tuto organizaci', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/da.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/da.dict.itop-request-mgmt.php index 50c56ff99..b19fc3d49 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/da.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/da.dict.itop-request-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Helpdesk Leverandør', @@ -46,7 +47,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Menu:UserRequest:MyWorkOrders+' => '', 'Class:Problem:KnownProblemList' => 'Kendte problemer', 'Tickets:Related:OpenIncidents' => 'Open incidents~~', -)); +]); // Dictionnay conventions // Class: @@ -62,7 +63,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( // Class: UserRequest // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:UserRequest' => 'Brugerhenvendelse', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -256,10 +257,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Afventer godkendelse', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~', -)); +]); - -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Portal:TitleDetailsFor_Request' => 'Dealjer for Brugerhenvendelser', 'Portal:ButtonUpdate' => 'Opdater', 'Portal:ButtonClose' => 'Luk', @@ -284,11 +284,10 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Portal:ChooseYourFavoriteLanguage' => 'Vælg dit foretrukne sprog', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info~~', -)); +]); - -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', 'Organization:Overview:Tickets' => 'Tickets for this organization~~', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/de.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/de.dict.itop-request-mgmt.php index 730a9c730..10f13dcd9 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/de.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/de.dict.itop-request-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => 'Verwaltung von Nutzeranfragen und Störungsmeldungen', 'Menu:RequestManagementProvider' => 'Helpdesk-Provider', @@ -46,7 +47,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Menu:UserRequest:MyWorkOrders+' => '', 'Class:Problem:KnownProblemList' => 'Bekannte Problems', 'Tickets:Related:OpenIncidents' => 'Offene Incidents', -)); +]); // Dictionnay conventions // Class: @@ -62,7 +63,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( // Class: UserRequest // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:UserRequest' => 'Benutzeranfrage', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -256,10 +257,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Auf Genehmigung warten', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Kann Ticket nicht als eigenes Parent-Ticket verwenden', -)); +]); - -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Portal:TitleDetailsFor_Request' => 'Details für Benutzeranfrage', 'Portal:ButtonUpdate' => 'Update', 'Portal:ButtonClose' => 'Schließen', @@ -284,11 +284,10 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Portal:ChooseYourFavoriteLanguage' => 'Wählen Sie Ihre bevorzugte Sprache', 'Class:UserRequest/Method:ResolveChildTickets' => 'Kind-Tickets lösen', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Lösung auf Kind-Tickets übertragen (ev_autoresolve), und folgende Ticket-Eigenschaften angleichen: Service, Team, Agent, Lösungsinformationen', -)); +]); - -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Organization:Overview:UserRequests' => 'Benutzeranfragen dieser Organisation', 'Organization:Overview:MyUserRequests' => 'Mir zugewiesene Benutzeranfragen dieser Organisation', 'Organization:Overview:Tickets' => 'Alle Tickets dieser Organisation', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/en.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/en.dict.itop-request-mgmt.php index 70206051e..4d6370df4 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/en.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/en.dict.itop-request-mgmt.php @@ -1,10 +1,11 @@ 'Helpdesk', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Helpdesk provider', @@ -40,7 +41,7 @@ Dict::Add('EN US', 'English', 'English', array( 'Menu:UserRequest:MyWorkOrders+' => 'All work orders assigned to me', 'Class:Problem:KnownProblemList' => 'Known problems', 'Tickets:Related:OpenIncidents' => 'Open incidents', -)); +]); // Dictionnay conventions // Class: @@ -56,7 +57,7 @@ Dict::Add('EN US', 'English', 'English', array( // Class: UserRequest // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:UserRequest' => 'User Request', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -250,10 +251,9 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Wait for approval', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself', -)); +]); - -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Portal:TitleDetailsFor_Request' => 'Details for request', 'Portal:ButtonUpdate' => 'Update', 'Portal:ButtonClose' => 'Close', @@ -279,11 +279,10 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info', -)); +]); - -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization', 'Organization:Overview:Tickets' => 'Tickets for this organization', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/en_gb.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/en_gb.dict.itop-request-mgmt.php index adb72919a..41a359e88 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/en_gb.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/en_gb.dict.itop-request-mgmt.php @@ -1,10 +1,11 @@ 'Helpdesk', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Helpdesk provider', @@ -40,7 +41,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Menu:UserRequest:MyWorkOrders+' => 'All work orders assigned to me', 'Class:Problem:KnownProblemList' => 'Known problems', 'Tickets:Related:OpenIncidents' => 'Open incidents', -)); +]); // Dictionnay conventions // Class: @@ -56,7 +57,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Class: UserRequest // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:UserRequest' => 'User Request', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -250,10 +251,9 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Wait for approval', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself', -)); +]); - -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Portal:TitleDetailsFor_Request' => 'Details for request', 'Portal:ButtonUpdate' => 'Update', 'Portal:ButtonClose' => 'Close', @@ -279,11 +279,10 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info.', -)); +]); - -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Organization:Overview:UserRequests' => 'User Requests from this organisation', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organisation', 'Organization:Overview:Tickets' => 'Tickets for this organisation', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/es_cr.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/es_cr.dict.itop-request-mgmt.php index a693873b7..d051b0ad8 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/es_cr.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/es_cr.dict.itop-request-mgmt.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:RequestManagement' => 'Administración de Requerimientos', 'Menu:RequestManagement+' => 'Administración de Requerimientos', 'Menu:RequestManagementProvider' => 'Proveedor de Mesa de Ayuda', @@ -43,7 +44,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Menu:UserRequest:MyWorkOrders+' => 'Ordenes de Trabajo asignadas a Mí', 'Class:Problem:KnownProblemList' => 'Problemas Conocidos', 'Tickets:Related:OpenIncidents' => 'Incidentes Abiertos', -)); +]); // Dictionnay conventions // Class: @@ -59,7 +60,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( // Class: UserRequest // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:UserRequest' => 'Requerimiento', 'Class:UserRequest+' => 'Requerimiento', 'Class:UserRequest/Attribute:status' => 'Estatus', @@ -253,10 +254,9 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Esperando Aprobación', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => 'Esperando Aprobación', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'No puede asignarse el requerimiento Padre a si mismo', -)); +]); - -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Portal:TitleDetailsFor_Request' => 'Detalles del Requerimiento', 'Portal:ButtonUpdate' => 'Actualizar', 'Portal:ButtonClose' => 'Cerrar', @@ -281,11 +281,10 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Portal:ChooseYourFavoriteLanguage' => 'Seleccione su Idioma Favorito', 'Class:UserRequest/Method:ResolveChildTickets' => 'Resolver tickets hijos', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascadear la solución a los tickets hijos (ev_autoresolve), y alinear las siguientes características: servicio, equipo, agente, información de solución', -)); +]); - -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Organization:Overview:UserRequests' => 'Requerimientos para esta Organización', 'Organization:Overview:MyUserRequests' => 'Mis Requerimientos para esta Organización', 'Organization:Overview:Tickets' => 'Tickets para esta Organización', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/fr.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/fr.dict.itop-request-mgmt.php index c1ec3bc3e..2e7a21a2c 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/fr.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/fr.dict.itop-request-mgmt.php @@ -1,15 +1,16 @@ 'Gestion des demandes', 'Menu:RequestManagement+' => 'Gestion des demandes utilisateurs', 'Menu:RequestManagementProvider' => 'Gestion des demandes fournisseurs', @@ -45,7 +46,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Menu:UserRequest:MyWorkOrders+' => '', 'Class:Problem:KnownProblemList' => 'Problèmes connus', 'Tickets:Related:OpenIncidents' => 'Incidents en cours', -)); +]); // Dictionnay conventions // Class: @@ -61,7 +62,7 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class: UserRequest // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:UserRequest' => 'Demande Utilisateur', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Etat', @@ -260,11 +261,10 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:UserRequest/Stimulus:ev_reopen+' => '', 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Attendre une approbation', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', - 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'La demande parente ne peut pas être assignée à elle même' -)); + 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'La demande parente ne peut pas être assignée à elle même', +]); - -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Portal:TitleDetailsFor_Request' => 'Détail de la demande', 'Portal:ButtonUpdate' => 'Mettre à jour', 'Portal:ButtonClose' => 'Fermer', @@ -289,11 +289,10 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Portal:ChooseYourFavoriteLanguage' => 'Choisissez votre langue', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets (résoudre les tickets fils)', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascader l\'action de résolution de la demande (ev_autoresolve), et aligner les caractéristiques suivantes : service, équipe, agent, information de résolution', -)); +]); - -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Organization:Overview:UserRequests' => 'Demandes Utilisateurs pour cette organisation', 'Organization:Overview:MyUserRequests' => 'Mes Demandes Utilisateurs pour cette organisation', 'Organization:Overview:Tickets' => 'Les Tickets de cette organisation', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/hu.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/hu.dict.itop-request-mgmt.php index fe86ff71c..2ffd0c376 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/hu.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/hu.dict.itop-request-mgmt.php @@ -1,15 +1,16 @@ 'Helpdesk', 'Menu:RequestManagement+' => 'Kérelmek kezelése', 'Menu:RequestManagementProvider' => 'Helpdesk szolgáltató', @@ -45,7 +46,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Menu:UserRequest:MyWorkOrders+' => 'All work orders assigned to me~~', 'Class:Problem:KnownProblemList' => 'Ismert problémák', 'Tickets:Related:OpenIncidents' => 'Nyitott incidensek', -)); +]); // Dictionnay conventions // Class: @@ -61,7 +62,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( // Class: UserRequest // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:UserRequest' => 'Felhasználói kérelem', 'Class:UserRequest+' => '~~', 'Class:UserRequest/Attribute:status' => 'Állapot', @@ -255,10 +256,9 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Jóváhagyásra vár', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '~~', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Nem lehet hozzárendelni a fölérendelt kérelmet magához a kérelemhez', -)); +]); - -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Portal:TitleDetailsFor_Request' => 'Kérelem részletei', 'Portal:ButtonUpdate' => 'Frissítés', 'Portal:ButtonClose' => 'Lezárás', @@ -283,11 +283,10 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Portal:ChooseYourFavoriteLanguage' => 'Válassza ki a kívánt nyelvet', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'A megoldás kaszkádosítása a kapcsolódó kérésekhez (ev_autoresolve), és a kérés következő jellemzőinek összehangolása: szolgáltatás, csapat, ügyintéző, megoldási információ.', -)); +]); - -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Organization:Overview:UserRequests' => 'Felhasználói kérelmek ebből a szervezeti egységből', 'Organization:Overview:MyUserRequests' => 'Hozzám rendelt kérelmek ebből a szervezeti egységből', 'Organization:Overview:Tickets' => 'Hibajegyek ebből a szervezeti egységből', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/ja.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/ja.dict.itop-request-mgmt.php index 31509e13b..5d52c2674 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/ja.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/ja.dict.itop-request-mgmt.php @@ -1,15 +1,16 @@ 'ヘルプデスク', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'ヘルプデスクプロバイダー', @@ -45,7 +46,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Menu:UserRequest:MyWorkOrders+' => '', 'Class:Problem:KnownProblemList' => '既知の問題', 'Tickets:Related:OpenIncidents' => 'Open incidents~~', -)); +]); // Dictionnay conventions // Class: @@ -61,7 +62,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( // Class: UserRequest // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:UserRequest' => 'ユーザ要求', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => '状態', @@ -255,10 +256,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => '承認待ち', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~', -)); +]); - -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Portal:TitleDetailsFor_Request' => '要求の詳細', 'Portal:ButtonUpdate' => '更新', 'Portal:ButtonClose' => 'クローズ', @@ -283,11 +283,10 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Portal:ChooseYourFavoriteLanguage' => 'お好みの言語を選択ください', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info~~', -)); +]); - -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', 'Organization:Overview:Tickets' => 'Tickets for this organization~~', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/nl.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/nl.dict.itop-request-mgmt.php index 728794b78..a90eb57b5 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/nl.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/nl.dict.itop-request-mgmt.php @@ -1,17 +1,18 @@ * @author Jeffrey Bostoen (2018 - 2022) * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => 'Helpdesk', 'Menu:RequestManagementProvider' => 'Helpdesk leverancier', @@ -47,7 +48,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Menu:UserRequest:MyWorkOrders+' => 'Alle werkopdrachten toegewezen aan mij', 'Class:Problem:KnownProblemList' => 'Gekende fouten', 'Tickets:Related:OpenIncidents' => 'Open incidenten', -)); +]); // Dictionnay conventions // Class: @@ -63,7 +64,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( // Class: UserRequest // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:UserRequest' => 'Gebruikersverzoek', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -257,10 +258,9 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Wacht op goedkeuring', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Kan het verzoek niet als hoofdverzoek toewijzen aan zichzelf', -)); +]); - -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Portal:TitleDetailsFor_Request' => 'Details van het verzoek', 'Portal:ButtonUpdate' => 'Wijzig', 'Portal:ButtonClose' => 'Sluit', @@ -285,11 +285,10 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Portal:ChooseYourFavoriteLanguage' => 'Kies je voorkeurstaal', 'Class:UserRequest/Method:ResolveChildTickets' => 'Los subverzoeken op', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Pas de oplossing ook toe op subverzoeken (ev_autoresolve) en neem de kenmerken over wat betreft service, team, agent, oplossing', -)); +]); - -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Organization:Overview:UserRequests' => 'Gebruikersverzoeken van deze organisatie', 'Organization:Overview:MyUserRequests' => 'Mijn gebruikersverzoeken voor deze organisatie', 'Organization:Overview:Tickets' => 'Tickets voor deze organisatie', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/pl.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/pl.dict.itop-request-mgmt.php index 429605876..e4ce13985 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/pl.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/pl.dict.itop-request-mgmt.php @@ -1,15 +1,16 @@ 'Pomoc techniczna', 'Menu:RequestManagement+' => 'Pomoc techniczna', 'Menu:RequestManagementProvider' => 'Dostawca pomocy technicznej', @@ -45,7 +46,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Menu:UserRequest:MyWorkOrders+' => 'Wszystkie zlecenia pracy przydzielone do mnie', 'Class:Problem:KnownProblemList' => 'Znane problemy', 'Tickets:Related:OpenIncidents' => 'Otwarte incydenty', -)); +]); // Dictionnay conventions // Class: @@ -61,7 +62,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( // Class: UserRequest // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:UserRequest' => 'Zgłoszenie użytkownika', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -255,10 +256,9 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Do zatwierdzenia', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Nie można przypisać zgłoszenia nadrzędnego do samego siebie', -)); +]); - -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Portal:TitleDetailsFor_Request' => 'Szczegóły zgłoszenia', 'Portal:ButtonUpdate' => 'Aktualizuj', 'Portal:ButtonClose' => 'Zamknij', @@ -283,11 +283,10 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Portal:ChooseYourFavoriteLanguage' => 'Wybierz swój ulubiony język', 'Class:UserRequest/Method:ResolveChildTickets' => 'Rozpatrz zgłoszenia podrzędne', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Połącz rozwiązanie kaskadowo do żądań podrzędnych (ev_autoresolve) i dopasuj następujące cechy zgłoszenia: usługa, zespół, agent, informacje o rozwiązaniu', -)); +]); - -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization', 'Organization:Overview:Tickets' => 'Tickets for this organization', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/pt_br.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/pt_br.dict.itop-request-mgmt.php index 997929fc5..66d32ba18 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/pt_br.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/pt_br.dict.itop-request-mgmt.php @@ -1,15 +1,16 @@ 'Gerenciamento de Solicitações', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Solicitações a provedores(as)', @@ -45,7 +46,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Menu:UserRequest:MyWorkOrders+' => 'Todas as ordens de serviço atribuídas a mim', 'Class:Problem:KnownProblemList' => 'Problemas conhecidos', 'Tickets:Related:OpenIncidents' => 'Incidentes abertos', -)); +]); // Dictionnay conventions // Class: @@ -61,7 +62,7 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( // Class: UserRequest // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:UserRequest' => 'Solicitação de Usuário', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Status', @@ -255,10 +256,9 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Aguardar por aprovação', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Não é possível atribuir a solicitação pai a própria solicitação', -)); +]); - -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Portal:TitleDetailsFor_Request' => 'Detalhes da solicitação', 'Portal:ButtonUpdate' => 'Atualizado', 'Portal:ButtonClose' => 'Fechado', @@ -283,11 +283,10 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'Portal:ChooseYourFavoriteLanguage' => 'Escolha seu idioma favorito', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Conecte a solução a pedidos filhos (ev_autoresolve) e alinhe as seguintes características da requisição: serviço, equipe, agente, info de solução', -)); +]); - -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Organization:Overview:UserRequests' => 'Solicitações de usuários desta organização', 'Organization:Overview:MyUserRequests' => 'Minhas solicitações de usuário para esta organização', 'Organization:Overview:Tickets' => 'Solicitações desta organização', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/ru.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/ru.dict.itop-request-mgmt.php index 3a5f43114..331726504 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/ru.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/ru.dict.itop-request-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:RequestManagement' => 'Helpdesk', 'Menu:RequestManagement+' => 'Helpdesk', 'Menu:RequestManagementProvider' => 'Поставщик техподдержки', @@ -46,7 +47,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Menu:UserRequest:MyWorkOrders+' => 'Назначенные мне наряды на работу', 'Class:Problem:KnownProblemList' => 'Известные проблемы', 'Tickets:Related:OpenIncidents' => 'Открытые инциденты', -)); +]); // Dictionnay conventions // Class: @@ -62,7 +63,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( // Class: UserRequest // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:UserRequest' => 'Запрос', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => 'Статус', @@ -256,10 +257,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Ждать утверждения', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Невозможно назначить этот же запрос в качестве родительского', -)); +]); - -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Portal:TitleDetailsFor_Request' => 'Детали запроса', 'Portal:ButtonUpdate' => 'Обновить', 'Portal:ButtonClose' => 'Закрыть', @@ -284,11 +284,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Portal:ChooseYourFavoriteLanguage' => 'Выберите язык', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Каскадное решение дочерних запросов (ev_autoresolve) с установкой следующих параметров: услуга, команда, агент, информация о решении.', -)); +]); - -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Organization:Overview:UserRequests' => 'Запросы пользователей этой организации', 'Organization:Overview:MyUserRequests' => 'Мои запросы пользователей этой организации', 'Organization:Overview:Tickets' => 'Тикеты этой организации', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/sk.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/sk.dict.itop-request-mgmt.php index 041e57e0d..776bfdaf8 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/sk.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/sk.dict.itop-request-mgmt.php @@ -1,15 +1,16 @@ 'Helpdesk', 'Menu:RequestManagement+' => '~~', 'Menu:RequestManagementProvider' => 'Poskytovateľ Helpdesku', @@ -45,7 +46,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Menu:UserRequest:MyWorkOrders+' => 'All work orders assigned to me~~', 'Class:Problem:KnownProblemList' => 'Známe problémy', 'Tickets:Related:OpenIncidents' => 'Open incidents~~', -)); +]); // Dictionnay conventions // Class: @@ -61,7 +62,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( // Class: UserRequest // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:UserRequest' => 'Požiadavka užívateľa', 'Class:UserRequest+' => '~~', 'Class:UserRequest/Attribute:status' => 'Stav', @@ -255,10 +256,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Počkať na schválenie', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '~~', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~', -)); +]); - -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Portal:TitleDetailsFor_Request' => 'Detaily pre požiadavky', 'Portal:ButtonUpdate' => 'Aktualizácia', 'Portal:ButtonClose' => 'Zatvoriť', @@ -283,11 +283,10 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Portal:ChooseYourFavoriteLanguage' => 'Vyberte si svoj obľúbený jazyk', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info~~', -)); +]); - -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', 'Organization:Overview:Tickets' => 'Tickets for this organization~~', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/tr.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/tr.dict.itop-request-mgmt.php index 2a1c8a3b9..4fe7a21fa 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/tr.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/tr.dict.itop-request-mgmt.php @@ -1,15 +1,16 @@ 'Helpdesk~~', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => 'Helpdesk provider~~', @@ -45,7 +46,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Menu:UserRequest:MyWorkOrders+' => 'All work orders assigned to me~~', 'Class:Problem:KnownProblemList' => 'Known problems~~', 'Tickets:Related:OpenIncidents' => 'Open incidents~~', -)); +]); // Dictionnay conventions // Class: @@ -61,7 +62,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( // Class: UserRequest // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:UserRequest' => 'User Request~~', 'Class:UserRequest+' => '~~', 'Class:UserRequest/Attribute:status' => 'Status~~', @@ -255,10 +256,9 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => 'Wait for approval~~', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '~~', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => 'Cannot assign the Parent request to the request itself~~', -)); +]); - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Portal:TitleDetailsFor_Request' => 'Details for request~~', 'Portal:ButtonUpdate' => 'Update~~', 'Portal:ButtonClose' => 'Close~~', @@ -283,11 +283,10 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Portal:ChooseYourFavoriteLanguage' => 'Choose your favorite language~~', 'Class:UserRequest/Method:ResolveChildTickets' => 'ResolveChildTickets~~', 'Class:UserRequest/Method:ResolveChildTickets+' => 'Cascade the resolution to child requests (ev_autoresolve), and align the following characteristics of the request: service, team, agent, resolution info~~', -)); +]); - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', 'Organization:Overview:Tickets' => 'Tickets for this organization~~', -)); +]); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/zh_cn.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/zh_cn.dict.itop-request-mgmt.php index 6e02316b3..a60f406f6 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/zh_cn.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/zh_cn.dict.itop-request-mgmt.php @@ -1,9 +1,10 @@ '服务台', 'Menu:RequestManagement+' => '', 'Menu:RequestManagementProvider' => '服务台供应商', @@ -39,7 +40,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Menu:UserRequest:MyWorkOrders+' => '分配给我的所有工单', 'Class:Problem:KnownProblemList' => '已知问题', 'Tickets:Related:OpenIncidents' => '打开的事件', -)); +]); // Dictionnay conventions // Class: @@ -55,7 +56,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Class: UserRequest // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:UserRequest' => '用户需求', 'Class:UserRequest+' => '', 'Class:UserRequest/Attribute:status' => '状态', @@ -249,10 +250,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:UserRequest/Stimulus:ev_wait_for_approval' => '等待审核', 'Class:UserRequest/Stimulus:ev_wait_for_approval+' => '', 'Class:UserRequest/Error:CannotAssignParentRequestIdToSelf' => '不能分配父级需求给自己', -)); +]); - -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Portal:TitleDetailsFor_Request' => '需求详情', 'Portal:ButtonUpdate' => '更新', 'Portal:ButtonClose' => '关闭', @@ -277,11 +277,10 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Portal:ChooseYourFavoriteLanguage' => '选择您喜欢的语言', 'Class:UserRequest/Method:ResolveChildTickets' => '解决子工单', 'Class:UserRequest/Method:ResolveChildTickets+' => '递归解决子工单 (自动解决), 并调整相关字段与父级工单保持一致: 服务, 团队, 办理人, 解决方案', -)); +]); - -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Organization:Overview:UserRequests' => '来自此组织的用户需求', 'Organization:Overview:MyUserRequests' => '我在此组织的用户需求', 'Organization:Overview:Tickets' => '来自此组织的工单', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/cs.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/cs.dict.itop-service-mgmt-provider.php index d08735476..91f33927a 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/cs.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/cs.dict.itop-service-mgmt-provider.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:ServiceManagement' => 'Správa služeb', 'Menu:ServiceManagement+' => 'Přehled správy služeb', 'Menu:Service:Overview' => 'Přehled', @@ -40,7 +41,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Contract:baseinfo' => 'Obecné informace', 'Contract:moreinfo' => 'Smluvní informace', 'Contract:cost' => 'Informace o nákladech', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -55,30 +56,27 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( // Class: Organization // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Model poskytování služeb', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Název modelu poskytování služeb', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ContractType' => 'Typ smlouvy', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Contract' => 'Smlouva', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Název', @@ -127,13 +125,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => 'Typ', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:CustomerContract' => 'Smlouva se zákazníkem', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Služby', @@ -142,13 +140,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Všechny konfigurační položky pokryté touto smlouvou', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Smlouvy s poskytovateli', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Všechny smlouvy s poskytovatelem na dodávky služeb pro tuto smlouvu (podpůrná smlouva - UC)', -)); +]); // // Class: ProviderContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ProviderContract' => 'Smlouva s poskytovatelem', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'Konfigurační položky', @@ -157,13 +155,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ProviderContract/Attribute:sla+' => 'Dohoda o úrovni služeb', 'Class:ProviderContract/Attribute:coverage' => 'Servisní hodiny', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContactToContract' => 'Spojení (Kontakt / Smlouva)', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -175,13 +173,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Název kontaktu', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContractToDocument' => 'Spojení (Smlouva / Dokument)', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -193,13 +191,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Název dokumentu', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkFunctionalCIToProviderContract' => 'Spojení (Funkční konfigurační položka / Smlouva s poskytovatelem)', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -211,13 +209,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Název konfigurační položky', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ServiceFamily' => 'Balíček služeb', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Název', @@ -226,13 +224,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Služby', 'Class:ServiceFamily/Attribute:services_list+' => 'Všechny služby v této kategorii', -)); +]); // // Class: Service // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Service' => 'Služba', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -266,13 +264,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Service/Attribute:customercontracts_list+' => 'Všechny smlouvy se zákazníky, kteří zakoupili tuto službu', 'Class:Service/Attribute:servicesubcategories_list' => 'Podkategorie služeb', 'Class:Service/Attribute:servicesubcategories_list+' => 'Všechny podkategorie služeb pro tuto službu', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDocumentToService' => 'Spojení (Dokument / Služba)', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -284,13 +282,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Název dokumentu', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContactToService' => 'Spojení (Kontakt / Služba)', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -302,13 +300,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Název kontaktu', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ServiceSubcategory' => 'Podkategorie služeb', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -336,13 +334,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => '', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Název poskytovatele', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Poskytovatel', -)); +]); // // Class: SLA // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => 'Dohoda o úrovni služeb', 'Class:SLA/Attribute:name' => 'Název', @@ -358,13 +356,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:SLA/Attribute:customercontracts_list' => 'Smlouvy se zákazníky', 'Class:SLA/Attribute:customercontracts_list+' => 'Všechny smlouvy se zákazníky využívající tuto dohodu o úrovni služeb', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Nepodařilo se uložit spojení smlouvy se zákazníkem %1$s a služby %2$s : SLA již existují', -)); +]); // // Class: SLT // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => 'Cíl úrovně služeb', 'Class:SLT/Attribute:name' => 'Název', @@ -399,13 +397,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:SLT/Attribute:unit/Value:hours+' => '', 'Class:SLT/Attribute:unit/Value:minutes' => 'minuty', 'Class:SLT/Attribute:unit/Value:minutes+' => '', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkSLAToSLT' => 'Spojení (SLA / SLT)', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -427,13 +425,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Jednotka hodnoty SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkCustomerContractToService' => 'Spojení (Smlouva se zákazníkem / Služba)', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -449,13 +447,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Název SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkCustomerContractToProviderContract' => 'Spojení (Smlouva se zákazníkem / Smlouva s poskytovatelem)', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~', @@ -467,13 +465,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Název smlouvy s poskytovatelem', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Spojení (Smlouva se zákazníkem / Funkční konfigurační položka)', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -485,13 +483,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'Název konfigurační položky', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DeliveryModel' => 'Model poskytování služeb', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Název', @@ -506,13 +504,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Všechny kontakty (Týmy a Osoby) pro tento model poskytování služeb', 'Class:DeliveryModel/Attribute:customers_list' => 'Zákazníci', 'Class:DeliveryModel/Attribute:customers_list+' => 'Všichni zákazníci využívající tento model poskytování služeb', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDeliveryModelToContact' => 'Spojení (Model poskytování služeb / Kontakt)', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -528,35 +526,35 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Název role', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/da.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/da.dict.itop-service-mgmt-provider.php index fe184c255..6c11393de 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/da.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/da.dict.itop-service-mgmt-provider.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:ServiceManagement' => 'Service-Management', 'Menu:ServiceManagement+' => '', 'Menu:Service:Overview' => 'Oversigt', @@ -39,7 +40,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -54,30 +55,27 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( // Class: Organization // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Leverings model', 'Class:Organization/Attribute:deliverymodel_id+' => '~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Leverings model navn', 'Class:Organization/Attribute:deliverymodel_name+' => '~~', -)); - - +]); // // Class: ContractType // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ContractType' => 'Kontrakt-Type', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Contract' => 'Kontrakt', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Navn', @@ -126,13 +124,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => 'Kontrakttype', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:CustomerContract' => 'Kundekontrakt', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Ydelser', @@ -141,13 +139,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'All the configuration items covered by this contract~~', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Leverandørkontrakter', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'All the provider contracts to deliver the services for this contract (underpinning contract)~~', -)); +]); // // Class: ProviderContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ProviderContract' => 'Leverandørkontrakt', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -156,13 +154,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ProviderContract/Attribute:sla+' => '', 'Class:ProviderContract/Attribute:coverage' => 'Servicetider', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContactToContract' => 'Sammenhæng Kontakt/Kontrakt', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -174,13 +172,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Kontakt navn', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContractToDocument' => 'Sammenhæng Kontrakt/Dokument', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -192,13 +190,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Dokument navn', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkFunctionalCIToProviderContract' => 'Sammenhæng FunctionalCI/Leverandørkontrakt', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -210,13 +208,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI navn', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ServiceFamily' => 'Ydelsesfamilie', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Navn', @@ -225,13 +223,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Ydelser', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category~~', -)); +]); // // Class: Service // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Service' => 'Ydelse', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -265,13 +263,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Service/Attribute:customercontracts_list+' => 'All the customer contracts that have purchased this service~~', 'Class:Service/Attribute:servicesubcategories_list' => 'Ydelses underkategorier', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service~~', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDocumentToService' => 'Sammenhæng Dokument/Ydelse', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -283,13 +281,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Dokument navn', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContactToService' => 'Sammenhæng Kontakt/Ydelse', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -301,13 +299,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Kontakt navn', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ServiceSubcategory' => 'Ydelses underkategori', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -335,13 +333,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => '', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider Name~~', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider~~', -)); +]); // // Class: SLA // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Navn', @@ -357,13 +355,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:SLA/Attribute:customercontracts_list' => 'Kundekontrakt', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracts using this SLA~~', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Navn', @@ -398,13 +396,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:SLT/Attribute:unit/Value:hours+' => '', 'Class:SLT/Attribute:unit/Value:minutes' => 'Minutter', 'Class:SLT/Attribute:unit/Value:minutes+' => '', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkSLAToSLT' => 'Sammenhæng SLA/SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -426,13 +424,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT value unit~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkCustomerContractToService' => 'Sammenhæng Kundekontrakt/Ydelse', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -448,13 +446,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA-Navn', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkCustomerContractToProviderContract' => 'Sammenhæng Kundekontrakt/Leverandørkontrakt', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~', @@ -466,13 +464,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Leverandørkontrakt navn', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Sammenhæng Kundekontrakt/FunctionalCI', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -484,13 +482,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI navn', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DeliveryModel' => 'Leverings model', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Navn', @@ -505,13 +503,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model~~', 'Class:DeliveryModel/Attribute:customers_list' => 'Kunde', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model~~', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDeliveryModelToContact' => 'Sammenhæng Leveringsmodel/Kontakt', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -527,35 +525,35 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rolle navn', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/de.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/de.dict.itop-service-mgmt-provider.php index 4019875c1..8cf90d427 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/de.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/de.dict.itop-service-mgmt-provider.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:ServiceManagement' => 'Service Management', 'Menu:ServiceManagement+' => 'Service-Management-Übersicht', 'Menu:Service:Overview' => 'Übersicht', @@ -39,7 +40,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Contract:baseinfo' => 'Allgemeine Informationen', 'Contract:moreinfo' => 'Vertragliche Informationen', 'Contract:cost' => 'Kosteninformation', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -54,30 +55,27 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( // Class: Organization // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Delivery-Modell', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Delivery-Modell-Name', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ContractType' => 'Vertrags-Typ', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Contract' => 'Vertrag', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Name', @@ -126,13 +124,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => 'Vertragstyp', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:CustomerContract' => 'Kundenvertrag', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', @@ -141,13 +139,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Alle unter diesen Vertrag fallenden CIs', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Provider-Verträge', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Alle Provider-Verträge zur Erbringung der Dienstleistungen für diesen Vertrag (Underpinning Contracts)', -)); +]); // // Class: ProviderContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ProviderContract' => 'Provider-Vertrag', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -156,13 +154,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ProviderContract/Attribute:sla+' => '', 'Class:ProviderContract/Attribute:coverage' => 'Servicezeiten', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContactToContract' => 'Verknüpfung Kontakt/Vertrag', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -174,13 +172,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Kontakt-Name', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContractToDocument' => 'Verknüpfung Vertrag/Dokument', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -192,13 +190,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Dokument-Name', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkFunctionalCIToProviderContract' => 'Verknüpfung FunctionalCI/Provider-Vertrag', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -210,13 +208,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI-Name', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ServiceFamily' => 'Service-Familie', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Name', @@ -225,13 +223,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'Alle Services dieser Kategorie', -)); +]); // // Class: Service // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -265,13 +263,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Service/Attribute:customercontracts_list+' => 'Alle Kundenverträge, die diesen Service erworben haben', 'Class:Service/Attribute:servicesubcategories_list' => 'Service-Unterkategorien', 'Class:Service/Attribute:servicesubcategories_list+' => 'Alle Service-Unterkategorien für diesen Service', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDocumentToService' => 'Verknüpfung Dokument/Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -283,13 +281,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Dokument-Name', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContactToService' => 'Verknüpfung Kontakt/Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -301,13 +299,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Kontakt-Name', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ServiceSubcategory' => 'Service-Unterkategorie', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -335,13 +333,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => '', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider-Name', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider', -)); +]); // // Class: SLA // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Name', @@ -357,13 +355,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:SLA/Attribute:customercontracts_list' => 'Kundenverträge', 'Class:SLA/Attribute:customercontracts_list+' => 'Alle Kundenverträge, die diese SLA verwenden', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Die Verknüpfung zwischen Kundenvertrag %1$s und Service %2$s konnte nicht gespeichert werden: SLA existiert bereits', -)); +]); // // Class: SLT // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Name', @@ -398,13 +396,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:SLT/Attribute:unit/Value:hours+' => '', 'Class:SLT/Attribute:unit/Value:minutes' => 'Minuten', 'Class:SLT/Attribute:unit/Value:minutes+' => '', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkSLAToSLT' => 'Verknüpfung SLA/SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -426,13 +424,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => 'Zeit, nach der das SLT abläuft.', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT Einheit', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkCustomerContractToService' => 'Verknüpfung Kundenvertrag/Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -448,13 +446,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA-Name', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkCustomerContractToProviderContract' => 'Verknüpfung Kunden-Vertrag/Provider-Vertrag', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -466,13 +464,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Providervertrags-Name', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Verknüpfung Kunden-Vertrag/FunctionalCI', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -484,13 +482,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI-Name', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DeliveryModel' => 'Delivery-Modell', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Name', @@ -505,13 +503,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Alle Kontakte (Teams and Person) für dieses Delivery-Modell', 'Class:DeliveryModel/Attribute:customers_list' => 'Kunden', 'Class:DeliveryModel/Attribute:customers_list+' => 'Alle Kunden mit diesem Delivery-Modell', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDeliveryModelToContact' => 'Verknüpfung Delivery-Modell/Kontakt', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -527,35 +525,35 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rollenname', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/en.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/en.dict.itop-service-mgmt-provider.php index 2910cfd1a..bf46e5200 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/en.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/en.dict.itop-service-mgmt-provider.php @@ -1,4 +1,5 @@ 'Service Management', 'Menu:ServiceManagement+' => 'Service Management Overview', 'Menu:Service:Overview' => 'Overview', @@ -65,7 +66,7 @@ Dict::Add('EN US', 'English', 'English', array( 'Contract:baseinfo' => 'General information', 'Contract:moreinfo' => 'Contractual information', 'Contract:cost' => 'Cost information', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -80,30 +81,27 @@ Dict::Add('EN US', 'English', 'English', array( // Class: Organization // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Delivery model', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Delivery model name', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ContractType' => 'Contract Type', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Contract' => 'Contract', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Name', @@ -152,13 +150,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Contract/Attribute:status/Value:production+' => 'production', 'Class:Contract/Attribute:finalclass' => 'Contract sub-class', 'Class:Contract/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: CustomerContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:CustomerContract' => 'Customer Contract', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', @@ -167,13 +165,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'All the configuration items covered by this contract', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Provider contracts', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'All the provider contracts to deliver the services for this contract (underpinning contract)', -)); +]); // // Class: ProviderContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ProviderContract' => 'Provider Contract', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -182,13 +180,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ProviderContract/Attribute:sla+' => 'Service Level Agreement', 'Class:ProviderContract/Attribute:coverage' => 'Service hours', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContactToContract' => 'Link Contact / Contract', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -200,13 +198,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Contact Name', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContractToDocument' => 'Link Contract / Document', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -218,13 +216,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Document Name', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkFunctionalCIToProviderContract' => 'Link FunctionalCI / ProviderContract', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -236,13 +234,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Name', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ServiceFamily' => 'Service Family', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Name', @@ -251,13 +249,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category', -)); +]); // // Class: Service // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -291,13 +289,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Service/Attribute:customercontracts_list+' => 'All the customer contracts that have purchased this service', 'Class:Service/Attribute:servicesubcategories_list' => 'Service sub categories', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDocumentToService' => 'Link Document / Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -309,13 +307,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Document Name', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContactToService' => 'Link Contact / Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -327,13 +325,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Contact Name', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ServiceSubcategory' => 'Service Subcategory', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -361,13 +359,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'service request', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider Name', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider', -)); +]); // // Class: SLA // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Name', @@ -383,13 +381,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:SLA/Attribute:customercontracts_list' => 'Customer contracts', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracts using this SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists', -)); +]); // // Class: SLT // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Name', @@ -424,13 +422,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'hours', 'Class:SLT/Attribute:unit/Value:minutes' => 'minutes', 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -452,13 +450,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT value unit', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkCustomerContractToService' => 'Link Customer Contract / Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -474,13 +472,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Name', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkCustomerContractToProviderContract' => 'Link Customer Contract / Provider Contract', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -492,13 +490,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Provider contract Name', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Link Customer Contract / FunctionalCI', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -510,13 +508,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI Name', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DeliveryModel' => 'Delivery Model', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Name', @@ -531,13 +529,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model', 'Class:DeliveryModel/Attribute:customers_list' => 'Customers', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDeliveryModelToContact' => 'Link DeliveryModel / Contact', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -553,35 +551,35 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Role name', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id', 'Class:lnkContactToContract/Attribute:customer_id+' => '', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id', 'Class:lnkContactToContract/Attribute:provider_id+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id', 'Class:lnkContractToDocument/Attribute:customer_id+' => '', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id', 'Class:lnkContractToDocument/Attribute:provider_id+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/en_gb.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/en_gb.dict.itop-service-mgmt-provider.php index e1266f8f3..03bf0e8b7 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/en_gb.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/en_gb.dict.itop-service-mgmt-provider.php @@ -1,4 +1,5 @@ 'Service Management', 'Menu:ServiceManagement+' => 'Service Management Overview', 'Menu:Service:Overview' => 'Overview', @@ -65,7 +66,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Contract:baseinfo' => 'General information', 'Contract:moreinfo' => 'Contractual information', 'Contract:cost' => 'Cost information', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -80,30 +81,27 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Class: Organization // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Delivery model', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Delivery model name', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ContractType' => 'Contract Type', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Contract' => 'Contract', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Name', @@ -152,13 +150,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Contract/Attribute:status/Value:production+' => 'production', 'Class:Contract/Attribute:finalclass' => 'Contract sub-class', 'Class:Contract/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: CustomerContract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CustomerContract' => 'Customer Contract', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', @@ -167,13 +165,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'All the configuration items covered by this contract', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Provider contracts', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'All the provider contracts to deliver the services for this contract (underpinning contract)', -)); +]); // // Class: ProviderContract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ProviderContract' => 'Provider Contract', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -182,13 +180,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ProviderContract/Attribute:sla+' => 'Service Level Agreement', 'Class:ProviderContract/Attribute:coverage' => 'Service hours', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkContactToContract' => 'Link Contact / Contract', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -200,13 +198,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Contact Name', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkContractToDocument' => 'Link Contract / Document', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -218,13 +216,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Document Name', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkFunctionalCIToProviderContract' => 'Link FunctionalCI / ProviderContract', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -236,13 +234,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Name', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ServiceFamily' => 'Service Family', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Name', @@ -251,13 +249,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category', -)); +]); // // Class: Service // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -291,13 +289,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Service/Attribute:customercontracts_list+' => 'All the customer contracts that have purchased this service', 'Class:Service/Attribute:servicesubcategories_list' => 'Service sub categories', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDocumentToService' => 'Link Document / Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -309,13 +307,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Document Name', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkContactToService' => 'Link Contact / Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -327,13 +325,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Contact Name', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ServiceSubcategory' => 'Service Subcategory', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -361,13 +359,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'service request', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider Name', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider', -)); +]); // // Class: SLA // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Name', @@ -383,13 +381,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:SLA/Attribute:customercontracts_list' => 'Customer contracts', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracts using this SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists', -)); +]); // // Class: SLT // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Name', @@ -424,13 +422,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'hours', 'Class:SLT/Attribute:unit/Value:minutes' => 'minutes', 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -452,13 +450,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT value unit', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkCustomerContractToService' => 'Link Customer Contract / Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -474,13 +472,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Name', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkCustomerContractToProviderContract' => 'Link Customer Contract / Provider Contract', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -492,13 +490,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Provider contract Name', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Link Customer Contract / FunctionalCI', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -510,13 +508,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI Name', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DeliveryModel' => 'Delivery Model', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Name', @@ -531,13 +529,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model', 'Class:DeliveryModel/Attribute:customers_list' => 'Customers', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDeliveryModelToContact' => 'Link DeliveryModel / Contact', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -553,4 +551,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Role name', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/es_cr.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/es_cr.dict.itop-service-mgmt-provider.php index 046e39336..e20a38e0d 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/es_cr.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/es_cr.dict.itop-service-mgmt-provider.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:ServiceManagement' => 'Administración de Servicios', 'Menu:ServiceManagement+' => 'Administración de Servicios', 'Menu:Service:Overview' => 'Resumen de Servicios', @@ -36,7 +37,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Contract:baseinfo' => 'Información General', 'Contract:moreinfo' => 'Información Contractual', 'Contract:cost' => 'Información de Costos', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -51,30 +52,27 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( // Class: Organization // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Modelo de Entrega', 'Class:Organization/Attribute:deliverymodel_id+' => 'Modelo de Entrega', 'Class:Organization/Attribute:deliverymodel_name' => 'Nombre del Modelo de Entrega', 'Class:Organization/Attribute:deliverymodel_name+' => 'Nombre del Modelo de Entrega', -)); - - +]); // // Class: ContractType // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ContractType' => 'Tipo de Contrato', 'Class:ContractType+' => 'Tipo de Contrato', -)); - +]); // // Class: Contract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Contract' => 'Contrato', 'Class:Contract+' => 'Contrato', 'Class:Contract/Attribute:name' => 'Nombre', @@ -123,13 +121,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Contract/Attribute:status/Value:production+' => 'Productivo', 'Class:Contract/Attribute:finalclass' => 'Clase', 'Class:Contract/Attribute:finalclass+' => 'Clase', -)); +]); // // Class: CustomerContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:CustomerContract' => 'Acuerdo con Cliente', 'Class:CustomerContract+' => 'Acuerdo con Cliente', 'Class:CustomerContract/Attribute:services_list' => 'Servicios', @@ -138,13 +136,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Elementos de Configuración', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Contratos con Proveedores', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Contratos con Proveedores', -)); +]); // // Class: ProviderContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ProviderContract' => 'Contrato con Proveedor', 'Class:ProviderContract+' => 'Contrato con Proveedor', 'Class:ProviderContract/Attribute:functionalcis_list' => 'ECs', @@ -153,13 +151,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ProviderContract/Attribute:sla+' => 'Acuerdo de Nivel de Servicio', 'Class:ProviderContract/Attribute:coverage' => 'Horario de Servicio', 'Class:ProviderContract/Attribute:coverage+' => 'Horario de Servicio', -)); +]); // // Class: lnkContactToContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContactToContract' => 'Relación Contacto y Contrato', 'Class:lnkContactToContract+' => 'Relación Contacto y Contrato', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -171,13 +169,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkContactToContract/Attribute:contact_id+' => 'Contacto', 'Class:lnkContactToContract/Attribute:contact_name' => 'Contacto', 'Class:lnkContactToContract/Attribute:contact_name+' => 'Contacto', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContractToDocument' => 'Relación Contrato y Documento', 'Class:lnkContractToDocument+' => 'Relación Contrato y Documento', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -189,13 +187,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkContractToDocument/Attribute:document_id+' => 'Documento', 'Class:lnkContractToDocument/Attribute:document_name' => 'Documento', 'Class:lnkContractToDocument/Attribute:document_name+' => 'Documento', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkFunctionalCIToProviderContract' => 'Relación EC Funcional y Contrato con Proveedor', 'Class:lnkFunctionalCIToProviderContract+' => 'Relación EC Funcional y Contrato con Proveedor', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -207,13 +205,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => 'Elemento de Configuración', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Elemento de Configuración', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => 'Elemento de Configuración', -)); +]); // // Class: ServiceFamily // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ServiceFamily' => 'Familia de Servicios', 'Class:ServiceFamily+' => 'Familia de Servicios', 'Class:ServiceFamily/Attribute:name' => 'Nombre', @@ -222,13 +220,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Servicios', 'Class:ServiceFamily/Attribute:services_list+' => 'Servicios', -)); +]); // // Class: Service // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Service' => 'Servicio', 'Class:Service+' => 'Servicio', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -262,13 +260,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Service/Attribute:customercontracts_list+' => 'Acuerdos con Clientes', 'Class:Service/Attribute:servicesubcategories_list' => 'Subcategorias de Servicio', 'Class:Service/Attribute:servicesubcategories_list+' => 'Subcategorias de Servicio', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDocumentToService' => 'Relación Documento y Servicio', 'Class:lnkDocumentToService+' => 'Relación Documento y Servicio', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -280,13 +278,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDocumentToService/Attribute:document_id+' => 'Documento', 'Class:lnkDocumentToService/Attribute:document_name' => 'Documento', 'Class:lnkDocumentToService/Attribute:document_name+' => 'Documento', -)); +]); // // Class: lnkContactToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContactToService' => 'Relación Contacto y Servicio', 'Class:lnkContactToService+' => 'Relación Contacto y Servicio', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -298,13 +296,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkContactToService/Attribute:contact_id+' => 'Contacto', 'Class:lnkContactToService/Attribute:contact_name' => 'Contacto', 'Class:lnkContactToService/Attribute:contact_name+' => 'Contacto', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ServiceSubcategory' => 'Subcategoría', 'Class:ServiceSubcategory+' => 'Subcategoría', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -332,13 +330,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'Requerimiento de Servicio', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Nombre de Proveedor', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Proveedor', -)); +]); // // Class: SLA // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:SLA' => 'SLA - Acuerdo de Nivel de Servicio', 'Class:SLA+' => 'SLA - Acuerdo de Nivel de Servicio', 'Class:SLA/Attribute:name' => 'Nombre', @@ -354,13 +352,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:SLA/Attribute:customercontracts_list' => 'Acuerdos con Clientes', 'Class:SLA/Attribute:customercontracts_list+' => 'Acuerdos con Clientes', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'No se puede guardar la relación entre Acuerdo con Cliente %1$s y Servicio %2$s : El SLA ya existe', -)); +]); // // Class: SLT // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:SLT' => 'SLT - Objetivos de Nivel de Servicio', 'Class:SLT+' => 'SLT - Objetivos de Nivel de Servicio', 'Class:SLT/Attribute:name' => 'Nombre', @@ -395,13 +393,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'Horas', 'Class:SLT/Attribute:unit/Value:minutes' => 'Minutos', 'Class:SLT/Attribute:unit/Value:minutes+' => 'Minutos', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkSLAToSLT' => 'Relación SLA y SLT', 'Class:lnkSLAToSLT+' => 'Relación SLA y SLT', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -423,13 +421,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => 'Valor de SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Unidad de valor de SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => 'Unidad de valor de SLT', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkCustomerContractToService' => 'Relación Acuerdo con Cliente y Servicio', 'Class:lnkCustomerContractToService+' => 'Relación Acuerdo con Cliente y Servicio', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -445,13 +443,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => 'SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => 'SLA', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkCustomerContractToProviderContract' => 'Relación Acuerdo con Cliente y Contrato con Proveedor', 'Class:lnkCustomerContractToProviderContract+' => 'Relación Acuerdo con Cliente y Contrato con Proveedor', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -463,13 +461,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => 'Contrato con Proveedor', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Contrato con Proveedor', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => 'Contrato con Proveedor', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Relación Acuerdo con Cliente y EC Funcional', 'Class:lnkCustomerContractToFunctionalCI+' => 'Relación Acuerdo con Cliente y EC Funcional', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -481,13 +479,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => 'Elemento de Configuración', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'Elemento de Configuración', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => 'Elemento de Configuración', -)); +]); // // Class: DeliveryModel // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DeliveryModel' => 'Modelo de Entrega', 'Class:DeliveryModel+' => 'Modelo de Entrega', 'Class:DeliveryModel/Attribute:name' => 'Nombre', @@ -502,13 +500,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Contactos', 'Class:DeliveryModel/Attribute:customers_list' => 'Clientes', 'Class:DeliveryModel/Attribute:customers_list+' => 'Clientes', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDeliveryModelToContact' => 'Relación Modelo de Entrega y Contacto', 'Class:lnkDeliveryModelToContact+' => 'Relación Modelo de Entrega y Contacto', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -524,35 +522,35 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => 'Rol', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rol', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => 'Rol', -)); +]); // // Class: lnkContactToContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/fr.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/fr.dict.itop-service-mgmt-provider.php index c54cbe1d7..2b79959a3 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/fr.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/fr.dict.itop-service-mgmt-provider.php @@ -1,15 +1,16 @@ 'Gestion des services', 'Menu:ServiceManagement+' => '', 'Menu:Service:Overview' => 'Vue d\'ensemble', @@ -38,7 +39,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Contract:baseinfo' => 'Information générale', 'Contract:moreinfo' => 'Aspects contractuels', 'Contract:cost' => 'Coûts', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -53,30 +54,27 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class: Organization // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Modèle de support', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Nom modèle de support', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ContractType' => 'Type de contrat', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Contract' => 'Contrat', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Nom', @@ -125,13 +123,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => 'Sous-classe de Contrat', 'Class:Contract/Attribute:finalclass+' => 'Nom de la classe instanciable', -)); +]); // // Class: CustomerContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:CustomerContract' => 'Contrat client', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', @@ -140,13 +138,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Tous les éléments de configuration couverts par ce contrat', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Contrats fournisseur', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Tous les contrats fournisseurs permettant de délivrer ces services pour ce contrat (contrats sous-jacents)', -)); +]); // // Class: ProviderContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ProviderContract' => 'Contrat fournisseur', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -155,13 +153,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ProviderContract/Attribute:sla+' => 'Accord de niveau de service (SLA)', 'Class:ProviderContract/Attribute:coverage' => 'Couverture', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContactToContract' => 'Lien Contact / Contrat', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -173,13 +171,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Nom contact', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContractToDocument' => 'Lien Contract / Document', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -191,13 +189,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Nom document', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkFunctionalCIToProviderContract' => 'Lien CI / Contrat fournisseur', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -209,13 +207,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Nom CI', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ServiceFamily' => 'Famille de service', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Nom', @@ -229,14 +227,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ServiceFamily/Attribute:services_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:ServiceFamily/Attribute:services_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:ServiceFamily/Attribute:services_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:ServiceFamily/Attribute:services_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de sa %1$s' -)); + 'Class:ServiceFamily/Attribute:services_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de sa %1$s', +]); // // Class: Service // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -275,14 +273,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: lnkDocumentToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDocumentToService' => 'Lien Document / Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -294,13 +292,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Nom document', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContactToService' => 'Lien Contact / Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -312,13 +310,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Nom contact', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ServiceSubcategory' => 'Sous catégorie de service', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -346,13 +344,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => '', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Nom du fournisseur', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Fournisseur', -)); +]); // // Class: SLA // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:SLA' => 'Niveau de service', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Nom', @@ -368,13 +366,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:SLA/Attribute:customercontracts_list' => 'Contrats clients', 'Class:SLA/Attribute:customercontracts_list+' => 'Tous les contrats clients utilisant ce niveau de service', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Impossible de sauvegarder le lien avec le contrat client %1$s et le service %2$s : un SLA existe déjà.', -)); +]); // // Class: SLT // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => 'Objectif de niveau de service (SLT)', 'Class:SLT/Attribute:name' => 'Nom', @@ -409,13 +407,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'heures', 'Class:SLT/Attribute:unit/Value:minutes' => 'minutes', 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkSLAToSLT' => 'Lien SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -437,13 +435,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Unité SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkCustomerContractToService' => 'Lien Contrat client / Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -459,13 +457,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Nom SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkCustomerContractToProviderContract' => 'Lien Contrat client / Contrat fournisseur', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -477,13 +475,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Nom Contrat fournisseur', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Lien Contrat client / CI', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -495,13 +493,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'Nom CI', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DeliveryModel' => 'Modèle de support', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Nom Modèle de support', @@ -521,14 +519,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDeliveryModelToContact' => 'Lien Modèle de support / Contact', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -544,35 +542,35 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Nom Rôle', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/hu.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/hu.dict.itop-service-mgmt-provider.php index 1e0466c65..4fd01f405 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/hu.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/hu.dict.itop-service-mgmt-provider.php @@ -1,15 +1,16 @@ 'Szolgáltatáskezelés', 'Menu:ServiceManagement+' => 'Service Management Overview~~', 'Menu:Service:Overview' => 'Áttekintő', @@ -38,7 +39,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -53,30 +54,27 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( // Class: Organization // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Teljesítési modell', 'Class:Organization/Attribute:deliverymodel_id+' => 'Ki kinek szolgáltat', 'Class:Organization/Attribute:deliverymodel_name' => 'Teljesítési modell név', 'Class:Organization/Attribute:deliverymodel_name+' => '~~', -)); - - +]); // // Class: ContractType // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ContractType' => 'Szerződés típus', 'Class:ContractType+' => '~~', -)); - +]); // // Class: Contract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Contract' => 'Szerződés', 'Class:Contract+' => '~~', 'Class:Contract/Attribute:name' => 'Szerződés név', @@ -125,13 +123,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Contract/Attribute:status/Value:production+' => 'production~~', 'Class:Contract/Attribute:finalclass' => 'Szerződés típus', 'Class:Contract/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: CustomerContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:CustomerContract' => 'Ügyfélszerződés', 'Class:CustomerContract+' => '~~', 'Class:CustomerContract/Attribute:services_list' => 'Szolgáltatások', @@ -140,13 +138,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Konfigurációs elemek amelyeket lefed ez a szerződés', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Szolgáltatói szerződések', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Az összes szolgáltatói szerződés az e szerződéshez kapcsolódó szolgáltatások nyújtására (alapszerződés).', -)); +]); // // Class: ProviderContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ProviderContract' => 'Szolgáltatói szerződés', 'Class:ProviderContract+' => '~~', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CI-k', @@ -155,13 +153,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ProviderContract/Attribute:sla+' => 'Szolgáltatásszint megállapodás', 'Class:ProviderContract/Attribute:coverage' => 'Szolgáltatás lefedettség', 'Class:ProviderContract/Attribute:coverage+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContactToContract' => 'Kapcsolattartó / Szerződés', 'Class:lnkContactToContract+' => '~~', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -173,13 +171,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '~~', 'Class:lnkContactToContract/Attribute:contact_name' => 'Kapcsolattartó név', 'Class:lnkContactToContract/Attribute:contact_name+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContractToDocument' => 'Szerződés / Dokumentum', 'Class:lnkContractToDocument+' => '~~', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -191,13 +189,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '~~', 'Class:lnkContractToDocument/Attribute:document_name' => 'Dokumentum név', 'Class:lnkContractToDocument/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkFunctionalCIToProviderContract' => 'Funkcionális CI / Szolgáltatói szerződés', 'Class:lnkFunctionalCIToProviderContract+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -209,13 +207,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => 'Konfigurációs elem, eszköz', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI név', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: ServiceFamily // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ServiceFamily' => 'Szolgáltatáscsalád', 'Class:ServiceFamily+' => '~~', 'Class:ServiceFamily/Attribute:name' => 'Név', @@ -224,13 +222,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ServiceFamily/Attribute:icon+' => '~~', 'Class:ServiceFamily/Attribute:services_list' => 'Szolgáltatások', 'Class:ServiceFamily/Attribute:services_list+' => 'Szolgáltatások ebben a kategóriában', -)); +]); // // Class: Service // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Service' => 'Szolgáltatás', 'Class:Service+' => '~~', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -264,13 +262,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Service/Attribute:customercontracts_list+' => 'Ügyfélszerződések amelyeknek beszerezték ezt a szolgáltatást', 'Class:Service/Attribute:servicesubcategories_list' => 'Szolgáltatás alkategóriák', 'Class:Service/Attribute:servicesubcategories_list+' => 'A szolgáltatás alkategóriái', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDocumentToService' => 'Dokumentum / Szolgáltatás', 'Class:lnkDocumentToService+' => '~~', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -282,13 +280,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '~~', 'Class:lnkDocumentToService/Attribute:document_name' => 'Dokumentum név', 'Class:lnkDocumentToService/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkContactToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContactToService' => 'Kapcsolattartó / Szolgáltatás', 'Class:lnkContactToService+' => '~~', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -300,13 +298,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkContactToService/Attribute:contact_id+' => '~~', 'Class:lnkContactToService/Attribute:contact_name' => 'Kapcsolattartó név', 'Class:lnkContactToService/Attribute:contact_name+' => '~~', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ServiceSubcategory' => 'Szolgáltatás alkategória', 'Class:ServiceSubcategory+' => '~~', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -334,13 +332,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => '', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Szolgáltató név', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Szolgáltató', -)); +]); // // Class: SLA // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'SLA név', @@ -356,13 +354,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:SLA/Attribute:customercontracts_list' => 'Ügyfélszerződések', 'Class:SLA/Attribute:customercontracts_list+' => 'Ügyfélszerződések amelyek ezt az SLA-t használják', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Nem sikerült elmenteni a linket az Ügyfél szerződés %1$s és szolgáltatás %2$s : SLA már létezik', -)); +]); // // Class: SLT // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'SLT név', @@ -397,13 +395,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:SLT/Attribute:unit/Value:hours+' => '', 'Class:SLT/Attribute:unit/Value:minutes' => 'perc', 'Class:SLT/Attribute:unit/Value:minutes+' => '', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkSLAToSLT' => 'SLA / SLT', 'Class:lnkSLAToSLT+' => '~~', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -425,13 +423,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT érték egység', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkCustomerContractToService' => 'Ügyfélszerződés / Szolgáltatás', 'Class:lnkCustomerContractToService+' => '~~', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -447,13 +445,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '~~', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA név', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '~~', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkCustomerContractToProviderContract' => 'Ügyfélszerződés / Szolgáltatói szerződés', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~', @@ -465,13 +463,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Szolgáltatói szerződés név', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Ügyfélszerződés / Funkcionális CI', 'Class:lnkCustomerContractToFunctionalCI+' => '~~', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -483,13 +481,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => 'Konfigurációs elem', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI név', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: DeliveryModel // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DeliveryModel' => 'Teljesítési modell', 'Class:DeliveryModel+' => '~~', 'Class:DeliveryModel/Attribute:name' => 'Teljesítési modell név', @@ -504,13 +502,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'A teljesítési modell kapcsolattartói (személy, csapat)', 'Class:DeliveryModel/Attribute:customers_list' => 'Ügyfelek', 'Class:DeliveryModel/Attribute:customers_list+' => 'Ügyfelek, akik ezt a teljesítési modellt használják', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDeliveryModelToContact' => 'Teljesítési modell / Kapcsolattartó', 'Class:lnkDeliveryModelToContact+' => '~~', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -526,35 +524,35 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Szerepkör név', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/it.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/it.dict.itop-service-mgmt-provider.php index 222f528ed..e412016f2 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/it.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/it.dict.itop-service-mgmt-provider.php @@ -1,15 +1,16 @@ 'Gestione del Servizio', 'Menu:ServiceManagement+' => 'Panoramica della Gestione del Servizio', 'Menu:Service:Overview' => 'Panoramica', @@ -38,7 +39,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Contract:baseinfo' => 'Informazioni Generali', 'Contract:moreinfo' => 'Informazioni Contrattuali', 'Contract:cost' => 'Informazioni sui Costi', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -53,30 +54,27 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( // Class: Organization // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Modello di Consegna', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Nome del Modello di Consegna', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ContractType' => 'Tipo di Contratto', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Contract' => 'Contratto', 'Class:Contract+' => '~~', 'Class:Contract/Attribute:name' => 'Nome', @@ -125,13 +123,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Contract/Attribute:status/Value:production+' => 'Produzione', 'Class:Contract/Attribute:finalclass' => 'Tipo', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:CustomerContract' => 'Contratto con Cliente', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Servizi', @@ -140,13 +138,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Tutti gli elementi di configurazione coperti da questo contratto', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Contratti con Provider', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Tutti i contratti con i provider per la fornitura dei servizi di questo contratto (contratto sottostante)', -)); +]); // // Class: ProviderContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ProviderContract' => 'Contratto con Fornitore', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'Elementi di Configurazione', @@ -155,13 +153,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ProviderContract/Attribute:sla+' => 'Accordo di Livello di Servizio', 'Class:ProviderContract/Attribute:coverage' => 'Copertura Oraria', 'Class:ProviderContract/Attribute:coverage+' => 'Ore di Servizio', -)); +]); // // Class: lnkContactToContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContactToContract' => 'Collegamento Contatto / Contratto', 'Class:lnkContactToContract+' => '~~', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -173,13 +171,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '~~', 'Class:lnkContactToContract/Attribute:contact_name' => 'Nome Contatto', 'Class:lnkContactToContract/Attribute:contact_name+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContractToDocument' => 'Collegamento Contratto / Documento', 'Class:lnkContractToDocument+' => '~~', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -191,13 +189,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '~~', 'Class:lnkContractToDocument/Attribute:document_name' => 'Nome Documento', 'Class:lnkContractToDocument/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkFunctionalCIToProviderContract' => 'Collegamento FunctionalCI / Contratto Fornitore', 'Class:lnkFunctionalCIToProviderContract+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -209,13 +207,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Nome CI', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: ServiceFamily // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ServiceFamily' => 'Famiglia di Servizi', 'Class:ServiceFamily+' => '~~', 'Class:ServiceFamily/Attribute:name' => 'Nome', @@ -224,13 +222,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ServiceFamily/Attribute:icon+' => '~~', 'Class:ServiceFamily/Attribute:services_list' => 'Servizi', 'Class:ServiceFamily/Attribute:services_list+' => 'Tutti i servizi in questa categoria', -)); +]); // // Class: Service // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Service' => 'Servizio', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -264,13 +262,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Service/Attribute:customercontracts_list+' => 'Tutti i contratti con il cliente che hanno acquistato questo servizio', 'Class:Service/Attribute:servicesubcategories_list' => 'Sottocategorie di servizio', 'Class:Service/Attribute:servicesubcategories_list+' => 'Tutte le sottocategorie per questo servizio', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkDocumentToService' => 'Collegamento Documento / Servizio', 'Class:lnkDocumentToService+' => '~~', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -282,13 +280,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '~~', 'Class:lnkDocumentToService/Attribute:document_name' => 'Nome del Documento', 'Class:lnkDocumentToService/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkContactToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContactToService' => 'Collegamento Contatto / Servizio', 'Class:lnkContactToService+' => '~~', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -300,13 +298,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkContactToService/Attribute:contact_id+' => '~~', 'Class:lnkContactToService/Attribute:contact_name' => 'Nome del Contatto', 'Class:lnkContactToService/Attribute:contact_name+' => '~~', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ServiceSubcategory' => 'Sottocategoria del Servizio', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -334,13 +332,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'service request~~', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider del Servizio', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider', -)); +]); // // Class: SLA // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '~~', 'Class:SLA/Attribute:name' => 'Nome', @@ -356,13 +354,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:SLA/Attribute:customercontracts_list' => 'Contratti con i clienti', 'Class:SLA/Attribute:customercontracts_list+' => 'Tutti i contratti con i clienti che utilizzano questa SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Impossibile salvare il collegamento con il contratto del cliente %1$s e il servizio %2$s: SLA già esistente', -)); +]); // // Class: SLT // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '~~', 'Class:SLT/Attribute:name' => 'Nome', @@ -397,13 +395,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'ore', 'Class:SLT/Attribute:unit/Value:minutes' => 'minuti', 'Class:SLT/Attribute:unit/Value:minutes+' => 'minuti', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT', 'Class:lnkSLAToSLT+' => '~~', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -425,13 +423,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Unità di misura del valore SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkCustomerContractToService' => 'Collegamento Contratto Cliente / Servizio', 'Class:lnkCustomerContractToService+' => '~~', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -447,13 +445,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '~~', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Nome SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '~~', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkCustomerContractToProviderContract' => 'Collegamento Contratto Cliente / Contratto Provider', 'Class:lnkCustomerContractToProviderContract+' => '~~', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -465,13 +463,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '~~', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Nome Contratto Provider', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '~~', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Collegamento Contratto Cliente / CI Funzionale', 'Class:lnkCustomerContractToFunctionalCI+' => '~~', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -483,13 +481,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '~~', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'Nome CI', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: DeliveryModel // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:DeliveryModel' => 'Modello di Delivery', 'Class:DeliveryModel+' => '~~', 'Class:DeliveryModel/Attribute:name' => 'Nome', @@ -504,13 +502,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Tutti i contatti (team e persone) per questo modello di Consegna', 'Class:DeliveryModel/Attribute:customers_list' => 'Clienti', 'Class:DeliveryModel/Attribute:customers_list+' => 'Tutti i clienti che hanno questo modello di Consegna', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkDeliveryModelToContact' => 'Collegamento Modello di Delivery / Contatto', 'Class:lnkDeliveryModelToContact+' => '~~', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -526,35 +524,35 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Nome del Ruolo', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/ja.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/ja.dict.itop-service-mgmt-provider.php index cef1cd3b6..00bf202f7 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/ja.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/ja.dict.itop-service-mgmt-provider.php @@ -1,15 +1,16 @@ 'サービス管理', 'Menu:ServiceManagement+' => '', 'Menu:Service:Overview' => '概要', @@ -38,7 +39,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -53,30 +54,27 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( // Class: Organization // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Organization/Attribute:deliverymodel_id' => '提供モデル', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => '提供モデル名', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ContractType' => '契約タイプ', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Contract' => '契約', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => '名前', @@ -125,13 +123,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => '契約タイプ', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:CustomerContract' => '顧客契約', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'サービス', @@ -140,13 +138,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'All the configuration items covered by this contract~~', 'Class:CustomerContract/Attribute:providercontracts_list' => 'プロバイダー契約', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'All the provider contracts to deliver the services for this contract (underpinning contract)~~', -)); +]); // // Class: ProviderContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ProviderContract' => 'プロバイダー契約', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CI', @@ -155,13 +153,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ProviderContract/Attribute:sla+' => '', 'Class:ProviderContract/Attribute:coverage' => 'サービス時間帯', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContactToContract' => 'リンク 連絡先/契約', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -173,13 +171,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => '連絡先名', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContractToDocument' => 'リンク 契約/文書', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -191,13 +189,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => '文書名', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkFunctionalCIToProviderContract' => 'リンク 機能的CI/プロバイダー契約', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -209,13 +207,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI名', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ServiceFamily' => 'サービスファミリ', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => '名前', @@ -224,13 +222,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'サービス', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category~~', -)); +]); // // Class: Service // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Service' => 'サービス', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -264,13 +262,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Service/Attribute:customercontracts_list+' => 'All the customer contracts that have purchased this service~~', 'Class:Service/Attribute:servicesubcategories_list' => 'サービスサブカテゴリ', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service~~', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDocumentToService' => 'リンク 文書/サービス', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -282,13 +280,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => '文書名', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContactToService' => 'リンク 連絡先/サービス', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -300,13 +298,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => '連絡先名', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ServiceSubcategory' => 'サービスサブカテゴリ', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -334,13 +332,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => '', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider Name~~', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider~~', -)); +]); // // Class: SLA // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => '名前', @@ -356,13 +354,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:SLA/Attribute:customercontracts_list' => '顧客契約', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracts using this SLA~~', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => '名前', @@ -397,13 +395,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:SLT/Attribute:unit/Value:hours+' => '', 'Class:SLT/Attribute:unit/Value:minutes' => '分', 'Class:SLT/Attribute:unit/Value:minutes+' => '', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkSLAToSLT' => 'リンク SLA/SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -425,13 +423,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT value unit~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkCustomerContractToService' => 'リンク 顧客契約/サービス', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -447,13 +445,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA名', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkCustomerContractToProviderContract' => 'リンク 顧客契約/プロバイダー契約', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~', @@ -465,13 +463,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'プロバイダー契約名', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkCustomerContractToFunctionalCI' => 'リンク 顧客契約/機能的CI', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -483,13 +481,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI名', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DeliveryModel' => '提供モデル', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => '名前', @@ -504,13 +502,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model~~', 'Class:DeliveryModel/Attribute:customers_list' => '顧客', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model~~', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDeliveryModelToContact' => 'リンク 提供モデル/契約', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -526,35 +524,35 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => '役割名', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/nl.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/nl.dict.itop-service-mgmt-provider.php index 76f9b29ec..1f45e8bc8 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/nl.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/nl.dict.itop-service-mgmt-provider.php @@ -1,17 +1,18 @@ * @author Jeffrey Bostoen (2018 - 2022) * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:ServiceManagement' => 'Service Management', 'Menu:ServiceManagement+' => 'Overzicht van Service Management', 'Menu:Service:Overview' => 'Overzicht', @@ -40,7 +41,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Contract:baseinfo' => 'Algemene informatie', 'Contract:moreinfo' => 'Contractuele informatie', 'Contract:cost' => 'Financiële informatie', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -55,30 +56,27 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( // Class: Organization // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Leveringsmodel', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Naam leveringsmodel', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ContractType' => 'Soort contract', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Contract' => 'Contract', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Naam', @@ -127,13 +125,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Contract/Attribute:status/Value:production+' => 'Productie', 'Class:Contract/Attribute:finalclass' => 'Subklasse Contract', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:CustomerContract' => 'Klantencontract', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', @@ -142,13 +140,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Alle configuratie-items die onder dit contract vallen', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Leverancierscontracten', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Alle leverancierscontracten die services leveren voor dit contract (onderliggend)', -)); +]); // // Class: ProviderContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ProviderContract' => 'Leverancierscontract', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CI\'s', @@ -157,13 +155,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ProviderContract/Attribute:sla+' => 'Service Level Agreement', 'Class:ProviderContract/Attribute:coverage' => 'Werkuren', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContactToContract' => 'Link Contact / Contract', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -175,13 +173,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Naam contact', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContractToDocument' => 'Link Contract / Document', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -193,13 +191,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Naam document', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkFunctionalCIToProviderContract' => 'Link Functioneel CI / Leverancierscontract', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -211,13 +209,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Naam CI', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ServiceFamily' => 'Servicecategorie', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Naam', @@ -226,13 +224,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'Alle services in deze categorie', -)); +]); // // Class: Service // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -266,13 +264,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Service/Attribute:customercontracts_list+' => 'Alle klantencontracten die deze service hebben aangeschaft', 'Class:Service/Attribute:servicesubcategories_list' => 'Subcategorieën service', 'Class:Service/Attribute:servicesubcategories_list+' => 'Alle subcategorieën van deze service', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDocumentToService' => 'Link Document / Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -284,13 +282,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Naam document', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContactToService' => 'Link Contact / Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -302,13 +300,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Naam contact', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ServiceSubcategory' => 'Subcategorie service', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -336,13 +334,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'Serviceverzoek', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Naam service-rovider', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Service-provider', -)); +]); // // Class: SLA // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Naam', @@ -358,13 +356,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:SLA/Attribute:customercontracts_list' => 'Klantencontracten', 'Class:SLA/Attribute:customercontracts_list+' => 'Alle klantencontracten die gebruik maken van deze SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Kan de link tussen klantencontract %1$s en service %2$s niet opslaan: SLA bestaat al.', -)); +]); // // Class: SLT // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Naam', @@ -399,13 +397,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'uren', 'Class:SLT/Attribute:unit/Value:minutes' => 'minuten', 'Class:SLT/Attribute:unit/Value:minutes+' => 'minuten', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -427,13 +425,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Eenheid SLT-waarde', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkCustomerContractToService' => 'Link Klantencontract / Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -449,13 +447,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Naam SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkCustomerContractToProviderContract' => 'Link Klantencontract / Leverancierscontract', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -467,13 +465,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Naam Leverancierscontract', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Link Klantencontract / Functioneel CI', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -485,13 +483,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'Naam CI', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DeliveryModel' => 'Leveringsmodel', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Naam', @@ -506,13 +504,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Alle contacten (teams en personen) voor dit leveringsmodel', 'Class:DeliveryModel/Attribute:customers_list' => 'Klanten', 'Class:DeliveryModel/Attribute:customers_list+' => 'Alle klanten die gebruik maken van dit leveringsmodel', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDeliveryModelToContact' => 'Link Leveringsmodel / Contact', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -528,35 +526,35 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Naam rol', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/pl.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/pl.dict.itop-service-mgmt-provider.php index d29c6928a..f98905217 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/pl.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/pl.dict.itop-service-mgmt-provider.php @@ -1,15 +1,16 @@ 'Zarządzanie usługami', 'Menu:ServiceManagement+' => 'Omówienie zarządzania usługami', 'Menu:Service:Overview' => 'Przegląd', @@ -38,7 +39,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Contract:baseinfo' => 'Informacje ogólne', 'Contract:moreinfo' => 'Informacje o umowach', 'Contract:cost' => 'Informacje o kosztach', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -53,30 +54,27 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( // Class: Organization // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Model obsługi', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Nazwa modelu obsługi', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ContractType' => 'Typ umowy', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Contract' => 'Umowa', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Nazwa', @@ -125,13 +123,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Contract/Attribute:status/Value:production+' => 'użytkowane', 'Class:Contract/Attribute:finalclass' => 'Podklasa umowy', 'Class:Contract/Attribute:finalclass+' => 'Nazwa ostatniej klasy', -)); +]); // // Class: CustomerContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:CustomerContract' => 'Umowa z klientem', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Usługi', @@ -140,13 +138,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Wszystkie elementy konfiguracji objęte niniejszą umową', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Umowy z dostawcami', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Wszystkie umowy z dostawcami na świadczenie usług w ramach tej umowy (umowa stanowiąca podstawę)', -)); +]); // // Class: ProviderContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ProviderContract' => 'Umowa z dostawcą', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'Konfiguracje', @@ -155,13 +153,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ProviderContract/Attribute:sla+' => 'Umowa dotycząca poziomu usług', 'Class:ProviderContract/Attribute:coverage' => 'Godziny usługi', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContactToContract' => 'Połączenie Kontakt / Umowa', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -173,13 +171,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Nazwa kontaktu', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContractToDocument' => 'Połączenie Umowa / Dokument', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -191,13 +189,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Nazwa dokumentu', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkFunctionalCIToProviderContract' => 'Połączenie Konfiguracja / Umowa z dostawcą', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -209,13 +207,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Nazwa konfiguracji', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ServiceFamily' => 'Rodzina usług', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Nazwa', @@ -224,13 +222,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Usługi', 'Class:ServiceFamily/Attribute:services_list+' => 'Wszystkie usługi w tej kategorii', -)); +]); // // Class: Service // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Service' => 'Usługa', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -264,13 +262,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Service/Attribute:customercontracts_list+' => 'Wszystkie umowy z klientami, którzy kupili tę usługę', 'Class:Service/Attribute:servicesubcategories_list' => 'Podkategorie usług', 'Class:Service/Attribute:servicesubcategories_list+' => 'Wszystkie podkategorie tej usługi', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDocumentToService' => 'Połączenie Dokument / Usługa', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -282,13 +280,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Nazwa dokumentu', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContactToService' => 'Połączenie Kontakt / Usługa', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -300,13 +298,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Nazwa kontaktu', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ServiceSubcategory' => 'Podkategoria usługi', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -334,13 +332,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'zgłoszenie serwisowe', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Nazwa dostawcy', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Dostawca', -)); +]); // // Class: SLA // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:SLA' => 'Umowa SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Nazwa', @@ -356,13 +354,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:SLA/Attribute:customercontracts_list' => 'Umowy z klientami', 'Class:SLA/Attribute:customercontracts_list+' => 'Wszystkie umowy z klientami korzystające z tej umowy SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Nie udało się zapisać połączenia z umową klienta %1$s i usługą %2$s : Umowa SLA już istnieje', -)); +]); // // Class: SLT // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:SLT' => 'Poziom usług SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Nazwa', @@ -397,13 +395,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'godzin', 'Class:SLT/Attribute:unit/Value:minutes' => 'minut', 'Class:SLT/Attribute:unit/Value:minutes+' => 'minut', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkSLAToSLT' => 'Połączenie SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -425,13 +423,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Jednostka wartości SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkCustomerContractToService' => 'Połączenie Umowa z klientem / Usługa', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -447,13 +445,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Nazwa umowy SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkCustomerContractToProviderContract' => 'Połączenie Umowa z klientem / Umowa z dostawcą', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -465,13 +463,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Nazwa umowy z dostawcą', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Połączenie Umowa z klientem / Konfiguracja', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -483,13 +481,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'Nazwa konfiguracji', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DeliveryModel' => 'Model obsługi', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Nazwa', @@ -504,13 +502,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Wszystkie kontakty (zespoły i osoby) dla tego modelu obsługi', 'Class:DeliveryModel/Attribute:customers_list' => 'Klienci', 'Class:DeliveryModel/Attribute:customers_list+' => 'Wszyscy klienci posiadający ten model obsługi', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDeliveryModelToContact' => 'Połączenie Model obsługi / Kontakt', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -526,35 +524,35 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Nazwa roli', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/ru.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/ru.dict.itop-service-mgmt-provider.php index b0f680bf2..238164cac 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/ru.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/ru.dict.itop-service-mgmt-provider.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:ServiceManagement' => 'Управление услугами', 'Menu:ServiceManagement+' => 'Управление услугами', 'Menu:Service:Overview' => 'Обзор', @@ -39,7 +40,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -54,30 +55,27 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( // Class: Organization // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Модель предоставления услуг', 'Class:Organization/Attribute:deliverymodel_id+' => 'Модель предоставления услуг (Delivery Model)', 'Class:Organization/Attribute:deliverymodel_name' => 'Модель предоставления услуг', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ContractType' => 'Тип договора', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Contract' => 'Договор', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Название', @@ -126,13 +124,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Contract/Attribute:status/Value:production+' => 'Эксплуатация', 'Class:Contract/Attribute:finalclass' => 'Тип', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:CustomerContract' => 'Договор с заказчиком', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Услуги', @@ -141,13 +139,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'Конфигурационные единицы, охватываемые договором', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Договоры с поставщиками', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'Договоры с поставщиками, используемые для поддержки услуг данного договора (Underpinning Contracts)', -)); +]); // // Class: ProviderContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ProviderContract' => 'Договор с поставщиком', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'КЕ', @@ -156,13 +154,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ProviderContract/Attribute:sla+' => 'Соглашение об уровне услуги (Service Level Agreement)', 'Class:ProviderContract/Attribute:coverage' => 'Время обслуживания', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContactToContract' => 'Связь Контакт/Договор', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -174,13 +172,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Контакт', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContractToDocument' => 'Связь Договор/Документ', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -192,13 +190,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Документ', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkFunctionalCIToProviderContract' => 'Связь Функциональная КЕ/Договор с поставщиком', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -210,13 +208,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'КЕ', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ServiceFamily' => 'Пакет услуг', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Название', @@ -225,13 +223,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Услуги', 'Class:ServiceFamily/Attribute:services_list+' => 'Связанные услуги', -)); +]); // // Class: Service // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Service' => 'Услуга', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -265,13 +263,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Service/Attribute:customercontracts_list+' => 'Договоры с заказчиками, по которым предоставляется услуга', 'Class:Service/Attribute:servicesubcategories_list' => 'Подкатегории услуги', 'Class:Service/Attribute:servicesubcategories_list+' => 'Подкатегории услуги', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDocumentToService' => 'Связь Документ/Услуга', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -283,13 +281,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Документ', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContactToService' => 'Связь Контакт/Услуга', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -301,13 +299,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Контакт', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ServiceSubcategory' => 'Подкатегория услуги', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -335,13 +333,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'Запрос на обслуживание', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Поставщик', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Поставщик', -)); +]); // // Class: SLA // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Название', @@ -357,13 +355,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:SLA/Attribute:customercontracts_list' => 'Договоры с заказчиками', 'Class:SLA/Attribute:customercontracts_list+' => 'Договоры с заказчиками, в которых используется SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Название', @@ -398,13 +396,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'Часы', 'Class:SLT/Attribute:unit/Value:minutes' => 'Минуты', 'Class:SLT/Attribute:unit/Value:minutes+' => 'Минуты', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkSLAToSLT' => 'Связь SLA/SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -426,13 +424,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Единицы SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkCustomerContractToService' => 'Связь Договор с заказчиком/Услуга', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -448,13 +446,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkCustomerContractToProviderContract' => 'Связь Договор с заказчиком/Договор с поставщиком', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~', @@ -466,13 +464,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Договор с поставщиком', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Связь Договор с заказчиком/Функциональная КЕ', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -484,13 +482,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'КЕ', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DeliveryModel' => 'Модель предоставления услуг', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Название', @@ -505,13 +503,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Контакты (команды и персоны), которые участвуют в предоставлении услуг по этой модели', 'Class:DeliveryModel/Attribute:customers_list' => 'Заказчики', 'Class:DeliveryModel/Attribute:customers_list+' => 'Заказчики, которым предоставляются услуги по этой модели', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDeliveryModelToContact' => 'Связь Модель предоставления услуг/Контакт', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -527,35 +525,35 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Роль', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/sk.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/sk.dict.itop-service-mgmt-provider.php index 57135699f..d6aa02b65 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/sk.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/sk.dict.itop-service-mgmt-provider.php @@ -1,15 +1,16 @@ 'Manažment služieb', 'Menu:ServiceManagement+' => 'Service Management Overview~~', 'Menu:Service:Overview' => 'Prehľad', @@ -38,7 +39,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -53,30 +54,27 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( // Class: Organization // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Model dodávky', 'Class:Organization/Attribute:deliverymodel_id+' => '~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Názov modelu dodávky', 'Class:Organization/Attribute:deliverymodel_name+' => '~~', -)); - - +]); // // Class: ContractType // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ContractType' => 'Typ zmluvy', 'Class:ContractType+' => '~~', -)); - +]); // // Class: Contract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Contract' => 'zmluva', 'Class:Contract+' => '~~', 'Class:Contract/Attribute:name' => 'Názov', @@ -125,13 +123,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Contract/Attribute:status/Value:production+' => 'production~~', 'Class:Contract/Attribute:finalclass' => 'Typ', 'Class:Contract/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: CustomerContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:CustomerContract' => 'Zákaznícka zmluva', 'Class:CustomerContract+' => '~~', 'Class:CustomerContract/Attribute:services_list' => 'Služby', @@ -140,13 +138,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'All the configuration items covered by this contract~~', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Provider contracts~~', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'All the provider contracts to deliver the services for this contract (underpinning contract)~~', -)); +]); // // Class: ProviderContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ProviderContract' => 'Poskytovateľská zmluva', 'Class:ProviderContract+' => '~~', 'Class:ProviderContract/Attribute:functionalcis_list' => 'Zariadenia', @@ -155,13 +153,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ProviderContract/Attribute:sla+' => 'Service Level Agreement~~', 'Class:ProviderContract/Attribute:coverage' => 'Časy pokrytia', 'Class:ProviderContract/Attribute:coverage+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContactToContract' => 'väzba - Kontakt / zmluva', 'Class:lnkContactToContract+' => '~~', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -173,13 +171,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '~~', 'Class:lnkContactToContract/Attribute:contact_name' => 'Názov kontaktu', 'Class:lnkContactToContract/Attribute:contact_name+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContractToDocument' => 'väzba - zmluva / Dokument', 'Class:lnkContractToDocument+' => '~~', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -191,13 +189,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '~~', 'Class:lnkContractToDocument/Attribute:document_name' => 'Názov dokumentu', 'Class:lnkContractToDocument/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkFunctionalCIToProviderContract' => 'väzba - Komponent / Poskytovateľská zmluva', 'Class:lnkFunctionalCIToProviderContract+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -209,13 +207,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'Názov CI', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: ServiceFamily // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ServiceFamily' => 'Kategória služieb', 'Class:ServiceFamily+' => '~~', 'Class:ServiceFamily/Attribute:name' => 'Názov', @@ -224,13 +222,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ServiceFamily/Attribute:icon+' => '~~', 'Class:ServiceFamily/Attribute:services_list' => 'Služby', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category~~', -)); +]); // // Class: Service // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Service' => 'Služby', 'Class:Service+' => '~~', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -264,13 +262,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Service/Attribute:customercontracts_list+' => 'All the customer contracts that have purchased this service~~', 'Class:Service/Attribute:servicesubcategories_list' => 'Podkategórie služieb', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service~~', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDocumentToService' => 'väzba - Dokument / Služba', 'Class:lnkDocumentToService+' => '~~', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -282,13 +280,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '~~', 'Class:lnkDocumentToService/Attribute:document_name' => 'Názov dokumentu', 'Class:lnkDocumentToService/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkContactToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContactToService' => 'väzba - Kontakt / Služba', 'Class:lnkContactToService+' => '~~', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -300,13 +298,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkContactToService/Attribute:contact_id+' => '~~', 'Class:lnkContactToService/Attribute:contact_name' => 'Názov kontaktu', 'Class:lnkContactToService/Attribute:contact_name+' => '~~', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ServiceSubcategory' => 'Podkategória služieb', 'Class:ServiceSubcategory+' => '~~', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -334,13 +332,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'service request~~', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider Name~~', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider~~', -)); +]); // // Class: SLA // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '~~', 'Class:SLA/Attribute:name' => 'Názov', @@ -356,13 +354,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:SLA/Attribute:customercontracts_list' => 'Zákaznícke zmluvy', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracts using this SLA~~', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '~~', 'Class:SLT/Attribute:name' => 'Názov', @@ -397,13 +395,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'hours~~', 'Class:SLT/Attribute:unit/Value:minutes' => 'Minúty', 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes~~', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkSLAToSLT' => 'väzba - SLA / SLT', 'Class:lnkSLAToSLT+' => '~~', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -425,13 +423,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT value unit~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkCustomerContractToService' => 'väzba - Zákaznícka zmluva / Služba', 'Class:lnkCustomerContractToService+' => '~~', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -447,13 +445,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '~~', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Názov', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '~~', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkCustomerContractToProviderContract' => 'Link Customer Contract / Provider Contract~~', 'Class:lnkCustomerContractToProviderContract+' => '~~', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~', @@ -465,13 +463,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '~~', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Provider contract Name~~', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '~~', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Link Customer Contract / FunctionalCI~~', 'Class:lnkCustomerContractToFunctionalCI+' => '~~', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -483,13 +481,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '~~', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI Name~~', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: DeliveryModel // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DeliveryModel' => 'Model dodávky', 'Class:DeliveryModel+' => '~~', 'Class:DeliveryModel/Attribute:name' => 'Názov', @@ -504,13 +502,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model~~', 'Class:DeliveryModel/Attribute:customers_list' => 'Zákazníci', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model~~', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDeliveryModelToContact' => 'väzba - Model dodávky / Kontakt', 'Class:lnkDeliveryModelToContact+' => '~~', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -526,35 +524,35 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Názov role', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/tr.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/tr.dict.itop-service-mgmt-provider.php index 42bb99b22..77427c876 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/tr.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/tr.dict.itop-service-mgmt-provider.php @@ -1,15 +1,16 @@ 'Hizmet yönetimi', 'Menu:ServiceManagement+' => 'Hizmet yönetimi', 'Menu:Service:Overview' => 'Özet', @@ -38,7 +39,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -53,30 +54,27 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( // Class: Organization // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Teslimat Modeli', 'Class:Organization/Attribute:deliverymodel_id+' => '~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Teslimat Modeli Adı', 'Class:Organization/Attribute:deliverymodel_name+' => '~~', -)); - - +]); // // Class: ContractType // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ContractType' => 'Contract Type~~', 'Class:ContractType+' => '~~', -)); - +]); // // Class: Contract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Contract' => 'Sözleşme', 'Class:Contract+' => '~~', 'Class:Contract/Attribute:name' => 'Adı', @@ -125,13 +123,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Contract/Attribute:status/Value:production+' => 'production~~', 'Class:Contract/Attribute:finalclass' => 'Tip', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:CustomerContract' => 'Müşteri Sözleşmesi', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services~~', @@ -140,13 +138,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => 'All the configuration items covered by this contract~~', 'Class:CustomerContract/Attribute:providercontracts_list' => 'Provider contracts~~', 'Class:CustomerContract/Attribute:providercontracts_list+' => 'All the provider contracts to deliver the services for this contract (underpinning contract)~~', -)); +]); // // Class: ProviderContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ProviderContract' => 'Tedarikçi Sözleşmesi', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs~~', @@ -155,13 +153,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ProviderContract/Attribute:sla+' => 'Service Level Agreement~~', 'Class:ProviderContract/Attribute:coverage' => 'Service hours~~', 'Class:ProviderContract/Attribute:coverage+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContactToContract' => 'Link Contact / Contract~~', 'Class:lnkContactToContract+' => '~~', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -173,13 +171,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '~~', 'Class:lnkContactToContract/Attribute:contact_name' => 'Contact Name~~', 'Class:lnkContactToContract/Attribute:contact_name+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContractToDocument' => 'Link Contract / Document~~', 'Class:lnkContractToDocument+' => '~~', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -191,13 +189,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '~~', 'Class:lnkContractToDocument/Attribute:document_name' => 'Document Name~~', 'Class:lnkContractToDocument/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkFunctionalCIToProviderContract' => 'Link FunctionalCI / ProviderContract~~', 'Class:lnkFunctionalCIToProviderContract+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s~~', @@ -209,13 +207,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '~~', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => 'CI Name~~', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: ServiceFamily // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ServiceFamily' => 'Service Family~~', 'Class:ServiceFamily+' => '~~', 'Class:ServiceFamily/Attribute:name' => 'Name~~', @@ -224,13 +222,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ServiceFamily/Attribute:icon+' => '~~', 'Class:ServiceFamily/Attribute:services_list' => 'Services~~', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category~~', -)); +]); // // Class: Service // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Service' => 'Hizmet', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -264,13 +262,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Service/Attribute:customercontracts_list+' => 'All the customer contracts that have purchased this service~~', 'Class:Service/Attribute:servicesubcategories_list' => 'Service sub categories~~', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service~~', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDocumentToService' => 'Link Document / Service~~', 'Class:lnkDocumentToService+' => '~~', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -282,13 +280,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '~~', 'Class:lnkDocumentToService/Attribute:document_name' => 'Document Name~~', 'Class:lnkDocumentToService/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkContactToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContactToService' => 'Link Contact / Service~~', 'Class:lnkContactToService+' => '~~', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -300,13 +298,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkContactToService/Attribute:contact_id+' => '~~', 'Class:lnkContactToService/Attribute:contact_name' => 'Contact Name~~', 'Class:lnkContactToService/Attribute:contact_name+' => '~~', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ServiceSubcategory' => 'Hizmet alt kategorisi', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -334,13 +332,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => 'service request~~', 'Class:ServiceSubcategory/Attribute:service_provider' => 'Provider Name~~', 'Class:ServiceSubcategory/Attribute:service_org_id' => 'Provider~~', -)); +]); // // Class: SLA // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => 'Hizmet Seviyesi Anlaşması', 'Class:SLA/Attribute:name' => 'Adı', @@ -356,13 +354,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:SLA/Attribute:customercontracts_list' => 'Customer contracts~~', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracts using this SLA~~', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => 'Hizmet Seviyesi Taahütler', 'Class:SLT/Attribute:name' => 'Adı', @@ -397,13 +395,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:SLT/Attribute:unit/Value:hours+' => 'hours~~', 'Class:SLT/Attribute:unit/Value:minutes' => 'minutes~~', 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes~~', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT~~', 'Class:lnkSLAToSLT+' => '~~', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -425,13 +423,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT value unit~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkCustomerContractToService' => 'Link Customer Contract / Service~~', 'Class:lnkCustomerContractToService+' => '~~', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -447,13 +445,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '~~', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Name~~', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '~~', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkCustomerContractToProviderContract' => 'Müşteri ve Tedarikçi Sözleşmesi ilişkilendirmesi', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s~~', @@ -465,13 +463,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '~~', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => 'Provider contract Name~~', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '~~', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkCustomerContractToFunctionalCI' => 'Link Customer Contract / FunctionalCI~~', 'Class:lnkCustomerContractToFunctionalCI+' => '~~', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s~~', @@ -483,13 +481,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '~~', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => 'CI Name~~', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '~~', -)); +]); // // Class: DeliveryModel // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DeliveryModel' => 'Delivery Model~~', 'Class:DeliveryModel+' => '~~', 'Class:DeliveryModel/Attribute:name' => 'Name~~', @@ -504,13 +502,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model~~', 'Class:DeliveryModel/Attribute:customers_list' => 'Customers~~', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model~~', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDeliveryModelToContact' => 'Link DeliveryModel / Contact~~', 'Class:lnkDeliveryModelToContact+' => '~~', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -526,35 +524,35 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Role name~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/zh_cn.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/zh_cn.dict.itop-service-mgmt-provider.php index 71c4b059e..5f2c25f45 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/zh_cn.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/zh_cn.dict.itop-service-mgmt-provider.php @@ -1,4 +1,5 @@ '服务管理', 'Menu:ServiceManagement+' => '服务管理概况', 'Menu:Service:Overview' => '概况', @@ -61,7 +62,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Contract:baseinfo' => '常规信息', 'Contract:moreinfo' => '合同信息', 'Contract:cost' => '费用信息', -)); +]); /* 'UI:ServiceManagementMenu' => 'Gestion des Services', @@ -76,30 +77,27 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Class: Organization // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Organization/Attribute:deliverymodel_id' => '交付模式', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => '交付模式名称', 'Class:Organization/Attribute:deliverymodel_name+' => '', -)); - - +]); // // Class: ContractType // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ContractType' => '合同类型', 'Class:ContractType+' => '', -)); - +]); // // Class: Contract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Contract' => '合同', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => '名称', @@ -148,13 +146,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Contract/Attribute:status/Value:production+' => '正式', 'Class:Contract/Attribute:finalclass' => '合同类型', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CustomerContract' => '客户合同', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => '服务', @@ -163,13 +161,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:CustomerContract/Attribute:functionalcis_list+' => '此合同包含的所有配置项', 'Class:CustomerContract/Attribute:providercontracts_list' => '供应商合同', 'Class:CustomerContract/Attribute:providercontracts_list+' => '所有提供服务的供应商合同 (支持合同)', -)); +]); // // Class: ProviderContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ProviderContract' => '供应商合同', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => '配置项', @@ -178,13 +176,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ProviderContract/Attribute:sla+' => '服务等级协议', 'Class:ProviderContract/Attribute:coverage' => '服务时间', 'Class:ProviderContract/Attribute:coverage+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContactToContract' => '关联联系人/合同', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -196,13 +194,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => '联系人名称', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContractToDocument' => '关联合同/文档', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -214,13 +212,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => '文档名称', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: lnkFunctionalCIToProviderContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkFunctionalCIToProviderContract' => '关联功能配置项/供应商合同', 'Class:lnkFunctionalCIToProviderContract+' => '', 'Class:lnkFunctionalCIToProviderContract/Name' => '%1$s / %2$s', @@ -232,13 +230,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_id+' => '', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name' => '配置项名称', 'Class:lnkFunctionalCIToProviderContract/Attribute:functionalci_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ServiceFamily' => '服务系列', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => '名称', @@ -247,13 +245,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => '服务', 'Class:ServiceFamily/Attribute:services_list+' => '列表中包含的所有服务', -)); +]); // // Class: Service // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Service' => '服务', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -287,13 +285,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Service/Attribute:customercontracts_list+' => '购买此服务的所有客户合同', 'Class:Service/Attribute:servicesubcategories_list' => '子服务', 'Class:Service/Attribute:servicesubcategories_list+' => '此服务的所有子服务', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDocumentToService' => '关联文档/服务', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -305,13 +303,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => '文档名称', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContactToService' => '关联联系人/服务', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -323,13 +321,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => '联系人名称', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ServiceSubcategory' => '子服务', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -357,13 +355,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ServiceSubcategory/Attribute:request_type/Value:service_request+' => '服务需求', 'Class:ServiceSubcategory/Attribute:service_provider' => '供应商名称', 'Class:ServiceSubcategory/Attribute:service_org_id' => '供应商', -)); +]); // // Class: SLA // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => '名称', @@ -379,13 +377,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:SLA/Attribute:customercontracts_list' => '客户合同', 'Class:SLA/Attribute:customercontracts_list+' => '使用此 SLA 的所有客户合同', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => '不能保存客户合同 %1$s 于服务 %2$s 的关联: SLA 已存在', -)); +]); // // Class: SLT // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => '名称', @@ -420,13 +418,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:SLT/Attribute:unit/Value:hours+' => '小时', 'Class:SLT/Attribute:unit/Value:minutes' => '分钟', 'Class:SLT/Attribute:unit/Value:minutes+' => '分钟', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkSLAToSLT' => '关联 SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -448,13 +446,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT 单位', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkCustomerContractToService' => '关联客户合同/服务', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -470,13 +468,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA名称', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkCustomerContractToProviderContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkCustomerContractToProviderContract' => '关联 客户合同/供应商合同', 'Class:lnkCustomerContractToProviderContract+' => '', 'Class:lnkCustomerContractToProviderContract/Name' => '%1$s / %2$s', @@ -488,13 +486,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_id+' => '', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name' => '供应商合同名称', 'Class:lnkCustomerContractToProviderContract/Attribute:providercontract_name+' => '', -)); +]); // // Class: lnkCustomerContractToFunctionalCI // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkCustomerContractToFunctionalCI' => '关联客户合同/功能配置项', 'Class:lnkCustomerContractToFunctionalCI+' => '', 'Class:lnkCustomerContractToFunctionalCI/Name' => '%1$s / %2$s', @@ -506,13 +504,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_id+' => '', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name' => '配置项名称', 'Class:lnkCustomerContractToFunctionalCI/Attribute:functionalci_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DeliveryModel' => '交付模式', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => '名称', @@ -527,13 +525,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:DeliveryModel/Attribute:contacts_list+' => '此交付模式的所有联系人 (包括团队和人员)', 'Class:DeliveryModel/Attribute:customers_list' => '客户', 'Class:DeliveryModel/Attribute:customers_list+' => '使用此交付模式的所有客户', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDeliveryModelToContact' => '关联 交付模式/联系人', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -549,35 +547,35 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => '角色名称', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt-provider/main.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/main.itop-service-mgmt-provider.php index 2baed1313..ec6c4c958 100755 --- a/datamodels/2.x/itop-service-mgmt-provider/main.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/main.itop-service-mgmt-provider.php @@ -1,9 +1,10 @@ - - -?> diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/cs.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/cs.dict.itop-service-mgmt.php index d4c48c04c..a50426446 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/cs.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/cs.dict.itop-service-mgmt.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:ServiceManagement' => 'Správa služeb', 'Menu:ServiceManagement+' => 'Přehled správy služeb', 'Menu:Service:Overview' => 'Přehled', @@ -42,35 +43,34 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Contract:baseinfo' => 'Obecné informace', 'Contract:moreinfo' => 'Smluvní informace', 'Contract:cost' => 'Informace o nákladech', -)); +]); // // Class: Organization // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Model poskytování služeb', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Název modelu poskytování služeb', 'Class:Organization/Attribute:deliverymodel_name+' => 'This is required for Tickets handling. -The delivery model specifies the teams to which tickets can be assigned.~~' -)); - +The delivery model specifies the teams to which tickets can be assigned.~~', +]); // // Class: ContractType // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ContractType' => 'Typ smlouvy', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Contract' => 'Smlouva', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Název', @@ -119,23 +119,23 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => 'Typ', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:CustomerContract' => 'Smlouva se zákazníkem', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Služby', 'Class:CustomerContract/Attribute:services_list+' => 'Všechny služby pod touto smlouvou', -)); +]); // // Class: ProviderContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ProviderContract' => 'Smlouva s poskytovatelem', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'Konfigurační položky', @@ -150,13 +150,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Služby', 'Class:ProviderContract/Attribute:services_list+' => 'Všechny služby zakoupené v rámci této smlouvy', -)); +]); // // Class: lnkContactToContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContactToContract' => 'Spojení (Kontakt / Smlouva)', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -168,13 +168,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Název kontaktu', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContractToDocument' => 'Spojení (Smlouva / Dokument)', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -186,13 +186,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Název dokumentu', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ServiceFamily' => 'Balíček služeb', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Název', @@ -201,13 +201,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Služby', 'Class:ServiceFamily/Attribute:services_list+' => 'Všechny služby v této kategorii', -)); +]); // // Class: Service // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Service' => 'Služba', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -245,13 +245,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Service/Attribute:functionalcis_list+' => 'Všechny konfigurační položky využívané pro poskytování této služby', 'Class:Service/Attribute:servicesubcategories_list' => 'Podkategorie služeb', 'Class:Service/Attribute:servicesubcategories_list+' => 'Všechny podkategorie služeb pro tuto službu', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDocumentToService' => 'Spojení (Dokument / Služba)', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -263,13 +263,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Název dokumentu', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContactToService' => 'Spojení (Kontakt / Služba)', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -281,13 +281,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Název kontaktu', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ServiceSubcategory' => 'Podkategorie služeb', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -313,13 +313,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => '', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'v produkci', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => '', -)); +]); // // Class: SLA // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => 'Dohoda o úrovni služeb', 'Class:SLA/Attribute:name' => 'Název', @@ -335,13 +335,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:SLA/Attribute:customercontracts_list' => 'Smlouvy se zákazníky', 'Class:SLA/Attribute:customercontracts_list+' => 'Všechny smlouvy se zákazníky využívající tuto dohodu o úrovni služeb', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Nepodařilo se uložit spojení smlouvy se zákazníkem %1$s a služby %2$s : SLA již existují', -)); +]); // // Class: SLT // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => 'Cíl úrovně služeb', 'Class:SLT/Attribute:name' => 'Název', @@ -378,13 +378,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:SLT/Attribute:unit/Value:minutes+' => '', 'Class:SLT/Attribute:slas_list' => 'SLA', 'Class:SLT/Attribute:slas_list+' => 'Všechny dohody o úrovni služeb (SLA) využívající toto SLT', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkSLAToSLT' => 'Spojení (SLA / SLT)', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -406,13 +406,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Jednotka hodnoty SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkCustomerContractToService' => 'Spojení (Smlouva se zákazníkem / Služba)', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -428,13 +428,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Název SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkProviderContractToService' => 'Spojení (Smlouva s poskytovatelem / Služba)', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~', @@ -446,13 +446,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Název smlouvy s poskytovatelem', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DeliveryModel' => 'Model poskytování služeb', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Název', @@ -467,13 +467,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Všechny kontakty (Týmy a Osoby) pro tento model poskytování služeb', 'Class:DeliveryModel/Attribute:customers_list' => 'Zákazníci', 'Class:DeliveryModel/Attribute:customers_list+' => 'Všichni zákazníci využívající tento model poskytování služeb', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkDeliveryModelToContact' => 'Spojení (Model poskytování služeb / Kontakt)', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -489,44 +489,44 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Název role', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/da.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/da.dict.itop-service-mgmt.php index efdfa9e2e..d9398ecc3 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/da.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/da.dict.itop-service-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:ServiceManagement' => 'Ydelses Management', 'Menu:ServiceManagement+' => 'Ydelses Management oversigt', 'Menu:Service:Overview' => 'Oversigt', @@ -41,35 +42,34 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); // // Class: Organization // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Leverings model', 'Class:Organization/Attribute:deliverymodel_id+' => '~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Leverings model navn', 'Class:Organization/Attribute:deliverymodel_name+' => 'This is required for Tickets handling. -The delivery model specifies the teams to which tickets can be assigned.~~' -)); - +The delivery model specifies the teams to which tickets can be assigned.~~', +]); // // Class: ContractType // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ContractType' => 'Kontrakt type', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Contract' => 'Kontrakt', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Navn', @@ -118,23 +118,23 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => 'Type', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:CustomerContract' => 'Kunde kontrakt', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Ydelser', 'Class:CustomerContract/Attribute:services_list+' => 'All the services purchased for this contract~~', -)); +]); // // Class: ProviderContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ProviderContract' => 'Leverandør kontrakt', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -149,13 +149,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services~~', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContactToContract' => 'Sammenhæng Kontakt/Kontrakt', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -167,13 +167,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Kontakt navn', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContractToDocument' => 'Sammenhæng Kontrakt/Dokument', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -185,13 +185,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Dokument navn', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ServiceFamily' => 'Ydelses-familie', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Navn', @@ -200,13 +200,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Ydelser', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category~~', -)); +]); // // Class: Service // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Service' => 'Ydelse', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -244,13 +244,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Service/Attribute:functionalcis_list+' => 'All the configuration items that are used to provide this service~~', 'Class:Service/Attribute:servicesubcategories_list' => 'Ydelses subkategorier', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service~~', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDocumentToService' => 'Sammenhæng Dokument/Ydelse', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -262,13 +262,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Dokument navn', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContactToService' => 'Sammenhæng Kontakt/Ydelse', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -280,13 +280,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Kontakt navn', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ServiceSubcategory' => 'Ydelse underkategorier', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -312,13 +312,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => '', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Produktion', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => '', -)); +]); // // Class: SLA // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Navn', @@ -334,13 +334,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:SLA/Attribute:customercontracts_list' => 'Kunde kontrakter', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracted services using this SLA~~', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => 'Service Level Threshholds', 'Class:SLT/Attribute:name' => 'Navn', @@ -377,13 +377,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:SLT/Attribute:unit/Value:minutes+' => '', 'Class:SLT/Attribute:slas_list' => 'SLAs~~', 'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT~~', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkSLAToSLT' => 'Sammenhæng SLA/SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -405,13 +405,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkCustomerContractToService' => 'Sammenhæng Kunde kontrakt/Ydelse', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -427,13 +427,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA navn', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkProviderContractToService' => 'Sammenhæng Leverandør kontrakt/Ydelse', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~', @@ -445,13 +445,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Leverandør kontrakt navn', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DeliveryModel' => 'Leverings model', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Navn', @@ -466,13 +466,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model~~', 'Class:DeliveryModel/Attribute:customers_list' => 'Kunde', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model~~', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkDeliveryModelToContact' => 'Sammenhæng Leverings model/Kontakt', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -488,44 +488,44 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rolle navn', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/de.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/de.dict.itop-service-mgmt.php index 92df977ce..bec45becc 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/de.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/de.dict.itop-service-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:ServiceManagement' => 'Service Management', 'Menu:ServiceManagement+' => 'Service-Management-Übersicht', 'Menu:Service:Overview' => 'Übersicht', @@ -41,35 +42,34 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Contract:baseinfo' => 'Allgemeine Informationen', 'Contract:moreinfo' => 'Vertragliche Informationen', 'Contract:cost' => 'Kosteninformation', -)); +]); // // Class: Organization // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Delivery-Modell', 'Class:Organization/Attribute:deliverymodel_id+' => '', 'Class:Organization/Attribute:deliverymodel_name' => 'Delivery-Modell-Name', 'Class:Organization/Attribute:deliverymodel_name+' => 'This is required for Tickets handling. -The delivery model specifies the teams to which tickets can be assigned.~~' -)); - +The delivery model specifies the teams to which tickets can be assigned.~~', +]); // // Class: ContractType // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ContractType' => 'Vertrags-Typ', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Contract' => 'Vertrag', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Name', @@ -118,23 +118,23 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => 'Typ', 'Class:Contract/Attribute:finalclass+' => 'Name der instanziierbaren Klasse', -)); +]); // // Class: CustomerContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:CustomerContract' => 'Kundenvertrag', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', 'Class:CustomerContract/Attribute:services_list+' => 'Alle für diesen Vertrag erworbenen Services', -)); +]); // // Class: ProviderContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ProviderContract' => 'Provider-Vertrag', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -149,13 +149,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services', 'Class:ProviderContract/Attribute:services_list+' => 'Alle für diesen Vertrag erworbenen Services', -)); +]); // // Class: lnkContactToContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContactToContract' => 'Verknüpfung Kontakt/Vertrag', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -167,13 +167,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Kontakt-Name', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContractToDocument' => 'Verknüpfung Vertrag/Dokument', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -185,13 +185,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Dokument-Name', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ServiceFamily' => 'Service-Familie', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Name', @@ -200,13 +200,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'Alle Services dieser Kategorie', -)); +]); // // Class: Service // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -244,13 +244,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Service/Attribute:functionalcis_list+' => 'Alle CIs, die zur Bereitstellung dieses Services verwendet werden', 'Class:Service/Attribute:servicesubcategories_list' => 'Service-Subkategorien', 'Class:Service/Attribute:servicesubcategories_list+' => 'Alle Service-Unterkategorien für diesen Service', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDocumentToService' => 'Verknüpfung Dokument/Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -262,13 +262,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Dokument-Name', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContactToService' => 'Verknüpfung Kontakt/Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -280,13 +280,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Kontakt-name', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ServiceSubcategory' => 'Service-Unterkategorien', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -312,13 +312,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => '', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Produktion', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => '', -)); +]); // // Class: SLA // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Name', @@ -334,13 +334,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:SLA/Attribute:customercontracts_list' => 'Kundenverträge', 'Class:SLA/Attribute:customercontracts_list+' => 'Alle Kundenverträge, die diese SLA verwenden', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Die Verknüpfung zwischen Kundenvertrag %1$s und Service %2$s konnte nicht gespeichert werden: SLA existiert bereits', -)); +]); // // Class: SLT // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => 'Service-Level-Target (SLT)', 'Class:SLT/Attribute:name' => 'Name', @@ -377,13 +377,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'Minuten', 'Class:SLT/Attribute:slas_list' => 'SLAs', 'Class:SLT/Attribute:slas_list+' => 'Alle Service Level Agreements, die diese SLT verwenden', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkSLAToSLT' => 'Verknüpfung SLA/SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -405,13 +405,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => 'Zeit, nach der das SLT abläuft.', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT Einheit', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkCustomerContractToService' => 'Verknüpfung Kunden-Vertrag/Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -427,13 +427,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA-Name', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkProviderContractToService' => 'Verknüpfung Provider-Vertrag/Service', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -445,13 +445,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Providervertrags-Name', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DeliveryModel' => 'Delivery-Modell', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Name', @@ -466,13 +466,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Alle Kontakte (Teams and Person) für dieses Delivery-Modell', 'Class:DeliveryModel/Attribute:customers_list' => 'Kunden', 'Class:DeliveryModel/Attribute:customers_list+' => 'Alle Kunden mit diesem Delivery-Modell', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkDeliveryModelToContact' => 'Verknüpfung Delivery-Modell/Kontakt', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -488,44 +488,44 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rollen-Name', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/en.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/en.dict.itop-service-mgmt.php index 20a6cfe45..61b330403 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/en.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/en.dict.itop-service-mgmt.php @@ -1,4 +1,5 @@ 'Service management', 'Menu:ServiceManagement+' => 'Service management overview', 'Menu:Service:Overview' => 'Overview', @@ -65,34 +66,33 @@ Dict::Add('EN US', 'English', 'English', array( 'Contract:baseinfo' => 'General information', 'Contract:moreinfo' => 'Contractual information', 'Contract:cost' => 'Cost information', -)); +]); // // Class: Organization // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Delivery model', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.', 'Class:Organization/Attribute:deliverymodel_name' => 'Delivery model name', -)); - +]); // // Class: ContractType // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ContractType' => 'Contract Type', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Contract' => 'Contract', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Name', @@ -141,23 +141,23 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Contract/Attribute:status/Value:production+' => 'production', 'Class:Contract/Attribute:finalclass' => 'Contract sub-class', 'Class:Contract/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: CustomerContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:CustomerContract' => 'Customer Contract', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', 'Class:CustomerContract/Attribute:services_list+' => 'All the services purchased for this contract', -)); +]); // // Class: ProviderContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ProviderContract' => 'Provider Contract', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -172,13 +172,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract', -)); +]); // // Class: lnkContactToContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContactToContract' => 'Link Contact / Contract', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -190,13 +190,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Contact Name', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContractToDocument' => 'Link Contract / Document', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -208,13 +208,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Document Name', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ServiceFamily' => 'Service Family', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Name', @@ -223,13 +223,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category', -)); +]); // // Class: Service // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -267,13 +267,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Service/Attribute:functionalcis_list+' => 'All the configuration items that are used to provide this service', 'Class:Service/Attribute:servicesubcategories_list' => 'Service sub categories', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDocumentToService' => 'Link Document / Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -285,13 +285,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Document Name', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContactToService' => 'Link Contact / Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -303,13 +303,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Contact Name', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ServiceSubcategory' => 'Service Subcategory', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -335,13 +335,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'obsolete', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'production', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'production', -)); +]); // // Class: SLA // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Name', @@ -357,13 +357,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:SLA/Attribute:customercontracts_list' => 'Customer contracts', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracted services using this SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists', -)); +]); // // Class: SLT // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Name', @@ -400,13 +400,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes', 'Class:SLT/Attribute:slas_list' => 'SLAs', 'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -428,13 +428,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkCustomerContractToService' => 'Link Customer Contract / Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -450,13 +450,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Name', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkProviderContractToService' => 'Link Provider Contract / Service', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -468,13 +468,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Provider contract Name', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DeliveryModel' => 'Delivery Model', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Name', @@ -489,13 +489,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model', 'Class:DeliveryModel/Attribute:customers_list' => 'Customers', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkDeliveryModelToContact' => 'Link Delivery Model / Contact', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -511,44 +511,44 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Role name', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id', 'Class:lnkContactToContract/Attribute:customer_id+' => '', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id', 'Class:lnkContactToContract/Attribute:provider_id+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id', 'Class:lnkContractToDocument/Attribute:customer_id+' => '', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id', 'Class:lnkContractToDocument/Attribute:provider_id+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/en_gb.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/en_gb.dict.itop-service-mgmt.php index 766464ceb..1ad2a2dc3 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/en_gb.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/en_gb.dict.itop-service-mgmt.php @@ -1,4 +1,5 @@ 'Service management', 'Menu:ServiceManagement+' => 'Service management overview', 'Menu:Service:Overview' => 'Overview', @@ -65,34 +66,33 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Contract:baseinfo' => 'General information', 'Contract:moreinfo' => 'Contractual information', 'Contract:cost' => 'Cost information', -)); +]); // // Class: Organization // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Delivery model', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.', 'Class:Organization/Attribute:deliverymodel_name' => 'Delivery model name', -)); - +]); // // Class: ContractType // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ContractType' => 'Contract Type', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Contract' => 'Contract', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Name', @@ -141,23 +141,23 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Contract/Attribute:status/Value:production+' => 'production', 'Class:Contract/Attribute:finalclass' => 'Contract sub-class', 'Class:Contract/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: CustomerContract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CustomerContract' => 'Customer Contract', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', 'Class:CustomerContract/Attribute:services_list+' => 'All the services purchased for this contract', -)); +]); // // Class: ProviderContract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ProviderContract' => 'Provider Contract', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -172,13 +172,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract', -)); +]); // // Class: lnkContactToContract // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkContactToContract' => 'Link Contact / Contract', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -190,13 +190,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Contact Name', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkContractToDocument' => 'Link Contract / Document', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -208,13 +208,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Document Name', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ServiceFamily' => 'Service Family', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Name', @@ -223,13 +223,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category', -)); +]); // // Class: Service // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -267,13 +267,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Service/Attribute:functionalcis_list+' => 'All the configuration items that are used to provide this service', 'Class:Service/Attribute:servicesubcategories_list' => 'Service sub categories', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDocumentToService' => 'Link Document / Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -285,13 +285,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Document Name', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkContactToService' => 'Link Contact / Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -303,13 +303,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Contact Name', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ServiceSubcategory' => 'Service Subcategory', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -335,13 +335,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'obsolete', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'production', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'production', -)); +]); // // Class: SLA // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Name', @@ -357,13 +357,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:SLA/Attribute:customercontracts_list' => 'Customer contracts', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracted services using this SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists', -)); +]); // // Class: SLT // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Name', @@ -400,13 +400,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes', 'Class:SLT/Attribute:slas_list' => 'SLAs', 'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -428,13 +428,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkCustomerContractToService' => 'Link Customer Contract / Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -450,13 +450,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Name', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkProviderContractToService' => 'Link Provider Contract / Service', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -468,13 +468,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Provider contract Name', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DeliveryModel' => 'Delivery Model', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Name', @@ -489,13 +489,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Person) for this delivery model', 'Class:DeliveryModel/Attribute:customers_list' => 'Customers', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkDeliveryModelToContact' => 'Link Delivery Model / Contact', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -511,4 +511,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Role name', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/es_cr.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/es_cr.dict.itop-service-mgmt.php index 33e142ebf..b2bd7b5e6 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/es_cr.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/es_cr.dict.itop-service-mgmt.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:ServiceManagement' => 'Administración de Servicios', 'Menu:ServiceManagement+' => 'Administración de Servicios', 'Menu:Service:Overview' => 'Resumen de servicios', @@ -38,35 +39,34 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Contract:baseinfo' => 'Información General', 'Contract:moreinfo' => 'Información Contractual', 'Contract:cost' => 'Información de Costos', -)); +]); // // Class: Organization // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Modelo de Entrega', 'Class:Organization/Attribute:deliverymodel_id+' => 'Modelo de Entrega', 'Class:Organization/Attribute:deliverymodel_name' => 'Nombre del Modelo de Entrega', 'Class:Organization/Attribute:deliverymodel_name+' => 'This is required for Tickets handling. -The delivery model specifies the teams to which tickets can be assigned.~~' -)); - +The delivery model specifies the teams to which tickets can be assigned.~~', +]); // // Class: ContractType // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ContractType' => 'Tipo de Contrato', 'Class:ContractType+' => 'Tipo de Contrato', -)); +]); // // Class: Contract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Contract' => 'Contrato', 'Class:Contract+' => 'Contrato', 'Class:Contract/Attribute:name' => 'Nombre', @@ -115,23 +115,23 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Contract/Attribute:status/Value:production+' => 'Productivo', 'Class:Contract/Attribute:finalclass' => 'Clase', 'Class:Contract/Attribute:finalclass+' => 'Clase', -)); +]); // // Class: CustomerContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:CustomerContract' => 'Acuerdo con Cliente', 'Class:CustomerContract+' => 'Acuerdo con Cliente', 'Class:CustomerContract/Attribute:services_list' => 'Servicios', 'Class:CustomerContract/Attribute:services_list+' => 'Servicios', -)); +]); // // Class: ProviderContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ProviderContract' => 'Contrato con Proveedor', 'Class:ProviderContract+' => 'Contrato con Proveedor', 'Class:ProviderContract/Attribute:functionalcis_list' => 'ECs', @@ -146,13 +146,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ProviderContract/Attribute:contracttype_name+' => 'Tipo de Contrato', 'Class:ProviderContract/Attribute:services_list' => 'Servicios', 'Class:ProviderContract/Attribute:services_list+' => 'Todos los servicios adquiridos con este contrato', -)); +]); // // Class: lnkContactToContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContactToContract' => 'Relación Contacto y Contrato', 'Class:lnkContactToContract+' => 'Relación Contacto y Contrato', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -164,13 +164,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkContactToContract/Attribute:contact_id+' => 'Contacto', 'Class:lnkContactToContract/Attribute:contact_name' => 'Contacto', 'Class:lnkContactToContract/Attribute:contact_name+' => 'Contacto', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContractToDocument' => 'Relación Contrato y Documento', 'Class:lnkContractToDocument+' => 'Relación Contrato y Documento', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -182,13 +182,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkContractToDocument/Attribute:document_id+' => 'Documento', 'Class:lnkContractToDocument/Attribute:document_name' => 'Documento', 'Class:lnkContractToDocument/Attribute:document_name+' => 'Documento', -)); +]); // // Class: ServiceFamily // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ServiceFamily' => 'Familia de Servicios', 'Class:ServiceFamily+' => 'Familia de Servicios', 'Class:ServiceFamily/Attribute:name' => 'Nombre', @@ -197,13 +197,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Servicios', 'Class:ServiceFamily/Attribute:services_list+' => 'Servicios', -)); +]); // // Class: Service // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Service' => 'Servicio', 'Class:Service+' => 'Servicio', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -241,13 +241,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Service/Attribute:functionalcis_list+' => 'Depende de ECs', 'Class:Service/Attribute:servicesubcategories_list' => 'Subcategorias de Servicio', 'Class:Service/Attribute:servicesubcategories_list+' => 'Subcategorias de Servicio', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDocumentToService' => 'Relación Documento y Servicio', 'Class:lnkDocumentToService+' => 'Relación Documento y Servicio', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -259,13 +259,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDocumentToService/Attribute:document_id+' => 'Documento', 'Class:lnkDocumentToService/Attribute:document_name' => 'Documento', 'Class:lnkDocumentToService/Attribute:document_name+' => 'Documento', -)); +]); // // Class: lnkContactToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContactToService' => 'Relación Contacto y Servicio', 'Class:lnkContactToService+' => 'Relación Contacto y Servicio', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -277,13 +277,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkContactToService/Attribute:contact_id+' => 'Contacto', 'Class:lnkContactToService/Attribute:contact_name' => 'Contacto', 'Class:lnkContactToService/Attribute:contact_name+' => 'Contacto', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ServiceSubcategory' => 'Subcategoría', 'Class:ServiceSubcategory+' => 'Subcategoría', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -309,13 +309,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'Obsoleto', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Productivo', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'Productivo', -)); +]); // // Class: SLA // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:SLA' => 'SLA - Acuerdo de Nivel de Servicio', 'Class:SLA+' => 'SLA - Acuerdo de Nivel de Servicio', 'Class:SLA/Attribute:name' => 'Nombre', @@ -331,13 +331,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:SLA/Attribute:customercontracts_list' => 'Acuerdos con Clientes', 'Class:SLA/Attribute:customercontracts_list+' => 'Acuerdos con Clientes', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'No se puede guardar relación de Acuerco con Cliente %1$s con Servicio %2$s : El SLA ya existe', -)); +]); // // Class: SLT // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:SLT' => 'SLT - Objetivos de Nivel de Servicio', 'Class:SLT+' => 'SLT - Objetivos de Nivel de Servicio', 'Class:SLT/Attribute:name' => 'Nombre', @@ -374,13 +374,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'Minutos', 'Class:SLT/Attribute:slas_list' => 'SLAs', 'Class:SLT/Attribute:slas_list+' => 'Todos los acuerdos de nivel de servicio que utilizan este SLT', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkSLAToSLT' => 'Relación SLA y SLT', 'Class:lnkSLAToSLT+' => 'Relación SLA y SLT', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -402,13 +402,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Unidad', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkCustomerContractToService' => 'Relación Acuerdo con Cliente y Servicio', 'Class:lnkCustomerContractToService+' => 'Relación Acuerdo con Cliente y Servicio', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -424,13 +424,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => 'SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => 'SLA', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkProviderContractToService' => 'Relación Contrato con Proveedor y Servicio', 'Class:lnkProviderContractToService+' => 'Relación Contrato con Proveedor y Servicio', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -442,13 +442,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => 'Contrato con Proveedor', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Contrato con Proveedor', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => 'Contrato con Proveedor', -)); +]); // // Class: DeliveryModel // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DeliveryModel' => 'Modelo de Entrega', 'Class:DeliveryModel+' => 'Modelo de Entrega', 'Class:DeliveryModel/Attribute:name' => 'Nombre', @@ -463,13 +463,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Contactos', 'Class:DeliveryModel/Attribute:customers_list' => 'Clientes', 'Class:DeliveryModel/Attribute:customers_list+' => 'Clientes', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkDeliveryModelToContact' => 'Relación Modelo de Entrega y Contacto', 'Class:lnkDeliveryModelToContact+' => 'Relación Modelo de Entrega y Contacto', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -485,44 +485,44 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => 'Rol', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rol', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => 'Rol', -)); +]); // // Class: lnkContactToContract // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/fr.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/fr.dict.itop-service-mgmt.php index 8edfeca80..ce497cfb0 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/fr.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/fr.dict.itop-service-mgmt.php @@ -1,15 +1,16 @@ 'Gestion des services', 'Menu:ServiceManagement+' => '', 'Menu:Service:Overview' => 'Vue d\'ensemble', @@ -40,33 +41,32 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Contract:baseinfo' => 'Information générale', 'Contract:moreinfo' => 'Aspects contractuels', 'Contract:cost' => 'Coûts', -)); +]); // // Class: Organization // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Modèle de support', 'Class:Organization/Attribute:deliverymodel_id+' => 'C\'est indispensable pour définir les équipes auxquelles les tickets pourront être assignés', 'Class:Organization/Attribute:deliverymodel_name' => 'Nom modèle de support', -)); - +]); // // Class: ContractType // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ContractType' => 'Type de contrat', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Contract' => 'Contrat', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Nom', @@ -115,23 +115,23 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Contract/Attribute:status/Value:production+' => '', 'Class:Contract/Attribute:finalclass' => 'Sous-classe de Contrat', 'Class:Contract/Attribute:finalclass+' => 'Nom de la classe instanciable', -)); +]); // // Class: CustomerContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:CustomerContract' => 'Contrat client', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', 'Class:CustomerContract/Attribute:services_list+' => 'Tous les services achetés pour ce contrat', -)); +]); // // Class: ProviderContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ProviderContract' => 'Contrat fournisseur', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CIs', @@ -146,13 +146,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services', 'Class:ProviderContract/Attribute:services_list+' => 'Tous les services achetés par ce contrat', -)); +]); // // Class: lnkContactToContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContactToContract' => 'Lien Contact / Contrat', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -164,13 +164,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Nom contact', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContractToDocument' => 'Lien Contrat / Document', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -182,13 +182,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Nom document', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ServiceFamily' => 'Famille de service', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Nom', @@ -197,13 +197,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'Tous les services de cette catégorie', -)); +]); // // Class: Service // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -252,14 +252,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:Service/Attribute:servicesubcategories_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: lnkDocumentToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDocumentToService' => 'Lien Document / Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -271,13 +271,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Nom document', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContactToService' => 'Lien Contact / Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -289,13 +289,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Nom contact', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ServiceSubcategory' => 'Sous catégorie de service', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -321,13 +321,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => '', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Production', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => '', -)); +]); // // Class: SLA // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:SLA' => 'Niveau de service', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Nom', @@ -348,14 +348,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:SLA/Attribute:customercontracts_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:SLA/Attribute:customercontracts_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', 'Class:SLA/Attribute:customercontracts_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', - 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Impossible de sauvegarder le lien avec le contrat client %1$s et le service %2$s : un SLA existe déjà.' -)); + 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Impossible de sauvegarder le lien avec le contrat client %1$s et le service %2$s : un SLA existe déjà.', +]); // // Class: SLT // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => 'Objectif de niveau de service (SLT)', 'Class:SLT/Attribute:name' => 'Nom', @@ -392,13 +392,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes', 'Class:SLT/Attribute:slas_list' => 'SLAs', 'Class:SLT/Attribute:slas_list+' => 'Tous les niveaux de service utilisant cet objectif', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkSLAToSLT' => 'Lien SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -420,13 +420,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Unité SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkCustomerContractToService' => 'Lien Contrat client / Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -442,13 +442,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Nom SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkProviderContractToService' => 'Lien Contrat fournisseur / Service', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -460,13 +460,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Nom contrat fournisseur', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DeliveryModel' => 'Modèle de support', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Nom du modèle de support', @@ -486,14 +486,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); + 'Class:DeliveryModel/Attribute:customers_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkDeliveryModelToContact' => 'Lien Modèle de support / Contact', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -509,44 +509,44 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Nom Rôle', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/hu.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/hu.dict.itop-service-mgmt.php index 12ef83efd..a47486571 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/hu.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/hu.dict.itop-service-mgmt.php @@ -1,15 +1,16 @@ 'Szolgáltatáskezelés', 'Menu:ServiceManagement+' => '', 'Menu:Service:Overview' => 'Áttekintő', @@ -40,35 +41,34 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); // // Class: Organization // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Teljesítési modell', 'Class:Organization/Attribute:deliverymodel_id+' => 'Ki kinek szolgáltat', 'Class:Organization/Attribute:deliverymodel_name' => 'Teljesítési modell név', 'Class:Organization/Attribute:deliverymodel_name+' => 'This is required for Tickets handling. -The delivery model specifies the teams to which tickets can be assigned.~~' -)); - +The delivery model specifies the teams to which tickets can be assigned.~~', +]); // // Class: ContractType // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ContractType' => 'Szerződés típus', 'Class:ContractType+' => '~~', -)); +]); // // Class: Contract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Contract' => 'Szerződés', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Szerződés név', @@ -117,23 +117,23 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Contract/Attribute:status/Value:production+' => 'használatban', 'Class:Contract/Attribute:finalclass' => 'Szerződés típus', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:CustomerContract' => 'Ügyfélszerződés', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Szolgáltatások', 'Class:CustomerContract/Attribute:services_list+' => 'Szolgáltatások melyek be lettek szerezve ennek a kapcsolattartónak', -)); +]); // // Class: ProviderContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ProviderContract' => 'Szolgáltatói szerződés', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CI-k', @@ -148,13 +148,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services~~', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContactToContract' => 'Kapcsolattartó / Szerződés', 'Class:lnkContactToContract+' => '~~', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -166,13 +166,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '~~', 'Class:lnkContactToContract/Attribute:contact_name' => 'Kapcsolattartó név', 'Class:lnkContactToContract/Attribute:contact_name+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContractToDocument' => 'Szerződés / Dokumentum', 'Class:lnkContractToDocument+' => '~~', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -184,13 +184,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '~~', 'Class:lnkContractToDocument/Attribute:document_name' => 'Dokumentum név', 'Class:lnkContractToDocument/Attribute:document_name+' => '~~', -)); +]); // // Class: ServiceFamily // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ServiceFamily' => 'Szolgáltatáscsalád', 'Class:ServiceFamily+' => '~~', 'Class:ServiceFamily/Attribute:name' => 'Név', @@ -199,13 +199,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ServiceFamily/Attribute:icon+' => '~~', 'Class:ServiceFamily/Attribute:services_list' => 'Szolgáltatások', 'Class:ServiceFamily/Attribute:services_list+' => 'Szolgáltatások ebben a kategóriában', -)); +]); // // Class: Service // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Service' => 'Szolgáltatás', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -243,13 +243,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Service/Attribute:functionalcis_list+' => 'Konfigurációs elemek, melyek ehhez a szolgáltatáshoz kellenek', 'Class:Service/Attribute:servicesubcategories_list' => 'Szolgáltatás alkategóriák', 'Class:Service/Attribute:servicesubcategories_list+' => 'A szolgáltatás alkategóriái', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDocumentToService' => 'Dokumentum / Szolgáltatás', 'Class:lnkDocumentToService+' => '~~', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -261,13 +261,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '~~', 'Class:lnkDocumentToService/Attribute:document_name' => 'Dokumentum név', 'Class:lnkDocumentToService/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkContactToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContactToService' => 'Kapcsolattartó / Szolgáltatás', 'Class:lnkContactToService+' => '~~', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -279,13 +279,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkContactToService/Attribute:contact_id+' => '~~', 'Class:lnkContactToService/Attribute:contact_name' => 'Kapcsolattartó név', 'Class:lnkContactToService/Attribute:contact_name+' => '~~', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ServiceSubcategory' => 'Szolgáltatás alkategória', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -311,13 +311,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'obsolete~~', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Bevezetve', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'production~~', -)); +]); // // Class: SLA // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => 'Szolgáltatásszint megállapodás', 'Class:SLA/Attribute:name' => 'SLA Név', @@ -333,13 +333,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:SLA/Attribute:customercontracts_list' => 'Ügyfélszerződések', 'Class:SLA/Attribute:customercontracts_list+' => 'Ügyfélszerződések, melyek ehhez az SLA-hoz kapcsolódnak', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Nem sikerült elmenteni a linket az Ügyfél szerződés %1$s és szolgáltatás %2$s között: SLA már létezik', -)); +]); // // Class: SLT // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'SLT név', @@ -376,13 +376,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:SLT/Attribute:unit/Value:minutes+' => '', 'Class:SLT/Attribute:slas_list' => 'SLAs~~', 'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT~~', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkSLAToSLT' => 'SLA / SLT', 'Class:lnkSLAToSLT+' => '~~', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -404,13 +404,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT érték egység', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkCustomerContractToService' => 'Ügyfélszerződés / Szolgáltatás', 'Class:lnkCustomerContractToService+' => '~~', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -426,13 +426,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '~~', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA név', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkProviderContractToService' => 'Szolgáltatói szerződés / Szolgáltatás', 'Class:lnkProviderContractToService+' => '~~', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~', @@ -444,13 +444,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '~~', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Szolgáltatói szerződés név', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '~~', -)); +]); // // Class: DeliveryModel // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DeliveryModel' => 'Teljesítési modell', 'Class:DeliveryModel+' => 'Ki kinek szolgáltat', 'Class:DeliveryModel/Attribute:name' => 'Teljesítési modell név', @@ -465,13 +465,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Kapcsolattartók (csapat és személy) ehhez a teljesítési modellhez', 'Class:DeliveryModel/Attribute:customers_list' => 'Ügyfelek', 'Class:DeliveryModel/Attribute:customers_list+' => 'Ügyfelek, melyek rendelkeznek ezzel a teljesítési modellel', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkDeliveryModelToContact' => 'Teljesítési modell / Kapcsolattartó', 'Class:lnkDeliveryModelToContact+' => '~~', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -487,44 +487,44 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Szerepkör név', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/it.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/it.dict.itop-service-mgmt.php index 916da818b..9c2d005a4 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/it.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/it.dict.itop-service-mgmt.php @@ -1,15 +1,16 @@ 'Gestione del servizio', 'Menu:ServiceManagement+' => 'Panoramica della gestione del servizio', 'Menu:Service:Overview' => 'Panoramica', @@ -40,34 +41,33 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Contract:baseinfo' => 'Informazioni Generali', 'Contract:moreinfo' => 'Informazioni Contrattuali', 'Contract:cost' => 'Informazioni sui Costi', -)); +]); // // Class: Organization // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Modello di Consegna', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Nome del Modello di Consegna', -)); - +]); // // Class: ContractType // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ContractType' => 'Tipo di Contratto', 'Class:ContractType+' => '~~', -)); +]); // // Class: Contract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Contract' => 'Contratto', 'Class:Contract+' => '~~', 'Class:Contract/Attribute:name' => 'Nome', @@ -116,23 +116,23 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Contract/Attribute:status/Value:production+' => 'production~~', 'Class:Contract/Attribute:finalclass' => 'Tipo', 'Class:Contract/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: CustomerContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:CustomerContract' => 'Contratto con cliente', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Servizi', 'Class:CustomerContract/Attribute:services_list+' => 'Tutti i servizi acquistati per questo contratto', -)); +]); // // Class: ProviderContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ProviderContract' => 'Contratto con Provider', 'Class:ProviderContract+' => '~~', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CI', @@ -147,13 +147,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '~~', 'Class:ProviderContract/Attribute:services_list' => 'Services~~', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContactToContract' => 'Link Contact / Contract', 'Class:lnkContactToContract+' => '~~', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -165,13 +165,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '~~', 'Class:lnkContactToContract/Attribute:contact_name' => 'Nome del Contatto', 'Class:lnkContactToContract/Attribute:contact_name+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContractToDocument' => 'Link Contract / Document', 'Class:lnkContractToDocument+' => '~~', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -183,13 +183,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '~~', 'Class:lnkContractToDocument/Attribute:document_name' => 'Nome del Documento', 'Class:lnkContractToDocument/Attribute:document_name+' => '~~', -)); +]); // // Class: ServiceFamily // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ServiceFamily' => 'Famiglia di Servizi', 'Class:ServiceFamily+' => '~~', 'Class:ServiceFamily/Attribute:name' => 'Nome', @@ -198,13 +198,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ServiceFamily/Attribute:icon+' => '~~', 'Class:ServiceFamily/Attribute:services_list' => 'Servizi', 'Class:ServiceFamily/Attribute:services_list+' => 'Tutti i servizi in questa categoria', -)); +]); // // Class: Service // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Service' => 'Servizio', 'Class:Service+' => '~~', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -242,13 +242,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Service/Attribute:functionalcis_list+' => 'Tutti gli elementi di configurazione utilizzati per fornire questo servizio', 'Class:Service/Attribute:servicesubcategories_list' => 'Sotto-categorie di Servizio', 'Class:Service/Attribute:servicesubcategories_list+' => 'Tutte le sotto-categorie per questo servizio', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkDocumentToService' => 'Link Document / Service', 'Class:lnkDocumentToService+' => '~~', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -260,13 +260,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '~~', 'Class:lnkDocumentToService/Attribute:document_name' => 'Nome del Documento', 'Class:lnkDocumentToService/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkContactToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContactToService' => 'Link Contact / Service', 'Class:lnkContactToService+' => '~~', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -278,13 +278,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkContactToService/Attribute:contact_id+' => '~~', 'Class:lnkContactToService/Attribute:contact_name' => 'Nome del Contatto', 'Class:lnkContactToService/Attribute:contact_name+' => '~~', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ServiceSubcategory' => 'Sottocategorie del servizio', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -310,13 +310,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'obsolete~~', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'produzione', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'production~~', -)); +]); // // Class: SLA // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Nome', @@ -332,13 +332,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:SLA/Attribute:customercontracts_list' => 'Contratti Cliente', 'Class:SLA/Attribute:customercontracts_list+' => 'Tutti i contratti cliente che utilizzano questo SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Impossibile salvare il collegamento con il contratto cliente %1$s e il servizio %2$s: SLA già esistente', -)); +]); // // Class: SLT // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '~~', 'Class:SLT/Attribute:name' => 'Nome', @@ -375,13 +375,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes~~', 'Class:SLT/Attribute:slas_list' => 'SLA', 'Class:SLT/Attribute:slas_list+' => 'Tutti gli accordi di livello di servizio che utilizzano questo SLT', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT', 'Class:lnkSLAToSLT+' => '~~', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -403,13 +403,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Unità di valore SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkCustomerContractToService' => 'Link Customer Contract / Service', 'Class:lnkCustomerContractToService+' => '~~', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -425,13 +425,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Name~~', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkProviderContractToService' => 'Link Provider Contract / Service', 'Class:lnkProviderContractToService+' => '~~', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -443,13 +443,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '~~', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Nome del Contratto con Fornitore', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '~~', -)); +]); // // Class: DeliveryModel // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:DeliveryModel' => 'Modello di Consegna', 'Class:DeliveryModel+' => '~~', 'Class:DeliveryModel/Attribute:name' => 'Nome', @@ -464,13 +464,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Tutti i contatti (Team e Persone) per questo modello di consegna', 'Class:DeliveryModel/Attribute:customers_list' => 'Clienti', 'Class:DeliveryModel/Attribute:customers_list+' => 'Tutti i clienti che utilizzano questo modello di consegna', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkDeliveryModelToContact' => 'Link Delivery Model / Contact', 'Class:lnkDeliveryModelToContact+' => '~~', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -486,44 +486,44 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Nome del Ruolo', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/ja.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/ja.dict.itop-service-mgmt.php index 4e94c8460..22ed5dd17 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/ja.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/ja.dict.itop-service-mgmt.php @@ -1,15 +1,16 @@ 'サービス管理', 'Menu:ServiceManagement+' => 'サービス管理概要', 'Menu:Service:Overview' => '概要', @@ -40,34 +41,33 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); // // Class: Organization // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Organization/Attribute:deliverymodel_id' => '提供モデル', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.~~', 'Class:Organization/Attribute:deliverymodel_name' => '提供モデル名', -)); - +]); // // Class: ContractType // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ContractType' => '契約タイプ', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Contract' => '契約', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => '名前', @@ -116,23 +116,23 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Contract/Attribute:status/Value:production+' => '稼働', 'Class:Contract/Attribute:finalclass' => 'タイプ', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:CustomerContract' => '顧客契約', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'サービス', 'Class:CustomerContract/Attribute:services_list+' => 'All the services purchased for this contract~~', -)); +]); // // Class: ProviderContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ProviderContract' => 'プロバイダー契約', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CI', @@ -147,13 +147,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services~~', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContactToContract' => 'リンク 連絡先/契約', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -165,13 +165,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => '連絡先名', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContractToDocument' => 'リンク 契約/文書', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -183,13 +183,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => '文書名', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ServiceFamily' => 'サービスファミリ', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => '名前', @@ -198,13 +198,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'サービス', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category~~', -)); +]); // // Class: Service // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Service' => 'サービス', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -242,13 +242,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Service/Attribute:functionalcis_list+' => 'All the configuration items that are used to provide this service~~', 'Class:Service/Attribute:servicesubcategories_list' => 'サービスサブカテゴリ', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service~~', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDocumentToService' => 'リンク 文書/サービス', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -260,13 +260,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => '文書名', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContactToService' => 'リンク 連絡先/サービス', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -278,13 +278,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => '連絡先名', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ServiceSubcategory' => 'サービスサブカテゴリ', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -310,13 +310,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => '廃止済み', 'Class:ServiceSubcategory/Attribute:status/Value:production' => '稼働中', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => '稼働中', -)); +]); // // Class: SLA // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => '名前', @@ -332,13 +332,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:SLA/Attribute:customercontracts_list' => '顧客連絡先', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracted services using this SLA~~', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => '名前', @@ -375,13 +375,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:SLT/Attribute:unit/Value:minutes+' => '分', 'Class:SLT/Attribute:slas_list' => 'SLAs~~', 'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT~~', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkSLAToSLT' => 'リンク SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -403,13 +403,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkCustomerContractToService' => 'リンク 顧客契約/サービス', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -425,13 +425,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA名', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkProviderContractToService' => 'リンク プロバイダ契約/サービス', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~', @@ -443,13 +443,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'プロバイダ契約名', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DeliveryModel' => '提供モデル', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => '名前', @@ -464,13 +464,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model~~', 'Class:DeliveryModel/Attribute:customers_list' => '顧客', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model~~', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkDeliveryModelToContact' => 'Link 提供モデル/連絡先', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -486,44 +486,44 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => '役割名', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/nl.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/nl.dict.itop-service-mgmt.php index ebdc96778..3009ff9ed 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/nl.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/nl.dict.itop-service-mgmt.php @@ -1,17 +1,18 @@ * @author Jeffrey Bostoen (2018 - 2022) * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:ServiceManagement' => 'Service Management', 'Menu:ServiceManagement+' => 'Overzicht van Service Management', 'Menu:Service:Overview' => 'Overzicht', @@ -42,34 +43,33 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Contract:baseinfo' => 'Algemene informatie', 'Contract:moreinfo' => 'Contractuele informatie', 'Contract:cost' => 'Financiële informatie', -)); +]); // // Class: Organization // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Leveringsmodel', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Naam leveringsmodel', -)); - +]); // // Class: ContractType // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ContractType' => 'Soort contract', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Contract' => 'Contract', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Naam', @@ -118,23 +118,23 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Contract/Attribute:status/Value:production+' => 'Productie', 'Class:Contract/Attribute:finalclass' => 'Subklasse contract', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:CustomerContract' => 'Klantencontract', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Services', 'Class:CustomerContract/Attribute:services_list+' => 'Alle services die aangeschaft zijn voor dit contract', -)); +]); // // Class: ProviderContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ProviderContract' => 'Leverancierscontract', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CI\'s', @@ -149,13 +149,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services', 'Class:ProviderContract/Attribute:services_list+' => 'Alle services die aangeschaft zijn voor dit contract', -)); +]); // // Class: lnkContactToContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContactToContract' => 'Link Contact / Contract', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -167,13 +167,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Naam contact', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContractToDocument' => 'Link Contract / Document', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -185,13 +185,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Naam document', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ServiceFamily' => 'Servicecategorie', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Naam', @@ -200,13 +200,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Services', 'Class:ServiceFamily/Attribute:services_list+' => 'Alle services in deze categorie', -)); +]); // // Class: Service // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Service' => 'Service', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -244,13 +244,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Service/Attribute:functionalcis_list+' => 'Alle configuratie-items die gebruikt worden voor het beschikbaarheid van deze service', 'Class:Service/Attribute:servicesubcategories_list' => 'Subcategorieën service', 'Class:Service/Attribute:servicesubcategories_list+' => 'Alle subcategorieën van deze service', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDocumentToService' => 'Link Document / Service', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -262,13 +262,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Naam document', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContactToService' => 'Link Contact / Service', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -280,13 +280,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Naam contact', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ServiceSubcategory' => 'Subcategorie service', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -312,13 +312,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'Buiten gebruik', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Productie', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'Productie', -)); +]); // // Class: SLA // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Naam', @@ -334,13 +334,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:SLA/Attribute:customercontracts_list' => 'Klantencontracten', 'Class:SLA/Attribute:customercontracts_list+' => 'Alle klantencontracten die gebruik maken van deze SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Kan de link tussen klantencontract %1$s en service %2$s niet opslaan: SLA bestaat al.', -)); +]); // // Class: SLT // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Naam', @@ -377,13 +377,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'minuten', 'Class:SLT/Attribute:slas_list' => 'SLAs', 'Class:SLT/Attribute:slas_list+' => 'Alle Service Level Agreements die deze SLT gebruiken', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkSLAToSLT' => 'Link SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -405,13 +405,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Eenheid SLT-waarde', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkCustomerContractToService' => 'Link Klantencontract / Service', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -427,13 +427,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Naam SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkProviderContractToService' => 'Link Leverancierscontract / Service', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -445,13 +445,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Naam leverancierscontract', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DeliveryModel' => 'Delivery Model', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Naam', @@ -466,13 +466,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Alle contacten (teams en personen) voor dit leveringsmodel', 'Class:DeliveryModel/Attribute:customers_list' => 'Klanten', 'Class:DeliveryModel/Attribute:customers_list+' => 'Alle klanten die gebruik maken van dit leveringsmodel', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkDeliveryModelToContact' => 'Link Leveringsmodel / Contact', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -488,44 +488,44 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Naam rol', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/pl.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/pl.dict.itop-service-mgmt.php index 094ca6b42..fb3b06161 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/pl.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/pl.dict.itop-service-mgmt.php @@ -1,15 +1,16 @@ 'Zarządzanie usługami', 'Menu:ServiceManagement+' => 'Omówienie zarządzania usługami', 'Menu:Service:Overview' => 'Przegląd', @@ -40,34 +41,33 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Contract:baseinfo' => 'Informacje ogólne', 'Contract:moreinfo' => 'Informacje o umowach', 'Contract:cost' => 'Informacje o kosztach', -)); +]); // // Class: Organization // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Model obsługi', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Nazwa modelu obsługi', -)); - +]); // // Class: ContractType // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ContractType' => 'Typ umowy', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Contract' => 'Umowa', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Nazwa', @@ -116,23 +116,23 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Contract/Attribute:status/Value:production+' => 'użytkowane', 'Class:Contract/Attribute:finalclass' => 'Podklasa umowy', 'Class:Contract/Attribute:finalclass+' => 'Nazwa ostatniej klasy', -)); +]); // // Class: CustomerContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:CustomerContract' => 'Umowa z klientem', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Usługi', 'Class:CustomerContract/Attribute:services_list+' => 'Wszystkie usługi zakupione w ramach tej umowy', -)); +]); // // Class: ProviderContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ProviderContract' => 'Umowa z dostawcą', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'Konfiguracje', @@ -147,13 +147,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Usługi', 'Class:ProviderContract/Attribute:services_list+' => 'Wszystkie usługi zakupione w ramach niniejszej umowy', -)); +]); // // Class: lnkContactToContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContactToContract' => 'Połączenie Kontakt / Umowa', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -165,13 +165,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Nazwa kontaktu', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContractToDocument' => 'Połączenie Umowa / Dokument', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -183,13 +183,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Nazwa dokumentu', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ServiceFamily' => 'Rodzina usług', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Nazwa', @@ -198,13 +198,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => 'Usługi', 'Class:ServiceFamily/Attribute:services_list+' => 'Wszystkie usługi w tej kategorii', -)); +]); // // Class: Service // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Service' => 'Usługa', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -242,13 +242,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Service/Attribute:functionalcis_list+' => 'Wszystkie elementy konfiguracji, które są używane do świadczenia tej usługi', 'Class:Service/Attribute:servicesubcategories_list' => 'Podkategorie usług', 'Class:Service/Attribute:servicesubcategories_list+' => 'Wszystkie podkategorie tej usługi', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDocumentToService' => 'Połączenie Dokument / Usługa', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -260,13 +260,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Nazwa dokumentu', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContactToService' => 'Połączenie Kontakt / Usługa', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -278,13 +278,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Nazwa kontaktu', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ServiceSubcategory' => 'Podkategoria usługi', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -310,13 +310,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'wycofane', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'użytkowane', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'użytkowane', -)); +]); // // Class: SLA // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:SLA' => 'Umowa SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Nazwa', @@ -332,13 +332,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:SLA/Attribute:customercontracts_list' => 'Umowy z klientami', 'Class:SLA/Attribute:customercontracts_list+' => 'Wszystkie umowy z klientami korzystające z tej umowy SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Nie udało się zapisać połączenia z umową klienta %1$s i usługą %2$s : Umowa SLA już istnieje', -)); +]); // // Class: SLT // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:SLT' => 'Poziom usług SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Nazwa', @@ -375,13 +375,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'minut', 'Class:SLT/Attribute:slas_list' => 'SLA', 'Class:SLT/Attribute:slas_list+' => 'Wszystkie umowy dotyczące poziomu usług korzystające z tego SLT', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkSLAToSLT' => 'Połączenie SLA / SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -403,13 +403,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Jednostka wartości SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkCustomerContractToService' => 'Połączenie Umowa z klientem / Usługa', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -425,13 +425,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'Nazwa umowy SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkProviderContractToService' => 'Połączenie Umowa z dostawcą / Usługa', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -443,13 +443,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Nazwa umowy z dostawcą', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DeliveryModel' => 'Model obsługi', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Nazwa', @@ -464,13 +464,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Wszystkie kontakty (zespoły i osoby) dla tego modelu obsługi', 'Class:DeliveryModel/Attribute:customers_list' => 'Klienci', 'Class:DeliveryModel/Attribute:customers_list+' => 'Wszyscy klienci posiadający ten model obsługi', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkDeliveryModelToContact' => 'Połączenie Model obsługi / Kontakt', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -486,44 +486,44 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Nazwa roli', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/ru.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/ru.dict.itop-service-mgmt.php index 9baba0d47..d8d7c5776 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/ru.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/ru.dict.itop-service-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:ServiceManagement' => 'Управление услугами', 'Menu:ServiceManagement+' => 'Управление услугами', 'Menu:Service:Overview' => 'Обзор', @@ -41,34 +42,33 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); // // Class: Organization // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Модель предоставления услуг', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Модель предоставления услуг', -)); - +]); // // Class: ContractType // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ContractType' => 'Тип договора', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Contract' => 'Договор', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Название', @@ -117,23 +117,23 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Contract/Attribute:status/Value:production+' => 'Эксплуатация', 'Class:Contract/Attribute:finalclass' => 'Тип', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:CustomerContract' => 'Договор с заказчиком', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Услуги', 'Class:CustomerContract/Attribute:services_list+' => 'Все услуги, предоставляемые по договору', -)); +]); // // Class: ProviderContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ProviderContract' => 'Договор с поставщиком', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'КЕ', @@ -148,13 +148,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => 'Services~~', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContactToContract' => 'Связь Контакт/Договор', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -166,13 +166,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => 'Контакт', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContractToDocument' => 'Связь Договор/Документ', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -184,13 +184,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => 'Документ', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ServiceFamily' => 'Пакет услуг', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => 'Название', @@ -199,13 +199,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ServiceFamily/Attribute:icon+' => 'Используется на клиентском портале', 'Class:ServiceFamily/Attribute:services_list' => 'Услуги', 'Class:ServiceFamily/Attribute:services_list+' => 'Связанные услуги', -)); +]); // // Class: Service // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Service' => 'Услуга', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -243,13 +243,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Service/Attribute:functionalcis_list+' => 'Конфигурационные единицы, которые используются для предоставления услуги', 'Class:Service/Attribute:servicesubcategories_list' => 'Подкатегории услуги', 'Class:Service/Attribute:servicesubcategories_list+' => 'Подкатегории услуги', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDocumentToService' => 'Связь Документ/Услуга', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -261,13 +261,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => 'Документ', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContactToService' => 'Связь Контакт/Услуга', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -279,13 +279,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => 'Контакт', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ServiceSubcategory' => 'Подкатегория услуги', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -311,13 +311,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'Устаревший', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Эксплуатация', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'Эксплуатация', -)); +]); // // Class: SLA // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => 'Название', @@ -333,13 +333,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:SLA/Attribute:customercontracts_list' => 'Договоры с заказчиками', 'Class:SLA/Attribute:customercontracts_list+' => 'Договоры с заказчиками, в которых используется SLA', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => 'Название', @@ -376,13 +376,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'Минуты', 'Class:SLT/Attribute:slas_list' => 'SLAs~~', 'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT~~', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkSLAToSLT' => 'Связь SLA/SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -404,13 +404,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Единицы SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkCustomerContractToService' => 'Связь Договор с заказчиком/Услуга', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -426,13 +426,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkProviderContractToService' => 'Связь Договор с поставщиком/Услуга', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~', @@ -444,13 +444,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Договор с поставщиком', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DeliveryModel' => 'Модель предоставления услуг', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => 'Название', @@ -465,13 +465,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Контакты (команды и персоны), которые участвуют в предоставлении услуг по этой модели', 'Class:DeliveryModel/Attribute:customers_list' => 'Заказчики', 'Class:DeliveryModel/Attribute:customers_list+' => 'Заказчики, которым предоставляются услуги по этой модели', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkDeliveryModelToContact' => 'Связь Модель предоставления услуг/Контакт', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -487,44 +487,44 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Роль', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/sk.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/sk.dict.itop-service-mgmt.php index 47f5175b5..3b8fd19d3 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/sk.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/sk.dict.itop-service-mgmt.php @@ -1,15 +1,16 @@ 'Manažment služieb', 'Menu:ServiceManagement+' => 'Service management overview~~', 'Menu:Service:Overview' => 'Prehľad', @@ -40,34 +41,33 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); // // Class: Organization // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Model dodávky', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Názov modelu dodávky', -)); - +]); // // Class: ContractType // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ContractType' => 'Typ zmluvy', 'Class:ContractType+' => '~~', -)); +]); // // Class: Contract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Contract' => 'zmluva', 'Class:Contract+' => '~~', 'Class:Contract/Attribute:name' => 'Názov', @@ -116,23 +116,23 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Contract/Attribute:status/Value:production+' => 'production~~', 'Class:Contract/Attribute:finalclass' => 'Typ', 'Class:Contract/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: CustomerContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:CustomerContract' => 'Zákaznícka zmluva', 'Class:CustomerContract+' => '~~', 'Class:CustomerContract/Attribute:services_list' => 'Služby', 'Class:CustomerContract/Attribute:services_list+' => 'All the services purchased for this contract~~', -)); +]); // // Class: ProviderContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ProviderContract' => 'Poskytovateľská zmluva', 'Class:ProviderContract+' => '~~', 'Class:ProviderContract/Attribute:functionalcis_list' => 'Zariadenia', @@ -147,13 +147,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '~~', 'Class:ProviderContract/Attribute:services_list' => 'Services~~', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContactToContract' => 'väzba - Kontakt / zmluva', 'Class:lnkContactToContract+' => '~~', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -165,13 +165,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '~~', 'Class:lnkContactToContract/Attribute:contact_name' => 'Názov kontaktu', 'Class:lnkContactToContract/Attribute:contact_name+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContractToDocument' => 'väzba - zmluva / Dokument', 'Class:lnkContractToDocument+' => '~~', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -183,13 +183,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '~~', 'Class:lnkContractToDocument/Attribute:document_name' => 'Názov dokumentu', 'Class:lnkContractToDocument/Attribute:document_name+' => '~~', -)); +]); // // Class: ServiceFamily // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ServiceFamily' => 'Kategória služieb', 'Class:ServiceFamily+' => '~~', 'Class:ServiceFamily/Attribute:name' => 'Názov', @@ -198,13 +198,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ServiceFamily/Attribute:icon+' => '~~', 'Class:ServiceFamily/Attribute:services_list' => 'Služby', 'Class:ServiceFamily/Attribute:services_list+' => 'All the services in this category~~', -)); +]); // // Class: Service // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Service' => 'Služby', 'Class:Service+' => '~~', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -242,13 +242,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Service/Attribute:functionalcis_list+' => 'All the configuration items that are used to provide this service~~', 'Class:Service/Attribute:servicesubcategories_list' => 'Podkategórie služieb', 'Class:Service/Attribute:servicesubcategories_list+' => 'All the sub categories for this service~~', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDocumentToService' => 'väzba - Dokument / Služba', 'Class:lnkDocumentToService+' => '~~', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -260,13 +260,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '~~', 'Class:lnkDocumentToService/Attribute:document_name' => 'Názov dokumentu', 'Class:lnkDocumentToService/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkContactToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContactToService' => 'väzba - Kontakt / Služba', 'Class:lnkContactToService+' => '~~', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -278,13 +278,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkContactToService/Attribute:contact_id+' => '~~', 'Class:lnkContactToService/Attribute:contact_name' => 'Názov kontaktu', 'Class:lnkContactToService/Attribute:contact_name+' => '~~', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ServiceSubcategory' => 'Podkategória služieb', 'Class:ServiceSubcategory+' => '~~', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -310,13 +310,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'obsolete~~', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Produkcia', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'production~~', -)); +]); // // Class: SLA // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '~~', 'Class:SLA/Attribute:name' => 'Názov', @@ -332,13 +332,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:SLA/Attribute:customercontracts_list' => 'Zákaznícke zmluvy', 'Class:SLA/Attribute:customercontracts_list+' => 'All the customer contracted services using this SLA~~', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '~~', 'Class:SLT/Attribute:name' => 'Názov', @@ -375,13 +375,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'minutes~~', 'Class:SLT/Attribute:slas_list' => 'SLAs~~', 'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT~~', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkSLAToSLT' => 'väzba - SLA / SLT', 'Class:lnkSLAToSLT+' => '~~', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -403,13 +403,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkCustomerContractToService' => 'väzba - Zákaznícka zmluva / Služba', 'Class:lnkCustomerContractToService+' => '~~', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -425,13 +425,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '~~', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Názov', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkProviderContractToService' => 'väzba - Poskytovateľská zmluva / Služba', 'Class:lnkProviderContractToService+' => '~~', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~', @@ -443,13 +443,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '~~', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Názov poskytovateľského zmluvy', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '~~', -)); +]); // // Class: DeliveryModel // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DeliveryModel' => 'Model dodávky', 'Class:DeliveryModel+' => '~~', 'Class:DeliveryModel/Attribute:name' => 'Názov', @@ -464,13 +464,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'All the contacts (Teams and Persons) for this delivery model~~', 'Class:DeliveryModel/Attribute:customers_list' => 'Zákazníci', 'Class:DeliveryModel/Attribute:customers_list+' => 'All the customers having this delivering model~~', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkDeliveryModelToContact' => 'väzba - Model dodávky / Kontakt', 'Class:lnkDeliveryModelToContact+' => '~~', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -486,44 +486,44 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Názov role', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/tr.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/tr.dict.itop-service-mgmt.php index 99f783380..8208036e0 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/tr.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/tr.dict.itop-service-mgmt.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:ServiceManagement' => 'Hizmet yönetimi', 'Menu:ServiceManagement+' => 'Hizmet yönetimi', 'Menu:Service:Overview' => 'Özet', @@ -41,34 +42,33 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Contract:baseinfo' => 'General information~~', 'Contract:moreinfo' => 'Contractual information~~', 'Contract:cost' => 'Cost information~~', -)); +]); // // Class: Organization // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Organization/Attribute:deliverymodel_id' => 'Teslimat Modeli', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.~~', 'Class:Organization/Attribute:deliverymodel_name' => 'Teslimat Modeli Adı', -)); - +]); // // Class: ContractType // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ContractType' => 'Sözleşme Tipi', 'Class:ContractType+' => '~~', -)); +]); // // Class: Contract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Contract' => 'Sözleşme', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => 'Adı', @@ -117,23 +117,23 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Contract/Attribute:status/Value:production+' => 'Kullanımda', 'Class:Contract/Attribute:finalclass' => 'Tip', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:CustomerContract' => 'Müşteri Sözleşmesi', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => 'Hizmetler', 'Class:CustomerContract/Attribute:services_list+' => 'Bu sözleşme için satın alınan tüm hizmetler', -)); +]); // // Class: ProviderContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ProviderContract' => 'Tedarikçi Sözleşmesi', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => 'CI\'lar', @@ -148,13 +148,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '~~', 'Class:ProviderContract/Attribute:services_list' => 'Services~~', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContactToContract' => 'İletişim / Sözleşme bağla', 'Class:lnkContactToContract+' => '~~', 'Class:lnkContactToContract/Name' => '%1$s / %2$s~~', @@ -166,13 +166,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '~~', 'Class:lnkContactToContract/Attribute:contact_name' => 'Kişi Adı', 'Class:lnkContactToContract/Attribute:contact_name+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContractToDocument' => 'Sözleşmesi / Belge bağla', 'Class:lnkContractToDocument+' => '~~', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s~~', @@ -184,13 +184,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '~~', 'Class:lnkContractToDocument/Attribute:document_name' => 'Belge Adı', 'Class:lnkContractToDocument/Attribute:document_name+' => '~~', -)); +]); // // Class: ServiceFamily // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ServiceFamily' => 'Servis Ailesi', 'Class:ServiceFamily+' => '~~', 'Class:ServiceFamily/Attribute:name' => 'İsim', @@ -199,13 +199,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ServiceFamily/Attribute:icon+' => '~~', 'Class:ServiceFamily/Attribute:services_list' => 'Hizmetler', 'Class:ServiceFamily/Attribute:services_list+' => 'Bu kategorideki tüm hizmetler', -)); +]); // // Class: Service // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Service' => 'Hizmet', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s~~', @@ -243,13 +243,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Service/Attribute:functionalcis_list+' => 'Bu hizmeti sağlamak için kullanılan tüm yapılandırma öğeleri', 'Class:Service/Attribute:servicesubcategories_list' => 'Servis alt kategorileri', 'Class:Service/Attribute:servicesubcategories_list+' => 'Bu hizmet için tüm alt kategoriler', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDocumentToService' => 'Belge / servis bağla', 'Class:lnkDocumentToService+' => '~~', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s~~', @@ -261,13 +261,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '~~', 'Class:lnkDocumentToService/Attribute:document_name' => 'Belge Adı', 'Class:lnkDocumentToService/Attribute:document_name+' => '~~', -)); +]); // // Class: lnkContactToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContactToService' => 'Kişi / Servis bağla', 'Class:lnkContactToService+' => '~~', 'Class:lnkContactToService/Name' => '%1$s / %2$s~~', @@ -279,13 +279,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkContactToService/Attribute:contact_id+' => '~~', 'Class:lnkContactToService/Attribute:contact_name' => 'Kişi Adı', 'Class:lnkContactToService/Attribute:contact_name+' => '~~', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ServiceSubcategory' => 'Hizmet alt kategorisi', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s~~', @@ -311,13 +311,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => 'Kullanım dışı', 'Class:ServiceSubcategory/Attribute:status/Value:production' => 'Kullanımda', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => 'Kullanımda', -)); +]); // // Class: SLA // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => 'Hizmet Seviyesi Anlaşması', 'Class:SLA/Attribute:name' => 'Adı', @@ -333,13 +333,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:SLA/Attribute:customercontracts_list' => 'Müşteri Sözleşmeleri', 'Class:SLA/Attribute:customercontracts_list+' => 'Bu SLA\'yı kullanan tüm müşterilerin sözleşmeleri', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', -)); +]); // // Class: SLT // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => 'Hizmet Seviyesi Taahütler', 'Class:SLT/Attribute:name' => 'Adı', @@ -376,13 +376,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:SLT/Attribute:unit/Value:minutes+' => 'dakikalar', 'Class:SLT/Attribute:slas_list' => 'SLAs~~', 'Class:SLT/Attribute:slas_list+' => 'All the service level agreements using this SLT~~', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkSLAToSLT' => 'SLA / SLT bağla', 'Class:lnkSLAToSLT+' => '~~', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s~~', @@ -404,13 +404,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit~~', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkCustomerContractToService' => 'Müşteri Sözleşmesi / Servis bağla', 'Class:lnkCustomerContractToService+' => '~~', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s~~', @@ -426,13 +426,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '~~', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA Adı', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkProviderContractToService' => 'Sağlayıcı Sözleşmesi / Servis bağla', 'Class:lnkProviderContractToService+' => '~~', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s~~', @@ -444,13 +444,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '~~', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => 'Sağlayıcı Sözleşme Adı', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '~~', -)); +]); // // Class: DeliveryModel // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DeliveryModel' => 'Teslimat Modeli', 'Class:DeliveryModel+' => '~~', 'Class:DeliveryModel/Attribute:name' => 'İsim', @@ -465,13 +465,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:DeliveryModel/Attribute:contacts_list+' => 'Bu teslimat modeli için tüm temaslar (birimler ve kişi)', 'Class:DeliveryModel/Attribute:customers_list' => 'Müşteriler', 'Class:DeliveryModel/Attribute:customers_list+' => 'Bu teslimat modeline sahip tüm müşteriler', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkDeliveryModelToContact' => 'Teslimatı Modeli / Kişi bağla', 'Class:lnkDeliveryModelToContact+' => '~~', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s~~', @@ -487,44 +487,44 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '~~', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => 'Rol Adı', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/zh_cn.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/zh_cn.dict.itop-service-mgmt.php index ab42ad136..e86711002 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/zh_cn.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/zh_cn.dict.itop-service-mgmt.php @@ -1,4 +1,5 @@ /Stimulus: // Class:/Stimulus:+ // Menu, fieldsets, UI, messages translations -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:ServiceManagement' => '服务管理', 'Menu:ServiceManagement+' => '服务管理概况', 'Menu:Service:Overview' => '概况', @@ -61,34 +62,33 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Contract:baseinfo' => '常规信息', 'Contract:moreinfo' => '合同信息', 'Contract:cost' => '费用信息', -)); +]); // // Class: Organization // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Organization/Attribute:deliverymodel_id' => '交付模式', 'Class:Organization/Attribute:deliverymodel_id+' => 'This is required for Tickets handling. The delivery model specifies the teams to which tickets can be assigned.~~', 'Class:Organization/Attribute:deliverymodel_name' => '交付模式名称', -)); - +]); // // Class: ContractType // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ContractType' => '合同类型', 'Class:ContractType+' => '', -)); +]); // // Class: Contract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Contract' => '合同', 'Class:Contract+' => '', 'Class:Contract/Attribute:name' => '名称', @@ -137,23 +137,23 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Contract/Attribute:status/Value:production+' => '生产', 'Class:Contract/Attribute:finalclass' => '类型', 'Class:Contract/Attribute:finalclass+' => '', -)); +]); // // Class: CustomerContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CustomerContract' => '客户合同', 'Class:CustomerContract+' => '', 'Class:CustomerContract/Attribute:services_list' => '服务', 'Class:CustomerContract/Attribute:services_list+' => '此合同包含的所有服务', -)); +]); // // Class: ProviderContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ProviderContract' => '供应商合同', 'Class:ProviderContract+' => '', 'Class:ProviderContract/Attribute:functionalcis_list' => '配置项', @@ -168,13 +168,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ProviderContract/Attribute:contracttype_name+' => '', 'Class:ProviderContract/Attribute:services_list' => '服务', 'Class:ProviderContract/Attribute:services_list+' => 'All the services purchased with this contract~~', -)); +]); // // Class: lnkContactToContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContactToContract' => '关联 联系人/合同', 'Class:lnkContactToContract+' => '', 'Class:lnkContactToContract/Name' => '%1$s / %2$s', @@ -186,13 +186,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkContactToContract/Attribute:contact_id+' => '', 'Class:lnkContactToContract/Attribute:contact_name' => '联系人名称', 'Class:lnkContactToContract/Attribute:contact_name+' => '', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContractToDocument' => '关联合同/文档', 'Class:lnkContractToDocument+' => '', 'Class:lnkContractToDocument/Name' => '%1$s / %2$s', @@ -204,13 +204,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkContractToDocument/Attribute:document_id+' => '', 'Class:lnkContractToDocument/Attribute:document_name' => '文档名称', 'Class:lnkContractToDocument/Attribute:document_name+' => '', -)); +]); // // Class: ServiceFamily // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ServiceFamily' => '服务系列', 'Class:ServiceFamily+' => '', 'Class:ServiceFamily/Attribute:name' => '名称', @@ -219,13 +219,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ServiceFamily/Attribute:icon+' => '', 'Class:ServiceFamily/Attribute:services_list' => '服务', 'Class:ServiceFamily/Attribute:services_list+' => '所有的服务', -)); +]); // // Class: Service // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Service' => '服务', 'Class:Service+' => '', 'Class:Service/ComplementaryName' => '%1$s - %2$s', @@ -263,13 +263,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Service/Attribute:functionalcis_list+' => '提供此服务所需的所有配置项', 'Class:Service/Attribute:servicesubcategories_list' => '子服务', 'Class:Service/Attribute:servicesubcategories_list+' => '此服务的所有子服务', -)); +]); // // Class: lnkDocumentToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDocumentToService' => '关联文档/服务', 'Class:lnkDocumentToService+' => '', 'Class:lnkDocumentToService/Name' => '%1$s / %2$s', @@ -281,13 +281,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDocumentToService/Attribute:document_id+' => '', 'Class:lnkDocumentToService/Attribute:document_name' => '文档名称', 'Class:lnkDocumentToService/Attribute:document_name+' => '', -)); +]); // // Class: lnkContactToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContactToService' => '关联联系人/服务', 'Class:lnkContactToService+' => '', 'Class:lnkContactToService/Name' => '%1$s / %2$s', @@ -299,13 +299,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkContactToService/Attribute:contact_id+' => '', 'Class:lnkContactToService/Attribute:contact_name' => '联系人名称', 'Class:lnkContactToService/Attribute:contact_name+' => '', -)); +]); // // Class: ServiceSubcategory // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ServiceSubcategory' => '子服务', 'Class:ServiceSubcategory+' => '', 'Class:ServiceSubcategory/ComplementaryName' => '%1$s - %2$s', @@ -331,13 +331,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ServiceSubcategory/Attribute:status/Value:obsolete+' => '废弃', 'Class:ServiceSubcategory/Attribute:status/Value:production' => '生产', 'Class:ServiceSubcategory/Attribute:status/Value:production+' => '生产', -)); +]); // // Class: SLA // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SLA' => 'SLA', 'Class:SLA+' => '', 'Class:SLA/Attribute:name' => '名称', @@ -353,13 +353,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:SLA/Attribute:customercontracts_list' => '客户合同', 'Class:SLA/Attribute:customercontracts_list+' => '使用此SLA的所有客户合同', 'Class:SLA/Error:UniqueLnkCustomerContractToService' => '不能保存客户合同%1$s与服务%2$s的关联: SLA已存在', -)); +]); // // Class: SLT // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SLT' => 'SLT', 'Class:SLT+' => '', 'Class:SLT/Attribute:name' => '名称', @@ -396,13 +396,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:SLT/Attribute:unit/Value:minutes+' => '分钟', 'Class:SLT/Attribute:slas_list' => 'SLA', 'Class:SLT/Attribute:slas_list+' => '所有使用此 SLT 的 SLA', -)); +]); // // Class: lnkSLAToSLT // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkSLAToSLT' => '关联SLA/SLT', 'Class:lnkSLAToSLT+' => '', 'Class:lnkSLAToSLT/Name' => '%1$s / %2$s', @@ -424,13 +424,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'SLT 单位', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkCustomerContractToService' => '关联客户合同/服务', 'Class:lnkCustomerContractToService+' => '', 'Class:lnkCustomerContractToService/Name' => '%1$s / %2$s', @@ -446,13 +446,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkCustomerContractToService/Attribute:sla_id+' => '', 'Class:lnkCustomerContractToService/Attribute:sla_name' => 'SLA名称', 'Class:lnkCustomerContractToService/Attribute:sla_name+' => '', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkProviderContractToService' => '关联供应商合同/服务', 'Class:lnkProviderContractToService+' => '', 'Class:lnkProviderContractToService/Name' => '%1$s / %2$s', @@ -464,13 +464,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkProviderContractToService/Attribute:providercontract_id+' => '', 'Class:lnkProviderContractToService/Attribute:providercontract_name' => '供应商合同名称', 'Class:lnkProviderContractToService/Attribute:providercontract_name+' => '', -)); +]); // // Class: DeliveryModel // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DeliveryModel' => '交付模式', 'Class:DeliveryModel+' => '', 'Class:DeliveryModel/Attribute:name' => '名称', @@ -485,13 +485,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:DeliveryModel/Attribute:contacts_list+' => '此交付模式相关的所有联系人 (包括团队和人员)', 'Class:DeliveryModel/Attribute:customers_list' => '客户', 'Class:DeliveryModel/Attribute:customers_list+' => '所有使用此交付模式的客户', -)); +]); // // Class: lnkDeliveryModelToContact // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkDeliveryModelToContact' => '关联交付模式/联系人', 'Class:lnkDeliveryModelToContact+' => '', 'Class:lnkDeliveryModelToContact/Name' => '%1$s / %2$s', @@ -507,44 +507,44 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkDeliveryModelToContact/Attribute:role_id+' => '', 'Class:lnkDeliveryModelToContact/Attribute:role_name' => '角色名称', 'Class:lnkDeliveryModelToContact/Attribute:role_name+' => '', -)); +]); // // Class: lnkContactToContract // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContactToContract/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContactToContract/Attribute:customer_id+' => '~~', 'Class:lnkContactToContract/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContactToContract/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkContractToDocument // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContractToDocument/Attribute:customer_id' => 'Customer id~~', 'Class:lnkContractToDocument/Attribute:customer_id+' => '~~', 'Class:lnkContractToDocument/Attribute:provider_id' => 'Provider id~~', 'Class:lnkContractToDocument/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkCustomerContractToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkCustomerContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkCustomerContractToService/Attribute:provider_id+' => '~~', -)); +]); // // Class: lnkProviderContractToService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkProviderContractToService/Attribute:provider_id' => 'Provider id~~', 'Class:lnkProviderContractToService/Attribute:provider_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-service-mgmt/main.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/main.itop-service-mgmt.php index 2baed1313..ec6c4c958 100755 --- a/datamodels/2.x/itop-service-mgmt/main.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/main.itop-service-mgmt.php @@ -1,9 +1,10 @@ - - -?> diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/cs.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/cs.dict.itop-storage-mgmt.php index 4b7b1dfe9..0b7a61814 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/cs.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/cs.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/da.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/da.dict.itop-storage-mgmt.php index 35a4149a1..ef7815d5f 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/da.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/da.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/de.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/de.dict.itop-storage-mgmt.php index 1eadac564..f038f0eb5 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/de.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/de.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/en.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/en.dict.itop-storage-mgmt.php index 0cf62ec91..0ed04c5b2 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/en.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/en.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id', 'Class:NASFileSystem/Attribute:org_id+' => '', 'Class:NASFileSystem/Attribute:location_id' => 'Location id', 'Class:NASFileSystem/Attribute:location_id+' => '', 'Class:NASFileSystem/Attribute:location_name' => 'Location name', 'Class:NASFileSystem/Attribute:location_name+' => '', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id', 'Class:FiberChannelInterface/Attribute:org_id+' => '', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id', 'Class:FiberChannelInterface/Attribute:location_id+' => '', -)); +]); // // Class: LogicalVolume // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id', 'Class:LogicalVolume/Attribute:org_id+' => '', 'Class:LogicalVolume/Attribute:location_id' => 'Location id', 'Class:LogicalVolume/Attribute:location_id+' => '', 'Class:LogicalVolume/Attribute:location_name' => 'Location name', 'Class:LogicalVolume/Attribute:location_name+' => '', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/en_gb.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/en_gb.dict.itop-storage-mgmt.php index 8308d6eea..1b018e263 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/en_gb.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/en_gb.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/es_cr.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/es_cr.dict.itop-storage-mgmt.php index 2fd702e31..b79aafef0 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/es_cr.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/es_cr.dict.itop-storage-mgmt.php @@ -1,49 +1,50 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/fr.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/fr.dict.itop-storage-mgmt.php index 6cc497d31..23f057e05 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/fr.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/fr.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/hu.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/hu.dict.itop-storage-mgmt.php index 5275905bb..90d9af2a2 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/hu.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/hu.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/it.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/it.dict.itop-storage-mgmt.php index 5f954f003..0e28ac602 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/it.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/it.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/ja.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/ja.dict.itop-storage-mgmt.php index e4ff8a089..620058802 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/ja.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/ja.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/nl.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/nl.dict.itop-storage-mgmt.php index 40a1dfa01..a408a0aba 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/nl.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/nl.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/pl.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/pl.dict.itop-storage-mgmt.php index 13695f6c4..a11d35e7b 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/pl.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/pl.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/pt_br.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/pt_br.dict.itop-storage-mgmt.php index 1f0695b7a..33dbe76b9 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/pt_br.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/pt_br.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/ru.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/ru.dict.itop-storage-mgmt.php index aaab135db..0b55b4d59 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/ru.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/ru.dict.itop-storage-mgmt.php @@ -1,52 +1,53 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/sk.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/sk.dict.itop-storage-mgmt.php index 81d39cff8..8f4ee0a22 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/sk.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/sk.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/tr.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/tr.dict.itop-storage-mgmt.php index 3790d32b0..8b3b4c991 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/tr.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/tr.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/zh_cn.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/zh_cn.dict.itop-storage-mgmt.php index 440f90f01..6f33c7457 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/zh_cn.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/zh_cn.dict.itop-storage-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Dictionary entries go here -)); +]); // // Class: NASFileSystem // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:NASFileSystem/Attribute:org_id' => 'Org id~~', 'Class:NASFileSystem/Attribute:org_id+' => '~~', 'Class:NASFileSystem/Attribute:location_id' => 'Location id~~', 'Class:NASFileSystem/Attribute:location_id+' => '~~', 'Class:NASFileSystem/Attribute:location_name' => 'Location name~~', 'Class:NASFileSystem/Attribute:location_name+' => '~~', -)); +]); // // Class: FiberChannelInterface // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:FiberChannelInterface/Attribute:org_id' => 'Org id~~', 'Class:FiberChannelInterface/Attribute:org_id+' => '~~', 'Class:FiberChannelInterface/Attribute:location_id' => 'Location id~~', 'Class:FiberChannelInterface/Attribute:location_id+' => '~~', -)); +]); // // Class: LogicalVolume // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:LogicalVolume/Attribute:org_id' => 'Org id~~', 'Class:LogicalVolume/Attribute:org_id+' => '~~', 'Class:LogicalVolume/Attribute:location_id' => 'Location id~~', 'Class:LogicalVolume/Attribute:location_id+' => '~~', 'Class:LogicalVolume/Attribute:location_name' => 'Location name~~', 'Class:LogicalVolume/Attribute:location_name+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/cs.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/cs.dict.itop-structure.php index 8e459be45..a2a44d984 100644 --- a/datamodels/2.x/itop-structure/dictionaries/cs.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/cs.dict.itop-structure.php @@ -1,10 +1,11 @@ @@ -12,7 +13,7 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Organization' => 'Organizace', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Název', @@ -39,13 +40,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Organization:Overview:FunctionalCIs' => 'Konfigurační položky této organizace', 'Organization:Overview:FunctionalCIs:subtitle' => 'podle typu', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Uživatelé v rámci této organizace', -)); +]); // // Class: Location // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Location' => 'Umístění', 'Class:Location+' => 'Jakékoli umístění: země, okres, město, čtvrť, budova, patro, místnost, rack,...', 'Class:Location/Attribute:name' => 'Název', @@ -72,13 +73,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Location/Attribute:physicaldevice_list+' => 'Všechna zařízení v tomto umístění', 'Class:Location/Attribute:person_list' => 'Kontakty', 'Class:Location/Attribute:person_list+' => 'Všechny kontakty v tomto umístění', -)); +]); // // Class: Contact // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Contact' => 'Kontakt', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s~~', @@ -110,13 +111,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Contact/Attribute:cis_list+' => 'Všechny konfigurační položky spojené s tímto kontaktem', 'Class:Contact/Attribute:finalclass' => 'Typ kontaktu', 'Class:Contact/Attribute:finalclass+' => '', -)); +]); // // Class: Person // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Person' => 'Osoba', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -151,13 +152,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Person/UniquenessRule:name+' => 'Jméno zaměstnance by mělo být v rámci organizace jedinečné', 'Class:Person/UniquenessRule:name' => 'V organizaci \'$this->org_name$\' již existuje osoba se stejným jménem', 'Class:Person/Error:ChangingOrgDenied' => 'Tuto osobu nelze přesunout do organizace \'%1$s\' protože její přiřazený uživatel nemá oprávnění k této organizaci a přerušil by se tím přístup osoby k standardnímu portálu', -)); +]); // // Class: Team // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Team' => 'Tým', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s~~', @@ -165,13 +166,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Team/Attribute:persons_list+' => 'Všichni členové týmu', 'Class:Team/Attribute:tickets_list' => 'Tikety', 'Class:Team/Attribute:tickets_list+' => 'Všechny tikety přidělené tomuto týmu', -)); +]); // // Class: Document // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Document' => 'Dokument', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -201,77 +202,77 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Document/Attribute:cis_list+' => 'Všechny konfigurační položky spojené s tímto dokumentem', 'Class:Document/Attribute:finalclass' => 'Typ dokumentu', 'Class:Document/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentFile // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DocumentFile' => 'Dokument (soubor)', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'Soubor', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DocumentNote' => 'Dokument (poznámka)', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'Poznámka', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DocumentWeb' => 'Dokument (web)', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Typology' => 'Typologie', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => 'Název', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Typ', 'Class:Typology/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentType // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:DocumentType' => 'Typ dokumentu', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:ContactType' => 'Typ kontaktu', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkPersonToTeam' => 'Spojení (Osoba / Tým)', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~', @@ -288,13 +289,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => '', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Název role', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:DataAdministration' => 'Správa dat', 'Menu:DataAdministration+' => 'Správa dat', 'Menu:Catalogs' => 'Katalogy', @@ -332,20 +333,20 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Menu:Typology+' => 'Konfigurace typologie', 'UI_WelcomeMenu_AllConfigItems' => 'Souhrn', 'Menu:ConfigManagement:Typology' => 'Konfigurace typologie', -)); +]); // Add translation for Fieldsets -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Person:info' => 'Obecné informace', 'User:info' => 'Obecné informace', 'User:profiles' => 'Profily (minimálně jeden)', 'Person:personal_info' => 'Osobní informace', 'Person:notifiy' => 'Upozornění', -)); +]); // Themes -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'theme:fullmoon' => 'Úplněk', 'theme:test-red' => 'Testovací instance (červená)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/da.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/da.dict.itop-structure.php index f4c92da42..e82b5d11a 100644 --- a/datamodels/2.x/itop-structure/dictionaries/da.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/da.dict.itop-structure.php @@ -1,17 +1,18 @@ * @author Erik Bøg * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Organization' => 'Organisation', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Navn', @@ -38,13 +39,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Organization:Overview:FunctionalCIs' => 'Configuration items of this organization~~', 'Organization:Overview:FunctionalCIs:subtitle' => 'by type~~', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Users within this organization~~', -)); +]); // // Class: Location // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Location' => 'Placering', 'Class:Location+' => 'Enhver type af placering: Region, land, by, bygning, rum rack, ...', 'Class:Location/Attribute:name' => 'Navn', @@ -71,13 +72,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Location/Attribute:physicaldevice_list+' => 'All the devices in this location~~', 'Class:Location/Attribute:person_list' => 'List Kontakter', 'Class:Location/Attribute:person_list+' => 'All the contacts located on this location~~', -)); +]); // // Class: Contact // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Contact' => 'Kontakt', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s~~', @@ -109,13 +110,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Contact/Attribute:cis_list+' => 'All the configuration items linked to this contact~~', 'Class:Contact/Attribute:finalclass' => 'Type', 'Class:Contact/Attribute:finalclass+' => '', -)); +]); // // Class: Person // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Person' => 'Person', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -150,13 +151,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Person/UniquenessRule:name+' => 'The employee name should be unique inside its organization~~', 'Class:Person/UniquenessRule:name' => 'There is already a person in \'$this->org_name$\' organization with the same name~~', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~', -)); +]); // // Class: Team // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Team' => 'Team', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s~~', @@ -164,13 +165,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Team/Attribute:persons_list+' => 'All the people belonging to this team~~', 'Class:Team/Attribute:tickets_list' => 'List Tickets', 'Class:Team/Attribute:tickets_list+' => 'All the tickets assigned to this team~~', -)); +]); // // Class: Document // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Document' => 'Dokument', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -200,77 +201,77 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Document/Attribute:cis_list+' => 'All the configuration items linked to this document~~', 'Class:Document/Attribute:finalclass' => 'Dokumenttype', 'Class:Document/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentFile // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DocumentFile' => 'Dokument (Data)', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'Data', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DocumentNote' => 'Dokument (Noter)', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'Tekst', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DocumentWeb' => 'Dokument (Web)', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Typology' => 'Typologi', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => 'Navn', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Type', 'Class:Typology/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentType // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:DocumentType' => 'Dokumentype', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:ContactType' => 'Kontakttype', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkPersonToTeam' => 'Sammenhæng Person/Team', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~', @@ -287,13 +288,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => '', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Rollen navn', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:DataAdministration' => 'Data administration', 'Menu:DataAdministration+' => '', 'Menu:Catalogs' => 'Katalog', @@ -331,20 +332,20 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Menu:Typology+' => '', 'UI_WelcomeMenu_AllConfigItems' => 'Sammenfatning', 'Menu:ConfigManagement:Typology' => 'Typologi Konfiguration', -)); +]); // Add translation for Fieldsets -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Person:info' => 'Almindelig Information', 'User:info' => 'Almindelig Information', 'User:profiles' => 'Profiles (minimum one)~~', 'Person:personal_info' => 'Personal information~~', 'Person:notifiy' => 'Underretning', -)); +]); // Themes -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'theme:fullmoon' => 'Full moon~~', 'theme:test-red' => 'Test instance (Red)~~', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/de.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/de.dict.itop-structure.php index 806d32817..47c47373c 100644 --- a/datamodels/2.x/itop-structure/dictionaries/de.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/de.dict.itop-structure.php @@ -1,17 +1,18 @@ * @author ITOMIG GmbH * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Organization' => 'Organisation', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Name', @@ -38,13 +39,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Organization:Overview:FunctionalCIs' => 'CIs dieser Organisation', 'Organization:Overview:FunctionalCIs:subtitle' => 'nach Typ', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Benutzer innerhalb dieser Organisation', -)); +]); // // Class: Location // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Location' => 'Standort', 'Class:Location+' => 'Jeder Typ von Standort: Region, Land, Stadt, Seite, Gebäude, Flur, Raum, Rack,...', 'Class:Location/Attribute:name' => 'Name', @@ -71,13 +72,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Location/Attribute:physicaldevice_list+' => 'Alle Geräte an diesem Standort', 'Class:Location/Attribute:person_list' => 'Kontakte', 'Class:Location/Attribute:person_list+' => 'Alle Kontakte, die sich an diesem Standort befinden', -)); +]); // // Class: Contact // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Contact' => 'Kontakt', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s', @@ -109,13 +110,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Contact/Attribute:cis_list+' => 'Alle mit diesem Kontakt verknüpften CIs', 'Class:Contact/Attribute:finalclass' => 'Typ', 'Class:Contact/Attribute:finalclass+' => 'Name der instanziierbaren Klasse', -)); +]); // // Class: Person // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Person' => 'Person', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s', @@ -150,13 +151,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Person/UniquenessRule:name+' => 'Innerhalb einer Organisation muss der Name einer Person eindeutig sein', 'Class:Person/UniquenessRule:name' => 'In der Organisation \'$this->org_name$\' existiert bereits eine Person mit dem gleichen Namen', 'Class:Person/Error:ChangingOrgDenied' => 'Es ist nicht möglich, dieser Person der Organisation \'%1$s\' zuzuordnen, da dies seinen Zugang zum Benutzerportal unterbinden würde, da sein zugehöriger Benutzer nicht für diese Organisation zugelassen ist.', -)); +]); // // Class: Team // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Team' => 'Team', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s', @@ -164,13 +165,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Team/Attribute:persons_list+' => 'Alle Personen, die zu diesem Team gehören', 'Class:Team/Attribute:tickets_list' => 'Tickets', 'Class:Team/Attribute:tickets_list+' => 'Alle diesem Team zugewiesenen Tickets', -)); +]); // // Class: Document // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Document' => 'Dokument', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -200,77 +201,77 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Document/Attribute:cis_list+' => 'Alle mit diesem Dokument verknüpften CIs', 'Class:Document/Attribute:finalclass' => 'Unterklasse von Dokument', 'Class:Document/Attribute:finalclass+' => 'Name der instanziierbaren Klasse', -)); +]); // // Class: DocumentFile // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DocumentFile' => 'Dokument (Datei)', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'Datei', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DocumentNote' => 'Dokument (Notiz)', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'Text', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DocumentWeb' => 'Dokument (Web)', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Typology' => 'Typologie', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => 'Name', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Typ', 'Class:Typology/Attribute:finalclass+' => 'Name der instanziierbaren Klasse', -)); +]); // // Class: DocumentType // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:DocumentType' => 'Dokumenttyp', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:ContactType' => 'Kontakttyp', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkPersonToTeam' => 'Verknüpfung Person/Team', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s', @@ -287,13 +288,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'Eine Rolle aus einer Typologie möglicher Rollen', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Rollenname', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:DataAdministration' => 'Data Management', 'Menu:DataAdministration+' => 'Data Management', 'Menu:Catalogs' => 'Kataloge', @@ -331,20 +332,20 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Menu:Typology+' => 'Typologie-Konfiguration', 'UI_WelcomeMenu_AllConfigItems' => 'Zusammenfassung', 'Menu:ConfigManagement:Typology' => 'Typologie-Konfiguration', -)); +]); // Add translation for Fieldsets -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Person:info' => 'Allgemeine Informationen', 'User:info' => 'Allgemeine Informationen', 'User:profiles' => 'Profile (mindestens eines)', 'Person:personal_info' => 'Persönliche Informationen', 'Person:notifiy' => 'Benachrichtigungen', -)); +]); // Themes -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'theme:fullmoon' => 'Full Moon', 'theme:test-red' => 'Test Red (Testinstanz)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/en.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/en.dict.itop-structure.php index 8f2ccbf77..cd0bfb5e5 100644 --- a/datamodels/2.x/itop-structure/dictionaries/en.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/en.dict.itop-structure.php @@ -1,4 +1,5 @@ */ - - - // Dictionnary conventions // Class: // Class:+ @@ -36,7 +34,6 @@ // Class:/UniquenessRule: // Class:/UniquenessRule:+ - ////////////////////////////////////////////////////////////////////// // Note: The classes have been grouped by categories: bizmodel ////////////////////////////////////////////////////////////////////// @@ -45,12 +42,11 @@ ////////////////////////////////////////////////////////////////////// // - // // Class: Organization // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Organization' => 'Organization', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Name', @@ -77,13 +73,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Organization:Overview:FunctionalCIs' => 'Configuration items of this organization', 'Organization:Overview:FunctionalCIs:subtitle' => 'by type', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Users within this organization', -)); +]); // // Class: Location // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Location' => 'Location', 'Class:Location+' => 'Any type of location: Region, Country, City, Site, Building, Floor, Room, Rack,...', 'Class:Location/Attribute:name' => 'Name', @@ -110,13 +106,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Location/Attribute:physicaldevice_list+' => 'All the devices in this location', 'Class:Location/Attribute:person_list' => 'Contacts', 'Class:Location/Attribute:person_list+' => 'All the contacts located on this location', -)); +]); // // Class: Contact // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Contact' => 'Contact', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s', @@ -148,13 +144,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Contact/Attribute:cis_list+' => 'All the configuration items linked to this contact', 'Class:Contact/Attribute:finalclass' => 'Contact sub-class', 'Class:Contact/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: Person // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Person' => 'Person', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s', @@ -189,13 +185,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Person/UniquenessRule:name+' => 'The employee name should be unique inside its organization', 'Class:Person/UniquenessRule:name' => 'There is already a person in \'$this->org_name$\' organization with the same name', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization', -)); +]); // // Class: Team // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Team' => 'Team', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s', @@ -203,13 +199,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Team/Attribute:persons_list+' => 'All the people belonging to this team', 'Class:Team/Attribute:tickets_list' => 'Tickets', 'Class:Team/Attribute:tickets_list+' => 'All the tickets assigned to this team', -)); +]); // // Class: Document // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Document' => 'Document', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -239,77 +235,77 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Document/Attribute:cis_list+' => 'All the configuration items linked to this document', 'Class:Document/Attribute:finalclass' => 'Document sub-class', 'Class:Document/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: DocumentFile // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DocumentFile' => 'Document File', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'File', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DocumentNote' => 'Document Note', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'Text', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DocumentWeb' => 'Document Web', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Typology' => 'Typology', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => 'Name', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Typology sub-class', 'Class:Typology/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: DocumentType // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:DocumentType' => 'Document Type', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:ContactType' => 'Contact Type', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkPersonToTeam' => 'Link Person / Team', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s', @@ -326,13 +322,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'To select within a typology of possible roles', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Role name', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:DataAdministration' => 'Data administration', 'Menu:DataAdministration+' => 'Data administration', 'Menu:Catalogs' => 'Catalogs', @@ -370,20 +366,20 @@ Dict::Add('EN US', 'English', 'English', array( 'Menu:Typology+' => 'Typology configuration', 'UI_WelcomeMenu_AllConfigItems' => 'Summary', 'Menu:ConfigManagement:Typology' => 'Typology configuration', -)); +]); // Add translation for Fieldsets -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Person:info' => 'General information', 'User:info' => 'General information', 'User:profiles' => 'Profiles (minimum one)', 'Person:personal_info' => 'Personal information', 'Person:notifiy' => 'Notification', -)); +]); // Themes -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'theme:fullmoon' => 'Full moon', 'theme:test-red' => 'Test instance (Red)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/en_gb.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/en_gb.dict.itop-structure.php index 1659b578d..2fbcb1d33 100644 --- a/datamodels/2.x/itop-structure/dictionaries/en_gb.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/en_gb.dict.itop-structure.php @@ -1,4 +1,5 @@ */ - - - // Dictionnary conventions // Class: // Class:+ @@ -36,7 +34,6 @@ // Class:/UniquenessRule: // Class:/UniquenessRule:+ - ////////////////////////////////////////////////////////////////////// // Note: The classes have been grouped by categories: bizmodel ////////////////////////////////////////////////////////////////////// @@ -45,12 +42,11 @@ ////////////////////////////////////////////////////////////////////// // - // // Class: Organization // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Organization' => 'Organisation', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Name', @@ -77,13 +73,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Organization:Overview:FunctionalCIs' => 'Configuration items of this organisation', 'Organization:Overview:FunctionalCIs:subtitle' => 'by type', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Users within this organization', -)); +]); // // Class: Location // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Location' => 'Location', 'Class:Location+' => 'Any type of location: Region, Country, City, Site, Building, Floor, Room, Rack,...', 'Class:Location/Attribute:name' => 'Name', @@ -110,13 +106,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Location/Attribute:physicaldevice_list+' => 'All the devices in this location', 'Class:Location/Attribute:person_list' => 'Contacts', 'Class:Location/Attribute:person_list+' => 'All the contacts located at this location', -)); +]); // // Class: Contact // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Contact' => 'Contact', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s', @@ -148,13 +144,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Contact/Attribute:cis_list+' => 'All the configuration items linked to this contact', 'Class:Contact/Attribute:finalclass' => 'Contact sub-class', 'Class:Contact/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: Person // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Person' => 'Person', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s', @@ -189,13 +185,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Person/UniquenessRule:name+' => 'The employee name should be unique inside its organisation', 'Class:Person/UniquenessRule:name' => 'There is already a person in \'$this->org_name$\' organisation with the same name', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organisation \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organisation', -)); +]); // // Class: Team // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Team' => 'Team', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s', @@ -203,13 +199,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Team/Attribute:persons_list+' => 'All the people belonging to this team', 'Class:Team/Attribute:tickets_list' => 'Tickets', 'Class:Team/Attribute:tickets_list+' => 'All the tickets assigned to this team', -)); +]); // // Class: Document // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Document' => 'Document', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -239,77 +235,77 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Document/Attribute:cis_list+' => 'All the configuration items linked to this document', 'Class:Document/Attribute:finalclass' => 'Document sub-class', 'Class:Document/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: DocumentFile // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DocumentFile' => 'Document File', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'File', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DocumentNote' => 'Document Note', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'Text', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DocumentWeb' => 'Document Web', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Typology' => 'Typology', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => 'Name', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Typology sub-class', 'Class:Typology/Attribute:finalclass+' => 'Name of the final class', -)); +]); // // Class: DocumentType // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DocumentType' => 'Document Type', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ContactType' => 'Contact Type', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkPersonToTeam' => 'Link Person / Team', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s', @@ -326,13 +322,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'To select within a typology of possible roles', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Role name', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:DataAdministration' => 'Data administration', 'Menu:DataAdministration+' => 'Data administration', 'Menu:Catalogs' => 'Catalogues', @@ -370,20 +366,20 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Menu:Typology+' => 'Typology configuration', 'UI_WelcomeMenu_AllConfigItems' => 'Summary', 'Menu:ConfigManagement:Typology' => 'Typology configuration', -)); +]); // Add translation for Fieldsets -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Person:info' => 'General information', 'User:info' => 'General information', 'User:profiles' => 'Profiles (minimum one)', 'Person:personal_info' => 'Personal information', 'Person:notifiy' => 'Notification', -)); +]); // Themes -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'theme:fullmoon' => 'Full moon', 'theme:test-red' => 'Test instance (Red)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/es_cr.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/es_cr.dict.itop-structure.php index 5a1edad01..e66a88228 100644 --- a/datamodels/2.x/itop-structure/dictionaries/es_cr.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/es_cr.dict.itop-structure.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Organization' => 'Organización', 'Class:Organization+' => 'Organización', 'Class:Organization/Attribute:name' => 'Nombre', @@ -34,13 +35,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Organization:Overview:FunctionalCIs' => 'Elementos de configuración en esta Organización', 'Organization:Overview:FunctionalCIs:subtitle' => 'por tipo', 'Organization:Overview:Users' => 'Usuarios de iTop en la Organización', -)); +]); // // Class: Location // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Location' => 'Localidad', 'Class:Location+' => 'Cualquier Tipo de Localidad: Región, País, Ciudad, Sitio, Edificio, Piso, Cuarto, Rack,...', 'Class:Location/Attribute:name' => 'Nombre', @@ -67,13 +68,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Location/Attribute:physicaldevice_list+' => 'Dispositivos', 'Class:Location/Attribute:person_list' => 'Contactos', 'Class:Location/Attribute:person_list+' => 'Contactos', -)); +]); // // Class: Contact // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Contact' => 'Contacto', 'Class:Contact+' => 'Contacto', 'Class:Contact/ComplementaryName' => '%1$s - %2$s', @@ -105,13 +106,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Contact/Attribute:cis_list+' => 'Elementos de Configuración relacionados con el contacto', 'Class:Contact/Attribute:finalclass' => 'Clase', 'Class:Contact/Attribute:finalclass+' => 'Clase', -)); +]); // // Class: Person // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Person' => 'Persona', 'Class:Person+' => 'Persona', 'Class:Person/ComplementaryName' => '%1$s - %2$s', @@ -146,13 +147,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Person/UniquenessRule:name+' => 'El nombre del empleado debe ser único dentro de su Organización', 'Class:Person/UniquenessRule:name' => 'Ya existe una persona en la organiación \'$this->org_name$\', con el mismo nombre', 'Class:Person/Error:ChangingOrgDenied' => 'Es imposible mover a esta persona a la organización \'%1$s\' ya que interrumpiría su acceso al Portal de usuario y su usuario asociado no estaría permitido en esta organización.', -)); +]); // // Class: Team // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Team' => 'Grupo de Trabajo', 'Class:Team+' => 'Grupo de Trabajo', 'Class:Team/ComplementaryName' => '%1$s - %2$s', @@ -160,13 +161,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Team/Attribute:persons_list+' => 'Miembros', 'Class:Team/Attribute:tickets_list' => 'Tickets', 'Class:Team/Attribute:tickets_list+' => 'Tickets', -)); +]); // // Class: Document // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Document' => 'Documento', 'Class:Document+' => 'Documento', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -196,77 +197,77 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Document/Attribute:cis_list+' => 'Elementos de Configuración referenciados en este documento', 'Class:Document/Attribute:finalclass' => 'Tipo de Documento', 'Class:Document/Attribute:finalclass+' => 'Tipo de Documento', -)); +]); // // Class: DocumentFile // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DocumentFile' => 'Documento de Archivo', 'Class:DocumentFile+' => 'Documento de Archivo', 'Class:DocumentFile/Attribute:file' => 'Archivo', 'Class:DocumentFile/Attribute:file+' => 'Archivo', -)); +]); // // Class: DocumentNote // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DocumentNote' => 'Nota', 'Class:DocumentNote+' => 'Nota', 'Class:DocumentNote/Attribute:text' => 'Texto', 'Class:DocumentNote/Attribute:text+' => 'Texto', -)); +]); // // Class: DocumentWeb // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DocumentWeb' => 'Documento Web', 'Class:DocumentWeb+' => 'Documento disponible en otro servidor Web', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => 'URL de Internet', -)); +]); // // Class: Typology // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Typology' => 'Tipología', 'Class:Typology+' => 'Tipología', 'Class:Typology/Attribute:name' => 'Nombre', 'Class:Typology/Attribute:name+' => 'Nombre del Tipo', 'Class:Typology/Attribute:finalclass' => 'Clase', 'Class:Typology/Attribute:finalclass+' => 'Clase', -)); +]); // // Class: DocumentType // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:DocumentType' => 'Tipo de Documento', 'Class:DocumentType+' => 'Tipo de Documento', -)); +]); // // Class: ContactType // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:ContactType' => 'Tipo de Contacto', 'Class:ContactType+' => 'Tipo de Contacto', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkPersonToTeam' => 'Relación Persona y Grupo', 'Class:lnkPersonToTeam+' => 'Relación Persona y Grupo', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s', @@ -283,13 +284,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'Rol', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Rol', 'Class:lnkPersonToTeam/Attribute:role_name+' => 'Rol', -)); +]); // // Application Menu // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:DataAdministration' => 'Administración de Datos', 'Menu:DataAdministration+' => 'Administración de Datos', 'Menu:Catalogs' => 'Catálogos', @@ -327,20 +328,20 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Menu:Typology+' => 'Configuración de Tipos', 'UI_WelcomeMenu_AllConfigItems' => 'Resumen', 'Menu:ConfigManagement:Typology' => 'Configuración de Tipos', -)); +]); // Add translation for Fieldsets -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Person:info' => 'Información General', 'User:info' => 'Información General', 'User:profiles' => 'Perfiles (mínimo uno)', 'Person:personal_info' => 'Información Personal', 'Person:notifiy' => 'Notificación', -)); +]); // Themes -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'theme:fullmoon' => 'Luna Llena', 'theme:test-red' => 'Instancia de Prueba (Red)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/fr.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/fr.dict.itop-structure.php index 5cd7e11c1..8b39466c4 100644 --- a/datamodels/2.x/itop-structure/dictionaries/fr.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/fr.dict.itop-structure.php @@ -1,16 +1,17 @@ * */ -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Organization' => 'Organisation', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Nom organisation', @@ -37,13 +38,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Organization:Overview:FunctionalCIs' => 'Infrastructure de cette organisation', 'Organization:Overview:FunctionalCIs:subtitle' => 'par type', 'Organization:Overview:Users' => 'Utilisateurs '.ITOP_APPLICATION_SHORT.' dans cette organisation', -)); +]); // // Class: Location // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Location' => 'Lieu', 'Class:Location+' => 'Tout type de lieu: Région, Pays, Ville, Site, batiment, Bureau,...', 'Class:Location/Attribute:name' => 'Nom', @@ -75,14 +76,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Location/Attribute:person_list/UI:Links:Delete:Button+' => 'Supprimer cette %4$s', 'Class:Location/Attribute:person_list/UI:Links:Delete:Modal:Title' => 'Supprimer une %4$s', 'Class:Location/Attribute:person_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', - 'Class:Location/Attribute:person_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s' -)); + 'Class:Location/Attribute:person_list/UI:Links:Remove:Modal:Title' => 'Retirer cette %4$s de son %1$s', +]); // // Class: Contact // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Contact' => 'Contact', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s', @@ -114,13 +115,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Contact/Attribute:cis_list+' => 'Tous les éléments de configuration liés à ce contact', 'Class:Contact/Attribute:finalclass' => 'Sous-classe de Contact', 'Class:Contact/Attribute:finalclass+' => 'Nom de la classe instanciable', -)); +]); // // Class: Person // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Person' => 'Personne', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s', @@ -165,14 +166,14 @@ Dict::Add('FR FR', 'French', 'Français', array( \'$this->org_name$\'', 'Class:Person/UniquenessRule:name+' => 'Le nom de l\'employé devrait être unique dans l\'organisation', 'Class:Person/UniquenessRule:name' => 'Il y a déjà une personne avec ce nom dans l\'organisation \'$this->org_name$\'', - 'Class:Person/Error:ChangingOrgDenied' => 'Impossible de déplacer cette personne sous l\'organisation \'%1$s\', cela casserait son accès au portail utilisateur, car il n\'a pas le droit de voir cette organisation' -)); + 'Class:Person/Error:ChangingOrgDenied' => 'Impossible de déplacer cette personne sous l\'organisation \'%1$s\', cela casserait son accès au portail utilisateur, car il n\'a pas le droit de voir cette organisation', +]); // // Class: Team // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Team' => 'Equipe', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s', @@ -183,14 +184,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Team/Attribute:persons_list/UI:Links:Remove:Button+' => 'Retirer cette %4$s', 'Class:Team/Attribute:persons_list/UI:Links:Remove:Modal:Title' => 'Retirer une %4$s', 'Class:Team/Attribute:tickets_list' => 'Tickets', - 'Class:Team/Attribute:tickets_list+' => 'Tous les tickets assignés à cette équipe' -)); + 'Class:Team/Attribute:tickets_list+' => 'Tous les tickets assignés à cette équipe', +]); // // Class: Document // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Document' => 'Document', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -220,77 +221,77 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Document/Attribute:cis_list+' => 'Tous les éléments de configuration liés à ce document', 'Class:Document/Attribute:finalclass' => 'Sous-classe de Document', 'Class:Document/Attribute:finalclass+' => 'Nom de la classe instanciable', -)); +]); // // Class: DocumentFile // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DocumentFile' => 'Document Fichier', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'Fichier', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DocumentNote' => 'Document Note', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'Texte', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DocumentWeb' => 'Document Web', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Typology' => 'Typologie', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => 'Nom', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Sous-classe de Typologie', 'Class:Typology/Attribute:finalclass+' => 'Nom de la classe instanciable', -)); +]); // // Class: DocumentType // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:DocumentType' => 'Type de document', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:ContactType' => 'Type de contact', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkPersonToTeam' => 'Lien Personne / Equipe', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s', @@ -307,13 +308,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'Un rôle parmi une typologie de rôles possibles', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Nom Role', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Menu:DataAdministration' => 'Administration des données', 'Menu:DataAdministration+' => 'Administration des données', 'Menu:Catalogs' => 'Catalogues', @@ -351,20 +352,20 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Menu:Typology+' => 'Typologie configuration', 'UI_WelcomeMenu_AllConfigItems' => 'Résumé', 'Menu:ConfigManagement:Typology' => 'Configuration des typologies', -)); +]); // Add translation for Fieldsets -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Person:info' => 'Informations générales', 'User:info' => 'Informations générales', 'User:profiles' => 'Profils (minimum un)', 'Person:personal_info' => 'Informations personnelles', 'Person:notifiy' => 'Notification', -)); +]); // Themes -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'theme:fullmoon' => 'Full moon', 'theme:test-red' => 'Instance de test (Rouge)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/hu.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/hu.dict.itop-structure.php index 3df4ef21c..1de088135 100644 --- a/datamodels/2.x/itop-structure/dictionaries/hu.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/hu.dict.itop-structure.php @@ -1,16 +1,17 @@ * */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Organization' => 'Szevezeti egység', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Név', @@ -37,13 +38,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Organization:Overview:FunctionalCIs' => 'A szervezet konfigurációs elemei', 'Organization:Overview:FunctionalCIs:subtitle' => 'típus szerint', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' szervezeten belüli felhasználók', -)); +]); // // Class: Location // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Location' => 'Helyszín', 'Class:Location+' => '', 'Class:Location/Attribute:name' => 'Név', @@ -70,13 +71,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Location/Attribute:physicaldevice_list+' => 'A helyszín összes eszköze', 'Class:Location/Attribute:person_list' => 'Kapcsolattartók', 'Class:Location/Attribute:person_list+' => 'A helyszín összes kapcsolattartója', -)); +]); // // Class: Contact // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Contact' => 'Kapcsolattartó', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s~~', @@ -108,13 +109,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Contact/Attribute:cis_list+' => 'A kapcsolattartóhoz tartozó összes konfigurációs elem', 'Class:Contact/Attribute:finalclass' => 'Kapcsolattartó típus', 'Class:Contact/Attribute:finalclass+' => '', -)); +]); // // Class: Person // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Person' => 'Kapcsolattartó', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -149,13 +150,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Person/UniquenessRule:name+' => 'Az alkalmazott nevének egyedinek kell lennie a szervezeten belül', 'Class:Person/UniquenessRule:name' => 'A \'$this->org_name$\' szervezetben már van egy ugyanilyen nevű személy.', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~', -)); +]); // // Class: Team // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Team' => 'Csapat', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s~~', @@ -163,13 +164,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Team/Attribute:persons_list+' => '', 'Class:Team/Attribute:tickets_list' => 'Hibajegyek', 'Class:Team/Attribute:tickets_list+' => '', -)); +]); // // Class: Document // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Document' => 'Dokumentum', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -199,77 +200,77 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Document/Attribute:cis_list+' => '', 'Class:Document/Attribute:finalclass' => 'Dokumentum típus', 'Class:Document/Attribute:finalclass+' => 'A végső osztály neve', -)); +]); // // Class: DocumentFile // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DocumentFile' => 'Dokumentum fájl', 'Class:DocumentFile+' => '~~', 'Class:DocumentFile/Attribute:file' => 'Fájl', 'Class:DocumentFile/Attribute:file+' => '~~', -)); +]); // // Class: DocumentNote // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DocumentNote' => 'Dokumentum jegyzet', 'Class:DocumentNote+' => '~~', 'Class:DocumentNote/Attribute:text' => 'Szöveg', 'Class:DocumentNote/Attribute:text+' => '~~', -)); +]); // // Class: DocumentWeb // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DocumentWeb' => 'Webdokumentum', 'Class:DocumentWeb+' => '~~', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Typology' => 'Tipológia', 'Class:Typology+' => '~~', 'Class:Typology/Attribute:name' => 'Név', 'Class:Typology/Attribute:name+' => '~~', 'Class:Typology/Attribute:finalclass' => 'Tipológia típus', 'Class:Typology/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentType // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:DocumentType' => 'Dokumentum típus', 'Class:DocumentType+' => '~~', -)); +]); // // Class: ContactType // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:ContactType' => 'Kapcsolattartó típus', 'Class:ContactType+' => '~~', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkPersonToTeam' => 'Kapcsolattartó / Csapat', 'Class:lnkPersonToTeam+' => '~~', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~', @@ -286,13 +287,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'To select within a typology of possible roles~~', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Szerepkör név', 'Class:lnkPersonToTeam/Attribute:role_name+' => '~~', -)); +]); // // Application Menu // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Menu:DataAdministration' => 'Adat adminisztráció', 'Menu:DataAdministration+' => '', 'Menu:Catalogs' => 'Katalógusok', @@ -330,20 +331,20 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Menu:Typology+' => '', 'UI_WelcomeMenu_AllConfigItems' => 'Összegzés', 'Menu:ConfigManagement:Typology' => 'Tipológia konfiguráció', -)); +]); // Add translation for Fieldsets -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Person:info' => 'Általános információk', 'User:info' => 'Általános információk', 'User:profiles' => 'Profiles (minimum one)~~', 'Person:personal_info' => 'Személyes információk', 'Person:notifiy' => 'Értesítés', -)); +]); // Themes -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'theme:fullmoon' => 'Full moon', 'theme:test-red' => 'Tesztpéldány (Red)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/it.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/it.dict.itop-structure.php index 39408d243..ad6b584e5 100644 --- a/datamodels/2.x/itop-structure/dictionaries/it.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/it.dict.itop-structure.php @@ -1,16 +1,17 @@ * */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Organization' => 'Organizzazione', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Cognome', @@ -37,13 +38,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Organization:Overview:FunctionalCIs' => 'Configuration items of this organization~~', 'Organization:Overview:FunctionalCIs:subtitle' => 'by type~~', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Users within this organization~~', -)); +]); // // Class: Location // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Location' => 'Localizzazione', 'Class:Location+' => 'Qualsiasi tipo di localizzazione: Regione, Paese, Città, Sito, Edificio, Piano, Stanza, Rack,,...', 'Class:Location/Attribute:name' => 'Nome', @@ -70,13 +71,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Location/Attribute:physicaldevice_list+' => 'All the devices in this location~~', 'Class:Location/Attribute:person_list' => 'Contacts~~', 'Class:Location/Attribute:person_list+' => 'All the contacts located on this location~~', -)); +]); // // Class: Contact // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Contact' => 'Contatto', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s~~', @@ -108,13 +109,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Contact/Attribute:cis_list+' => 'All the configuration items linked to this contact~~', 'Class:Contact/Attribute:finalclass' => 'Tipo', 'Class:Contact/Attribute:finalclass+' => '', -)); +]); // // Class: Person // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Person' => 'Persona', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -149,13 +150,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Person/UniquenessRule:name+' => 'The employee name should be unique inside its organization~~', 'Class:Person/UniquenessRule:name' => 'There is already a person in \'$this->org_name$\' organization with the same name~~', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~', -)); +]); // // Class: Team // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Team' => 'Squadra', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s~~', @@ -163,13 +164,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Team/Attribute:persons_list+' => 'All the people belonging to this team~~', 'Class:Team/Attribute:tickets_list' => 'Tickets~~', 'Class:Team/Attribute:tickets_list+' => 'All the tickets assigned to this team~~', -)); +]); // // Class: Document // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Document' => 'Documento', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -199,77 +200,77 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Document/Attribute:cis_list+' => 'All the configuration items linked to this document~~', 'Class:Document/Attribute:finalclass' => 'Document sub-class~~', 'Class:Document/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: DocumentFile // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:DocumentFile' => 'Document File~~', 'Class:DocumentFile+' => '~~', 'Class:DocumentFile/Attribute:file' => 'File~~', 'Class:DocumentFile/Attribute:file+' => '~~', -)); +]); // // Class: DocumentNote // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:DocumentNote' => 'Document Note~~', 'Class:DocumentNote+' => '~~', 'Class:DocumentNote/Attribute:text' => 'Text~~', 'Class:DocumentNote/Attribute:text+' => '~~', -)); +]); // // Class: DocumentWeb // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:DocumentWeb' => 'Document Web~~', 'Class:DocumentWeb+' => '~~', 'Class:DocumentWeb/Attribute:url' => 'URL~~', 'Class:DocumentWeb/Attribute:url+' => '~~', -)); +]); // // Class: Typology // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Typology' => 'Typology~~', 'Class:Typology+' => '~~', 'Class:Typology/Attribute:name' => 'Name~~', 'Class:Typology/Attribute:name+' => '~~', 'Class:Typology/Attribute:finalclass' => 'Typology sub-class~~', 'Class:Typology/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: DocumentType // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:DocumentType' => 'Document Type~~', 'Class:DocumentType+' => '~~', -)); +]); // // Class: ContactType // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:ContactType' => 'Contact Type~~', 'Class:ContactType+' => '~~', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkPersonToTeam' => 'Link Person / Team~~', 'Class:lnkPersonToTeam+' => '~~', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~', @@ -286,13 +287,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'To select within a typology of possible roles~~', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Role name~~', 'Class:lnkPersonToTeam/Attribute:role_name+' => '~~', -)); +]); // // Application Menu // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Menu:DataAdministration' => 'Dati di amministrazione', 'Menu:DataAdministration+' => '', 'Menu:Catalogs' => 'Cataloghi', @@ -330,20 +331,20 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Menu:Typology+' => 'Typology configuration~~', 'UI_WelcomeMenu_AllConfigItems' => 'Summary~~', 'Menu:ConfigManagement:Typology' => 'Typology configuration~~', -)); +]); // Add translation for Fieldsets -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Person:info' => 'General information~~', 'User:info' => 'General information~~', 'User:profiles' => 'Profiles (minimum one)~~', 'Person:personal_info' => 'Personal information~~', 'Person:notifiy' => 'Notification~~', -)); +]); // Themes -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'theme:fullmoon' => 'Full moon~~', 'theme:test-red' => 'Test instance (Red)~~', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/ja.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/ja.dict.itop-structure.php index 6c069b83c..121cc8229 100644 --- a/datamodels/2.x/itop-structure/dictionaries/ja.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/ja.dict.itop-structure.php @@ -1,16 +1,17 @@ * */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Organization' => '組織', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => '名前', @@ -37,13 +38,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Organization:Overview:FunctionalCIs' => 'Configuration items of this organization~~', 'Organization:Overview:FunctionalCIs:subtitle' => 'by type~~', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Users within this organization~~', -)); +]); // // Class: Location // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Location' => '場所', 'Class:Location+' => '任意の場所のタイプ: リージョン、国、都市、サイト、ビル、フロア、部屋、ラック、...', 'Class:Location/Attribute:name' => '名前', @@ -70,13 +71,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Location/Attribute:physicaldevice_list+' => 'All the devices in this location~~', 'Class:Location/Attribute:person_list' => '連絡先', 'Class:Location/Attribute:person_list+' => 'All the contacts located on this location~~', -)); +]); // // Class: Contact // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Contact' => '連絡先', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s~~', @@ -108,13 +109,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Contact/Attribute:cis_list+' => 'All the configuration items linked to this contact~~', 'Class:Contact/Attribute:finalclass' => '連絡先タイプ', 'Class:Contact/Attribute:finalclass+' => '', -)); +]); // // Class: Person // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Person' => '人物', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -149,13 +150,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Person/UniquenessRule:name+' => 'The employee name should be unique inside its organization~~', 'Class:Person/UniquenessRule:name' => 'There is already a person in \'$this->org_name$\' organization with the same name~~', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~', -)); +]); // // Class: Team // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Team' => 'チーム', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s~~', @@ -163,13 +164,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Team/Attribute:persons_list+' => 'All the people belonging to this team~~', 'Class:Team/Attribute:tickets_list' => 'チケット', 'Class:Team/Attribute:tickets_list+' => 'All the tickets assigned to this team~~', -)); +]); // // Class: Document // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Document' => '文書', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -199,77 +200,77 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Document/Attribute:cis_list+' => 'All the configuration items linked to this document~~', 'Class:Document/Attribute:finalclass' => '文書タイプ', 'Class:Document/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentFile // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DocumentFile' => '文書ファイル', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'ファイル', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DocumentNote' => '文書ノート', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'テキスト', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DocumentWeb' => '文書Web', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Typology' => '分類', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => '名前', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'タイプ', 'Class:Typology/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentType // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:DocumentType' => '文書タイプ', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:ContactType' => '問い合せ先タイプ', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkPersonToTeam' => 'リンク 人物/チーム', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~', @@ -286,13 +287,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => '', 'Class:lnkPersonToTeam/Attribute:role_name' => '役割名', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Menu:DataAdministration' => 'データ管理', 'Menu:DataAdministration+' => 'データ管理', 'Menu:Catalogs' => 'カタログ', @@ -330,20 +331,20 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Menu:Typology+' => 'トポロジー構成', 'UI_WelcomeMenu_AllConfigItems' => 'サマリー', 'Menu:ConfigManagement:Typology' => '分類構成', -)); +]); // Add translation for Fieldsets -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Person:info' => '情報', 'User:info' => '情報', 'User:profiles' => 'Profiles (minimum one)~~', 'Person:personal_info' => 'Personal information~~', 'Person:notifiy' => '通知', -)); +]); // Themes -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'theme:fullmoon' => 'Full moon~~', 'theme:test-red' => 'Test instance (Red)~~', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/nl.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/nl.dict.itop-structure.php index 43da686da..f64feda71 100644 --- a/datamodels/2.x/itop-structure/dictionaries/nl.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/nl.dict.itop-structure.php @@ -1,10 +1,11 @@ @@ -12,7 +13,7 @@ * @author Thomas Casteleyn * @author Jeffrey Bostoen (2018 - 2022) */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Organization' => 'Organisatie', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Naam', @@ -39,13 +40,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Organization:Overview:FunctionalCIs' => 'Configuratie-items van deze organisatie', 'Organization:Overview:FunctionalCIs:subtitle' => 'per type', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.'-gebruikers in deze organisatie', -)); +]); // // Class: Location // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Location' => 'Locatie', 'Class:Location+' => 'Een locatie zoals: land, regio, gemeente/stad, gebouw, verdieping, kamer, ...', 'Class:Location/Attribute:name' => 'Naam', @@ -72,13 +73,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Location/Attribute:physicaldevice_list+' => 'Alle apparaten die zich op deze locatie bevinden', 'Class:Location/Attribute:person_list' => 'Contacten', 'Class:Location/Attribute:person_list+' => 'Alle contacten die zich op deze locatie bevinden', -)); +]); // // Class: Contact // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Contact' => 'Contact', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s', @@ -110,13 +111,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Contact/Attribute:cis_list+' => 'Alle configuratie-items die gerelateerd zijn aan dit team', 'Class:Contact/Attribute:finalclass' => 'Subklasse contact', 'Class:Contact/Attribute:finalclass+' => '', -)); +]); // // Class: Person // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Person' => 'Persoon', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s', @@ -151,13 +152,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Person/UniquenessRule:name+' => 'De naam moet uniek zijn binnen een organisatie', 'Class:Person/UniquenessRule:name' => 'Er is al een persoon in de organisatie \'$this->org_name$\' met dezelfde naam', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~', -)); +]); // // Class: Team // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Team' => 'Team', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s', @@ -165,13 +166,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Team/Attribute:persons_list+' => 'Alle personen die lid zijn van dit team', 'Class:Team/Attribute:tickets_list' => 'Tickets', 'Class:Team/Attribute:tickets_list+' => 'Alle tickets die toegewezen zijn aan dit team', -)); +]); // // Class: Document // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Document' => 'Document', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -201,77 +202,77 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Document/Attribute:cis_list+' => 'Alle configuratie-items gerelateerd aan dit document', 'Class:Document/Attribute:finalclass' => 'Subklasse document', 'Class:Document/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentFile // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DocumentFile' => 'Document: Bestand', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'Bestand', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DocumentNote' => 'Document: Notitie', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'Tekst', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DocumentWeb' => 'Document: Web', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'Link (URL)', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Typology' => 'Typologie', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => 'Naam', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Subklasse typologie', 'Class:Typology/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentType // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:DocumentType' => 'Soort Document', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:ContactType' => 'Soort Contact', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkPersonToTeam' => 'Link Persoon / Team', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s', @@ -288,13 +289,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => '', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Naam rol', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:DataAdministration' => 'Databeheer', 'Menu:DataAdministration+' => 'Databeheer', 'Menu:Catalogs' => 'Catalogus', @@ -332,20 +333,20 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Menu:Typology+' => 'Configuratie van de typologie', 'UI_WelcomeMenu_AllConfigItems' => 'Samenvatting', 'Menu:ConfigManagement:Typology' => 'Configuratie typologie', -)); +]); // Add translation for Fieldsets -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Person:info' => 'Globale informatie', 'User:info' => 'Globale informatie', 'User:profiles' => 'Profielen (minimaal één)', 'Person:personal_info' => 'Persoonlijke informatie', 'Person:notifiy' => 'Notificeer', -)); +]); // Themes -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'theme:fullmoon' => 'Full moon', 'theme:test-red' => 'Test instance (Rood)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/pl.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/pl.dict.itop-structure.php index 22a21a32f..7d26b828a 100644 --- a/datamodels/2.x/itop-structure/dictionaries/pl.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/pl.dict.itop-structure.php @@ -1,15 +1,16 @@ 'Organizacja', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Nazwa', @@ -36,13 +37,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Organization:Overview:FunctionalCIs' => 'Pozycje konfiguracji tej organizacji', 'Organization:Overview:FunctionalCIs:subtitle' => 'według rodzaju', 'Organization:Overview:Users' => '', -)); +]); // // Class: Location // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Location' => 'Lokalizacja', 'Class:Location+' => 'Dowolny typ lokalizacji: region, kraj, miasto, teren, budynek, piętro, pokój, stojak,...', 'Class:Location/Attribute:name' => 'Nazwa', @@ -69,13 +70,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Location/Attribute:physicaldevice_list+' => 'Wszystkie urządzenia w tej lokalizacji', 'Class:Location/Attribute:person_list' => 'Kontakty', 'Class:Location/Attribute:person_list+' => 'Wszystkie kontakty znajdujące się w tej lokalizacji', -)); +]); // // Class: Contact // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Contact' => 'Kontakt', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s', @@ -107,13 +108,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Contact/Attribute:cis_list+' => 'Wszystkie elementy konfiguracji powiązane z tym kontaktem', 'Class:Contact/Attribute:finalclass' => 'podklasa kontaktu', 'Class:Contact/Attribute:finalclass+' => 'Nazwa klasy głównej', -)); +]); // // Class: Person // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Person' => 'Osoba', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s', @@ -148,13 +149,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Person/UniquenessRule:name+' => 'Imię i nazwisko pracownika powinno być unikalne w jego organizacji', 'Class:Person/UniquenessRule:name' => 'W organizacji \'$this->org_name$\' istnieje już osoba o takiej samej nazwie', 'Class:Person/Error:ChangingOrgDenied' => 'Nie można przenieść tej osoby do organizacji \'%1$s\', ponieważ uniemożliwiłoby to jej dostęp do Portalu użytkowników, a powiązany z nią użytkownik nie byłby dozwolony w tej organizacji', -)); +]); // // Class: Team // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Team' => 'Zespół', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s', @@ -162,13 +163,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Team/Attribute:persons_list+' => 'Wszystkie osoby należące do tego zespołu', 'Class:Team/Attribute:tickets_list' => 'Zgłoszenia', 'Class:Team/Attribute:tickets_list+' => 'Wszystkie zgłoszenia przypisane do tego zespołu', -)); +]); // // Class: Document // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Document' => 'Dokument', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -198,77 +199,77 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Document/Attribute:cis_list+' => 'Wszystkie elementy konfiguracji powiązane z tym dokumentem', 'Class:Document/Attribute:finalclass' => 'Podklasa dokumentu', 'Class:Document/Attribute:finalclass+' => 'Klasa główna dokumentu', -)); +]); // // Class: DocumentFile // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DocumentFile' => 'Plik dokumentu', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'Plik', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DocumentNote' => 'Notatka do dokumentu', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => 'Tekst', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DocumentWeb' => 'Dokument www', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Typology' => 'Typologia', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => 'Nazwa', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Podklasa typologii', 'Class:Typology/Attribute:finalclass+' => 'Klasa główna typologii', -)); +]); // // Class: DocumentType // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:DocumentType' => 'Typ dokumentu', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:ContactType' => 'Typ kontaktu', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkPersonToTeam' => 'Połączenie osoba / zespół', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s', @@ -285,13 +286,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => '', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Nazwa roli', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Menu:DataAdministration' => 'Administracja danymi', 'Menu:DataAdministration+' => 'Administracja danymi', 'Menu:Catalogs' => 'Katalogi', @@ -329,20 +330,20 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Menu:Typology+' => 'Konfiguracja typologii', 'UI_WelcomeMenu_AllConfigItems' => 'Podsumowanie', 'Menu:ConfigManagement:Typology' => 'Konfiguracja typologii', -)); +]); // Add translation for Fieldsets -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Person:info' => 'Informacje ogólne', 'User:info' => 'Informacje ogólne', 'User:profiles' => 'Profile (minimum jeden)', 'Person:personal_info' => 'Informacje osobiste', 'Person:notifiy' => 'Powiadomienie', -)); +]); // Themes -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'theme:fullmoon' => 'Pełnia księżyca', 'theme:test-red' => 'Instancja testowa (czerwona)', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/ru.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/ru.dict.itop-structure.php index 9f65ae6e2..a58c2babf 100644 --- a/datamodels/2.x/itop-structure/dictionaries/ru.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/ru.dict.itop-structure.php @@ -1,17 +1,18 @@ * @author Vladimir Kunin * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Organization' => 'Организация', 'Class:Organization+' => 'Организация', 'Class:Organization/Attribute:name' => 'Название', @@ -38,13 +39,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Organization:Overview:FunctionalCIs' => 'Конфигурационные единицы этой организации', 'Organization:Overview:FunctionalCIs:subtitle' => 'по типу', 'Organization:Overview:Users' => 'Пользователи '.ITOP_APPLICATION_SHORT.' этой организации', -)); +]); // // Class: Location // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Location' => 'Расположение', 'Class:Location+' => 'Типы расположения: Регион, Страна, Город, Сайт, Здание, Этаж, Комната, Стойка и т.п.', 'Class:Location/Attribute:name' => 'Название', @@ -71,13 +72,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Location/Attribute:physicaldevice_list+' => 'Устройства в этом расположении', 'Class:Location/Attribute:person_list' => 'Контакты', 'Class:Location/Attribute:person_list+' => 'Контакты в этом расположении', -)); +]); // // Class: Contact // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Contact' => 'Контакт', 'Class:Contact+' => 'Контакт', 'Class:Contact/ComplementaryName' => '%1$s - %2$s~~', @@ -109,13 +110,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Contact/Attribute:cis_list+' => 'Связанные конфигурационные единицы', 'Class:Contact/Attribute:finalclass' => 'Тип контакта', 'Class:Contact/Attribute:finalclass+' => '', -)); +]); // // Class: Person // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Person' => 'Персона', 'Class:Person+' => 'Персона', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -150,13 +151,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Person/UniquenessRule:name+' => 'Имя сотрудника должно быть уникальным внутри организации', 'Class:Person/UniquenessRule:name' => 'В организации \'$this->org_name$\' уже есть персона с таким именем', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~', -)); +]); // // Class: Team // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Team' => 'Команда', 'Class:Team+' => 'Команда', 'Class:Team/ComplementaryName' => '%1$s - %2$s~~', @@ -164,13 +165,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Team/Attribute:persons_list+' => 'Участники команды', 'Class:Team/Attribute:tickets_list' => 'Тикеты', 'Class:Team/Attribute:tickets_list+' => 'Все тикеты, назначенные на команду', -)); +]); // // Class: Document // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Document' => 'Документ', 'Class:Document+' => 'Документ', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -200,77 +201,77 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Document/Attribute:cis_list+' => 'Связанные конфигурационные единицы', 'Class:Document/Attribute:finalclass' => 'Тип', 'Class:Document/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentFile // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DocumentFile' => 'Файл', 'Class:DocumentFile+' => 'Файл', 'Class:DocumentFile/Attribute:file' => 'Файл', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DocumentNote' => 'Заметка', 'Class:DocumentNote+' => 'Заметка', 'Class:DocumentNote/Attribute:text' => 'Заметка', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DocumentWeb' => 'Веб-документ', 'Class:DocumentWeb+' => 'Веб-документ', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Typology' => 'Типология', 'Class:Typology+' => 'Типология', 'Class:Typology/Attribute:name' => 'Название', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => 'Тип', 'Class:Typology/Attribute:finalclass+' => '', -)); +]); // // Class: DocumentType // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:DocumentType' => 'Тип документа', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:ContactType' => 'Тип контакта', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkPersonToTeam' => 'Связь Персона/Команда', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~', @@ -287,13 +288,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => '', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Роль', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:DataAdministration' => 'Администрирование данных', 'Menu:DataAdministration+' => 'Администрирование данных', 'Menu:Catalogs' => 'Каталоги', @@ -331,20 +332,20 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Menu:Typology+' => 'Типология', 'UI_WelcomeMenu_AllConfigItems' => 'Все конфигурационные единицы', 'Menu:ConfigManagement:Typology' => 'Настройка типологии', -)); +]); // Add translation for Fieldsets -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Person:info' => 'Основная информация', 'User:info' => 'Основная информация', 'User:profiles' => 'Profiles (minimum one)~~', 'Person:personal_info' => 'Личная информация', 'Person:notifiy' => 'Уведомления', -)); +]); // Themes -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'theme:fullmoon' => 'Full moon~~', 'theme:test-red' => 'Test instance (Red)~~', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/sk.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/sk.dict.itop-structure.php index 559c41aef..f612ee3a7 100644 --- a/datamodels/2.x/itop-structure/dictionaries/sk.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/sk.dict.itop-structure.php @@ -1,16 +1,17 @@ * */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Organization' => 'Organizácia', 'Class:Organization+' => '~~', 'Class:Organization/Attribute:name' => 'Názov', @@ -37,13 +38,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Organization:Overview:FunctionalCIs' => 'Configuration items of this organization~~', 'Organization:Overview:FunctionalCIs:subtitle' => 'by type~~', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Users within this organization~~', -)); +]); // // Class: Location // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Location' => 'Poloha', 'Class:Location+' => 'Any type of location: Region, Country, City, Site, Building, Floor, Room, Rack,...~~', 'Class:Location/Attribute:name' => 'Názov', @@ -70,13 +71,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Location/Attribute:physicaldevice_list+' => 'All the devices in this location~~', 'Class:Location/Attribute:person_list' => 'Kontakty', 'Class:Location/Attribute:person_list+' => 'All the contacts located on this location~~', -)); +]); // // Class: Contact // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Contact' => 'Kontakt', 'Class:Contact+' => '~~', 'Class:Contact/ComplementaryName' => '%1$s - %2$s~~', @@ -108,13 +109,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Contact/Attribute:cis_list+' => 'All the configuration items linked to this contact~~', 'Class:Contact/Attribute:finalclass' => 'Typ kontaktu', 'Class:Contact/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: Person // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Person' => 'Osoba', 'Class:Person+' => '~~', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -149,13 +150,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Person/UniquenessRule:name+' => 'The employee name should be unique inside its organization~~', 'Class:Person/UniquenessRule:name' => 'There is already a person in \'$this->org_name$\' organization with the same name~~', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~', -)); +]); // // Class: Team // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Team' => 'Tím', 'Class:Team+' => '~~', 'Class:Team/ComplementaryName' => '%1$s - %2$s~~', @@ -163,13 +164,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Team/Attribute:persons_list+' => 'All the people belonging to this team~~', 'Class:Team/Attribute:tickets_list' => 'Tickety', 'Class:Team/Attribute:tickets_list+' => 'All the tickets assigned to this team~~', -)); +]); // // Class: Document // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Document' => 'Dokument', 'Class:Document+' => '~~', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -199,77 +200,77 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Document/Attribute:cis_list+' => 'All the configuration items linked to this document~~', 'Class:Document/Attribute:finalclass' => 'Typ dokumentu', 'Class:Document/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: DocumentFile // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DocumentFile' => 'Dokumentový súbor', 'Class:DocumentFile+' => '~~', 'Class:DocumentFile/Attribute:file' => 'Súbor', 'Class:DocumentFile/Attribute:file+' => '~~', -)); +]); // // Class: DocumentNote // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DocumentNote' => 'Poznámka dokumentu', 'Class:DocumentNote+' => '~~', 'Class:DocumentNote/Attribute:text' => 'Text', 'Class:DocumentNote/Attribute:text+' => '~~', -)); +]); // // Class: DocumentWeb // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DocumentWeb' => 'Web stránka dokumentu', 'Class:DocumentWeb+' => '~~', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '~~', -)); +]); // // Class: Typology // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Typology' => 'Typológia', 'Class:Typology+' => '~~', 'Class:Typology/Attribute:name' => 'Názov', 'Class:Typology/Attribute:name+' => '~~', 'Class:Typology/Attribute:finalclass' => 'Typ', 'Class:Typology/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: DocumentType // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:DocumentType' => 'Typ dokumentu', 'Class:DocumentType+' => '~~', -)); +]); // // Class: ContactType // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:ContactType' => 'Typ kontaktu', 'Class:ContactType+' => '~~', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkPersonToTeam' => 'väzba - Osoba / Tím', 'Class:lnkPersonToTeam+' => '~~', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~', @@ -286,13 +287,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'To select within a typology of possible roles~~', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Názov role', 'Class:lnkPersonToTeam/Attribute:role_name+' => '~~', -)); +]); // // Application Menu // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Menu:DataAdministration' => 'Dátová administrácia', 'Menu:DataAdministration+' => 'Data administration~~', 'Menu:Catalogs' => 'Katalógy', @@ -330,20 +331,20 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Menu:Typology+' => 'Typology configuration~~', 'UI_WelcomeMenu_AllConfigItems' => 'Zhrnutie', 'Menu:ConfigManagement:Typology' => 'Konfiguračná typológia', -)); +]); // Add translation for Fieldsets -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Person:info' => 'Všeobecné informácie', 'User:info' => 'Všeobecné informácie', 'User:profiles' => 'Profiles (minimum one)~~', 'Person:personal_info' => 'Personal information~~', 'Person:notifiy' => 'Upozornenie', -)); +]); // Themes -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'theme:fullmoon' => 'Full moon~~', 'theme:test-red' => 'Test instance (Red)~~', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/tr.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/tr.dict.itop-structure.php index 317a64275..bd6ec25fc 100644 --- a/datamodels/2.x/itop-structure/dictionaries/tr.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/tr.dict.itop-structure.php @@ -1,17 +1,18 @@ * @author Izzet Sirin * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Organization' => 'Kurum', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => 'Adı', @@ -38,13 +39,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Organization:Overview:FunctionalCIs' => 'Configuration items of this organization~~', 'Organization:Overview:FunctionalCIs:subtitle' => 'by type~~', 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Users within this organization~~', -)); +]); // // Class: Location // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Location' => 'Yerleşke', 'Class:Location+' => 'Yerleşke : Bölge, Ülke, Şehir, Yerleşke, Bina, Kat, Oda, kabin,...', 'Class:Location/Attribute:name' => 'Adı', @@ -71,13 +72,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Location/Attribute:physicaldevice_list+' => 'Bu konumdaki tüm cihazlar', 'Class:Location/Attribute:person_list' => 'Kişiler', 'Class:Location/Attribute:person_list+' => 'Bu konumda bulunan tüm kişiler', -)); +]); // // Class: Contact // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Contact' => 'İrtibat', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s~~', @@ -109,13 +110,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Contact/Attribute:cis_list+' => 'Bu kişiyle bağlantılı tüm yapılandırma öğeleri', 'Class:Contact/Attribute:finalclass' => 'Tip', 'Class:Contact/Attribute:finalclass+' => '', -)); +]); // // Class: Person // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Person' => 'Kişi', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -150,13 +151,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Person/UniquenessRule:name+' => 'The employee name should be unique inside its organization~~', 'Class:Person/UniquenessRule:name' => 'There is already a person in \'$this->org_name$\' organization with the same name~~', 'Class:Person/Error:ChangingOrgDenied' => 'Impossible to move this person under organization \'%1$s\' as it would break his access to the User Portal, his associated user not being allowed on this organization~~', -)); +]); // // Class: Team // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Team' => 'Ekip', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s~~', @@ -164,13 +165,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Team/Attribute:persons_list+' => 'Bu ekibe ait tüm kişiler', 'Class:Team/Attribute:tickets_list' => 'Çağrı Kayıtları', 'Class:Team/Attribute:tickets_list+' => 'Bu ekibe atanan tüm çağrı kayıtları', -)); +]); // // Class: Document // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Document' => 'Doküman', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s~~', @@ -200,77 +201,77 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Document/Attribute:cis_list+' => 'Bu belgeye bağlı tüm yapılandırma öğeleri', 'Class:Document/Attribute:finalclass' => 'Belge Türü', 'Class:Document/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: DocumentFile // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DocumentFile' => 'Belge dosyası', 'Class:DocumentFile+' => '~~', 'Class:DocumentFile/Attribute:file' => 'Dosya', 'Class:DocumentFile/Attribute:file+' => '~~', -)); +]); // // Class: DocumentNote // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DocumentNote' => 'Belge Notu', 'Class:DocumentNote+' => '~~', 'Class:DocumentNote/Attribute:text' => 'Metin', 'Class:DocumentNote/Attribute:text+' => '~~', -)); +]); // // Class: DocumentWeb // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DocumentWeb' => 'Belge Web', 'Class:DocumentWeb+' => '~~', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '~~', -)); +]); // // Class: Typology // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Typology' => 'Tipoloji', 'Class:Typology+' => '~~', 'Class:Typology/Attribute:name' => 'İsim', 'Class:Typology/Attribute:name+' => '~~', 'Class:Typology/Attribute:finalclass' => 'Tip', 'Class:Typology/Attribute:finalclass+' => 'Name of the final class~~', -)); +]); // // Class: DocumentType // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:DocumentType' => 'Belge Türü', 'Class:DocumentType+' => '~~', -)); +]); // // Class: ContactType // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:ContactType' => 'İletişim Tipi', 'Class:ContactType+' => '~~', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkPersonToTeam' => 'Bağlantılı Kişi / Ekip', 'Class:lnkPersonToTeam+' => '~~', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s~~', @@ -287,13 +288,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => 'To select within a typology of possible roles~~', 'Class:lnkPersonToTeam/Attribute:role_name' => 'Rol Adı', 'Class:lnkPersonToTeam/Attribute:role_name+' => '~~', -)); +]); // // Application Menu // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:DataAdministration' => 'Veri yönetimi', 'Menu:DataAdministration+' => 'Veri yönetimi', 'Menu:Catalogs' => 'Kataloglar', @@ -331,20 +332,20 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Menu:Typology+' => 'Tipoloji Yapılandırması', 'UI_WelcomeMenu_AllConfigItems' => 'Özet', 'Menu:ConfigManagement:Typology' => 'Tipoloji Yapılandırması', -)); +]); // Add translation for Fieldsets -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Person:info' => 'Genel Bilgi', 'User:info' => 'Genel Bilgi', 'User:profiles' => 'Profiles (minimum one)~~', 'Person:personal_info' => 'Personal information~~', 'Person:notifiy' => 'Bildirim', -)); +]); // Themes -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'theme:fullmoon' => 'Full moon~~', 'theme:test-red' => 'Test instance (Red)~~', -)); +]); diff --git a/datamodels/2.x/itop-structure/dictionaries/zh_cn.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/zh_cn.dict.itop-structure.php index 329c235e7..fb2a5a1cd 100644 --- a/datamodels/2.x/itop-structure/dictionaries/zh_cn.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/zh_cn.dict.itop-structure.php @@ -1,4 +1,5 @@ '组织', 'Class:Organization+' => '', 'Class:Organization/Attribute:name' => '名称', @@ -68,13 +69,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Organization:Overview:FunctionalCIs' => '此组织的所有配置项', 'Organization:Overview:FunctionalCIs:subtitle' => '按类型', 'Organization:Overview:Users' => '此组织里所有的'.ITOP_APPLICATION_SHORT.'用户', -)); +]); // // Class: Location // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Location' => '地点', 'Class:Location+' => '任何类型的地点: 区域, 国家, 城市, 位置, 建筑, 楼层, 房间, 机架,...', 'Class:Location/Attribute:name' => '名称', @@ -101,13 +102,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Location/Attribute:physicaldevice_list+' => '此位置的所有设备', 'Class:Location/Attribute:person_list' => '联系人', 'Class:Location/Attribute:person_list+' => '此位置的所有联系人', -)); +]); // // Class: Contact // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Contact' => '联系人', 'Class:Contact+' => '', 'Class:Contact/ComplementaryName' => '%1$s - %2$s', @@ -139,13 +140,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Contact/Attribute:cis_list+' => '此联系人关联的所有配置项', 'Class:Contact/Attribute:finalclass' => '联系人类型', 'Class:Contact/Attribute:finalclass+' => '根本属性的名称', -)); +]); // // Class: Person // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Person' => '人员', 'Class:Person+' => '', 'Class:Person/ComplementaryName' => '%1$s - %2$s~~', @@ -180,13 +181,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Person/UniquenessRule:name+' => '同一组织内的员工姓名必须唯一', 'Class:Person/UniquenessRule:name' => '\'$this->org_name$\' 内已经有人叫这个名字', 'Class:Person/Error:ChangingOrgDenied' => '无法移动此人员到组织 \'%1$s\' 因为这将终端其用户门户的访问, 其关联的用户没有被授权访问此组织', -)); +]); // // Class: Team // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Team' => '团队', 'Class:Team+' => '', 'Class:Team/ComplementaryName' => '%1$s - %2$s', @@ -194,13 +195,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Team/Attribute:persons_list+' => '此团队包含的所有成员', 'Class:Team/Attribute:tickets_list' => '工单', 'Class:Team/Attribute:tickets_list+' => '此团队的所有工单', -)); +]); // // Class: Document // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Document' => '文档', 'Class:Document+' => '', 'Class:Document/ComplementaryName' => '%1$s - %2$s - %3$s', @@ -230,77 +231,77 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Document/Attribute:cis_list+' => '此文档关联的所有配置项', 'Class:Document/Attribute:finalclass' => '文档类型', 'Class:Document/Attribute:finalclass+' => '根本属性的名称', -)); +]); // // Class: DocumentFile // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DocumentFile' => '文档文件', 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => '文件', 'Class:DocumentFile/Attribute:file+' => '', -)); +]); // // Class: DocumentNote // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DocumentNote' => '文档笔记', 'Class:DocumentNote+' => '', 'Class:DocumentNote/Attribute:text' => '正文', 'Class:DocumentNote/Attribute:text+' => '', -)); +]); // // Class: DocumentWeb // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DocumentWeb' => '文档网页', 'Class:DocumentWeb+' => '', 'Class:DocumentWeb/Attribute:url' => 'URL', 'Class:DocumentWeb/Attribute:url+' => '', -)); +]); // // Class: Typology // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Typology' => '拓扑', 'Class:Typology+' => '', 'Class:Typology/Attribute:name' => '名称', 'Class:Typology/Attribute:name+' => '', 'Class:Typology/Attribute:finalclass' => '拓扑类型', 'Class:Typology/Attribute:finalclass+' => '根本属性的名称', -)); +]); // // Class: DocumentType // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DocumentType' => '文档类型', 'Class:DocumentType+' => '', -)); +]); // // Class: ContactType // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ContactType' => '联系人类型', 'Class:ContactType+' => '', -)); +]); // // Class: lnkPersonToTeam // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkPersonToTeam' => '关联 人员/团队', 'Class:lnkPersonToTeam+' => '', 'Class:lnkPersonToTeam/Name' => '%1$s / %2$s', @@ -317,13 +318,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkPersonToTeam/Attribute:role_id+' => '', 'Class:lnkPersonToTeam/Attribute:role_name' => '角色名称', 'Class:lnkPersonToTeam/Attribute:role_name+' => '', -)); +]); // // Application Menu // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:DataAdministration' => '数据管理', 'Menu:DataAdministration+' => '数据管理', 'Menu:Catalogs' => '类别', @@ -361,20 +362,20 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Menu:Typology+' => '类型配置', 'UI_WelcomeMenu_AllConfigItems' => '摘要', 'Menu:ConfigManagement:Typology' => '类型配置', -)); +]); // Add translation for Fieldsets -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Person:info' => '基本信息', 'User:info' => '基本信息', 'User:profiles' => '角色 (至少一个)', 'Person:personal_info' => '个人信息', 'Person:notifiy' => '通知', -)); +]); // Themes -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'theme:fullmoon' => '满月', 'theme:test-red' => '测试 (红色)', -)); +]); diff --git a/datamodels/2.x/itop-structure/main.itop-structure.php b/datamodels/2.x/itop-structure/main.itop-structure.php index 88c16a25a..faf7e17b2 100644 --- a/datamodels/2.x/itop-structure/main.itop-structure.php +++ b/datamodels/2.x/itop-structure/main.itop-structure.php @@ -1,9 +1,10 @@ - // Starting with iTop 1.2 you can restrict the list of organizations displayed in the drop-down list // by specifying a query as shown below. Note that this is NOT a security settings, since the // choice 'All Organizations' will always be available in the menu ApplicationMenu::SetFavoriteSiloQuery('SELECT Organization'); - -?> diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/cs.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/cs.dict.itop-themes-compat.php index 93f9a13fe..99884af6a 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/cs.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/cs.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Světle šedá (zastaralé)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/da.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/da.dict.itop-themes-compat.php index 210f2c335..be98d4378 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/da.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/da.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Light Grey (deprecated)~~', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/de.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/de.dict.itop-themes-compat.php index 4701a4809..6336d00ad 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/de.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/de.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Light Grey (veraltet)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/en.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/en.dict.itop-themes-compat.php index 49f12deeb..f9090d46b 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/en.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/en.dict.itop-themes-compat.php @@ -1,4 +1,5 @@ 'Light Grey (deprecated)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/en_gb.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/en_gb.dict.itop-themes-compat.php index 75a7ac1f7..653e0c3ed 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/en_gb.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/en_gb.dict.itop-themes-compat.php @@ -1,4 +1,5 @@ 'Light Grey (deprecated)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/es_cr.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/es_cr.dict.itop-themes-compat.php index efacf63c6..cf7cd426b 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/es_cr.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/es_cr.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Gris claro (obsoleto)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/fr.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/fr.dict.itop-themes-compat.php index a6f549eaf..3be488efc 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/fr.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/fr.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Light Grey (obsolète)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/hu.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/hu.dict.itop-themes-compat.php index 2dccf37e2..fd54e4071 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/hu.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/hu.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Világosszürke (elavult)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/it.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/it.dict.itop-themes-compat.php index 7171c0d9e..c298420c7 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/it.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/it.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Light Grey (deprecated)~~', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/ja.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/ja.dict.itop-themes-compat.php index 12f33e000..f9d6bb5c5 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/ja.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/ja.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Light Grey (deprecated)~~', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/nl.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/nl.dict.itop-themes-compat.php index 12826bde2..2ab2548c8 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/nl.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/nl.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'theme:light-grey' => 'Lichtgrijs (verouderd)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/pl.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/pl.dict.itop-themes-compat.php index 8ba1b258b..a920ba810 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/pl.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/pl.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Jasnoszary (przestarzałe)', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/ru.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/ru.dict.itop-themes-compat.php index a1ce58ce4..b5206be5f 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/ru.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/ru.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Light Grey (deprecated)~~', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/sk.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/sk.dict.itop-themes-compat.php index d4974eaab..3101070fd 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/sk.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/sk.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Light Grey (deprecated)~~', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/tr.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/tr.dict.itop-themes-compat.php index b4e4873bf..c0e46dbe1 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/tr.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/tr.dict.itop-themes-compat.php @@ -1,14 +1,15 @@ 'Light Grey (deprecated)~~', -)); +]); diff --git a/datamodels/2.x/itop-themes-compat/dictionaries/zh_cn.dict.itop-themes-compat.php b/datamodels/2.x/itop-themes-compat/dictionaries/zh_cn.dict.itop-themes-compat.php index bccc1f0ad..29768e7f8 100644 --- a/datamodels/2.x/itop-themes-compat/dictionaries/zh_cn.dict.itop-themes-compat.php +++ b/datamodels/2.x/itop-themes-compat/dictionaries/zh_cn.dict.itop-themes-compat.php @@ -1,10 +1,11 @@ '淡灰 (废弃)', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/cs.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/cs.dict.itop-tickets.php index f3b7a6e09..c0fe267c9 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/cs.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/cs.dict.itop-tickets.php @@ -1,17 +1,18 @@ * @author Daniel Rokos * */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Ticket' => 'Tiket', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'ID', @@ -63,14 +64,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Uzavřený', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '', 'Ticket:ImpactAnalysis' => 'Analýza dopadů', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkContactToTicket' => 'Spojení (Kontakt / Tiket)', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~', @@ -90,13 +90,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Přidán manuálně', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Automaticky', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Neupozorňovat', -)); +]); // // Class: WorkOrder // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:WorkOrder' => 'Pracovní příkaz', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Název', @@ -129,11 +129,10 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Uzavřít', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Ticket:baseinfo' => 'Obecné informace', 'Ticket:date' => 'Data', 'Ticket:contact' => 'Kontakty', @@ -223,14 +222,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Cíl úrovně služeb typu TTO', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Čas pro vyřešení (TTR)', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Cíl úrovně služeb typu TTR', -)); - +]); // // Class: Ticket // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/da.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/da.dict.itop-tickets.php index 0531d1852..3189bab63 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/da.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/da.dict.itop-tickets.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Ticket' => 'Ticket', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Reference', @@ -62,14 +63,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Closed~~', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '~~', 'Ticket:ImpactAnalysis' => 'Impact Analysis~~', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkContactToTicket' => 'Sammenhæng Kontakt/Ticket', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~', @@ -89,13 +89,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Added manually~~', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Computed~~', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~', -)); +]); // // Class: WorkOrder // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:WorkOrder' => 'Arbejdsordre', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Navn', @@ -128,11 +128,10 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Luk', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Ticket:baseinfo' => 'Almindelig information', 'Ticket:date' => 'Dato', 'Ticket:contact' => 'Kontakt', @@ -222,14 +221,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~', -)); - +]); // // Class: Ticket // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/de.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/de.dict.itop-tickets.php index 88e67c71a..a9e802f2b 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/de.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/de.dict.itop-tickets.php @@ -1,16 +1,17 @@ * */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Ticket' => 'Ticket', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Referenz', @@ -62,14 +63,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Geschlossen', 'Class:Ticket/Attribute:operational_status/Value:closed+' => 'Geschlossen', 'Ticket:ImpactAnalysis' => 'Auswirkungsanalyse', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkContactToTicket' => 'Verknüpfung Kontakt/Ticket', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -89,13 +89,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Manuell hinzugefügt', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Berechnet', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Nicht ändern', -)); +]); // // Class: WorkOrder // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:WorkOrder' => 'Arbeitsauftrag', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Name', @@ -128,11 +128,10 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Schließen', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Ticket:baseinfo' => 'Allgemeine Informationen', 'Ticket:date' => 'Daten', 'Ticket:contact' => 'Kontakte', @@ -222,14 +221,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Zielvorgabe (SLT) vom Typ TTO', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve (Erstlösungszeit)', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Zielvorgabe (SLT) vom Typ TTR', -)); - +]); // // Class: Ticket // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/en.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/en.dict.itop-tickets.php index c6ca6ded2..b084b14df 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/en.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/en.dict.itop-tickets.php @@ -1,4 +1,5 @@ /Stimulus: // Class:/Stimulus:+ - // // Class: Ticket // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Ticket' => 'Ticket', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Ref', @@ -88,14 +88,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Closed', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '', 'Ticket:ImpactAnalysis' => 'Impact Analysis', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkContactToTicket' => 'Link Contact / Ticket', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -115,13 +114,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Added manually', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Computed', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify', -)); +]); // // Class: WorkOrder // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:WorkOrder' => 'Work Order', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Name', @@ -154,11 +153,10 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Close', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Ticket:baseinfo' => 'General Information', 'Ticket:date' => 'Dates', 'Ticket:contact' => 'Contacts', @@ -248,14 +246,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR', -)); - +]); // // Class: Ticket // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Ticket/Attribute:team_email' => 'Team email', 'Class:Ticket/Attribute:team_email+' => '', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/en_gb.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/en_gb.dict.itop-tickets.php index dcb269966..58e022e88 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/en_gb.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/en_gb.dict.itop-tickets.php @@ -1,4 +1,5 @@ /Stimulus: // Class:/Stimulus:+ - // // Class: Ticket // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Ticket' => 'Ticket', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Ref', @@ -88,14 +88,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Closed', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '', 'Ticket:ImpactAnalysis' => 'Impact Analysis', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkContactToTicket' => 'Link Contact / Ticket', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -115,13 +114,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Added manually', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Computed', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify', -)); +]); // // Class: WorkOrder // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:WorkOrder' => 'Work Order', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Name', @@ -154,11 +153,10 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Close', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Ticket:baseinfo' => 'General Information', 'Ticket:date' => 'Dates', 'Ticket:contact' => 'Contacts', @@ -248,5 +246,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR', -)); - +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/es_cr.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/es_cr.dict.itop-tickets.php index 017c2cb42..80cb5ba73 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/es_cr.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/es_cr.dict.itop-tickets.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Ticket' => 'Ticket', 'Class:Ticket+' => 'Ticket', 'Class:Ticket/Attribute:ref' => 'Ref', @@ -59,14 +60,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Cerrado', 'Class:Ticket/Attribute:operational_status/Value:closed+' => 'Cerrado', 'Ticket:ImpactAnalysis' => 'Análisis de Impacto', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkContactToTicket' => 'Relación Contacto y Ticket', 'Class:lnkContactToTicket+' => 'Relación Contacto y Ticket', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -86,13 +86,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Agregado Manualmente', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Calculado', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'No notificar', -)); +]); // // Class: WorkOrder // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:WorkOrder' => 'Orden de Trabajo', 'Class:WorkOrder+' => 'Orden de Trabajo', 'Class:WorkOrder/Attribute:name' => 'Nombre', @@ -125,11 +125,10 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:WorkOrder/Attribute:log+' => 'Bitácora', 'Class:WorkOrder/Stimulus:ev_close' => 'Cerrar', 'Class:WorkOrder/Stimulus:ev_close+' => 'Cerrar', -)); - +]); // Fieldset translation -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Ticket:baseinfo' => 'Información General', 'Ticket:date' => 'Fechas', 'Ticket:contact' => 'Contactos', @@ -219,14 +218,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Objetivo basado en SLT de tipo TTO', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Tiempo a Resolución', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Objetivo basado en SLT de tipo TTR', -)); - +]); // // Class: Ticket // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/fr.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/fr.dict.itop-tickets.php index d711fb556..4c21fa188 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/fr.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/fr.dict.itop-tickets.php @@ -1,15 +1,16 @@ 'Ticket', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Référence', @@ -66,15 +67,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Ticket/Attribute:operational_status/Value:resolved+' => '', 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Clos', 'Class:Ticket/Attribute:operational_status/Value:closed+' => 'Fermé', - 'Ticket:ImpactAnalysis' => 'Analyse d\'Impact' -)); - + 'Ticket:ImpactAnalysis' => 'Analyse d\'Impact', +]); // // Class: lnkContactToTicket // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkContactToTicket' => 'Lien Contact / Ticket', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -94,13 +94,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Ajouté manuellement', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Calculé', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Ne pas notifier', -)); +]); // // Class: WorkOrder // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:WorkOrder' => 'Tâche', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Nom', @@ -133,11 +133,10 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Fermer', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Ticket:baseinfo' => 'Informations générales', 'Ticket:date' => 'Dates', 'Ticket:contact' => 'Contacts', @@ -238,15 +237,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:Team/Attribute:tickets_list/UI:Links:Delete:Button+' => 'Supprimer ce %4$s', 'Class:Team/Attribute:tickets_list/UI:Links:Delete:Modal:Title' => 'Supprimer un %4$s', 'Class:Team/Attribute:tickets_list/UI:Links:Remove:Button+' => 'Retirer ce %4$s', - 'Class:Team/Attribute:tickets_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s' -)); - + 'Class:Team/Attribute:tickets_list/UI:Links:Remove:Modal:Title' => 'Retirer ce %4$s de son %1$s', +]); // // Class: Ticket // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/hu.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/hu.dict.itop-tickets.php index 88e3ff221..89fa992ae 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/hu.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/hu.dict.itop-tickets.php @@ -1,15 +1,16 @@ 'Hibajegy', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Referenciaszám', @@ -61,14 +62,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Lezárva', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '', 'Ticket:ImpactAnalysis' => 'Hatáselemzés', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkContactToTicket' => 'Kapcsolattartó / Hibajegy', 'Class:lnkContactToTicket+' => '~~', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~', @@ -88,13 +88,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Kézzel hozzáadva', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Számított', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Ne értesítsen', -)); +]); // // Class: WorkOrder // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:WorkOrder' => 'Munkaelrendelő', 'Class:WorkOrder+' => '~~', 'Class:WorkOrder/Attribute:name' => 'Név', @@ -127,11 +127,10 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:WorkOrder/Attribute:log+' => '~~', 'Class:WorkOrder/Stimulus:ev_close' => 'Bezárás', 'Class:WorkOrder/Stimulus:ev_close+' => '~~', -)); - +]); // Fieldset translation -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Ticket:baseinfo' => 'Általános információk', 'Ticket:date' => 'Dátum', 'Ticket:contact' => 'Kapcsolattartók', @@ -221,14 +220,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Megoldási idő', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~', -)); - +]); // // Class: Ticket // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/it.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/it.dict.itop-tickets.php index cf331fcba..a323f807c 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/it.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/it.dict.itop-tickets.php @@ -1,15 +1,16 @@ 'Ticket', 'Class:Ticket+' => '~~', 'Class:Ticket/Attribute:ref' => 'Rif', @@ -61,14 +62,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Chiuso', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '~~', 'Ticket:ImpactAnalysis' => 'Analisi dell\'impatto', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkContactToTicket' => 'Link Contact / Ticket', 'Class:lnkContactToTicket+' => '~~', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -88,13 +88,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Aggiunto manualmente', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Calcolato', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Non notificare', -)); +]); // // Class: WorkOrder // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:WorkOrder' => 'Work Order~~', 'Class:WorkOrder+' => '~~', 'Class:WorkOrder/Attribute:name' => 'Nome', @@ -127,11 +127,10 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:WorkOrder/Attribute:log+' => '~~', 'Class:WorkOrder/Stimulus:ev_close' => 'Chiudi', 'Class:WorkOrder/Stimulus:ev_close+' => '~~', -)); - +]); // Fieldset translation -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Ticket:baseinfo' => 'Infomazioni Generali', 'Ticket:date' => 'Data', 'Ticket:contact' => 'Contatti', @@ -221,14 +220,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Tempo Per Risolvere', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~', -)); - +]); // // Class: Ticket // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/ja.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/ja.dict.itop-tickets.php index e55eb5f51..4aeee2e73 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/ja.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/ja.dict.itop-tickets.php @@ -1,15 +1,16 @@ 'チケット', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => '参照', @@ -61,14 +62,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Closed~~', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '~~', 'Ticket:ImpactAnalysis' => 'Impact Analysis~~', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkContactToTicket' => 'リンク 連絡先/チケット', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~', @@ -88,13 +88,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Added manually~~', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Computed~~', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~', -)); +]); // // Class: WorkOrder // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:WorkOrder' => '作業指示', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => '名前', @@ -127,11 +127,10 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'クローズ', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Ticket:baseinfo' => '基本情報', 'Ticket:date' => '日付', 'Ticket:contact' => '連絡先', @@ -221,14 +220,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~', -)); - +]); // // Class: Ticket // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/nl.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/nl.dict.itop-tickets.php index df0c75266..e774ba376 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/nl.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/nl.dict.itop-tickets.php @@ -1,17 +1,18 @@ * @author Jeffrey Bostoen (2018 - 2022) * @author Thomas Casteleyn */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Ticket' => 'Ticket', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Nummer', @@ -63,14 +64,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Afgesloten', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '', 'Ticket:ImpactAnalysis' => 'Impactanalyse', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkContactToTicket' => 'Link Contact / Ticket', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -90,13 +90,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Manueel toegevoegd', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Automatisch afgeleid', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Niet verwittigen', -)); +]); // // Class: WorkOrder // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:WorkOrder' => 'Werkopdracht', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Naam', @@ -129,11 +129,10 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Sluiten', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Ticket:baseinfo' => 'Globale informatie', 'Ticket:date' => 'Data', 'Ticket:contact' => 'Contacten', @@ -223,14 +222,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Doel gebaseerd op een SLT (TTO)', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Doel gebaseerd op een SLT (TTR)', -)); - +]); // // Class: Ticket // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/pl.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/pl.dict.itop-tickets.php index 0b3423e58..27f8e0b28 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/pl.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/pl.dict.itop-tickets.php @@ -1,15 +1,16 @@ 'Zgłoszenie', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Powiązanie', @@ -61,14 +62,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Zamknięty', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '', 'Ticket:ImpactAnalysis' => 'Analiza wpływu', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkContactToTicket' => 'Połączenie Kontakt / Zgłoszenie', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -88,13 +88,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Dodane ręcznie', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Obliczone', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Nie powiadamiaj', -)); +]); // // Class: WorkOrder // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:WorkOrder' => 'Porządek pracy', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Nazwa', @@ -127,11 +127,10 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Zamknij', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Ticket:baseinfo' => 'Informacje ogólne', 'Ticket:date' => 'Daty', 'Ticket:contact' => 'Kontakty', @@ -221,14 +220,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Cel oparty na SLT typu TTO', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Czas na rozwiązanie TTR', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Cel oparty na SLT typu TTR', -)); - +]); // // Class: Ticket // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/ru.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/ru.dict.itop-tickets.php index 995d607bd..5634adfcb 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/ru.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/ru.dict.itop-tickets.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Ticket' => 'Тикет', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Номер', @@ -62,14 +63,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Закрыт', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '', 'Ticket:ImpactAnalysis' => 'Анализ влияния', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkContactToTicket' => 'Связь Контакт/Тикет', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~', @@ -89,13 +89,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Добавлено вручную', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Вычислено', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Не уведомлять', -)); +]); // // Class: WorkOrder // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:WorkOrder' => 'Наряд на работу', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => 'Название', @@ -128,11 +128,10 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => 'Закрыть', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Ticket:baseinfo' => 'Общая информация', 'Ticket:date' => 'Даты', 'Ticket:contact' => 'Контакты', @@ -222,14 +221,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~', -)); - +]); // // Class: Ticket // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/sk.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/sk.dict.itop-tickets.php index 522e7255d..154e96740 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/sk.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/sk.dict.itop-tickets.php @@ -1,15 +1,16 @@ 'Ticket', 'Class:Ticket+' => '~~', 'Class:Ticket/Attribute:ref' => 'Referencia', @@ -61,14 +62,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Closed~~', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '~~', 'Ticket:ImpactAnalysis' => 'Impact Analysis~~', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkContactToTicket' => 'väzba - Kontakt / Ticket', 'Class:lnkContactToTicket+' => '~~', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~', @@ -88,13 +88,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Added manually~~', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Computed~~', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Do not notify~~', -)); +]); // // Class: WorkOrder // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:WorkOrder' => 'Pracovný príkaz', 'Class:WorkOrder+' => '~~', 'Class:WorkOrder/Attribute:name' => 'Názov', @@ -127,11 +127,10 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:WorkOrder/Attribute:log+' => '~~', 'Class:WorkOrder/Stimulus:ev_close' => 'Zatvoriť', 'Class:WorkOrder/Stimulus:ev_close+' => '~~', -)); - +]); // Fieldset translation -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Ticket:baseinfo' => 'Všeobecné informácia', 'Ticket:date' => 'Dátumy', 'Ticket:contact' => 'Kontakt', @@ -221,14 +220,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTO~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Time To Resolve~~', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'Goal based on a SLT of type TTR~~', -)); - +]); // // Class: Ticket // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/tr.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/tr.dict.itop-tickets.php index 545ec377d..36493b273 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/tr.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/tr.dict.itop-tickets.php @@ -1,16 +1,17 @@ * */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Ticket' => 'Kayıt', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => 'Referans', @@ -62,14 +63,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => 'Closed~~', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '~~', 'Ticket:ImpactAnalysis' => 'Etki Analizi', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkContactToTicket' => 'Kişi / Çağrı kaydı bağla', 'Class:lnkContactToTicket+' => '~~', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s~~', @@ -89,13 +89,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => 'Elle eklendi', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => 'Hesaplandı', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => 'Bildirme', -)); +]); // // Class: WorkOrder // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:WorkOrder' => 'İş emri', 'Class:WorkOrder+' => '~~', 'Class:WorkOrder/Attribute:name' => 'İsim', @@ -128,11 +128,10 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:WorkOrder/Attribute:log+' => '~~', 'Class:WorkOrder/Stimulus:ev_close' => 'Kapat', 'Class:WorkOrder/Stimulus:ev_close+' => '~~', -)); - +]); // Fieldset translation -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Ticket:baseinfo' => 'Genel Bilgi', 'Ticket:date' => 'Tarihler', 'Ticket:contact' => 'Kişiler', @@ -222,14 +221,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'TTO tipi bir SLT\'ye dayalı hedef', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Çözme zamanı', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => 'TTR tipi bir SLT\'ye dayalı hedef', -)); - +]); // // Class: Ticket // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-tickets/dictionaries/zh_cn.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/zh_cn.dict.itop-tickets.php index 77fe9dd31..1a6d64b8e 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/zh_cn.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/zh_cn.dict.itop-tickets.php @@ -1,4 +1,5 @@ '工单', 'Class:Ticket+' => '', 'Class:Ticket/Attribute:ref' => '编号', @@ -84,14 +85,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Ticket/Attribute:operational_status/Value:closed' => '已关闭', 'Class:Ticket/Attribute:operational_status/Value:closed+' => '', 'Ticket:ImpactAnalysis' => '影响分析', -)); - +]); // // Class: lnkContactToTicket // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkContactToTicket' => '关联联系人/工单', 'Class:lnkContactToTicket+' => '', 'Class:lnkContactToTicket/Name' => '%1$s / %2$s', @@ -111,13 +111,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkContactToTicket/Attribute:role_code/Value:manual' => '手动添加', 'Class:lnkContactToTicket/Attribute:role_code/Value:computed' => '自动添加', 'Class:lnkContactToTicket/Attribute:role_code/Value:do_not_notify' => '不通知', -)); +]); // // Class: WorkOrder // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:WorkOrder' => '工作任务', 'Class:WorkOrder+' => '', 'Class:WorkOrder/Attribute:name' => '名称', @@ -150,11 +150,10 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:WorkOrder/Attribute:log+' => '', 'Class:WorkOrder/Stimulus:ev_close' => '关闭', 'Class:WorkOrder/Stimulus:ev_close+' => '', -)); - +]); // Fieldset translation -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Ticket:baseinfo' => '基本信息', 'Ticket:date' => '日期信息', 'Ticket:contact' => '联系人', @@ -244,14 +243,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => '响应时限', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'TTR', 'Class:ResponseTicketTTR/Interface:iMetricComputer+' => '解决时限', -)); - +]); // // Class: Ticket // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Ticket/Attribute:team_email' => 'Team email~~', 'Class:Ticket/Attribute:team_email+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/cs.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/cs.dict.itop-virtualization-mgmt.php index 515b8b970..25a07d18c 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/cs.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/cs.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/da.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/da.dict.itop-virtualization-mgmt.php index 366a22654..b3cfafbe2 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/da.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/da.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/de.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/de.dict.itop-virtualization-mgmt.php index acb3b3f9e..e0b95fb36 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/de.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/de.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/en.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/en.dict.itop-virtualization-mgmt.php index 7d8861785..998d9e6ff 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/en.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/en.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id', 'Class:LogicalInterface/Attribute:org_id+' => '', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/en_gb.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/en_gb.dict.itop-virtualization-mgmt.php index 8308d6eea..1b018e263 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/en_gb.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/en_gb.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ // Dictionary entries go here -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/es_cr.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/es_cr.dict.itop-virtualization-mgmt.php index ae4a64c21..f24a6a180 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/es_cr.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/es_cr.dict.itop-virtualization-mgmt.php @@ -1,21 +1,22 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/fr.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/fr.dict.itop-virtualization-mgmt.php index f238f8034..8b4785d1a 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/fr.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/fr.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/hu.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/hu.dict.itop-virtualization-mgmt.php index 72abf03c2..70e4f032e 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/hu.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/hu.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/it.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/it.dict.itop-virtualization-mgmt.php index 73e7dc66c..2bbaf8d63 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/it.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/it.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/ja.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/ja.dict.itop-virtualization-mgmt.php index 87ad925c4..68dde8878 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/ja.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/ja.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/nl.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/nl.dict.itop-virtualization-mgmt.php index ad33a0cdc..a0b055d9d 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/nl.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/nl.dict.itop-virtualization-mgmt.php @@ -1,10 +1,11 @@ @@ -12,15 +13,15 @@ * @author Denis Flaven * */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/pl.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/pl.dict.itop-virtualization-mgmt.php index 3ffc30af4..f9e492abb 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/pl.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/pl.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/pt_br.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/pt_br.dict.itop-virtualization-mgmt.php index 6836e56c3..4a4b93590 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/pt_br.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/pt_br.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( +Dict::Add('PT BR', 'Brazilian', 'Brazilian', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/ru.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/ru.dict.itop-virtualization-mgmt.php index 2de2d0ec9..114c864da 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/ru.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/ru.dict.itop-virtualization-mgmt.php @@ -1,24 +1,25 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/sk.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/sk.dict.itop-virtualization-mgmt.php index 4ea661268..0339714fb 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/sk.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/sk.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/tr.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/tr.dict.itop-virtualization-mgmt.php index 89d3ee447..683e35aba 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/tr.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/tr.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/zh_cn.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/zh_cn.dict.itop-virtualization-mgmt.php index ea69191e2..45c4d2bb0 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/zh_cn.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/zh_cn.dict.itop-virtualization-mgmt.php @@ -1,4 +1,5 @@ */ -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ // Dictionary entries go here -)); +]); // // Class: LogicalInterface // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:LogicalInterface/Attribute:org_id' => 'Org id~~', 'Class:LogicalInterface/Attribute:org_id+' => '~~', -)); +]); diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/cs.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/cs.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/cs.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/cs.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/da.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/da.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/da.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/da.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/de.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/de.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/de.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/de.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/en.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/en.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/en.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/en.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/en_gb.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/en_gb.dict.itop-welcome-itil.php index 821faf3b6..a2089c33f 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/en_gb.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/en_gb.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/es_cr.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/es_cr.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/es_cr.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/es_cr.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/fr.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/fr.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/fr.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/fr.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/hu.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/hu.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/hu.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/hu.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/it.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/it.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/it.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/it.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/ja.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/ja.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/ja.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/ja.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/nl.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/nl.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/nl.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/nl.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/pl.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/pl.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/pl.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/pl.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/pt_br.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/pt_br.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/pt_br.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/pt_br.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/ru.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/ru.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/ru.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/ru.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/sk.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/sk.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/sk.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/sk.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/tr.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/tr.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/tr.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/tr.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/datamodels/2.x/itop-welcome-itil/dictionaries/zh_cn.dict.itop-welcome-itil.php b/datamodels/2.x/itop-welcome-itil/dictionaries/zh_cn.dict.itop-welcome-itil.php index 8bbf3562a..71bd52f7c 100644 --- a/datamodels/2.x/itop-welcome-itil/dictionaries/zh_cn.dict.itop-welcome-itil.php +++ b/datamodels/2.x/itop-welcome-itil/dictionaries/zh_cn.dict.itop-welcome-itil.php @@ -1,4 +1,5 @@ */ - diff --git a/dictionaries/core/orm-value/orm-document/cs.dictionary.itop.orm-document.php b/dictionaries/core/orm-value/orm-document/cs.dictionary.itop.orm-document.php index 95b47c769..384a825a7 100644 --- a/dictionaries/core/orm-value/orm-document/cs.dictionary.itop.orm-document.php +++ b/dictionaries/core/orm-value/orm-document/cs.dictionary.itop.orm-document.php @@ -1,10 +1,11 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Core:ormValue:ormDocument:DownloadsCount' => '%1s', diff --git a/dictionaries/core/orm-value/orm-document/fr.dictionary.itop.orm-document.php b/dictionaries/core/orm-value/orm-document/fr.dictionary.itop.orm-document.php index 39e2b0515..cd86f5a9a 100644 --- a/dictionaries/core/orm-value/orm-document/fr.dictionary.itop.orm-document.php +++ b/dictionaries/core/orm-value/orm-document/fr.dictionary.itop.orm-document.php @@ -1,10 +1,11 @@ diff --git a/dictionaries/core/orm-value/orm-document/pl.dictionary.itop.orm-document.php b/dictionaries/core/orm-value/orm-document/pl.dictionary.itop.orm-document.php index d62001e2f..3c5fcacc1 100644 --- a/dictionaries/core/orm-value/orm-document/pl.dictionary.itop.orm-document.php +++ b/dictionaries/core/orm-value/orm-document/pl.dictionary.itop.orm-document.php @@ -1,10 +1,11 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:cmdbAbstractObject/UniquenessRule:no_duplicate' => '%1$s: %2$s ya está vinculado a %3$s: %4$s, no se permiten duplicados en esta relación.', diff --git a/dictionaries/core/uniqueness-rule/fr.dictionary.itop.uniqueness-rule.php b/dictionaries/core/uniqueness-rule/fr.dictionary.itop.uniqueness-rule.php index 77c3cc9ea..090382b82 100644 --- a/dictionaries/core/uniqueness-rule/fr.dictionary.itop.uniqueness-rule.php +++ b/dictionaries/core/uniqueness-rule/fr.dictionary.itop.uniqueness-rule.php @@ -1,10 +1,11 @@ diff --git a/dictionaries/core/uniqueness-rule/pl.dictionary.itop.uniqueness-rule.php b/dictionaries/core/uniqueness-rule/pl.dictionary.itop.uniqueness-rule.php index 97c26630e..b1a5b6775 100644 --- a/dictionaries/core/uniqueness-rule/pl.dictionary.itop.uniqueness-rule.php +++ b/dictionaries/core/uniqueness-rule/pl.dictionary.itop.uniqueness-rule.php @@ -1,10 +1,11 @@ 'Kategorie auditu', 'Class:AuditCategory+' => 'Část celkového auditu', 'Class:AuditCategory/Attribute:name' => 'Název kategorie', @@ -26,13 +27,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Hranice špatných objektů, při kterých je výsledek označen chybou (červená), v procentech', 'Class:AuditCategory/Attribute:domains_list' => 'Domény', 'Class:AuditCategory/Attribute:domains_list+' => 'Domény obsahující tyto kategorie', -)); +]); // // Class: AuditRule // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:AuditRule' => 'Pravidlo Auditu', 'Class:AuditRule+' => 'Pravidlo pro kontrolu v dané kategorii auditu', 'Class:AuditRule/Attribute:name' => 'Název pravidla', @@ -51,13 +52,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:AuditRule/Attribute:category_id+' => 'Kategorie pro toto pravidlo', 'Class:AuditRule/Attribute:category_name' => 'Kategorie', 'Class:AuditRule/Attribute:category_name+' => 'Název kategorie pro toto pravidlo', -)); +]); // // Class: AuditDomain // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:AuditDomain' => 'Domény Auditu', 'Class:AuditDomain+' => 'Domény Auditu umožňují slučovat audity podle kategorií. Domény nejčastěji odpovídají skupinám řešitelů, které následně opravují chyby nalezené auditem', @@ -69,13 +70,13 @@ Domény nejčastěji odpovídají skupinám řešitelů, které následně oprav 'Class:AuditDomain/Attribute:icon+' => '', 'Class:AuditDomain/Attribute:categories_list' => 'Kategorie', 'Class:AuditDomain/Attribute:categories_list+' => 'Související kategorie auditu. Při spuštění auditu v doméně se kontrolují všechny související kategorie auditu a pouze ty.', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Okdaz na Kategorii Auditu / Doménu Auditu', 'Class:lnkAuditCategoryToAuditDomain+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Kategorie', @@ -86,13 +87,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Doména Auditu', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Jméno domény', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Jméno domény Auditu', -)); +]); // // Class: QueryOQL // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:Query' => 'Dotaz', 'Class:Query+' => '', 'Class:Query/Attribute:name' => 'Název', @@ -119,7 +120,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:QueryOQL+' => '', 'Class:QueryOQL/Attribute:oql' => 'Výraz', 'Class:QueryOQL/Attribute:oql+' => 'OQL výraz', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -130,7 +131,7 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( // Class: User // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:User' => 'Uživatel', 'Class:User+' => 'Uživatelské jméno', 'Class:User/Attribute:finalclass' => 'Typ účtu', @@ -176,13 +177,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:User/Warning:NoContactHasImpact' => 'Upozornění: tento uživatel nemá definovanou žádnou osobu, což znemožňuje přístup k portálu, novým upozorněním a má další vedlejší důsledky v Back-Office', 'Class:UserInternal' => 'Interní uživatel', 'Class:UserInternal+' => 'Uživatel definovaný v '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_Profiles' => 'Profil (role)', 'Class:URP_Profiles+' => 'Uživatelský profil (role)', 'Class:URP_Profiles/Attribute:name' => 'Název', @@ -191,13 +192,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:URP_Profiles/Attribute:description+' => 'Krátký popis', 'Class:URP_Profiles/Attribute:user_list' => 'Uživatelé', 'Class:URP_Profiles/Attribute:user_list+' => 'Uživatelé mající tento profil (roli)', -)); +]); // // Class: URP_Dimensions // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_Dimensions' => 'Rozměry', 'Class:URP_Dimensions+' => 'Rozměry aplikace (defining silos)', 'Class:URP_Dimensions/Attribute:name' => 'Jméno', @@ -206,13 +207,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:URP_Dimensions/Attribute:description+' => '', 'Class:URP_Dimensions/Attribute:type' => 'Typ', 'Class:URP_Dimensions/Attribute:type+' => 'Název třídy nebo typu dat (projekční jednotka)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_UserProfile' => 'Uživatel/Profil', 'Class:URP_UserProfile+' => '', 'Class:URP_UserProfile/Name' => 'Spojení mezi uživatelem %1$s a profilem %2$s', @@ -226,14 +227,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:URP_UserProfile/Attribute:profile+' => '', 'Class:URP_UserProfile/Attribute:reason' => 'Důvod', 'Class:URP_UserProfile/Attribute:reason+' => 'proč má uživatel tento profil', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_UserOrg' => 'Přístupné organizace', 'Class:URP_UserOrg+' => '', 'Class:URP_UserOrg/Name' => 'Spojení mezi uživatelem %1$s a organizací %2$s', @@ -247,13 +247,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Přístupná organizace', 'Class:URP_UserOrg/Attribute:reason' => 'Důvod', 'Class:URP_UserOrg/Attribute:reason+' => 'proč má uživatel oprávnění přistupovat k údajům této organizace', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => 'profile projections', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Rozměr ID', @@ -268,13 +268,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL výraz (pomocí $user) | konstanta | | +kód atributu', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Atribut', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Kód atributu cíle (nepovinné)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_ClassProjection' => 'class_projection', 'Class:URP_ClassProjection+' => 'class projections', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Rozměr ID', @@ -287,13 +287,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL výraz (pomocí $this) | konstanta | | +kód atributu', 'Class:URP_ClassProjection/Attribute:attribute' => 'Atribut', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Kód atributu cíle (nepovinné)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_ActionGrant' => 'Oprávnění k akci', 'Class:URP_ActionGrant+' => 'Oprávnění pro třídy', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profil', @@ -310,13 +310,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'ne', 'Class:URP_ActionGrant/Attribute:action' => 'Akce', 'Class:URP_ActionGrant/Attribute:action+' => 'operace, které se mají v dané třídě provést', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_StimulusGrant' => 'Oprávnění', 'Class:URP_StimulusGrant+' => 'oprávnění k podnětu v životním cyklu objektu', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profil', @@ -333,25 +333,25 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'ne', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Pondět', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'Kód podnětu', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:URP_AttributeGrant' => 'Oprávnění k akci', 'Class:URP_AttributeGrant+' => 'Oprávnění na úrovni atributů', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Action grant', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => '', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Atribut', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'kód atributu', -)); +]); // // Class: UserDashboard // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Class:UserDashboard' => 'Nástěnka uživatele', 'Class:UserDashboard+' => '~~', 'Class:UserDashboard/Attribute:user_id' => 'Uživatel', @@ -360,12 +360,12 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Class:UserDashboard/Attribute:menu_code+' => '~~', 'Class:UserDashboard/Attribute:contents' => 'Obsah', 'Class:UserDashboard/Attribute:contents+' => '~~', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:WelcomeMenu' => 'Vítejte', 'Menu:WelcomeMenu+' => 'Vítejte v '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Vítejte', 'Menu:WelcomeMenuPage+' => 'Vítejte v '.ITOP_APPLICATION_SHORT, 'Menu:AdminTools' => 'Administrace', @@ -382,14 +382,14 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Menu:MyShortcuts' => 'Mé odkazy', 'Menu:Notifications:Title' => 'Konfigurace Auditu', 'Menu:DataAdministration' => 'Správa dat', - 'Menu:DataAdministration+' => 'Správa dat' -)); + 'Menu:DataAdministration+' => 'Správa dat', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'BooleanLabel:yes' => 'ano', 'BooleanLabel:no' => 'ne', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login~~', @@ -1533,13 +1533,13 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Včetně děděných objektů', 'UI:Search:Criteria:Raw:Filtered' => 'Filtrováno', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtrováno na %1$s', - 'UI:StateChanged' => 'Stav změněn' -)); + 'UI:StateChanged' => 'Stav změněn', +]); // // Expression to Natural language // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Expression:Operator:AND' => ' A ', 'Expression:Operator:OR' => ' NEBO ', 'Expression:Operator:=' => ': ', @@ -1552,12 +1552,12 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Expression:Unit:Long:MINUTE' => 'minut(y)', 'Expression:Verb:NOW' => 'nyní', 'Expression:Verb:ISNULL' => ': nedefinováno', -)); +]); // // iTop Newsroom menu // -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'UI:Newsroom:NoNewMessage' => 'Žádné nové zprávy', 'UI:Newsroom:XNewMessage' => '%1$s nových zpráv', 'UI:Newsroom:MarkAllAsRead' => 'Označ všechny zprávy jako přečtené', @@ -1572,10 +1572,9 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgentní', 'UI:Newsroom:Priority:3:Tooltip' => 'Důležitá', 'UI:Newsroom:Priority:4:Tooltip' => 'Normalní', -)); +]); - -Dict::Add('CS CZ', 'Czech', 'Čeština', array( +Dict::Add('CS CZ', 'Czech', 'Čeština', [ 'Menu:DataSources' => 'Zdroje dat pro synchronizaci', 'Menu:DataSources+' => 'Všechny zdroje dat pro synchronizaci', 'Menu:AuditCategories' => 'Konfigurace Auditu', @@ -1603,4 +1602,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'Menu:Integrations' => 'Integrace', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/da.dictionary.itop.ui.php b/dictionaries/da.dictionary.itop.ui.php index f35688fdd..9211abedf 100644 --- a/dictionaries/da.dictionary.itop.ui.php +++ b/dictionaries/da.dictionary.itop.ui.php @@ -1,15 +1,16 @@ 'Audit-kategori', 'Class:AuditCategory+' => 'Udsnit af alle Audits', 'Class:AuditCategory/Attribute:name' => 'Kategori navn', @@ -26,13 +27,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)~~', 'Class:AuditCategory/Attribute:domains_list' => 'Domains~~', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category~~', -)); +]); // // Class: AuditRule // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:AuditRule' => 'Audit-regel', 'Class:AuditRule+' => 'En regel til at efterprøve den angivne Audit-kategori med', 'Class:AuditRule/Attribute:name' => 'Regel Navn', @@ -51,13 +52,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:AuditRule/Attribute:category_id+' => 'Kategori for denne regel', 'Class:AuditRule/Attribute:category_name' => 'Kategori', 'Class:AuditRule/Attribute:category_name+' => 'Kategorinavn for denne regel', -)); +]); // // Class: AuditDomain // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:AuditDomain' => 'Audit Domain~~', 'Class:AuditDomain+' => 'Audit domains allow to group the audit categories. Domain usually correspond to who is responsible for checking and fixing errors~~', @@ -69,13 +70,13 @@ Domain usually correspond to who is responsible for checking and fixing errors~~ 'Class:AuditDomain/Attribute:icon+' => '~~', 'Class:AuditDomain/Attribute:categories_list' => 'Categories~~', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.~~', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain~~', 'Class:lnkAuditCategoryToAuditDomain+' => '~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category~~', @@ -86,13 +87,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name~~', -)); +]); // // Class: QueryOQL // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:Query' => 'Forespørgsel', 'Class:Query+' => '', 'Class:Query/Attribute:name' => 'Navn', @@ -119,7 +120,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:QueryOQL+' => '', 'Class:QueryOQL/Attribute:oql' => 'Udtryk', 'Class:QueryOQL/Attribute:oql+' => '', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -130,7 +131,7 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( // Class: User // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:User' => 'Bruger', 'Class:User+' => 'Bruger log in', 'Class:User/Attribute:finalclass' => 'Type af brugerkonto', @@ -176,13 +177,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~', 'Class:UserInternal' => 'User Internal~~', 'Class:UserInternal+' => 'User defined within '.ITOP_APPLICATION_SHORT.'~~', -)); +]); // // Class: URP_Profiles // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_Profiles' => 'Profil', 'Class:URP_Profiles+' => 'Brugerprofil', 'Class:URP_Profiles/Attribute:name' => 'Navn', @@ -191,13 +192,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:URP_Profiles/Attribute:description+' => 'Kort beskrivelse', 'Class:URP_Profiles/Attribute:user_list' => 'Brugere', 'Class:URP_Profiles/Attribute:user_list+' => 'Personer, der har denne Rolle', -)); +]); // // Class: URP_Dimensions // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_Dimensions' => 'Dimension', 'Class:URP_Dimensions+' => 'Anvendelsesdimension (Fastlæggelse af siloer)', 'Class:URP_Dimensions/Attribute:name' => 'Navn', @@ -206,13 +207,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:URP_Dimensions/Attribute:description+' => 'Kort beskrivelse', 'Class:URP_Dimensions/Attribute:type' => 'Type', 'Class:URP_Dimensions/Attribute:type+' => 'Klassenavn eller datatype', -)); +]); // // Class: URP_UserProfile // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_UserProfile' => 'Brugerprofil', 'Class:URP_UserProfile+' => 'Brugerprofil', 'Class:URP_UserProfile/Name' => 'Link mellem %1$s and %2$s', @@ -226,14 +227,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Profilnavn', 'Class:URP_UserProfile/Attribute:reason' => 'Begrundelse', 'Class:URP_UserProfile/Attribute:reason+' => 'Begrundelse, hvorfor denne bruger skal have denne profil', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_UserOrg' => 'Bruger organisation(er)', 'Class:URP_UserOrg+' => 'Tilladte organisation(er)', 'Class:URP_UserOrg/Name' => 'Link mellem %1$s og %2$s', @@ -247,13 +247,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => '', 'Class:URP_UserOrg/Attribute:reason' => 'Begrundelse', 'Class:URP_UserOrg/Attribute:reason+' => '', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_ProfileProjection' => 'Profil_projection', 'Class:URP_ProfileProjection+' => 'Profilbillede', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimension', @@ -268,13 +268,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL-udtryk (Benyttes af $user) | konstant | | + Attribut-Code', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribut', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Mål for Attribut-kode (valgfri)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_ClassProjection' => 'Klasse_projection', 'Class:URP_ClassProjection+' => 'Klassebillede', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimension', @@ -287,13 +287,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL-udtryk (Benyttes af $this) | konstant | | + Attribut-Code', 'Class:URP_ClassProjection/Attribute:attribute' => 'Attribut', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Mål for Attribut-kode (valgfri)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_ActionGrant' => 'Handlings godkendelser', 'Class:URP_ActionGrant+' => 'Tilladelser på klasser', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profil', @@ -310,13 +310,13 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'Nej', 'Class:URP_ActionGrant/Attribute:action' => 'Handling', 'Class:URP_ActionGrant/Attribute:action+' => 'Handling som skal udføres på den valgte klasse', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_StimulusGrant' => 'Tilladels til påvirkning', 'Class:URP_StimulusGrant+' => 'Tilladelserne til påvirkning af livscyklus af objektet', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profil', @@ -333,25 +333,25 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'Nej', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Påvirkning', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'Påvirknings-kode', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:URP_AttributeGrant' => 'Godkendelse af Attributter', 'Class:URP_AttributeGrant+' => 'Godkendelse af Attributter', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Tillad handling', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'Tillad handling', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Attribut', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'Attribut-kode', -)); +]); // // Class: UserDashboard // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Class:UserDashboard' => 'User dashboard~~', 'Class:UserDashboard+' => '~~', 'Class:UserDashboard/Attribute:user_id' => 'User~~', @@ -360,12 +360,12 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Class:UserDashboard/Attribute:menu_code+' => '~~', 'Class:UserDashboard/Attribute:contents' => 'Contents~~', 'Class:UserDashboard/Attribute:contents+' => '~~', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:WelcomeMenu' => 'Velkomen', 'Menu:WelcomeMenu+' => 'Velkommen til '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Velkomen', 'Menu:WelcomeMenuPage+' => 'Velkommen til '.ITOP_APPLICATION_SHORT, 'Menu:AdminTools' => 'Admin værktøjer', @@ -382,14 +382,14 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Menu:MyShortcuts' => 'Mine Genveje', 'Menu:Notifications:Title' => 'Audit Kategorier', 'Menu:DataAdministration' => 'Data administration~~', - 'Menu:DataAdministration+' => '~~' -)); + 'Menu:DataAdministration+' => '~~', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'BooleanLabel:yes' => 'yes~~', 'BooleanLabel:no' => 'no~~', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login~~', @@ -1535,13 +1535,13 @@ Ved tilknytningen til en trigger, bliver hver handling tildelt et "rækkefølge" 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Children of the selected objects will be included.~~', 'UI:Search:Criteria:Raw:Filtered' => 'Filtered~~', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtered on %1$s~~', - 'UI:StateChanged' => 'State changed~~' -)); + 'UI:StateChanged' => 'State changed~~', +]); // // Expression to Natural language // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Expression:Operator:AND' => ' AND ~~', 'Expression:Operator:OR' => ' OR ~~', 'Expression:Operator:=' => ': ~~', @@ -1554,12 +1554,12 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Expression:Unit:Long:MINUTE' => 'minute(s)~~', 'Expression:Verb:NOW' => 'now~~', 'Expression:Verb:ISNULL' => ': undefined~~', -)); +]); // // iTop Newsroom menu // -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'UI:Newsroom:NoNewMessage' => 'No new message~~', 'UI:Newsroom:XNewMessage' => '%1$s new message(s)~~', 'UI:Newsroom:MarkAllAsRead' => 'Mark all messages as read~~', @@ -1574,10 +1574,9 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent~~', 'UI:Newsroom:Priority:3:Tooltip' => 'Important~~', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal~~', -)); +]); - -Dict::Add('DA DA', 'Danish', 'Dansk', array( +Dict::Add('DA DA', 'Danish', 'Dansk', [ 'Menu:DataSources' => 'Synkroniserings Data Kilder', 'Menu:DataSources+' => 'Data synchro used for batch import of external data~~', 'Menu:AuditCategories' => 'Audit Kategorier', @@ -1605,4 +1604,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'Menu:Integrations' => 'Integrations~~', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/de.dictionary.itop.ui.php b/dictionaries/de.dictionary.itop.ui.php index 42989805c..bbff18973 100644 --- a/dictionaries/de.dictionary.itop.ui.php +++ b/dictionaries/de.dictionary.itop.ui.php @@ -1,15 +1,16 @@ 'Audit-Kategorie', 'Class:AuditCategory+' => 'Definition einer Objektgruppe, die durch Regeln überprüft werden soll.', 'Class:AuditCategory/Attribute:name' => 'Kategoriename', @@ -26,13 +27,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Erlaubter prozentualer Anteil ungültiger Objekte, bei dem das Ergebnis noch als Warnung (orange) dargestellt wird.', 'Class:AuditCategory/Attribute:domains_list' => 'Domänen', 'Class:AuditCategory/Attribute:domains_list+' => 'Domänen, die dieser Kategorie zugeordnet sind', -)); +]); // // Class: AuditRule // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:AuditRule' => 'Audit-Regel', 'Class:AuditRule+' => 'Eine Regel um eine gegebene Audit-Kategorie zu überprüfen', 'Class:AuditRule/Attribute:name' => 'Regelname', @@ -51,13 +52,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:AuditRule/Attribute:category_id+' => 'Kategorie für diese Regel', 'Class:AuditRule/Attribute:category_name' => 'Kategorie', 'Class:AuditRule/Attribute:category_name+' => 'Kategoriename für diese Regel', -)); +]); // // Class: AuditDomain // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:AuditDomain' => 'Audit-Domäne', 'Class:AuditDomain+' => '', 'Class:AuditDomain/Attribute:name' => 'Name', @@ -68,13 +69,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:AuditDomain/Attribute:icon+' => '', 'Class:AuditDomain/Attribute:categories_list' => 'Audit-Kategorien', 'Class:AuditDomain/Attribute:categories_list+' => 'Verknüpfte Audit-Kategorien', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Verknüpfung Audit-Kategorie / Audit-Domäne', 'Class:lnkAuditCategoryToAuditDomain+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Audit-Kategorie', @@ -85,13 +86,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Audit-Domänenname', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => '', -)); +]); // // Class: QueryOQL // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:Query' => 'Query', 'Class:Query+' => '', 'Class:Query/Attribute:name' => 'Name', @@ -118,7 +119,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:QueryOQL+' => 'Eine in der "Object Query Language" geschriebene Abfrage', 'Class:QueryOQL/Attribute:oql' => 'Ausdruck', 'Class:QueryOQL/Attribute:oql+' => 'OQL-Abfrage', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -129,7 +130,7 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( // Class: User // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:User' => 'Benutzer', 'Class:User+' => 'Benutzer-Login', 'Class:User/Attribute:finalclass' => 'Typ des Benutzerkontos', @@ -175,13 +176,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:User/Warning:NoContactHasImpact' => 'Vorsicht: Für diesen Benutzer ist keine Person definiert. Dadurch wird der Zugriff auf Portale, Benachrichtigungen und andere Auswirkungen im Back-Office verhindert', 'Class:UserInternal' => 'Interner Benutzer', 'Class:UserInternal+' => 'Benutzer, der innerhalb von '.ITOP_APPLICATION_SHORT.' definiert wird', -)); +]); // // Class: URP_Profiles // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_Profiles' => 'Profile', 'Class:URP_Profiles+' => 'Benutzerprofile', 'Class:URP_Profiles/Attribute:name' => 'Name', @@ -190,13 +191,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:URP_Profiles/Attribute:description+' => 'Kurze Beschreibung', 'Class:URP_Profiles/Attribute:user_list' => 'Benutzer', 'Class:URP_Profiles/Attribute:user_list+' => 'Personen, die diese Rolle haben', -)); +]); // // Class: URP_Dimensions // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_Dimensions' => 'Dimension', 'Class:URP_Dimensions+' => 'Anwendungsdimension (Festlegen von Silos)', 'Class:URP_Dimensions/Attribute:name' => 'Name', @@ -205,13 +206,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:URP_Dimensions/Attribute:description+' => 'Kurzbeschreibung', 'Class:URP_Dimensions/Attribute:type' => 'Typ', 'Class:URP_Dimensions/Attribute:type+' => 'Klassenname oder Datentyp (Abbildungseinheit)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_UserProfile' => 'Benutzerprofil', 'Class:URP_UserProfile+' => 'Benutzerprofil', 'Class:URP_UserProfile/Name' => 'Verbindung zwischen %1$s und %2$s', @@ -225,14 +226,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Profil-Name', 'Class:URP_UserProfile/Attribute:reason' => 'Begründung', 'Class:URP_UserProfile/Attribute:reason+' => 'Erklären Sie, warum diese Person diese Rolle haben soll', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_UserOrg' => 'Benutzerorganisationen', 'Class:URP_UserOrg+' => 'Zulässige Organisationen', 'Class:URP_UserOrg/Name' => 'Verbindung zwischen %1$s und %2$s', @@ -246,13 +246,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => '', 'Class:URP_UserOrg/Attribute:reason' => 'Begründung', 'Class:URP_UserOrg/Attribute:reason+' => 'Begründet die Berechtigung, die Daten dieser Organisation zu sehen', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_ProfileProjection' => 'Profilabbildung', 'Class:URP_ProfileProjection+' => 'Profilabbildungen', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimension', @@ -267,13 +267,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL-Ausdruck (Benutzung von $user) | konstant | | + Attribut-Code', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Ziel des Attribut-Codes (optional)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_ClassProjection' => 'Klassenabbildung', 'Class:URP_ClassProjection+' => 'Klassenabbildungen', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimension', @@ -286,13 +286,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL-Audsdruck (Benutzung von $this) | konstant | | + Attribut-Code', 'Class:URP_ClassProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Ziel des Attribut-Codes (optional)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_ActionGrant' => 'Autorisierungen von Aktionen', 'Class:URP_ActionGrant+' => 'Autorisierungen auf Klassen', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profil', @@ -309,13 +309,13 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'Nein', 'Class:URP_ActionGrant/Attribute:action' => 'Aktion', 'Class:URP_ActionGrant/Attribute:action+' => 'Operationen, die auf die gegebene Klasse ausgeführt werden sollen', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_StimulusGrant' => 'Autorisierung des Stimulus', 'Class:URP_StimulusGrant+' => 'Autorisierungen auf den Stimulus des Lebenszyklus des Objektes', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profil', @@ -332,25 +332,25 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'Nein', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Stimulus', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'Stimulus-Code', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:URP_AttributeGrant' => 'Autorisierung des Attribute', 'Class:URP_AttributeGrant+' => 'Autorisierungen auf Attributebene', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Aktion gewähren', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'Aktion gewähren', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Attribut', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'Attribut-Code', -)); +]); // // Class: UserDashboard // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Class:UserDashboard' => 'Benutzer Dashboard', 'Class:UserDashboard+' => '', 'Class:UserDashboard/Attribute:user_id' => 'Benutzer', @@ -359,12 +359,12 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Class:UserDashboard/Attribute:menu_code+' => '', 'Class:UserDashboard/Attribute:contents' => 'Inhalt', 'Class:UserDashboard/Attribute:contents+' => '', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:WelcomeMenu' => 'Willkommen', 'Menu:WelcomeMenu+' => 'Willkommen bei '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Willkommen', 'Menu:WelcomeMenuPage+' => 'Willkommen bei '.ITOP_APPLICATION_SHORT, 'Menu:AdminTools' => 'Admin-Tools', @@ -381,14 +381,14 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Menu:MyShortcuts' => 'Meine Shortcuts', 'Menu:Notifications:Title' => 'Audit-Kategorien', 'Menu:DataAdministration' => 'Data Management', - 'Menu:DataAdministration+' => 'Data Management' -)); + 'Menu:DataAdministration+' => 'Data Management', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'BooleanLabel:yes' => 'Ja', 'BooleanLabel:no' => 'Nein', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' Login', @@ -1534,13 +1534,13 @@ Wenn Aktionen mit Trigger verknüpft sind, bekommt jede Aktion eine Auftragsnumm 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Kinderelemente ausgewählter Objekte werden berücksichtigt.', 'UI:Search:Criteria:Raw:Filtered' => 'Gefiltert', 'UI:Search:Criteria:Raw:FilteredOn' => 'Gefiltert über %1$s', - 'UI:StateChanged' => 'Status geändert' -)); + 'UI:StateChanged' => 'Status geändert', +]); // // Expression to Natural language // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Expression:Operator:AND' => ' UND ', 'Expression:Operator:OR' => ' ODER ', 'Expression:Operator:=' => ': ', @@ -1553,12 +1553,12 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Expression:Unit:Long:MINUTE' => 'Minute(n)', 'Expression:Verb:NOW' => 'jetzt', 'Expression:Verb:ISNULL' => ': nicht definiert', -)); +]); // // iTop Newsroom menu // -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'UI:Newsroom:NoNewMessage' => 'Keine neue Nachricht', 'UI:Newsroom:XNewMessage' => '%1$s neue Nachrichten', 'UI:Newsroom:MarkAllAsRead' => 'Alle Nachrichten als gelesen markieren', @@ -1573,10 +1573,9 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Dringend', 'UI:Newsroom:Priority:3:Tooltip' => 'Wichtig', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal', -)); +]); - -Dict::Add('DE DE', 'German', 'Deutsch', array( +Dict::Add('DE DE', 'German', 'Deutsch', [ 'Menu:DataSources' => 'Datenquellen für die Synchronisation', 'Menu:DataSources+' => 'Alle Datenquellen für die Synchronisation', 'Menu:AuditCategories' => 'Audit-Kategorien', @@ -1604,4 +1603,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'Menu:Integrations' => 'Integrationen', 'Menu:Integrations+' => '', -)); +]); diff --git a/dictionaries/en.dictionary.itop.ui.php b/dictionaries/en.dictionary.itop.ui.php index 79b54b365..f563c3219 100644 --- a/dictionaries/en.dictionary.itop.ui.php +++ b/dictionaries/en.dictionary.itop.ui.php @@ -1,10 +1,10 @@ 'Audit Category', 'Class:AuditCategory+' => 'Audit category defines a scope of objects which needs to be audited. It groups all audit rules applying to that object scope', @@ -37,13 +37,13 @@ It groups all audit rules applying to that object scope', 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)', 'Class:AuditCategory/Attribute:domains_list' => 'Domains', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category', -)); +]); // // Class: AuditRule // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:AuditRule' => 'Audit Rule', 'Class:AuditRule+' => 'An audit rule corresponds a single check within an audit category. It is applied on the scope of objects defined by the audit category', @@ -65,13 +65,13 @@ It is applied on the scope of objects defined by the audit category', 'Class:AuditRule/Attribute:category_id+' => 'The category of this rule', 'Class:AuditRule/Attribute:category_name' => 'Category name', 'Class:AuditRule/Attribute:category_name+' => 'Name of the category of this rule', -)); +]); // // Class: AuditDomain // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:AuditDomain' => 'Audit Domain', 'Class:AuditDomain+' => 'Audit domains allow to group the audit categories. Domain usually correspond to who is responsible for checking and fixing errors', @@ -83,13 +83,13 @@ Domain usually correspond to who is responsible for checking and fixing errors', 'Class:AuditDomain/Attribute:icon+' => '', 'Class:AuditDomain/Attribute:categories_list' => 'Categories', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain', 'Class:lnkAuditCategoryToAuditDomain+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category', @@ -100,13 +100,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name', -)); +]); // // Class: QueryOQL // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:Query' => 'Query', 'Class:Query+' => 'A query is a data set defined in a dynamic way', 'Class:Query/Attribute:name' => 'Name', @@ -133,7 +133,7 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:QueryOQL+' => 'A query based on the Object Query Language', 'Class:QueryOQL/Attribute:oql' => 'Expression', 'Class:QueryOQL/Attribute:oql+' => 'OQL Expression', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -144,7 +144,7 @@ Dict::Add('EN US', 'English', 'English', array( // Class: User // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:User' => 'User', 'Class:User+' => 'User login', 'Class:User/Attribute:finalclass' => 'Type of account', @@ -191,13 +191,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office', 'Class:UserInternal' => 'User Internal', 'Class:UserInternal+' => 'User defined within '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_Profiles' => 'Profile', 'Class:URP_Profiles+' => 'User profile', 'Class:URP_Profiles/Attribute:name' => 'Name', @@ -206,13 +206,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:URP_Profiles/Attribute:description+' => 'one line description', 'Class:URP_Profiles/Attribute:user_list' => 'Users', 'Class:URP_Profiles/Attribute:user_list+' => 'persons having this role', -)); +]); // // Class: URP_Dimensions // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_Dimensions' => 'dimension', 'Class:URP_Dimensions+' => 'application dimension (defining silos)', 'Class:URP_Dimensions/Attribute:name' => 'Name', @@ -221,13 +221,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:URP_Dimensions/Attribute:description+' => 'one line description', 'Class:URP_Dimensions/Attribute:type' => 'Type', 'Class:URP_Dimensions/Attribute:type+' => 'class name or data type (projection unit)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_UserProfile' => 'User to profile', 'Class:URP_UserProfile+' => 'user profiles', 'Class:URP_UserProfile/Name' => 'Link between %1$s and %2$s', @@ -241,14 +241,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Profile name', 'Class:URP_UserProfile/Attribute:reason' => 'Reason', 'Class:URP_UserProfile/Attribute:reason+' => 'explain why this person may have this role', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_UserOrg' => 'User organizations', 'Class:URP_UserOrg+' => 'Allowed organizations', 'Class:URP_UserOrg/Name' => 'Link between %1$s and %2$s', @@ -262,13 +261,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Allowed organization', 'Class:URP_UserOrg/Attribute:reason' => 'Reason', 'Class:URP_UserOrg/Attribute:reason+' => 'explain why this person is allowed to see the data belonging to this organization', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => 'profile projections', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimension', @@ -283,13 +282,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL expression (using $user) | constant | | +attribute code', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Target attribute code (optional)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_ClassProjection' => 'class_projection', 'Class:URP_ClassProjection+' => 'class projections', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimension', @@ -302,13 +301,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL expression (using $this) | constant | | +attribute code', 'Class:URP_ClassProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Target attribute code (optional)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_ActionGrant' => 'action_permission', 'Class:URP_ActionGrant+' => 'permissions on classes', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profile', @@ -325,13 +324,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'no', 'Class:URP_ActionGrant/Attribute:action' => 'Action', 'Class:URP_ActionGrant/Attribute:action+' => 'operations to perform on the given class', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_StimulusGrant' => 'stimulus_permission', 'Class:URP_StimulusGrant+' => 'permissions on stimulus in the life cycle of the object', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profile', @@ -348,25 +347,25 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'no', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Stimulus', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'stimulus code', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:URP_AttributeGrant' => 'attribute_permission', 'Class:URP_AttributeGrant+' => 'permissions at the attributes level', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Action grant', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'action grant', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Attribute', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'attribute code', -)); +]); // // Class: UserDashboard // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Class:UserDashboard' => 'User dashboard', 'Class:UserDashboard+' => '', 'Class:UserDashboard/Attribute:user_id' => 'User', @@ -375,12 +374,12 @@ Dict::Add('EN US', 'English', 'English', array( 'Class:UserDashboard/Attribute:menu_code+' => '', 'Class:UserDashboard/Attribute:contents' => 'Contents', 'Class:UserDashboard/Attribute:contents+' => '', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:WelcomeMenu' => 'Welcome', 'Menu:WelcomeMenu+' => 'Welcome to '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Welcome', @@ -399,13 +398,13 @@ Dict::Add('EN US', 'English', 'English', array( 'Menu:MyShortcuts' => 'My Shortcuts', 'Menu:DataAdministration' => 'Data administration', 'Menu:DataAdministration+' => '', -)); +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'BooleanLabel:yes' => 'yes', 'BooleanLabel:no' => 'no', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login', @@ -783,7 +782,6 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Audit:Dashboard:ObjectsValidated' => 'Objects validated', 'UI:Audit:AuditCategory:Subtitle' => '%1$s errors ouf of %2$s - %3$s%% of the object are valid', - 'UI:RunQuery:Title' => ITOP_APPLICATION_SHORT.' - OQL Query Evaluation', 'UI:RunQuery:QueryExamples' => 'Query Examples', 'UI:RunQuery:QueryResults' => 'Query Results', @@ -1275,7 +1273,6 @@ When associated with a trigger, each action is given an "order" number, specifyi 'UI:Dashboard:Actions' => 'Dashboard actions', 'UI:Dashboard:NotUpToDateUntilContainerSaved' => 'This dashboard displays information that does not include the on-going changes.', - 'UI:DashletCreation:Title' => 'Create a new Dashlet', 'UI:DashletCreation:Dashboard' => 'Dashboard', 'UI:DashletCreation:DashletType' => 'Dashlet Type', @@ -1650,12 +1647,12 @@ When associated with a trigger, each action is given an "order" number, specifyi 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtered on %1$s', 'UI:StateChanged' => 'State changed', -)); +]); // // Expression to Natural language // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Expression:Operator:AND' => ' AND ', 'Expression:Operator:OR' => ' OR ', 'Expression:Operator:=' => ': ', @@ -1671,12 +1668,12 @@ Dict::Add('EN US', 'English', 'English', array( 'Expression:Verb:NOW' => 'now', 'Expression:Verb:ISNULL' => ': undefined', -)); +]); // // iTop Newsroom menu // -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'UI:Newsroom:NoNewMessage' => 'No new message', 'UI:Newsroom:XNewMessage' => '%1$s new message(s)', 'UI:Newsroom:MarkAllAsRead' => 'Mark all messages as read', @@ -1691,10 +1688,9 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent', 'UI:Newsroom:Priority:3:Tooltip' => 'Important', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal', -)); +]); - -Dict::Add('EN US', 'English', 'English', array( +Dict::Add('EN US', 'English', 'English', [ 'Menu:DataSources' => 'Synchronization Data Sources', 'Menu:DataSources+' => 'Data synchro used for batch import of external data', 'Menu:AuditCategories' => 'Audit configuration', @@ -1722,4 +1718,4 @@ Dict::Add('EN US', 'English', 'English', array( 'Menu:Integrations' => 'Integrations', 'Menu:Integrations+' => '', -)); +]); diff --git a/dictionaries/en_gb.dictionary.itop.core.php b/dictionaries/en_gb.dictionary.itop.core.php index 15d0873bb..e02fa6352 100644 --- a/dictionaries/en_gb.dictionary.itop.core.php +++ b/dictionaries/en_gb.dictionary.itop.core.php @@ -1,4 +1,5 @@ '%1s (deleted)', 'Core:DeletedObjectTip' => 'The object has been deleted on %1$s (%2$s)', @@ -200,8 +201,7 @@ Operators:
        'Core:Context=GUI:Console' => 'Console', 'Core:Context=CRON' => 'cron', 'Core:Context=GUI:Portal' => 'Portal', -)); - +]); ////////////////////////////////////////////////////////////////////// // Classes in 'core/cmdb' @@ -212,7 +212,7 @@ Operators:
        // Class: CMDBChange // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CMDBChange' => 'Change', 'Class:CMDBChange+' => 'Changes tracking', 'Class:CMDBChange/Attribute:date' => 'date', @@ -227,13 +227,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:CMDBChange/Attribute:origin/Value:webservice-rest' => 'REST/JSON web services', 'Class:CMDBChange/Attribute:origin/Value:webservice-soap' => 'SOAP web services', 'Class:CMDBChange/Attribute:origin/Value:custom-extension' => 'By an extension', -)); +]); // // Class: CMDBChangeOp // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CMDBChangeOp' => 'Change Operation', 'Class:CMDBChangeOp+' => 'Change made by one person, at a single time, on a single object', 'Class:CMDBChangeOp/Attribute:change' => 'change', @@ -248,51 +248,51 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:CMDBChangeOp/Attribute:objkey+' => 'id of the object on which the change was made', 'Class:CMDBChangeOp/Attribute:finalclass' => 'CMDBChangeOp sub-class', 'Class:CMDBChangeOp/Attribute:finalclass+' => 'type of change which was performed', -)); +]); // // Class: CMDBChangeOpCreate // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CMDBChangeOpCreate' => 'object creation', 'Class:CMDBChangeOpCreate+' => 'Object creation tracking', -)); +]); // // Class: CMDBChangeOpDelete // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CMDBChangeOpDelete' => 'object deletion', 'Class:CMDBChangeOpDelete+' => 'Object deletion tracking', -)); +]); // // Class: CMDBChangeOpSetAttribute // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CMDBChangeOpSetAttribute' => 'object change', 'Class:CMDBChangeOpSetAttribute+' => 'Object properties change tracking', 'Class:CMDBChangeOpSetAttribute/Attribute:attcode' => 'Attribute', 'Class:CMDBChangeOpSetAttribute/Attribute:attcode+' => 'code of the modified property', -)); +]); // // Class: CMDBChangeOpSetAttributeScalar // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CMDBChangeOpSetAttributeScalar' => 'property change', 'Class:CMDBChangeOpSetAttributeScalar+' => 'Object scalar properties change tracking', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue' => 'Previous value', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue+' => 'previous value of the attribute', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue' => 'New value', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue+' => 'new value of the attribute', -)); +]); // Used by CMDBChangeOp... & derived classes -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Change:ObjectCreated' => 'Object created', 'Change:ObjectDeleted' => 'Object deleted', 'Change:ObjectModified' => 'Object modified', @@ -309,35 +309,35 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Change:LinkSet:Added' => 'added %1$s', 'Change:LinkSet:Removed' => 'removed %1$s', 'Change:LinkSet:Modified' => 'modified %1$s', -)); +]); // // Class: CMDBChangeOpSetAttributeBlob // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CMDBChangeOpSetAttributeBlob' => 'data change', 'Class:CMDBChangeOpSetAttributeBlob+' => 'data change tracking', 'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata' => 'Previous data', 'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata+' => 'previous contents of the attribute', -)); +]); // // Class: CMDBChangeOpSetAttributeText // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:CMDBChangeOpSetAttributeText' => 'text change', 'Class:CMDBChangeOpSetAttributeText+' => 'text change tracking', 'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata' => 'Previous data', 'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata+' => 'previous contents of the attribute', -)); +]); // // Class: Event // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Event' => 'Log Event', 'Class:Event+' => 'An application internal event', 'Class:Event/Attribute:message' => 'Message', @@ -348,13 +348,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Event/Attribute:userinfo+' => 'identification of the user that was doing the action that triggered this event', 'Class:Event/Attribute:finalclass' => 'Event sub-class', 'Class:Event/Attribute:finalclass+' => 'Name of the final class: specifies the sort of event which occurred', -)); +]); // // Class: EventNotification // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:EventNotification' => 'Notification sent', 'Class:EventNotification+' => 'Trace of a notification that has been sent', 'Class:EventNotification/Attribute:trigger_id' => 'Trigger', @@ -365,13 +365,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:EventNotification/Attribute:object_id+' => '', 'Class:EventNotification/Attribute:object_class' => 'Object class', 'Class:EventNotification/Attribute:object_class+' => 'Object class (Same as trigger)', -)); +]); // // Class: EventNotificationEmail // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:EventNotificationEmail' => 'Email sent', 'Class:EventNotificationEmail+' => 'Trace of an email that has been sent', 'Class:EventNotificationEmail/Attribute:to' => 'TO', @@ -388,13 +388,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:EventNotificationEmail/Attribute:body+' => '', 'Class:EventNotificationEmail/Attribute:attachments' => 'Attachments', 'Class:EventNotificationEmail/Attribute:attachments+' => '', -)); +]); // // Class: EventIssue // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:EventIssue' => 'Issue event', 'Class:EventIssue+' => 'Trace of an issue (warning, error, etc.)', 'Class:EventIssue/Attribute:issue' => 'Issue', @@ -411,13 +411,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:EventIssue/Attribute:callstack+' => '', 'Class:EventIssue/Attribute:data' => 'Data', 'Class:EventIssue/Attribute:data+' => 'More information', -)); +]); // // Class: EventWebService // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:EventWebService' => 'Web service event', 'Class:EventWebService+' => 'Trace of a web service call', 'Class:EventWebService/Attribute:verb' => 'Verb', @@ -432,9 +432,9 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:EventWebService/Attribute:log_error+' => 'Result error log', 'Class:EventWebService/Attribute:data' => 'Data', 'Class:EventWebService/Attribute:data+' => 'Result data', -)); +]); -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:EventRestService' => 'REST/JSON call', 'Class:EventRestService+' => 'Trace of a REST/JSON service call', 'Class:EventRestService/Attribute:operation' => 'Operation', @@ -449,13 +449,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:EventRestService/Attribute:json_output+' => 'HTTP response (json)', 'Class:EventRestService/Attribute:provider' => 'Provider', 'Class:EventRestService/Attribute:provider+' => 'PHP class implementing the expected operation', -)); +]); // // Class: EventLoginUsage // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:EventLoginUsage' => 'Login Usage', 'Class:EventLoginUsage+' => 'Connection to the application', 'Class:EventLoginUsage/Attribute:user_id' => 'Login', @@ -464,13 +464,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:EventLoginUsage/Attribute:contact_name+' => '', 'Class:EventLoginUsage/Attribute:contact_email' => 'User Email', 'Class:EventLoginUsage/Attribute:contact_email+' => 'Email Address of the User', -)); +]); // // Class: EventNotificationNewsroom // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:EventNotificationNewsroom' => 'News sent', 'Class:EventNotificationNewsroom+' => '', 'Class:EventNotificationNewsroom/Attribute:title' => 'Title', @@ -499,13 +499,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:EventNotificationNewsroom/Attribute:read_date+' => '', 'Class:EventNotificationNewsroom/Attribute:contact_id' => 'Contact', 'Class:EventNotificationNewsroom/Attribute:contact_id+' => '', -)); +]); // // Class: Action // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Action' => 'Action', 'Class:Action+' => 'User defined action', 'Class:Action/ComplementaryName' => '%1$s: %2$s', @@ -535,24 +535,24 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Action:last_executions_tab_panel_title' => 'Executions of this action (%1$s)', 'Action:last_executions_tab_limit_days' => 'past %1$s days', 'Action:last_executions_tab_limit_none' => 'no limit', -)); +]); // // Class: ActionNotification // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ActionNotification' => 'Notification Action', 'Class:ActionNotification+' => 'Notification Action (abstract)', 'Class:ActionNotification/Attribute:language' => 'Language', 'Class:ActionNotification/Attribute:language+' => '', -)); +]); // // Class: ActionEmail // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ActionEmail' => 'Notification by Email', 'Class:ActionEmail+' => '', 'Class:ActionEmail/Attribute:status+' => 'This status drives who will be notified: @@ -621,14 +621,13 @@ While editing, click on the magnifier to get pertinent examples', 'ActionEmail:preview_warning' => 'The actual eMail may look different in the eMail client than this preview in your browser.', 'ActionEmail:preview_more_info' => 'For more information about the CSS features supported by the different eMail clients, refer to %1$s', 'ActionEmail:content_placeholder_missing' => 'The placeholder "%1$s" was not found in the HTML template. The content of the field "%2$s" will not be included in the generated emails.', -)); - +]); // // Class: ActionNewsroom // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'ActionNewsroom:trigger' => 'Trigger', 'ActionNewsroom:content' => 'Message', 'ActionNewsroom:settings' => 'Settings', @@ -663,13 +662,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:ActionNewsroom/Attribute:recipients+' => 'An OQL query returning Contact objects', 'Class:ActionNewsroom/Attribute:url' => 'URL', 'Class:ActionNewsroom/Attribute:url+' => 'By default, it points to the object triggering the notification. But you can also specify a custom URL.', -)); +]); // // Class: Trigger // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Trigger' => 'Trigger', 'Class:Trigger+' => 'Custom event handler', 'Class:Trigger/ComplementaryName' => '%1$s, %2$s', @@ -688,13 +687,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:Trigger/Attribute:subscription_policy/Value:allow_no_channel' => 'Allow complete unsubscribing', 'Class:Trigger/Attribute:subscription_policy/Value:force_at_least_one_channel' => 'Force at least one channel (News or Email)', 'Class:Trigger/Attribute:subscription_policy/Value:force_all_channels' => 'Deny unsubscription', -)); +]); // // Class: TriggerOnObject // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnObject' => 'Trigger (class dependent)', 'Class:TriggerOnObject+' => 'Trigger on a given class of objects', 'Class:TriggerOnObject/Attribute:target_class' => 'Target class', @@ -703,115 +702,115 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:TriggerOnObject/Attribute:filter+' => 'Limit the object list (of the target class) which will activate the trigger', 'TriggerOnObject:WrongFilterQuery' => 'Wrong filter query: %1$s', 'TriggerOnObject:WrongFilterClass' => 'The filter query must return objects of class "%1$s"', -)); +]); // // Class: TriggerOnPortalUpdate // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnPortalUpdate' => 'Trigger (when updated from the portal)', 'Class:TriggerOnPortalUpdate+' => 'Trigger on an end-user\'s update from the portal', -)); +]); // // Class: TriggerOnStateChange // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnStateChange' => 'Trigger (on state change)', 'Class:TriggerOnStateChange+' => 'Trigger on object state change', 'Class:TriggerOnStateChange/Attribute:state' => 'State', 'Class:TriggerOnStateChange/Attribute:state+' => '', -)); +]); // // Class: TriggerOnStateEnter // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnStateEnter' => 'Trigger (on entering a state)', 'Class:TriggerOnStateEnter+' => 'Trigger on object state change - entering', -)); +]); // // Class: TriggerOnStateLeave // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnStateLeave' => 'Trigger (on leaving a state)', 'Class:TriggerOnStateLeave+' => 'Trigger on object state change - leaving', -)); +]); // // Class: TriggerOnObjectCreate // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnObjectCreate' => 'Trigger (on object creation)', 'Class:TriggerOnObjectCreate+' => 'Trigger on object creation of [a child class of] the given class', -)); +]); // // Class: TriggerOnObjectDelete // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnObjectDelete' => 'Trigger (on object deletion)', 'Class:TriggerOnObjectDelete+' => 'Trigger on object deletion of [a child class of] the given class', -)); +]); // // Class: TriggerOnObjectUpdate // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnObjectUpdate' => 'Trigger (on object update)', 'Class:TriggerOnObjectUpdate+' => 'Trigger on object update of [a child class of] the given class', 'Class:TriggerOnObjectUpdate/Attribute:target_attcodes' => 'Target fields', 'Class:TriggerOnObjectUpdate/Attribute:target_attcodes+' => '', -)); +]); // // Class: TriggerOnObjectMention // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnObjectMention' => 'Trigger (on object mention)', 'Class:TriggerOnObjectMention+' => 'Trigger on mention (@xxx) of an object of [a child class of] the given class in a log attribute', 'Class:TriggerOnObjectMention/Attribute:mentioned_filter' => 'Mentioned filter', 'Class:TriggerOnObjectMention/Attribute:mentioned_filter+' => 'Limit the list of mentioned objects which will activate the trigger. If empty, any mentioned object (of any class) will activate it.', -)); +]); // // Class: TriggerOnAttributeBlobDownload // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnAttributeBlobDownload' => 'Trigger (on object\'s document download)', 'Class:TriggerOnAttributeBlobDownload+' => 'Trigger on object\'s document field download of [a child class of] the given class', 'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes' => 'Target fields', 'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes+' => '', -)); +]); // // Class: TriggerOnThresholdReached // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TriggerOnThresholdReached' => 'Trigger (on threshold)', 'Class:TriggerOnThresholdReached+' => 'Trigger on Stop-Watch threshold reached', 'Class:TriggerOnThresholdReached/Attribute:stop_watch_code' => 'Stopwatch', 'Class:TriggerOnThresholdReached/Attribute:stop_watch_code+' => '', 'Class:TriggerOnThresholdReached/Attribute:threshold_index' => 'Threshold', 'Class:TriggerOnThresholdReached/Attribute:threshold_index+' => '', -)); +]); // // Class: lnkTriggerAction // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkTriggerAction' => 'Action/Trigger', 'Class:lnkTriggerAction+' => 'Link between a trigger and an action', 'Class:lnkTriggerAction/Attribute:action_id' => 'Action', @@ -824,12 +823,12 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkTriggerAction/Attribute:trigger_name+' => '', 'Class:lnkTriggerAction/Attribute:order' => 'Order', 'Class:lnkTriggerAction/Attribute:order+' => 'Actions execution order', -)); +]); // // Synchro Data Source // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:SynchroDataSource' => 'Synchro Data Source', 'Class:SynchroDataSource/Attribute:name' => 'Name', 'Class:SynchroDataSource/Attribute:name+' => '', @@ -1128,12 +1127,12 @@ The hyperlink is displayed in the tooltip appearing on the “Lock” symbol of 'Core:Validator:Mandatory' => 'Please, fill this field', 'Core:Validator:MustBeInteger' => 'Must be an integer', 'Core:Validator:MustSelectOne' => 'Please, select one', -)); +]); // // Class: TagSetFieldData // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:TagSetFieldData' => '%2$s for class %1$s', 'Class:TagSetFieldData+' => '', @@ -1157,12 +1156,12 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Core:TagSetFieldData:ErrorAttCodeUpdateNotAllowed' => 'Tags "Attribute Code" cannot be changed', 'Core:TagSetFieldData:WhereIsThisTagTab' => 'Tag usage (%1$d)', 'Core:TagSetFieldData:NoEntryFound' => 'No entry found for this tag', -)); +]); // // Class: DBProperty // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:DBProperty' => 'DB property', 'Class:DBProperty+' => '', 'Class:DBProperty/Attribute:name' => 'Name', @@ -1175,12 +1174,12 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:DBProperty/Attribute:change_date+' => '', 'Class:DBProperty/Attribute:change_comment' => 'Change comment', 'Class:DBProperty/Attribute:change_comment+' => '', -)); +]); // // Class: BackgroundTask // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:BackgroundTask' => 'Background task', 'Class:BackgroundTask+' => '', 'Class:BackgroundTask/Attribute:class_name' => 'Class name', @@ -1205,12 +1204,12 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:BackgroundTask/Attribute:running+' => '', 'Class:BackgroundTask/Attribute:status' => 'Status', 'Class:BackgroundTask/Attribute:status+' => '', -)); +]); // // Class: AsyncTask // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:AsyncTask' => 'Async. task', 'Class:AsyncTask+' => '', 'Class:AsyncTask/Attribute:created' => 'Created', @@ -1235,43 +1234,40 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:AsyncTask/Attribute:last_attempt+' => '', 'Class:AsyncTask:InvalidConfig_Class_Keys' => 'Invalid format for the configuration of "async_task_retries[%1$s]". Expecting an array with the following keys: %2$s', 'Class:AsyncTask:InvalidConfig_Class_InvalidKey_Keys' => 'Invalid format for the configuration of "async_task_retries[%1$s]": unexpected key "%2$s". Expecting only the following keys: %3$s', -)); +]); // // Class: AbstractResource // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:AbstractResource' => 'Abstract Resource', 'Class:AbstractResource+' => '', -)); +]); // // Class: ResourceAdminMenu // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ResourceAdminMenu' => 'Resource Admin Menu', 'Class:ResourceAdminMenu+' => '', -)); +]); // // Class: ResourceRunQueriesMenu // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ResourceRunQueriesMenu' => 'Resource Run Queries Menu', 'Class:ResourceRunQueriesMenu+' => '', -)); +]); // // Class: Action // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:ResourceSystemMenu' => 'Resource System Menu', 'Class:ResourceSystemMenu+' => '', -)); - - - +]); diff --git a/dictionaries/en_gb.dictionary.itop.ui.php b/dictionaries/en_gb.dictionary.itop.ui.php index 4b947c3be..073f04e7d 100644 --- a/dictionaries/en_gb.dictionary.itop.ui.php +++ b/dictionaries/en_gb.dictionary.itop.ui.php @@ -1,10 +1,10 @@ 'Audit Category', 'Class:AuditCategory+' => 'Audit category defines a scope of objects which needs to be audited. It groups all audit rules applying to that object scope', @@ -37,13 +37,13 @@ It groups all audit rules applying to that object scope', 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)', 'Class:AuditCategory/Attribute:domains_list' => 'Domains', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category', -)); +]); // // Class: AuditRule // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:AuditRule' => 'Audit Rule', 'Class:AuditRule+' => 'An audit rule corresponds a single check within an audit category. It is applied on the scope of objects defined by the audit category', @@ -65,13 +65,13 @@ It is applied on the scope of objects defined by the audit category', 'Class:AuditRule/Attribute:category_id+' => 'The category of this rule', 'Class:AuditRule/Attribute:category_name' => 'Category name', 'Class:AuditRule/Attribute:category_name+' => 'Name of the category of this rule', -)); +]); // // Class: AuditDomain // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:AuditDomain' => 'Audit Domain', 'Class:AuditDomain+' => 'Audit domains allow to group the audit categories. Domain usually correspond to who is responsible for checking and fixing errors', @@ -83,13 +83,13 @@ Domain usually correspond to who is responsible for checking and fixing errors', 'Class:AuditDomain/Attribute:icon+' => '', 'Class:AuditDomain/Attribute:categories_list' => 'Categories', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain', 'Class:lnkAuditCategoryToAuditDomain+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category', @@ -100,13 +100,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name', -)); +]); // // Class: QueryOQL // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:Query' => 'Query', 'Class:Query+' => 'A query is a data set defined in a dynamic way', 'Class:Query/Attribute:name' => 'Name', @@ -133,7 +133,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:QueryOQL+' => 'A query based on the Object Query Language', 'Class:QueryOQL/Attribute:oql' => 'Expression', 'Class:QueryOQL/Attribute:oql+' => 'OQL Expression', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -144,7 +144,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Class: User // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:User' => 'User', 'Class:User+' => 'User login', 'Class:User/Attribute:finalclass' => 'Type of account', @@ -191,13 +191,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office', 'Class:UserInternal' => 'User Internal', 'Class:UserInternal+' => 'User defined within '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_Profiles' => 'Profile', 'Class:URP_Profiles+' => 'User profile', 'Class:URP_Profiles/Attribute:name' => 'Name', @@ -206,13 +206,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:URP_Profiles/Attribute:description+' => 'one line description', 'Class:URP_Profiles/Attribute:user_list' => 'Users', 'Class:URP_Profiles/Attribute:user_list+' => 'persons having this role', -)); +]); // // Class: URP_Dimensions // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_Dimensions' => 'dimension', 'Class:URP_Dimensions+' => 'application dimension (defining silos)', 'Class:URP_Dimensions/Attribute:name' => 'Name', @@ -221,13 +221,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:URP_Dimensions/Attribute:description+' => 'one line description', 'Class:URP_Dimensions/Attribute:type' => 'Type', 'Class:URP_Dimensions/Attribute:type+' => 'class name or data type (projection unit)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_UserProfile' => 'User to profile', 'Class:URP_UserProfile+' => 'user profiles', 'Class:URP_UserProfile/Name' => 'Link between %1$s and %2$s', @@ -241,14 +241,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Profile name', 'Class:URP_UserProfile/Attribute:reason' => 'Reason', 'Class:URP_UserProfile/Attribute:reason+' => 'explain why this person may have this role', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_UserOrg' => 'User organisations', 'Class:URP_UserOrg+' => 'Allowed organisations', 'Class:URP_UserOrg/Name' => 'Link between %1$s and %2$s', @@ -262,13 +261,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Allowed organisation', 'Class:URP_UserOrg/Attribute:reason' => 'Reason', 'Class:URP_UserOrg/Attribute:reason+' => 'explain why this person is allowed to see the data belonging to this organisation', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => 'profile projections', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimension', @@ -283,13 +282,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL expression (using $user) | constant | | +attribute code', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Target attribute code (optional)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_ClassProjection' => 'class_projection', 'Class:URP_ClassProjection+' => 'class projections', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimension', @@ -302,13 +301,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL expression (using $this) | constant | | +attribute code', 'Class:URP_ClassProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Target attribute code (optional)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_ActionGrant' => 'action_permission', 'Class:URP_ActionGrant+' => 'permissions on classes', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profile', @@ -325,13 +324,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'no', 'Class:URP_ActionGrant/Attribute:action' => 'Action', 'Class:URP_ActionGrant/Attribute:action+' => 'operations to perform on the given class', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_StimulusGrant' => 'stimulus_permission', 'Class:URP_StimulusGrant+' => 'permissions on stimulus in the life cycle of the object', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profile', @@ -348,25 +347,25 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'no', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Stimulus', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'stimulus code', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:URP_AttributeGrant' => 'attribute_permission', 'Class:URP_AttributeGrant+' => 'permissions at the attributes level', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Action grant', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'action grant', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Attribute', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'attribute code', -)); +]); // // Class: UserDashboard // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Class:UserDashboard' => 'User dashboard', 'Class:UserDashboard+' => '', 'Class:UserDashboard/Attribute:user_id' => 'User', @@ -375,12 +374,12 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Class:UserDashboard/Attribute:menu_code+' => '', 'Class:UserDashboard/Attribute:contents' => 'Contents', 'Class:UserDashboard/Attribute:contents+' => '', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:WelcomeMenu' => 'Welcome', 'Menu:WelcomeMenu+' => 'Welcome to '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Welcome', @@ -399,13 +398,13 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Menu:MyShortcuts' => 'My Shortcuts', 'Menu:DataAdministration' => 'Data administration', 'Menu:DataAdministration+' => '', -)); +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'BooleanLabel:yes' => 'yes', 'BooleanLabel:no' => 'no', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login', @@ -780,7 +779,6 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:Audit:Dashboard:ObjectsValidated' => 'Objects validated', 'UI:Audit:AuditCategory:Subtitle' => '%1$s errors out of %2$s - %3$s%% of the object are valid', - 'UI:RunQuery:Title' => ITOP_APPLICATION_SHORT.' - OQL Query Evaluation', 'UI:RunQuery:QueryExamples' => 'Query Examples', 'UI:RunQuery:QueryResults' => 'Query Results', @@ -1272,7 +1270,6 @@ When associated with a trigger, each action is given an "order" number, specifyi 'UI:Dashboard:Actions' => 'Dashboard actions', 'UI:Dashboard:NotUpToDateUntilContainerSaved' => 'This dashboard displays information that does not include the ongoing changes.', - 'UI:DashletCreation:Title' => 'Create a new Dashlet', 'UI:DashletCreation:Dashboard' => 'Dashboard', 'UI:DashletCreation:DashletType' => 'Dashlet Type', @@ -1647,12 +1644,12 @@ When associated with a trigger, each action is given an "order" number, specifyi 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtered on %1$s', 'UI:StateChanged' => 'State changed', -)); +]); // // Expression to Natural language // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Expression:Operator:AND' => ' AND ', 'Expression:Operator:OR' => ' OR ', 'Expression:Operator:=' => ': ', @@ -1668,12 +1665,12 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Expression:Verb:NOW' => 'now', 'Expression:Verb:ISNULL' => ': undefined', -)); +]); // // iTop Newsroom menu // -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'UI:Newsroom:NoNewMessage' => 'No new message', 'UI:Newsroom:XNewMessage' => '%1$s new message(s)', 'UI:Newsroom:MarkAllAsRead' => 'Mark all messages as read', @@ -1688,10 +1685,9 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent', 'UI:Newsroom:Priority:3:Tooltip' => 'Important', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal', -)); +]); - -Dict::Add('EN GB', 'British English', 'British English', array( +Dict::Add('EN GB', 'British English', 'British English', [ 'Menu:DataSources' => 'Synchronisation Data Sources', 'Menu:DataSources+' => 'Data synchronisation used for batch import of external data', 'Menu:AuditCategories' => 'Audit configuration', @@ -1719,4 +1715,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'Menu:Integrations' => 'Integrations', 'Menu:Integrations+' => '', -)); +]); diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php index f49ca0454..616e26988 100644 --- a/dictionaries/es_cr.dictionary.itop.ui.php +++ b/dictionaries/es_cr.dictionary.itop.ui.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:AuditCategory' => 'Auditoría de Categorías', 'Class:AuditCategory+' => 'Auditoría de Categorías', 'Class:AuditCategory/Attribute:name' => 'Nombre de Categoría', @@ -24,13 +25,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Porcentaje de objetos no válidos por debajo del cual el resultado es erróneo (rojo)', 'Class:AuditCategory/Attribute:domains_list' => 'Dominios', 'Class:AuditCategory/Attribute:domains_list+' => 'Dominios que incluyen esta categoría', -)); +]); // // Class: AuditRule // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:AuditRule' => 'Regla de Auditoría', 'Class:AuditRule+' => 'Regla a revisar para una categoría de auditoría específica', 'Class:AuditRule/Attribute:name' => 'Nombre de la Regla', @@ -49,13 +50,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:AuditRule/Attribute:category_id+' => 'La categoría para esta regla', 'Class:AuditRule/Attribute:category_name' => 'Categoría', 'Class:AuditRule/Attribute:category_name+' => 'Nombre de la categoría para esta regla', -)); +]); // // Class: AuditDomain // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:AuditDomain' => 'Auditar Dominio', 'Class:AuditDomain+' => 'La auditoría de dominios permiten agrupar las categorías de auditoría. El dominio suele corresponder a quién se encarga de comprobar y corregir errores.', @@ -67,13 +68,13 @@ El dominio suele corresponder a quién se encarga de comprobar y corregir errore 'Class:AuditDomain/Attribute:icon+' => 'Icono', 'Class:AuditDomain/Attribute:categories_list' => 'Categorías', 'Class:AuditDomain/Attribute:categories_list+' => 'Categorías de auditoría relacionadas. Al ejecutar la auditoría en un dominio, se verifican todas las categorías de auditoría relacionadas y solo esas.', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Relación Categoría de auditoría / Dominio de auditoría', 'Class:lnkAuditCategoryToAuditDomain+' => 'Relación Categoría de auditoría / Dominio de auditoría', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Categoría', @@ -84,13 +85,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Dominio de auditoría', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Nombre de dominio', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Nombre de auditoria de dominio', -)); +]); // // Class: QueryOQL // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:Query' => 'Consulta', 'Class:Query+' => 'Un query es un set de datos definidos de manera dinámica', 'Class:Query/Attribute:name' => 'Nombre', @@ -117,7 +118,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:QueryOQL+' => 'Una consulta basada en Object Query Language', 'Class:QueryOQL/Attribute:oql' => 'Expresión', 'Class:QueryOQL/Attribute:oql+' => 'Expresión OQL', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -128,7 +129,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( // Class: User // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:User' => 'Usuario', 'Class:User+' => 'Credencial de usuario', 'Class:User/Attribute:finalclass' => 'Tipo de Cuenta', @@ -174,13 +175,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:User/Warning:NoContactHasImpact' => 'Cuidado: no hay ninguna Persona definida sobre este Usuario, esto impide el acceso a portales, notificaciones de noticias y otros efectos secundarios en el back-office', 'Class:UserInternal' => 'Usuario Interno', 'Class:UserInternal+' => 'Usuario definido en '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_Profiles' => 'Perfil', 'Class:URP_Profiles+' => 'Perfil de usuario', 'Class:URP_Profiles/Attribute:name' => 'Nombre', @@ -189,13 +190,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:URP_Profiles/Attribute:description+' => 'descripción en una línea', 'Class:URP_Profiles/Attribute:user_list' => 'Usuarios', 'Class:URP_Profiles/Attribute:user_list+' => 'Personas que tienen este Rol.', -)); +]); // // Class: URP_Dimensions // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_Dimensions' => 'Dimensión', 'Class:URP_Dimensions+' => 'Dimensión de Aplicación (definiendo silos)', 'Class:URP_Dimensions/Attribute:name' => 'Nombre', @@ -204,13 +205,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:URP_Dimensions/Attribute:description+' => 'Descripción en una línea', 'Class:URP_Dimensions/Attribute:type' => 'Tipo', 'Class:URP_Dimensions/Attribute:type+' => 'Nombre de Clase o Tipo de Datos (Unidad de Proyección)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_UserProfile' => 'Asignación de Perfiles', 'Class:URP_UserProfile+' => 'Perfiles de Usuarios', 'Class:URP_UserProfile/Name' => 'Vinculo entre %1$s y %2$s', @@ -224,14 +225,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Nombre del perfil', 'Class:URP_UserProfile/Attribute:reason' => 'Motivo', 'Class:URP_UserProfile/Attribute:reason+' => 'Justificación de por qué esta persona tiene este rol', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_UserOrg' => 'Organizaciones de Usuario', 'Class:URP_UserOrg+' => 'Organizaciones Permitidas', 'Class:URP_UserOrg/Name' => 'Vínculo entre %1$s y %2$s', @@ -245,13 +245,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Organización Permitida', 'Class:URP_UserOrg/Attribute:reason' => 'Motivo', 'Class:URP_UserOrg/Attribute:reason+' => 'Explicar porqué esta persona tiene permitido ver la información de esta Organización', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_ProfileProjection' => 'Proyecciones de Perfil', 'Class:URP_ProfileProjection+' => 'Proyecciones de Perfil', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimensión', @@ -266,13 +266,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'Expresión OQL (usando $user) | constante | | +código de atributo', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Atributo', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Código de Atributo Destino (opcional)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_ClassProjection' => 'Proyecciones de Clase', 'Class:URP_ClassProjection+' => 'Proyecciones de Clase', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimensión', @@ -285,13 +285,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:URP_ClassProjection/Attribute:value+' => 'Expresión OQL (usando $this) | constante | | +código de atributo', 'Class:URP_ClassProjection/Attribute:attribute' => 'Atributo', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Código de Atributo Destino (opcional)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_ActionGrant' => 'Permisos sobre Acciones', 'Class:URP_ActionGrant+' => 'Permisos sobre Acciones', 'Class:URP_ActionGrant/Attribute:profileid' => 'Perfil', @@ -308,13 +308,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'no', 'Class:URP_ActionGrant/Attribute:action' => 'Acción', 'Class:URP_ActionGrant/Attribute:action+' => 'Operaciones a realizar en la clase especificada', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_StimulusGrant' => 'Permisos de Cambio de Estado', 'Class:URP_StimulusGrant+' => 'Permisos de Cambio de Estado en el Ciclo de Vida del Objeto', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Perfil', @@ -331,25 +331,25 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => '', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Cambio de Estado', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'Código de Cambio de Estado', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:URP_AttributeGrant' => 'Permisos en Atributos', 'Class:URP_AttributeGrant+' => 'Permisos en Atributos', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Concesión de Acción', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'concesión de Acción', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Atributo', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'Código de Atributo', -)); +]); // // Class: UserDashboard // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Class:UserDashboard' => 'Tablero de Usuario', 'Class:UserDashboard+' => 'Tablero de Usuario', 'Class:UserDashboard/Attribute:user_id' => 'Usuario', @@ -358,12 +358,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Class:UserDashboard/Attribute:menu_code+' => 'Código de Menú', 'Class:UserDashboard/Attribute:contents' => 'Contenidos', 'Class:UserDashboard/Attribute:contents+' => 'Contenidos', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:WelcomeMenu' => 'Bienvenido', 'Menu:WelcomeMenu+' => 'Bienvenido a '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Bienvenido', 'Menu:WelcomeMenuPage+' => 'Bienvenido a '.ITOP_APPLICATION_SHORT, 'Menu:AdminTools' => 'Herramientas Administrativas', @@ -380,14 +380,14 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Menu:MyShortcuts' => 'Mis Accesos Rápidos', 'Menu:Notifications:Title' => 'Auditar categorías', 'Menu:DataAdministration' => 'Administración de Datos', - 'Menu:DataAdministration+' => 'Administración de Datos' -)); + 'Menu:DataAdministration+' => 'Administración de Datos', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'BooleanLabel:yes' => 'Si', 'BooleanLabel:no' => 'No', 'UI:Login:Title' => 'Inicio de Sesión', @@ -1534,13 +1534,13 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Hijos de los objetos seleccionados serán incluídos.', 'UI:Search:Criteria:Raw:Filtered' => 'Filtrado', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtrado en %1$s', - 'UI:StateChanged' => 'Estado cambiado' -)); + 'UI:StateChanged' => 'Estado cambiado', +]); // // Expression to Natural language // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Expression:Operator:AND' => ' Y ', 'Expression:Operator:OR' => ' O ', 'Expression:Operator:=' => ': ', @@ -1553,12 +1553,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Expression:Unit:Long:MINUTE' => 'minuto(s)', 'Expression:Verb:NOW' => 'Ahora', 'Expression:Verb:ISNULL' => ': Nulo', -)); +]); // // iTop Newsroom menu // -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Newsroom:NoNewMessage' => 'Sin Mensajes', 'UI:Newsroom:XNewMessage' => '%1$s nuevo(s) mensaje(s)', 'UI:Newsroom:MarkAllAsRead' => 'Marcar todos los mensajes como leídos', @@ -1573,10 +1573,9 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgente', 'UI:Newsroom:Priority:3:Tooltip' => 'Importante', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal', -)); +]); - -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'Menu:DataSources' => 'Fuentes de Datos Sincronizables', 'Menu:DataSources+' => 'Fuentes de Datos Sincronizables', 'Menu:AuditCategories' => 'Auditar categorías', @@ -1604,4 +1603,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'Menu:Integrations' => 'Integraciones', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/fr.dictionary.itop.ui.php b/dictionaries/fr.dictionary.itop.ui.php index ff9e4f2ad..23f1aee3a 100644 --- a/dictionaries/fr.dictionary.itop.ui.php +++ b/dictionaries/fr.dictionary.itop.ui.php @@ -1,15 +1,16 @@ 'Catégorie d\'audit', 'Class:AuditCategory+' => 'La catégorie d\'audit définit un ensemble d\'objets qui doivent être audité. Elle regroupe toutes les régles qui s\'appliquent au même périmètre d\'objets', @@ -27,13 +28,13 @@ Elle regroupe toutes les régles qui s\'appliquent au même périmètre d\'objet 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Pourcentage d\'objets en erreur au dela duquel le résultat est en erreur (rouge)', 'Class:AuditCategory/Attribute:domains_list' => 'Domaines', 'Class:AuditCategory/Attribute:domains_list+' => 'Domaines incluant cette catégorie d\'audit', -)); +]); // // Class: AuditRule // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:AuditRule' => 'Règle d\'audit', 'Class:AuditRule+' => 'Une règle d\'audit correspond à une vérification particulière. Elle s\'applique à tous les objets dans le périmètre de sa catégorie d\'audit', @@ -55,13 +56,13 @@ Elle s\'applique à tous les objets dans le périmètre de sa catégorie d\'audi 'Class:AuditRule/Attribute:category_id+' => '', 'Class:AuditRule/Attribute:category_name' => 'Nom de la catégorie', 'Class:AuditRule/Attribute:category_name+' => '', -)); +]); // // Class: AuditDomain // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:AuditDomain' => 'Domaine d\'audit', 'Class:AuditDomain+' => 'Un domaine permet de regrouper ensemble des catégories d\'audit. Cela recouvre en général, un domaine d\'intérêt ou de responsabilité', @@ -74,13 +75,13 @@ Cela recouvre en général, un domaine d\'intérêt ou de responsabilité', 'Class:AuditDomain/Attribute:categories_list' => 'Catégories', 'Class:AuditDomain/Attribute:categories_list+' => 'Catégories d\'audit incluses dans ce domaine. Cette inclusion n\'est pas exclusive. Lorsqu\'on execute l\'audit sur un domaine, toutes les catégories d\'audit incluses sont vérifiées en même temps et seulement celles là', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain', 'Class:lnkAuditCategoryToAuditDomain+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Catégorie', @@ -91,13 +92,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Domaine d\'audit', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Nom du domain', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Nom du domain d\'audit', -)); +]); // // Class: QueryOQL // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:Query' => 'Requête', 'Class:Query+' => 'Une requête définit un ensemble d\'information de manière dynamique', 'Class:Query/Attribute:name' => 'Nom', @@ -124,7 +125,7 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:QueryOQL+' => 'Une requête écrite dans le langage "Object Query Language"', 'Class:QueryOQL/Attribute:oql' => 'Expression', 'Class:QueryOQL/Attribute:oql+' => 'Expression OQL', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -135,7 +136,7 @@ Dict::Add('FR FR', 'French', 'Français', array( // Class: User // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:User' => 'Utilisateur', 'Class:User+' => 'Compte utilisateur', 'Class:User/Attribute:finalclass' => 'Type de compte', @@ -181,13 +182,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:User/Warning:NoContactHasImpact' => 'Attention: il n\'y a pas de Personne liée à cet utilisateur, il ne pourra pas se connecter à un portail, ni recevoir de News, ni changer sa langue.', 'Class:UserInternal' => 'Utilisateur interne', 'Class:UserInternal+' => 'Utilisateur défini dans '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_Profiles' => 'Profil', 'Class:URP_Profiles+' => 'Profil utilisateur', 'Class:URP_Profiles/Attribute:name' => 'Nom', @@ -196,13 +197,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:URP_Profiles/Attribute:description+' => '', 'Class:URP_Profiles/Attribute:user_list' => 'Utilisateurs', 'Class:URP_Profiles/Attribute:user_list+' => 'Comptes utilisateur (logins) ayant ce profil', -)); +]); // // Class: URP_Dimensions // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_Dimensions' => 'Dimension', 'Class:URP_Dimensions+' => 'Dimension applicative (défini des silos)', 'Class:URP_Dimensions/Attribute:name' => 'Nom', @@ -211,13 +212,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:URP_Dimensions/Attribute:description+' => '', 'Class:URP_Dimensions/Attribute:type' => 'Type', 'Class:URP_Dimensions/Attribute:type+' => 'Nom de classe ou type de données (unité de projection)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_UserProfile' => 'Utilisateur/Profil', 'Class:URP_UserProfile+' => '', 'Class:URP_UserProfile/Name' => 'Lien entre %1$s et %2$s', @@ -231,14 +232,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:URP_UserProfile/Attribute:profile+' => '', 'Class:URP_UserProfile/Attribute:reason' => 'Raison', 'Class:URP_UserProfile/Attribute:reason+' => 'Justifie le rôle affecté à cet utilisateur', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_UserOrg' => 'Utilisateur/Organisation', 'Class:URP_UserOrg+' => 'Organisations permises pour l\'utilisateur', 'Class:URP_UserOrg/Name' => 'Lien entre %1$s et %2$s', @@ -252,13 +252,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => '', 'Class:URP_UserOrg/Attribute:reason' => 'Raison', 'Class:URP_UserOrg/Attribute:reason+' => 'Justifie la permission de voir les données de cette organisation', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => 'profile projections', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimension', @@ -273,13 +273,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL expression (using $user) | constant | | +attribute code', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Target attribute code (optional)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_ClassProjection' => 'class_projection', 'Class:URP_ClassProjection+' => 'class projections', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimension', @@ -292,13 +292,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL expression (using $this) | constant | | +attribute code', 'Class:URP_ClassProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Target attribute code (optional)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_ActionGrant' => 'action_permission', 'Class:URP_ActionGrant+' => 'permissions on classes', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profile', @@ -315,13 +315,13 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'non', 'Class:URP_ActionGrant/Attribute:action' => 'Action', 'Class:URP_ActionGrant/Attribute:action+' => 'operations to perform on the given class', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_StimulusGrant' => 'stimulus_permission', 'Class:URP_StimulusGrant+' => 'permissions on stimulus in the life cycle of the object', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profile', @@ -338,25 +338,25 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'no', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Stimulus', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'stimulus code', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:URP_AttributeGrant' => 'attribute_permission', 'Class:URP_AttributeGrant+' => 'permissions at the attributes level', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Action grant', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'action grant', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Attribute', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'attribute code', -)); +]); // // Class: UserDashboard // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Class:UserDashboard' => 'Tableau de bord utilisateur', 'Class:UserDashboard+' => '', 'Class:UserDashboard/Attribute:user_id' => 'Utilisateur', @@ -365,12 +365,12 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Class:UserDashboard/Attribute:menu_code+' => '', 'Class:UserDashboard/Attribute:contents' => 'Contenu', 'Class:UserDashboard/Attribute:contents+' => '', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Menu:WelcomeMenu' => 'Bienvenue', 'Menu:WelcomeMenu+' => 'Bienvenue dans '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Bienvenue', 'Menu:WelcomeMenuPage+' => 'Bienvenue dans '.ITOP_APPLICATION_SHORT, 'Menu:AdminTools' => 'Administration', @@ -387,14 +387,14 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Menu:MyShortcuts' => 'Mes raccourcis', 'Menu:Notifications:Title' => 'Catégories d\'audit', 'Menu:DataAdministration' => 'Administration des données', - 'Menu:DataAdministration+' => 'Administration des données' -)); + 'Menu:DataAdministration+' => 'Administration des données', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'BooleanLabel:yes' => 'oui', 'BooleanLabel:no' => 'non', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login', @@ -1538,13 +1538,13 @@ Lors de l\'association à un déclencheur, on attribue à chaque action un numé 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Children of the selected objects will be included.~~', 'UI:Search:Criteria:Raw:Filtered' => 'Filtré', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtré sur %1$s', - 'UI:StateChanged' => 'Etat modifié' -)); + 'UI:StateChanged' => 'Etat modifié', +]); // // Expression to Natural language // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Expression:Operator:AND' => ' ET ', 'Expression:Operator:OR' => ' OU ', 'Expression:Operator:=' => ' : ', @@ -1557,12 +1557,12 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Expression:Unit:Long:MINUTE' => 'minute(s)', 'Expression:Verb:NOW' => 'maintenant', 'Expression:Verb:ISNULL' => ' : non défini', -)); +]); // // iTop Newsroom menu // -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'UI:Newsroom:NoNewMessage' => 'Aucun nouveau message', 'UI:Newsroom:XNewMessage' => '%1$s nouveau(x) message(s)', 'UI:Newsroom:MarkAllAsRead' => 'Marquer tous les messages comme lus', @@ -1577,10 +1577,9 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent', 'UI:Newsroom:Priority:3:Tooltip' => 'Important', 'UI:Newsroom:Priority:4:Tooltip' => 'Standard', -)); +]); - -Dict::Add('FR FR', 'French', 'Français', array( +Dict::Add('FR FR', 'French', 'Français', [ 'Menu:DataSources' => 'Synchronisation', 'Menu:DataSources+' => 'Configurations d\'import de données issues de sources externes', 'Menu:AuditCategories' => 'Configurer l\'audit', @@ -1608,4 +1607,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'Menu:Integrations' => 'Intégrations', 'Menu:Integrations+' => '', -)); +]); diff --git a/dictionaries/hu.dictionary.itop.ui.php b/dictionaries/hu.dictionary.itop.ui.php index 254a37cf1..8e18eefab 100755 --- a/dictionaries/hu.dictionary.itop.ui.php +++ b/dictionaries/hu.dictionary.itop.ui.php @@ -1,15 +1,16 @@ 'Audit kategória', 'Class:AuditCategory+' => '', 'Class:AuditCategory/Attribute:name' => 'Kategórianév', @@ -26,13 +27,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)~~', 'Class:AuditCategory/Attribute:domains_list' => 'Domains~~', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category~~', -)); +]); // // Class: AuditRule // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:AuditRule' => 'Auditszabály', 'Class:AuditRule+' => '', 'Class:AuditRule/Attribute:name' => 'Szabály név', @@ -51,13 +52,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:AuditRule/Attribute:category_id+' => '', 'Class:AuditRule/Attribute:category_name' => 'Kategórianév', 'Class:AuditRule/Attribute:category_name+' => '', -)); +]); // // Class: AuditDomain // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:AuditDomain' => 'Audit Domain~~', 'Class:AuditDomain+' => 'Audit domains allow to group the audit categories. Domain usually correspond to who is responsible for checking and fixing errors~~', @@ -69,13 +70,13 @@ Domain usually correspond to who is responsible for checking and fixing errors~~ 'Class:AuditDomain/Attribute:icon+' => '~~', 'Class:AuditDomain/Attribute:categories_list' => 'Categories~~', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.~~', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain~~', 'Class:lnkAuditCategoryToAuditDomain+' => '~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category~~', @@ -86,13 +87,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name~~', -)); +]); // // Class: QueryOQL // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:Query' => 'Lekérdezés', 'Class:Query+' => 'A query is a data set defined in a dynamic way~~', 'Class:Query/Attribute:name' => 'Név', @@ -119,7 +120,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:QueryOQL+' => 'A query based on the Object Query Language~~', 'Class:QueryOQL/Attribute:oql' => 'Kifejezés', 'Class:QueryOQL/Attribute:oql+' => 'OQL kifejezés', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -130,7 +131,7 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( // Class: User // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:User' => 'Felhasználó', 'Class:User+' => '', 'Class:User/Attribute:finalclass' => 'Felhasználó típus', @@ -176,13 +177,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~', 'Class:UserInternal' => 'Belső felhasználó', 'Class:UserInternal+' => ITOP_APPLICATION_SHORT.'-n belül létrehozott felhasználó', -)); +]); // // Class: URP_Profiles // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_Profiles' => 'Profil', 'Class:URP_Profiles+' => '', 'Class:URP_Profiles/Attribute:name' => 'Profilnév', @@ -191,13 +192,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:URP_Profiles/Attribute:description+' => '', 'Class:URP_Profiles/Attribute:user_list' => 'Felhasználók', 'Class:URP_Profiles/Attribute:user_list+' => '', -)); +]); // // Class: URP_Dimensions // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_Dimensions' => 'Dimenzió', 'Class:URP_Dimensions+' => '', 'Class:URP_Dimensions/Attribute:name' => 'Dimenziónév', @@ -206,13 +207,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:URP_Dimensions/Attribute:description+' => '', 'Class:URP_Dimensions/Attribute:type' => 'Típus', 'Class:URP_Dimensions/Attribute:type+' => '', -)); +]); // // Class: URP_UserProfile // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_UserProfile' => 'Profilhoz rendelt felhasználók', 'Class:URP_UserProfile+' => '', 'Class:URP_UserProfile/Name' => 'Kapcsolat %1$s és %2$s között', @@ -226,14 +227,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:URP_UserProfile/Attribute:profile+' => '', 'Class:URP_UserProfile/Attribute:reason' => 'Indoklás', 'Class:URP_UserProfile/Attribute:reason+' => '', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_UserOrg' => 'Felhasználó szervezeti tagsága', 'Class:URP_UserOrg+' => '', 'Class:URP_UserOrg/Name' => 'Kapcsolat %1$s és %2$s között', @@ -247,13 +247,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => '', 'Class:URP_UserOrg/Attribute:reason' => 'Indoklás', 'Class:URP_UserOrg/Attribute:reason+' => '', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => '', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimenzió', @@ -268,13 +268,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:URP_ProfileProjection/Attribute:value+' => '', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribútum', 'Class:URP_ProfileProjection/Attribute:attribute+' => '', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_ClassProjection' => 'class_projection', 'Class:URP_ClassProjection+' => '', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimenzió', @@ -287,13 +287,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:URP_ClassProjection/Attribute:value+' => '', 'Class:URP_ClassProjection/Attribute:attribute' => 'Attribútum', 'Class:URP_ClassProjection/Attribute:attribute+' => '', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_ActionGrant' => 'action_permission', 'Class:URP_ActionGrant+' => '', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profil', @@ -310,13 +310,13 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => '', 'Class:URP_ActionGrant/Attribute:action' => 'Művelet', 'Class:URP_ActionGrant/Attribute:action+' => '', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_StimulusGrant' => 'stimulus_permission', 'Class:URP_StimulusGrant+' => '', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profil', @@ -333,25 +333,25 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => '', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Stimulus', 'Class:URP_StimulusGrant/Attribute:stimulus+' => '', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:URP_AttributeGrant' => 'attribute_permission', 'Class:URP_AttributeGrant+' => '', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Művelet engedély', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => '', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Attribútum', 'Class:URP_AttributeGrant/Attribute:attcode+' => '', -)); +]); // // Class: UserDashboard // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Class:UserDashboard' => 'Felhasználói műszerfal', 'Class:UserDashboard+' => '~~', 'Class:UserDashboard/Attribute:user_id' => 'Felhasználó', @@ -360,12 +360,12 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Class:UserDashboard/Attribute:menu_code+' => '~~', 'Class:UserDashboard/Attribute:contents' => 'Tartalom', 'Class:UserDashboard/Attribute:contents+' => '~~', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Menu:WelcomeMenu' => 'Kezdőoldal', 'Menu:WelcomeMenu+' => '', 'Menu:WelcomeMenuPage' => 'Áttekintő', @@ -384,14 +384,14 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Menu:MyShortcuts' => 'Saját gyorsgombok', 'Menu:Notifications:Title' => 'Audit kategóriák', 'Menu:DataAdministration' => 'Adat adminisztráció', - 'Menu:DataAdministration+' => '' -)); + 'Menu:DataAdministration+' => '', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'BooleanLabel:yes' => 'Igen', 'BooleanLabel:no' => 'Nem', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' bejelentkezés', @@ -1540,13 +1540,13 @@ A művelet eseményindítóhoz rendelésekor kap egy sorszámot , amely meghatá 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'A kijelölt objektumok gyermekei is szerepelnek.', 'UI:Search:Criteria:Raw:Filtered' => 'Szűrt', 'UI:Search:Criteria:Raw:FilteredOn' => '%1$s által szűrve', - 'UI:StateChanged' => 'Megváltozott állapot' -)); + 'UI:StateChanged' => 'Megváltozott állapot', +]); // // Expression to Natural language // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Expression:Operator:AND' => ' ÉS ', 'Expression:Operator:OR' => ' VAGY ', 'Expression:Operator:=' => ': ', @@ -1559,12 +1559,12 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Expression:Unit:Long:MINUTE' => 'perc', 'Expression:Verb:NOW' => 'most', 'Expression:Verb:ISNULL' => ': meghatározatlan', -)); +]); // // iTop Newsroom menu // -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'UI:Newsroom:NoNewMessage' => 'Nincs új üzenet', 'UI:Newsroom:XNewMessage' => '%1$s új üzenet', 'UI:Newsroom:MarkAllAsRead' => 'Üzenetek jelölése olvasottként', @@ -1579,10 +1579,9 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent~~', 'UI:Newsroom:Priority:3:Tooltip' => 'Important~~', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal~~', -)); +]); - -Dict::Add('HU HU', 'Hungarian', 'Magyar', array( +Dict::Add('HU HU', 'Hungarian', 'Magyar', [ 'Menu:DataSources' => 'Szinkronizációs adatforrások', 'Menu:DataSources+' => '', 'Menu:AuditCategories' => 'Audit kategóriák', @@ -1610,4 +1609,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'Menu:Integrations' => 'Integrációk', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/it.dictionary.itop.ui.php b/dictionaries/it.dictionary.itop.ui.php index 18bcf9e86..ece2d2103 100644 --- a/dictionaries/it.dictionary.itop.ui.php +++ b/dictionaries/it.dictionary.itop.ui.php @@ -1,15 +1,16 @@ 'Categoria di Audit', 'Class:AuditCategory+' => 'Una sezione all\'interno del controllo globale', 'Class:AuditCategory/Attribute:name' => 'Nome della categoria', @@ -26,13 +27,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentuale di oggetti non validi al di sotto della quale il risultato è un errore (rosso)', 'Class:AuditCategory/Attribute:domains_list' => 'Domini', 'Class:AuditCategory/Attribute:domains_list+' => 'Domini che includono questa categoria', -)); +]); // // Class: AuditRule // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:AuditRule' => 'Regola di Audit', 'Class:AuditRule+' => '', 'Class:AuditRule/Attribute:name' => 'Nome della regola', @@ -51,13 +52,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:AuditRule/Attribute:category_id+' => 'Categoria per questa regola', 'Class:AuditRule/Attribute:category_name' => 'Categoria', 'Class:AuditRule/Attribute:category_name+' => 'Nome della categoria per questa regola', -)); +]); // // Class: AuditDomain // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:AuditDomain' => 'Dominio di Audit', 'Class:AuditDomain+' => 'I domini di audit permettono di raggruppare le categorie di audit. Il dominio di solito corrisponde a chi è responsabile del controllo e della correzione degli errori o semplicemente interessato.', @@ -69,13 +70,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:AuditDomain/Attribute:icon+' => '~~', 'Class:AuditDomain/Attribute:categories_list' => 'Categorie', 'Class:AuditDomain/Attribute:categories_list+' => 'Categorie di audit correlate. Quando si esegue l\'audit su un dominio, vengono controllate solo le categorie di audit correlate.', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Collegamento Categoria Audit / Dominio Audit', 'Class:lnkAuditCategoryToAuditDomain+' => '~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Categoria', @@ -86,13 +87,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Dominio di Audit', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Nome dominio', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Nome dominio di Audit', -)); +]); // // Class: QueryOQL // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:Query' => 'Query', 'Class:Query+' => 'Una query è un insieme di dati definito in modo dinamico', 'Class:Query/Attribute:name' => 'Nome', @@ -119,7 +120,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:QueryOQL+' => 'Una query basata su Object Query Language', 'Class:QueryOQL/Attribute:oql' => 'Espressione', 'Class:QueryOQL/Attribute:oql+' => 'Espressione OQL', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -130,7 +131,7 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( // Class: User // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:User' => 'Utente', 'Class:User+' => 'Login Utente', 'Class:User/Attribute:finalclass' => 'Tipo di account', @@ -176,13 +177,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:User/Warning:NoContactHasImpact' => 'Attenzione: non è definita alcuna Persona per questo Utente, ciò impedisce l\'accesso ai portali, le notifiche di notizie e altri effetti collaterali nel back-office', 'Class:UserInternal' => 'Utente Interno', 'Class:UserInternal+' => 'Utente definito all\'interno di '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_Profiles' => 'Profilo', 'Class:URP_Profiles+' => '', 'Class:URP_Profiles/Attribute:name' => 'Nome', @@ -191,13 +192,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:URP_Profiles/Attribute:description+' => 'una linea di descrizione', 'Class:URP_Profiles/Attribute:user_list' => 'Utenti', 'Class:URP_Profiles/Attribute:user_list+' => 'Persone che hanno questo ruuolo', -)); +]); // // Class: URP_Dimensions // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_Dimensions' => 'dimensione', 'Class:URP_Dimensions+' => 'dimensione dell\'applicazione (definizione di silos))', 'Class:URP_Dimensions/Attribute:name' => 'Nome', @@ -206,13 +207,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:URP_Dimensions/Attribute:description+' => 'una linea di descrizione', 'Class:URP_Dimensions/Attribute:type' => 'Tipo', 'Class:URP_Dimensions/Attribute:type+' => 'nome della classe o tipo di dato (proiezione dell\'unità)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_UserProfile' => 'Utente da Profilare', 'Class:URP_UserProfile+' => '', 'Class:URP_UserProfile/Name' => 'Collegamento tra %1$s e %2$s', @@ -226,14 +227,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Nome del profilo', 'Class:URP_UserProfile/Attribute:reason' => 'Motivo', 'Class:URP_UserProfile/Attribute:reason+' => 'spiega perchè questo utente dovrebbe avere questo ruolo', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_UserOrg' => 'Organizzazione dell\'utente', 'Class:URP_UserOrg+' => '', 'Class:URP_UserOrg/Name' => 'Collegamento tra %1$s e %2$s', @@ -247,13 +247,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Organizzazione permesse', 'Class:URP_UserOrg/Attribute:reason' => 'Motivo', 'Class:URP_UserOrg/Attribute:reason+' => '', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => 'proiezioni di profilo', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimensione', @@ -268,13 +268,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'Espressione OQL (uso $user) | constante| | +codice attributo', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attributo', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Codice attributo bersaglio (opzionale)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_ClassProjection' => 'class_projection', 'Class:URP_ClassProjection+' => 'proiezioni di classe', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimensione', @@ -287,13 +287,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:URP_ClassProjection/Attribute:value+' => 'Espressione OQL (uso $this) | constante| | +codice attributo', 'Class:URP_ClassProjection/Attribute:attribute' => 'Attributo', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Codice attributo bersaglio (opzionale)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_ActionGrant' => 'azione_autorizzazione', 'Class:URP_ActionGrant+' => 'permesso su classi', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profilo', @@ -310,13 +310,13 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'no', 'Class:URP_ActionGrant/Attribute:action' => 'Azione', 'Class:URP_ActionGrant/Attribute:action+' => '', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_StimulusGrant' => 'stimulus_autorizzazione', 'Class:URP_StimulusGrant+' => '', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profilo', @@ -333,25 +333,25 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'no', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Stimulus', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'Codice per lo Stimolus', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:URP_AttributeGrant' => 'attributo_autorizzazione', 'Class:URP_AttributeGrant+' => 'autorizzazioni a livello di attributi', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Azione di sovvenzione', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'azione di sovvenzione', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Attributo', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'codice attributo', -)); +]); // // Class: UserDashboard // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Class:UserDashboard' => 'Dashboard Utente', 'Class:UserDashboard+' => '~~', 'Class:UserDashboard/Attribute:user_id' => 'Utente', @@ -360,12 +360,12 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Class:UserDashboard/Attribute:menu_code+' => '~~', 'Class:UserDashboard/Attribute:contents' => 'Contenuti', 'Class:UserDashboard/Attribute:contents+' => '~~', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Menu:WelcomeMenu' => 'Benveuto', 'Menu:WelcomeMenu+' => '', 'Menu:WelcomeMenuPage' => 'Benvenuto', @@ -384,14 +384,14 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Menu:MyShortcuts' => 'Le mie scorciatoie', 'Menu:Notifications:Title' => 'Categorie di Audit', 'Menu:DataAdministration' => 'Dati di amministrazione', - 'Menu:DataAdministration+' => '' -)); + 'Menu:DataAdministration+' => '', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'BooleanLabel:yes' => 'si', 'BooleanLabel:no' => 'no', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login', @@ -1537,13 +1537,13 @@ Quando è associata a un trigger, a ogni azione è assegnato un numero "ordine", 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Verranno inclusi i figli degli oggetti selezionati.', 'UI:Search:Criteria:Raw:Filtered' => 'Filtrato', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtrato su %1$s', - 'UI:StateChanged' => 'Stato cambiato' -)); + 'UI:StateChanged' => 'Stato cambiato', +]); // // Expression to Natural language // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Expression:Operator:AND' => ' E ', 'Expression:Operator:OR' => ' O ', 'Expression:Operator:=' => ': ', @@ -1556,12 +1556,12 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Expression:Unit:Long:MINUTE' => 'minuto(i)', 'Expression:Verb:NOW' => 'ora', 'Expression:Verb:ISNULL' => ': non definito', -)); +]); // // iTop Newsroom menu // -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'UI:Newsroom:NoNewMessage' => 'Nessun nuovo messaggio', 'UI:Newsroom:XNewMessage' => '%1$s nuovo/i messaggio/i', 'UI:Newsroom:MarkAllAsRead' => 'Segna tutti come letti', @@ -1576,10 +1576,9 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgente', 'UI:Newsroom:Priority:3:Tooltip' => 'Importante', 'UI:Newsroom:Priority:4:Tooltip' => 'Normale', -)); +]); - -Dict::Add('IT IT', 'Italian', 'Italiano', array( +Dict::Add('IT IT', 'Italian', 'Italiano', [ 'Menu:DataSources' => 'Sorgente di sincronizzazione dei dati', 'Menu:DataSources+' => '', 'Menu:AuditCategories' => 'Categorie di Audit', @@ -1607,4 +1606,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'Menu:Integrations' => 'Integrazioni', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/ja.dictionary.itop.ui.php b/dictionaries/ja.dictionary.itop.ui.php index 8e9440e51..70505084b 100644 --- a/dictionaries/ja.dictionary.itop.ui.php +++ b/dictionaries/ja.dictionary.itop.ui.php @@ -1,15 +1,16 @@ '監査カテゴリ', 'Class:AuditCategory+' => '監査全体の内部セクション', 'Class:AuditCategory/Attribute:name' => 'カテゴリ名', @@ -26,13 +27,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)~~', 'Class:AuditCategory/Attribute:domains_list' => 'Domains~~', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category~~', -)); +]); // // Class: AuditRule // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:AuditRule' => '監査ルール', 'Class:AuditRule+' => '指定された監査カテゴリをチェックするためのルール', 'Class:AuditRule/Attribute:name' => 'ルール名', @@ -51,13 +52,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:AuditRule/Attribute:category_id+' => 'このルールのカテゴリ', 'Class:AuditRule/Attribute:category_name' => 'カテゴリ', 'Class:AuditRule/Attribute:category_name+' => 'このルールのカテゴリ名', -)); +]); // // Class: AuditDomain // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:AuditDomain' => 'Audit Domain~~', 'Class:AuditDomain+' => 'Audit domains allow to group the audit categories. Domain usually correspond to who is responsible for checking and fixing errors~~', @@ -69,13 +70,13 @@ Domain usually correspond to who is responsible for checking and fixing errors~~ 'Class:AuditDomain/Attribute:icon+' => '~~', 'Class:AuditDomain/Attribute:categories_list' => 'Categories~~', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.~~', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain~~', 'Class:lnkAuditCategoryToAuditDomain+' => '~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category~~', @@ -86,13 +87,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name~~', -)); +]); // // Class: QueryOQL // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:Query' => 'クエリ', 'Class:Query+' => 'クエリは動的な方法で定義されるデータセットです。', 'Class:Query/Attribute:name' => '名前', @@ -119,7 +120,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:QueryOQL+' => ' Object Query Language に基づいたクエリ', 'Class:QueryOQL/Attribute:oql' => '式', 'Class:QueryOQL/Attribute:oql+' => 'OQL 式', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -130,7 +131,7 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( // Class: User // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:User' => 'ユーザー', 'Class:User+' => 'ユーザーログイン', 'Class:User/Attribute:finalclass' => 'アカウントタイプ', @@ -176,13 +177,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~', 'Class:UserInternal' => 'User Internal~~', 'Class:UserInternal+' => 'User defined within '.ITOP_APPLICATION_SHORT.'~~', -)); +]); // // Class: URP_Profiles // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_Profiles' => 'プロフィール', 'Class:URP_Profiles+' => 'ユーザプロフィール', 'Class:URP_Profiles/Attribute:name' => '名前', @@ -191,13 +192,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:URP_Profiles/Attribute:description+' => '1行の説明', 'Class:URP_Profiles/Attribute:user_list' => 'ユーザー', 'Class:URP_Profiles/Attribute:user_list+' => 'この役割をもつ人', -)); +]); // // Class: URP_Dimensions // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_Dimensions' => 'ディメンション', 'Class:URP_Dimensions+' => 'アプリケーションディメンション(defining silos)', 'Class:URP_Dimensions/Attribute:name' => '名前', @@ -206,13 +207,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:URP_Dimensions/Attribute:description+' => '1行の説明', 'Class:URP_Dimensions/Attribute:type' => 'タイプ', 'Class:URP_Dimensions/Attribute:type+' => 'クラス名、もしくはデータ型(projection unit)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_UserProfile' => 'ユーザープロフィール', 'Class:URP_UserProfile+' => 'ユーザープロフィール', 'Class:URP_UserProfile/Name' => '%1$s と %2$s間のリンク', @@ -226,14 +227,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:URP_UserProfile/Attribute:profile+' => 'プロフィール名', 'Class:URP_UserProfile/Attribute:reason' => '理由', 'Class:URP_UserProfile/Attribute:reason+' => 'なぜ、この人物がこの役割を持つかを説明する', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_UserOrg' => 'ユーザー組織', 'Class:URP_UserOrg+' => '許可された組織', 'Class:URP_UserOrg/Name' => '%1$s と %2$s 間のリンク', @@ -247,13 +247,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => '許可された組織', 'Class:URP_UserOrg/Attribute:reason' => '理由', 'Class:URP_UserOrg/Attribute:reason+' => 'なぜこの人物がこの組織に属するデータを参照できるのかを説明する', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_ProfileProjection' => 'プロフィールプロジェクション', 'Class:URP_ProfileProjection+' => 'プロフィールプロジェクション', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'ディメンション', @@ -268,13 +268,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:URP_ProfileProjection/Attribute:value+' => '($userを使う)OQL式 | 定数 | | +属性コード', 'Class:URP_ProfileProjection/Attribute:attribute' => '属性', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'ターゲット属性コード (オプション)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_ClassProjection' => 'クラスプロジェクション', 'Class:URP_ClassProjection+' => 'クラスのプロジェクション', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'ディメンション', @@ -287,13 +287,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:URP_ClassProjection/Attribute:value+' => '($this を使った)OQL式 | 定数 | | +属性コード', 'Class:URP_ClassProjection/Attribute:attribute' => '属性', 'Class:URP_ClassProjection/Attribute:attribute+' => 'ターゲット属性コード(オプション)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_ActionGrant' => 'アクション権限', 'Class:URP_ActionGrant+' => 'クラスに対する権限', 'Class:URP_ActionGrant/Attribute:profileid' => 'プロフィール', @@ -310,13 +310,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'いいえ', 'Class:URP_ActionGrant/Attribute:action' => 'アクション', 'Class:URP_ActionGrant/Attribute:action+' => '指定されたクラスに実行する操作', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_StimulusGrant' => 'シティミュラス権限', 'Class:URP_StimulusGrant+' => 'オブジェクトのライフサイクル中のシティミュラスにおける権限', 'Class:URP_StimulusGrant/Attribute:profileid' => 'プロフィール', @@ -333,25 +333,25 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'いいえ', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'シティミュラス', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'シティミュラスコード', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:URP_AttributeGrant' => '属性権限', 'Class:URP_AttributeGrant+' => '属性レベルでの権限', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => '実行権限', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => '実行権限', 'Class:URP_AttributeGrant/Attribute:attcode' => '属性', 'Class:URP_AttributeGrant/Attribute:attcode+' => '属性コード', -)); +]); // // Class: UserDashboard // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Class:UserDashboard' => 'User dashboard~~', 'Class:UserDashboard+' => '~~', 'Class:UserDashboard/Attribute:user_id' => 'User~~', @@ -360,12 +360,12 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Class:UserDashboard/Attribute:menu_code+' => '~~', 'Class:UserDashboard/Attribute:contents' => 'Contents~~', 'Class:UserDashboard/Attribute:contents+' => '~~', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Menu:WelcomeMenu' => 'ようこそ', 'Menu:WelcomeMenu+' => 'ようこそ、'.ITOP_APPLICATION_SHORT.'へ', 'Menu:WelcomeMenuPage' => 'ようこそ', @@ -384,14 +384,14 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Menu:MyShortcuts' => '私のショートカット', 'Menu:Notifications:Title' => '監査カテゴリ', 'Menu:DataAdministration' => 'データ管理', - 'Menu:DataAdministration+' => 'データ管理' -)); + 'Menu:DataAdministration+' => 'データ管理', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'BooleanLabel:yes' => 'はい', 'BooleanLabel:no' => 'いいえ', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login~~', @@ -1541,13 +1541,13 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Children of the selected objects will be included.~~', 'UI:Search:Criteria:Raw:Filtered' => 'Filtered~~', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtered on %1$s~~', - 'UI:StateChanged' => 'State changed~~' -)); + 'UI:StateChanged' => 'State changed~~', +]); // // Expression to Natural language // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Expression:Operator:AND' => ' AND ~~', 'Expression:Operator:OR' => ' OR ~~', 'Expression:Operator:=' => ': ~~', @@ -1560,12 +1560,12 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Expression:Unit:Long:MINUTE' => 'minute(s)~~', 'Expression:Verb:NOW' => 'now~~', 'Expression:Verb:ISNULL' => ': undefined~~', -)); +]); // // iTop Newsroom menu // -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'UI:Newsroom:NoNewMessage' => 'No new message~~', 'UI:Newsroom:XNewMessage' => '%1$s new message(s)~~', 'UI:Newsroom:MarkAllAsRead' => 'Mark all messages as read~~', @@ -1580,10 +1580,9 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent~~', 'UI:Newsroom:Priority:3:Tooltip' => 'Important~~', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal~~', -)); +]); - -Dict::Add('JA JP', 'Japanese', '日本語', array( +Dict::Add('JA JP', 'Japanese', '日本語', [ 'Menu:DataSources' => '同期データソース', 'Menu:DataSources+' => '全ての同期データソース', 'Menu:AuditCategories' => '監査カテゴリ', @@ -1611,4 +1610,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'Menu:Integrations' => 'Integrations~~', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/nl.dictionary.itop.ui.php b/dictionaries/nl.dictionary.itop.ui.php index 4f50e5f23..5c5856c47 100644 --- a/dictionaries/nl.dictionary.itop.ui.php +++ b/dictionaries/nl.dictionary.itop.ui.php @@ -1,15 +1,16 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:AuditCategory' => 'Auditcategorie', 'Class:AuditCategory+' => 'Een onderdeel van de gehele audit', 'Class:AuditCategory/Attribute:name' => 'Naam categorie', @@ -26,13 +27,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)~~', 'Class:AuditCategory/Attribute:domains_list' => 'Domeinen', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category~~', -)); +]); // // Class: AuditRule // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:AuditRule' => 'Auditregel', 'Class:AuditRule+' => 'Een regel voor het controleren van een bepaalde Auditcategorie', 'Class:AuditRule/Attribute:name' => 'Naam regel', @@ -51,13 +52,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:AuditRule/Attribute:category_id+' => 'De categorie voor deze regel', 'Class:AuditRule/Attribute:category_name' => 'Categorie', 'Class:AuditRule/Attribute:category_name+' => 'Naam van de categorie voor deze regel', -)); +]); // // Class: AuditDomain // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:AuditDomain' => 'Audit Domein', 'Class:AuditDomain+' => 'Audit domeinen groeperen de audit categorieën. Het domein komt meestal overeen met wie er verantwoordelijk is om de fouten te controleren en oplossen', @@ -69,13 +70,13 @@ Het domein komt meestal overeen met wie er verantwoordelijk is om de fouten te c 'Class:AuditDomain/Attribute:icon+' => '', 'Class:AuditDomain/Attribute:categories_list' => 'Categorieën', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.~~', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain~~', 'Class:lnkAuditCategoryToAuditDomain+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Categorie', @@ -86,13 +87,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domein', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domein naam', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domein naam', -)); +]); // // Class: QueryOQL // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:Query' => 'Query', 'Class:Query+' => 'Een query is een definie voor een dataset die op een dynamische manier wordt samengesteld', 'Class:Query/Attribute:name' => 'Naam', @@ -119,7 +120,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:QueryOQL+' => 'Een query gebaseerd op de Object Query Language', 'Class:QueryOQL/Attribute:oql' => 'Expressie', 'Class:QueryOQL/Attribute:oql+' => 'OQL-expressie', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -130,7 +131,7 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( // Class: User // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:User' => 'Gebruiker', 'Class:User+' => 'Login voor gebruiker', 'Class:User/Attribute:finalclass' => 'Accounttype', @@ -176,13 +177,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~', 'Class:UserInternal' => 'Interne gebruiker', 'Class:UserInternal+' => 'Gebruiker gedefinieerd in '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_Profiles' => 'Profiel', 'Class:URP_Profiles+' => 'Gebruikersprofiel', 'Class:URP_Profiles/Attribute:name' => 'Naam', @@ -191,13 +192,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:URP_Profiles/Attribute:description+' => 'Beschrijving van dit profiel', 'Class:URP_Profiles/Attribute:user_list' => 'Gebruikers', 'Class:URP_Profiles/Attribute:user_list+' => 'Gebruikers met deze rol', -)); +]); // // Class: URP_Dimensions // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_Dimensions' => 'Dimensie', 'Class:URP_Dimensions+' => 'Dimensie van de applicatie (definieert silo\'s)', 'Class:URP_Dimensions/Attribute:name' => 'Naam', @@ -206,13 +207,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:URP_Dimensions/Attribute:description+' => 'Beschrijving van deze dimensie', 'Class:URP_Dimensions/Attribute:type' => 'Type', 'Class:URP_Dimensions/Attribute:type+' => 'Klassenaam of data type (projection unit)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_UserProfile' => 'Gebruiker / Profiel', 'Class:URP_UserProfile+' => 'Koppeling tussen gebruikers en profielen', 'Class:URP_UserProfile/Name' => 'Link tussen %1$s en %2$s', @@ -226,14 +227,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Naam van het profiel', 'Class:URP_UserProfile/Attribute:reason' => 'Reden', 'Class:URP_UserProfile/Attribute:reason+' => 'Leg uit waarom deze persoon deze rol heeft', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_UserOrg' => 'Gebruiker / Organisatie', 'Class:URP_UserOrg+' => 'Koppeling tussen gebruikers en organisaties', 'Class:URP_UserOrg/Name' => 'Link tussen %1$s en %2$s', @@ -247,13 +247,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Mijn organisatie', 'Class:URP_UserOrg/Attribute:reason' => 'Reden', 'Class:URP_UserOrg/Attribute:reason+' => 'Leg uit waarom deze persoon de data van deze organisatie mag inzien', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => 'profile projections', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Dimensie', @@ -268,13 +268,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL-expressie (gebruikt $user) | constant | | +attribute code', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribuut', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Code van doelattribuut (optioneel)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_ClassProjection' => 'class_projection', 'Class:URP_ClassProjection+' => 'class projections', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Dimensie', @@ -287,13 +287,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL-expressie (gebruikt $this) | constant | | +attribute code', 'Class:URP_ClassProjection/Attribute:attribute' => 'Attribuut', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Code van doelattribuut (optioneel)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_ActionGrant' => 'action_permission', 'Class:URP_ActionGrant+' => 'Toestemming aan klasses', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profiel', @@ -310,13 +310,13 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'Nee', 'Class:URP_ActionGrant/Attribute:action' => 'Actie', 'Class:URP_ActionGrant/Attribute:action+' => 'Actie om uit te voeren op een bepaalde klasse', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_StimulusGrant' => 'stimulus_permission', 'Class:URP_StimulusGrant+' => 'Toegestane stimulus in de levenscyclus van het object', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profiel', @@ -333,25 +333,25 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'Nee', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Stimulus', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'Code van stimulus', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:URP_AttributeGrant' => 'attribute_permission', 'Class:URP_AttributeGrant+' => 'Toestemming op het niveau van de attributen', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Actie verleen', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'Actie verleen', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Attribuut', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'Code van attribuut', -)); +]); // // Class: UserDashboard // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Class:UserDashboard' => 'Gebruikerdashboard', 'Class:UserDashboard+' => '', 'Class:UserDashboard/Attribute:user_id' => 'Gebruiker', @@ -360,12 +360,12 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Class:UserDashboard/Attribute:menu_code+' => '', 'Class:UserDashboard/Attribute:contents' => 'Inhoud', 'Class:UserDashboard/Attribute:contents+' => '', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:WelcomeMenu' => 'Welkom', 'Menu:WelcomeMenu+' => 'Welkom in '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Welkom', 'Menu:WelcomeMenuPage+' => 'Welkom in '.ITOP_APPLICATION_SHORT, 'Menu:AdminTools' => 'Admintools', @@ -382,14 +382,14 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Menu:MyShortcuts' => 'Mijn snelkoppelingen', 'Menu:Notifications:Title' => 'Auditcategorieën', 'Menu:DataAdministration' => 'Databeheer', - 'Menu:DataAdministration+' => 'Databeheer' -)); + 'Menu:DataAdministration+' => 'Databeheer', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'BooleanLabel:yes' => 'Ja', 'BooleanLabel:no' => 'Nee', 'UI:Login:Title' => 'Aanmelden in '.ITOP_APPLICATION_SHORT, 'UI:WelcomeMenu:Title' => 'Welkom in '.ITOP_APPLICATION_SHORT, 'UI:WelcomeMenu:AllOpenRequests' => 'Open aanvragen: %1$d', @@ -1535,13 +1535,13 @@ Bij die koppeling wordt aan elke actie een volgorde-nummer gegeven. Dit bepaalt 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Sub-objecten van geselecteerde objecten zullen mee opgenomen worden.', 'UI:Search:Criteria:Raw:Filtered' => 'Gefilterd', 'UI:Search:Criteria:Raw:FilteredOn' => 'Gefiltered op %1$s', - 'UI:StateChanged' => 'Status veranderd' -)); + 'UI:StateChanged' => 'Status veranderd', +]); // // Expression to Natural language // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Expression:Operator:AND' => ' EN ', 'Expression:Operator:OR' => ' OF ', 'Expression:Operator:=' => ': ', @@ -1554,12 +1554,12 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Expression:Unit:Long:MINUTE' => 'minute(n)', 'Expression:Verb:NOW' => 'nu', 'Expression:Verb:ISNULL' => ': ongedefinieerd (NULL)', -)); +]); // // iTop Newsroom menu // -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'UI:Newsroom:NoNewMessage' => 'Geen nieuw bericht', 'UI:Newsroom:XNewMessage' => '%1$s nieuw(e) bericht(en)', 'UI:Newsroom:MarkAllAsRead' => 'Markeer alle berichten als gelezen', @@ -1574,10 +1574,9 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent~~', 'UI:Newsroom:Priority:3:Tooltip' => 'Important~~', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal~~', -)); +]); - -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'Menu:DataSources' => 'Synchronisatie-databronnen', 'Menu:DataSources+' => 'Alle Synchronisatie-databronnen', 'Menu:AuditCategories' => 'Auditcategorieën', @@ -1605,4 +1604,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'Menu:Integrations' => 'Integraties', 'Menu:Integrations+' => '', -)); +]); diff --git a/dictionaries/pl.dictionary.itop.ui.php b/dictionaries/pl.dictionary.itop.ui.php index fd661296a..4d484f87d 100644 --- a/dictionaries/pl.dictionary.itop.ui.php +++ b/dictionaries/pl.dictionary.itop.ui.php @@ -1,15 +1,16 @@ 'Kategoria audytu', 'Class:AuditCategory+' => 'Sekcja w ramach ogólnego audytu', 'Class:AuditCategory/Attribute:name' => 'Nazwa kategorii', @@ -26,13 +27,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Procent nieprawidłowych obiektów, poniżej którego wynik jest błędny (czerwony)', 'Class:AuditCategory/Attribute:domains_list' => 'Domeny', 'Class:AuditCategory/Attribute:domains_list+' => 'Domeny, które obejmują tę kategorię', -)); +]); // // Class: AuditRule // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:AuditRule' => 'Reguła audytu', 'Class:AuditRule+' => 'Reguła sprawdzania dla danej kategorii audytu', 'Class:AuditRule/Attribute:name' => 'Nazwa reguły', @@ -51,13 +52,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:AuditRule/Attribute:category_id+' => 'Kategoria dla reguły', 'Class:AuditRule/Attribute:category_name' => 'Kategoria', 'Class:AuditRule/Attribute:category_name+' => 'Nazwa kategorii dla reguły', -)); +]); // // Class: AuditDomain // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:AuditDomain' => 'Domena audytu', 'Class:AuditDomain+' => 'Domeny audytu umożliwiają grupowanie kategorii audytu. Domena zazwyczaj odpowiada temu, kto jest odpowiedzialny za sprawdzanie i naprawianie błędów', @@ -69,13 +70,13 @@ Domena zazwyczaj odpowiada temu, kto jest odpowiedzialny za sprawdzanie i napraw 'Class:AuditDomain/Attribute:icon+' => '', 'Class:AuditDomain/Attribute:categories_list' => 'Kategorie', 'Class:AuditDomain/Attribute:categories_list+' => 'Powiązane kategorie audytu. Podczas przeprowadzania audytu domeny sprawdzane są wszystkie powiązane kategorie audytu i tylko te.', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain', 'Class:lnkAuditCategoryToAuditDomain+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Kategoria', @@ -86,13 +87,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Domena audytu', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Nazwa domeny', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'nazwa domeny audytu', -)); +]); // // Class: QueryOQL // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:Query' => 'Zapytanie', 'Class:Query+' => 'Zapytanie to zbiór danych zdefiniowany w sposób dynamiczny', 'Class:Query/Attribute:name' => 'Nazwa', @@ -119,7 +120,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:QueryOQL+' => 'Zapytanie oparte na języku zapytań obiektowych (OQL)', 'Class:QueryOQL/Attribute:oql' => 'Wyrażenie', 'Class:QueryOQL/Attribute:oql+' => 'Wyrażenie OQL', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -130,7 +131,7 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( // Class: User // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:User' => 'Użytkownik', 'Class:User+' => 'Login użytkownika', 'Class:User/Attribute:finalclass' => 'Typ konta', @@ -176,13 +177,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:User/Warning:NoContactHasImpact' => 'Uwaga: dla tego Użytkownika nie zdefiniowano żadnej Osoby, uniemożliwia to dostęp do portali, powiadomień o nowościach i innych skutków ubocznych w zapleczu', 'Class:UserInternal' => 'Użytkownik wewnętrzny', 'Class:UserInternal+' => 'Użytkownik zdefiniowany w ramach '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_Profiles' => 'Profil', 'Class:URP_Profiles+' => 'Profil użytkownika', 'Class:URP_Profiles/Attribute:name' => 'Nazwa', @@ -191,13 +192,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:URP_Profiles/Attribute:description+' => 'jeden wiersz opisu', 'Class:URP_Profiles/Attribute:user_list' => 'Użytkownicy', 'Class:URP_Profiles/Attribute:user_list+' => 'osoby pełniące tę rolę', -)); +]); // // Class: URP_Dimensions // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_Dimensions' => 'wymiar', 'Class:URP_Dimensions+' => 'wymiar aplikacji (definiowanie silosów)', 'Class:URP_Dimensions/Attribute:name' => 'Nazwa', @@ -206,13 +207,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:URP_Dimensions/Attribute:description+' => 'jeden wiersz opisu', 'Class:URP_Dimensions/Attribute:type' => 'Typ', 'Class:URP_Dimensions/Attribute:type+' => 'nazwa klasy lub typ danych (jednostka projekcji)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_UserProfile' => 'Profil użytkownika', 'Class:URP_UserProfile+' => 'profile użytkowników', 'Class:URP_UserProfile/Name' => 'Link między %1$s i %2$s', @@ -226,14 +227,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Nazwa profilu', 'Class:URP_UserProfile/Attribute:reason' => 'Powód', 'Class:URP_UserProfile/Attribute:reason+' => 'wyjaśnij, dlaczego ta osoba może pełnić tę rolę', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_UserOrg' => 'Organizacje użytkowników', 'Class:URP_UserOrg+' => 'Dozwolone organizacje', 'Class:URP_UserOrg/Name' => 'Link między %1$s i %2$s', @@ -247,13 +247,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Dozwolona organizacja', 'Class:URP_UserOrg/Attribute:reason' => 'Powód', 'Class:URP_UserOrg/Attribute:reason+' => 'wyjaśnij, dlaczego ta osoba może zobaczyć dane należące do tej organizacji', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => 'projekcje profili', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Wymiar', @@ -268,13 +268,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'Wyrażenie OQL (używając $user) | stała | | + kod atrybutu', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Atrybut', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Kod atrybutu docelowego (opcjonalnie)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_ClassProjection' => 'class_projection', 'Class:URP_ClassProjection+' => 'projekcje klas', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Wymiar', @@ -287,13 +287,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:URP_ClassProjection/Attribute:value+' => 'Wyrażenie OQL (używając $this) | stała | | + kod atrybutu', 'Class:URP_ClassProjection/Attribute:attribute' => 'Atrybut', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Kod atrybutu docelowego (opcjonalnie)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_ActionGrant' => 'action_permission', 'Class:URP_ActionGrant+' => 'uprawnienia do klas', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profil', @@ -310,13 +310,13 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'nie', 'Class:URP_ActionGrant/Attribute:action' => 'Działanie', 'Class:URP_ActionGrant/Attribute:action+' => 'operacje do wykonania na danej klasie', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_StimulusGrant' => 'stimulus_permission', 'Class:URP_StimulusGrant+' => 'uprawnienia do bodźca w cyklu życia obiektu', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profil', @@ -333,25 +333,25 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'nie', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Bodziec', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'kod bodźca', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:URP_AttributeGrant' => 'attribute_permission', 'Class:URP_AttributeGrant+' => 'uprawnienia na poziomie atrybutów', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Nadane działanie', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'nadane działanie', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Atrybut', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'kod atrybutu', -)); +]); // // Class: UserDashboard // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Class:UserDashboard' => 'Panel użytkownika', 'Class:UserDashboard+' => '', 'Class:UserDashboard/Attribute:user_id' => 'Użytkownik', @@ -360,12 +360,12 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Class:UserDashboard/Attribute:menu_code+' => '', 'Class:UserDashboard/Attribute:contents' => 'Zawartość', 'Class:UserDashboard/Attribute:contents+' => '', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Menu:WelcomeMenu' => 'Witaj', 'Menu:WelcomeMenu+' => 'Witaj w '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Witaj', 'Menu:WelcomeMenuPage+' => 'Witaj w '.ITOP_APPLICATION_SHORT, 'Menu:AdminTools' => 'Administracja', @@ -383,14 +383,14 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Menu:MyShortcuts' => 'Moje skróty', 'Menu:Notifications:Title' => 'Kategorie audytu', 'Menu:DataAdministration' => 'Administracja danymi', - 'Menu:DataAdministration+' => 'Administracja danymi' -)); + 'Menu:DataAdministration+' => 'Administracja danymi', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'BooleanLabel:yes' => 'tak', 'BooleanLabel:no' => 'nie', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login', @@ -1545,13 +1545,13 @@ W przypadku powiązania z wyzwalaczem, każde działanie otrzymuje numer "porzą 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Uwzględnione zostaną zależności wybranych obiektów.', 'UI:Search:Criteria:Raw:Filtered' => 'Wyfiltrowane', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtr według %1$s', - 'UI:StateChanged' => 'Stan zmieniony' -)); + 'UI:StateChanged' => 'Stan zmieniony', +]); // // Expression to Natural language // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Expression:Operator:AND' => ' AND ', 'Expression:Operator:OR' => ' OR ', 'Expression:Operator:=' => ': ', @@ -1564,12 +1564,12 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Expression:Unit:Long:MINUTE' => 'minuta(y)', 'Expression:Verb:NOW' => 'teraz', 'Expression:Verb:ISNULL' => ': nieokreślony', -)); +]); // // iTop Newsroom menu // -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'UI:Newsroom:NoNewMessage' => 'Brak nowej wiadomości', 'UI:Newsroom:XNewMessage' => '%1$s nowa(e) wiadomość(ci)', 'UI:Newsroom:MarkAllAsRead' => 'Oznacz wszystkie wiadomości jako przeczytane', @@ -1584,10 +1584,9 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Pilny', 'UI:Newsroom:Priority:3:Tooltip' => 'Ważny', 'UI:Newsroom:Priority:4:Tooltip' => 'Normalny', -)); +]); - -Dict::Add('PL PL', 'Polish', 'Polski', array( +Dict::Add('PL PL', 'Polish', 'Polski', [ 'Menu:DataSources' => 'Źródła danych synchronizacji', 'Menu:DataSources+' => 'Wszystkie źródła danych synchronizacji', 'Menu:AuditCategories' => 'Kategorie audytu', @@ -1615,4 +1614,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'Menu:Integrations' => 'Integracje', 'Menu:Integrations+' => '', -)); +]); diff --git a/dictionaries/ru.dictionary.itop.ui.php b/dictionaries/ru.dictionary.itop.ui.php index 117c72e20..4a2be25d5 100644 --- a/dictionaries/ru.dictionary.itop.ui.php +++ b/dictionaries/ru.dictionary.itop.ui.php @@ -1,16 +1,17 @@ * */ -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:AuditCategory' => 'Категория аудита', 'Class:AuditCategory+' => 'Раздел внутри общего аудита', 'Class:AuditCategory/Attribute:name' => 'Название категории', @@ -27,13 +28,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)~~', 'Class:AuditCategory/Attribute:domains_list' => 'Domains~~', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category~~', -)); +]); // // Class: AuditRule // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:AuditRule' => 'Правило аудита', 'Class:AuditRule+' => 'Правило для проверки данной категории аудита', 'Class:AuditRule/Attribute:name' => 'Название правила', @@ -52,13 +53,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:AuditRule/Attribute:category_id+' => 'Категория для этого правила', 'Class:AuditRule/Attribute:category_name' => 'Категория', 'Class:AuditRule/Attribute:category_name+' => 'Категория для этого правила', -)); +]); // // Class: AuditDomain // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:AuditDomain' => 'Audit Domain~~', 'Class:AuditDomain+' => 'Audit domains allow to group the audit categories. Domain usually correspond to who is responsible for checking and fixing errors~~', @@ -70,13 +71,13 @@ Domain usually correspond to who is responsible for checking and fixing errors~~ 'Class:AuditDomain/Attribute:icon+' => '~~', 'Class:AuditDomain/Attribute:categories_list' => 'Categories~~', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.~~', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain~~', 'Class:lnkAuditCategoryToAuditDomain+' => '~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category~~', @@ -87,13 +88,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name~~', -)); +]); // // Class: QueryOQL // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:Query' => 'Запрос', 'Class:Query+' => 'Запрос - это набор данных, определенных динамическим путем', 'Class:Query/Attribute:name' => 'Название', @@ -120,7 +121,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:QueryOQL+' => 'Запрос, основанный на OQL (Object Query Language)', 'Class:QueryOQL/Attribute:oql' => 'Выражение', 'Class:QueryOQL/Attribute:oql+' => 'OQL Выражение', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -131,7 +132,7 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( // Class: User // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:User' => 'Пользователь', 'Class:User+' => 'Пользователь', 'Class:User/Attribute:finalclass' => 'Тип аккаунта', @@ -177,13 +178,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~', 'Class:UserInternal' => 'Внутренний пользователь', 'Class:UserInternal+' => 'Учетная запись создана внутри '.ITOP_APPLICATION_SHORT, -)); +]); // // Class: URP_Profiles // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_Profiles' => 'Профиль', 'Class:URP_Profiles+' => 'Пользовательский профиль', 'Class:URP_Profiles/Attribute:name' => 'Название', @@ -192,13 +193,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:URP_Profiles/Attribute:description+' => 'Описание', 'Class:URP_Profiles/Attribute:user_list' => 'Пользователи', 'Class:URP_Profiles/Attribute:user_list+' => 'Пользователи, имеющие эту роль', -)); +]); // // Class: URP_Dimensions // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_Dimensions' => 'размерность', 'Class:URP_Dimensions+' => 'применение размерности (определение силосов)', 'Class:URP_Dimensions/Attribute:name' => 'Название', @@ -207,13 +208,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:URP_Dimensions/Attribute:description+' => 'краткое описание', 'Class:URP_Dimensions/Attribute:type' => 'Тип', 'Class:URP_Dimensions/Attribute:type+' => 'имя класса или типа данных (проекционный блок)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_UserProfile' => 'Профиль пользователя', 'Class:URP_UserProfile+' => 'Профиль пользователя', 'Class:URP_UserProfile/Name' => 'Связь между %1$s и %2$s', @@ -227,14 +228,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Название профиля', 'Class:URP_UserProfile/Attribute:reason' => 'Причина', 'Class:URP_UserProfile/Attribute:reason+' => 'Пояснение причины назначения этой роли', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_UserOrg' => 'Организации пользователя', 'Class:URP_UserOrg+' => 'Разрешённые организации', 'Class:URP_UserOrg/Name' => 'Связь между %1$s и %2$s', @@ -248,13 +248,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Разрешённая организация', 'Class:URP_UserOrg/Attribute:reason' => 'Причина', 'Class:URP_UserOrg/Attribute:reason+' => 'Пояснение причины разрешения доступа к данным этой организации', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_ProfileProjection' => 'Проекция профиля', 'Class:URP_ProfileProjection+' => 'Проекция профиля', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Размерность', @@ -269,13 +269,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL выражение (используя $user) | константа | | +атрибут кода', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Атрибут', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Целевой атрибут кода (необязательный)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_ClassProjection' => 'Проекция классов', 'Class:URP_ClassProjection+' => 'Проекция классов', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Размерность', @@ -288,13 +288,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL выражение (используя $this) | константа | | +атрибут кода', 'Class:URP_ClassProjection/Attribute:attribute' => 'Атрибут', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Целевой атрибут кода (необязательный)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_ActionGrant' => 'действие разрешений', 'Class:URP_ActionGrant+' => 'разрешения на классы', 'Class:URP_ActionGrant/Attribute:profileid' => 'Профиль', @@ -311,13 +311,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'нет', 'Class:URP_ActionGrant/Attribute:action' => 'Действие', 'Class:URP_ActionGrant/Attribute:action+' => 'действие выполняемое на данном классе', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_StimulusGrant' => 'разрешения стимулов', 'Class:URP_StimulusGrant+' => 'разрешения на стимулы в жизненном цикле объекта', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Профиль', @@ -334,25 +334,25 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'нет', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Стимулы', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'код стимулов', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:URP_AttributeGrant' => 'разрешения атрибутов', 'Class:URP_AttributeGrant+' => 'разрешения на уровне атрибутов', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Действие предоставления', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'действие предоставления', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Атрибут', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'Код атрибута', -)); +]); // // Class: UserDashboard // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Class:UserDashboard' => 'Дашборд пользователя', 'Class:UserDashboard+' => '~~', 'Class:UserDashboard/Attribute:user_id' => 'Пользователь', @@ -361,12 +361,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Class:UserDashboard/Attribute:menu_code+' => '', 'Class:UserDashboard/Attribute:contents' => 'Содержимое', 'Class:UserDashboard/Attribute:contents+' => '', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:WelcomeMenu' => 'Добро пожаловать', 'Menu:WelcomeMenu+' => 'Добро пожаловать в '.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => 'Добро пожаловать', 'Menu:WelcomeMenuPage+' => 'Добро пожаловать в '.ITOP_APPLICATION_SHORT, 'Menu:AdminTools' => 'Инструменты администратора', @@ -383,14 +383,14 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Menu:MyShortcuts' => 'Избранное', 'Menu:Notifications:Title' => 'Категории аудита', 'Menu:DataAdministration' => 'Администрирование данных', - 'Menu:DataAdministration+' => 'Администрирование данных' -)); + 'Menu:DataAdministration+' => 'Администрирование данных', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'BooleanLabel:yes' => 'да', 'BooleanLabel:no' => 'нет', 'UI:Login:Title' => 'Вход в '.ITOP_APPLICATION_SHORT, 'UI:WelcomeMenu:Title' => 'Добро пожаловать в '.ITOP_APPLICATION_SHORT, 'UI:WelcomeMenu:AllOpenRequests' => 'Открытые запросы: %1$d', @@ -1534,13 +1534,13 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Включаются все нижестоящие объекты.', 'UI:Search:Criteria:Raw:Filtered' => 'Отфильтровано', 'UI:Search:Criteria:Raw:FilteredOn' => 'Отфильтровано по %1$s', - 'UI:StateChanged' => 'State changed~~' -)); + 'UI:StateChanged' => 'State changed~~', +]); // // Expression to Natural language // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Expression:Operator:AND' => ' AND ', 'Expression:Operator:OR' => ' OR ', 'Expression:Operator:=' => ': ~~', @@ -1553,12 +1553,12 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Expression:Unit:Long:MINUTE' => 'minute(s)', 'Expression:Verb:NOW' => 'now', 'Expression:Verb:ISNULL' => ': undefined~~', -)); +]); // // iTop Newsroom menu // -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'UI:Newsroom:NoNewMessage' => 'Нет новых сообщений', 'UI:Newsroom:XNewMessage' => 'Новые сообщения (%1$s)', 'UI:Newsroom:MarkAllAsRead' => 'Отметить все как прочитанные', @@ -1573,10 +1573,9 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent~~', 'UI:Newsroom:Priority:3:Tooltip' => 'Important~~', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal~~', -)); +]); - -Dict::Add('RU RU', 'Russian', 'Русский', array( +Dict::Add('RU RU', 'Russian', 'Русский', [ 'Menu:DataSources' => 'Синхронизация данных', 'Menu:DataSources+' => 'Синхронизация данных', 'Menu:AuditCategories' => 'Категории аудита', @@ -1604,4 +1603,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'Menu:Integrations' => 'Integrations~~', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/sk.dictionary.itop.ui.php b/dictionaries/sk.dictionary.itop.ui.php index d4b6105fc..9df9ac142 100644 --- a/dictionaries/sk.dictionary.itop.ui.php +++ b/dictionaries/sk.dictionary.itop.ui.php @@ -1,15 +1,16 @@ 'Kategória auditu', 'Class:AuditCategory+' => 'Audit category defines a scope of objects which needs to be audited. It groups all audit rules applying to that object scope~~', @@ -27,13 +28,13 @@ It groups all audit rules applying to that object scope~~', 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)~~', 'Class:AuditCategory/Attribute:domains_list' => 'Domains~~', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category~~', -)); +]); // // Class: AuditRule // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:AuditRule' => 'Pravidlo auditu', 'Class:AuditRule+' => 'An audit rule corresponds a single check within an audit category. It is applied on the scope of objects defined by the audit category~~', @@ -55,13 +56,13 @@ It is applied on the scope of objects defined by the audit category~~', 'Class:AuditRule/Attribute:category_id+' => 'The category of this rule~~', 'Class:AuditRule/Attribute:category_name' => 'Kategória', 'Class:AuditRule/Attribute:category_name+' => 'Name of the category of this rule~~', -)); +]); // // Class: AuditDomain // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:AuditDomain' => 'Audit Domain~~', 'Class:AuditDomain+' => 'Audit domains allow to group the audit categories. Domain usually correspond to who is responsible for checking and fixing errors~~', @@ -73,13 +74,13 @@ Domain usually correspond to who is responsible for checking and fixing errors~~ 'Class:AuditDomain/Attribute:icon+' => '~~', 'Class:AuditDomain/Attribute:categories_list' => 'Categories~~', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.~~', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain~~', 'Class:lnkAuditCategoryToAuditDomain+' => '~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category~~', @@ -90,13 +91,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name~~', -)); +]); // // Class: QueryOQL // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:Query' => 'Dopyt', 'Class:Query+' => 'A query is a data set defined in a dynamic way~~', 'Class:Query/Attribute:name' => 'Názov', @@ -123,7 +124,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:QueryOQL+' => 'A query based on the Object Query Language~~', 'Class:QueryOQL/Attribute:oql' => 'Výraz', 'Class:QueryOQL/Attribute:oql+' => 'OQL Expression~~', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -134,7 +135,7 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( // Class: User // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:User' => 'Užívateľ', 'Class:User+' => 'User login~~', 'Class:User/Attribute:finalclass' => 'Typ účtu', @@ -180,13 +181,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~', 'Class:UserInternal' => 'User Internal~~', 'Class:UserInternal+' => 'User defined within '.ITOP_APPLICATION_SHORT.'~~', -)); +]); // // Class: URP_Profiles // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_Profiles' => 'Profily', 'Class:URP_Profiles+' => 'User profile~~', 'Class:URP_Profiles/Attribute:name' => 'Názov', @@ -195,13 +196,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:URP_Profiles/Attribute:description+' => 'one line description~~', 'Class:URP_Profiles/Attribute:user_list' => 'Užívatelia', 'Class:URP_Profiles/Attribute:user_list+' => 'persons having this role~~', -)); +]); // // Class: URP_Dimensions // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_Dimensions' => 'Rozmery', 'Class:URP_Dimensions+' => 'application dimension (defining silos)~~', 'Class:URP_Dimensions/Attribute:name' => 'Názov rozmeru', @@ -210,13 +211,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:URP_Dimensions/Attribute:description+' => 'one line description~~', 'Class:URP_Dimensions/Attribute:type' => 'Typ rozmeru', 'Class:URP_Dimensions/Attribute:type+' => 'class name or data type (projection unit)~~', -)); +]); // // Class: URP_UserProfile // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_UserProfile' => 'Z užívateľa na profil', 'Class:URP_UserProfile+' => 'user profiles~~', 'Class:URP_UserProfile/Name' => 'Spojenie medzi %1$s a %2$s', @@ -230,14 +231,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Profile name~~', 'Class:URP_UserProfile/Attribute:reason' => 'Dôvod', 'Class:URP_UserProfile/Attribute:reason+' => 'explain why this person may have this role~~', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_UserOrg' => 'Užívateľské organizácie', 'Class:URP_UserOrg+' => 'Allowed organizations~~', 'Class:URP_UserOrg/Name' => 'Spojenie medzi %1$s a %2$s', @@ -251,13 +251,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Allowed organization~~', 'Class:URP_UserOrg/Attribute:reason' => 'Dôvod', 'Class:URP_UserOrg/Attribute:reason+' => 'explain why this person is allowed to see the data belonging to this organization~~', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_ProfileProjection' => 'Projekcia profilu', 'Class:URP_ProfileProjection+' => 'profile projections~~', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'ID rozmeru', @@ -272,13 +272,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL expression (using $user) | constant | | +attribute code~~', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Atribút', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Target attribute code (optional)~~', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_ClassProjection' => 'Projekcia triedy', 'Class:URP_ClassProjection+' => 'class projections~~', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'ID rozmeru', @@ -291,13 +291,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL expression (using $this) | constant | | +attribute code~~', 'Class:URP_ClassProjection/Attribute:attribute' => 'Atribút', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Target attribute code (optional)~~', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_ActionGrant' => 'Povolenia akcie', 'Class:URP_ActionGrant+' => 'permissions on classes~~', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profil', @@ -314,13 +314,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'no~~', 'Class:URP_ActionGrant/Attribute:action' => 'Akcia', 'Class:URP_ActionGrant/Attribute:action+' => 'operations to perform on the given class~~', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_StimulusGrant' => 'Povolenia stimulu', 'Class:URP_StimulusGrant+' => 'permissions on stimulus in the life cycle of the object~~', 'Class:URP_StimulusGrant/Attribute:profileid' => 'ID Profilu', @@ -337,25 +337,25 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'no~~', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Podnet', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'stimulus code~~', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:URP_AttributeGrant' => 'Udelenie atribútu', 'Class:URP_AttributeGrant+' => 'permissions at the attributes level~~', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'Udelenie akcie', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'action grant~~', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Kód atribútu', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'attribute code~~', -)); +]); // // Class: UserDashboard // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Class:UserDashboard' => 'User dashboard~~', 'Class:UserDashboard+' => '~~', 'Class:UserDashboard/Attribute:user_id' => 'User~~', @@ -364,12 +364,12 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Class:UserDashboard/Attribute:menu_code+' => '~~', 'Class:UserDashboard/Attribute:contents' => 'Contents~~', 'Class:UserDashboard/Attribute:contents+' => '~~', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Menu:WelcomeMenu' => 'Vitajte', 'Menu:WelcomeMenu+' => 'Welcome to '.ITOP_APPLICATION_SHORT.'~~', 'Menu:WelcomeMenuPage' => 'Vitajte', @@ -388,13 +388,13 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Menu:MyShortcuts' => 'Moje skratky', 'Menu:DataAdministration' => 'Dátová administrácia', 'Menu:DataAdministration+' => '~~', -)); +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'BooleanLabel:yes' => 'yes~~', 'BooleanLabel:no' => 'no~~', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login~~', @@ -1533,12 +1533,12 @@ Keď sú priradené spúštačom, každej akcii je dané číslo "príkazu", šp 'UI:Search:Criteria:Raw:Filtered' => 'Filtered~~', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtered on %1$s~~', 'UI:StateChanged' => 'State changed~~', -)); +]); // // Expression to Natural language // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Expression:Operator:AND' => ' AND ~~', 'Expression:Operator:OR' => ' OR ~~', 'Expression:Operator:=' => ': ~~', @@ -1551,12 +1551,12 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Expression:Unit:Long:MINUTE' => 'minute(s)~~', 'Expression:Verb:NOW' => 'now~~', 'Expression:Verb:ISNULL' => ': undefined~~', -)); +]); // // iTop Newsroom menu // -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'UI:Newsroom:NoNewMessage' => 'No new message~~', 'UI:Newsroom:XNewMessage' => '%1$s new message(s)~~', 'UI:Newsroom:MarkAllAsRead' => 'Mark all messages as read~~', @@ -1571,10 +1571,9 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent~~', 'UI:Newsroom:Priority:3:Tooltip' => 'Important~~', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal~~', -)); +]); - -Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( +Dict::Add('SK SK', 'Slovak', 'Slovenčina', [ 'Menu:DataSources' => 'Synchronizované zdroje dát', 'Menu:DataSources+' => 'Data synchro used for batch import of external data~~', 'Menu:AuditCategories' => 'Kategórie auditu', @@ -1602,4 +1601,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'Menu:Integrations' => 'Integrations~~', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/tr.dictionary.itop.ui.php b/dictionaries/tr.dictionary.itop.ui.php index 7bf9be4b8..51cdd89f9 100644 --- a/dictionaries/tr.dictionary.itop.ui.php +++ b/dictionaries/tr.dictionary.itop.ui.php @@ -1,15 +1,16 @@ 'Denetleme Kategorisi', 'Class:AuditCategory+' => 'Denetlemedeki kategori', 'Class:AuditCategory/Attribute:name' => 'Kategori Adı', @@ -26,13 +27,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => 'Percentage of invalid objects below which the result is in error (red)~~', 'Class:AuditCategory/Attribute:domains_list' => 'Domains~~', 'Class:AuditCategory/Attribute:domains_list+' => 'Domains which include this category~~', -)); +]); // // Class: AuditRule // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:AuditRule' => 'Denetleme Kuralı', 'Class:AuditRule+' => 'Denetleme Kategorisi kuralı', 'Class:AuditRule/Attribute:name' => 'Kural Adı', @@ -51,13 +52,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:AuditRule/Attribute:category_id+' => 'Kuralın kategorisi', 'Class:AuditRule/Attribute:category_name' => 'Kategori', 'Class:AuditRule/Attribute:category_name+' => 'Kural için kategori adı', -)); +]); // // Class: AuditDomain // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:AuditDomain' => 'Audit Domain~~', 'Class:AuditDomain+' => 'Audit domains allow to group the audit categories. Domain usually correspond to who is responsible for checking and fixing errors~~', @@ -69,13 +70,13 @@ Domain usually correspond to who is responsible for checking and fixing errors~~ 'Class:AuditDomain/Attribute:icon+' => '~~', 'Class:AuditDomain/Attribute:categories_list' => 'Categories~~', 'Class:AuditDomain/Attribute:categories_list+' => 'Related audit categories. When running the audit on a domain, all related audit categories are checked and only those.~~', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:lnkAuditCategoryToAuditDomain' => 'Link AuditCategory / AuditDomain~~', 'Class:lnkAuditCategoryToAuditDomain+' => '~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => 'Category~~', @@ -86,13 +87,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => 'Audit domain~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => 'Domain name~~', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => 'Audit domain name~~', -)); +]); // // Class: QueryOQL // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:Query' => 'Sorgu', 'Class:Query+' => 'Bir sorgu, dinamik bir şekilde tanımlanan bir veri setidir', 'Class:Query/Attribute:name' => 'İsim', @@ -119,7 +120,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:QueryOQL+' => 'Nesne sorgusu diline dayanan bir sorgu', 'Class:QueryOQL/Attribute:oql' => 'İfade', 'Class:QueryOQL/Attribute:oql+' => 'OQL ifadesi', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -130,7 +131,7 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( // Class: User // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:User' => 'Kullanıcı', 'Class:User+' => 'Kullanıcı', 'Class:User/Attribute:finalclass' => 'Hesap tipi', @@ -176,13 +177,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~', 'Class:UserInternal' => 'Dahili kullanıcı', 'Class:UserInternal+' => ITOP_APPLICATION_SHORT.'\'ta tanımlanan kullanıcı', -)); +]); // // Class: URP_Profiles // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_Profiles' => 'Profil', 'Class:URP_Profiles+' => 'Kullanıcı profili', 'Class:URP_Profiles/Attribute:name' => 'Adı', @@ -191,13 +192,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:URP_Profiles/Attribute:description+' => 'Profil tanımlama', 'Class:URP_Profiles/Attribute:user_list' => 'Kullanıcılar', 'Class:URP_Profiles/Attribute:user_list+' => 'bu rolü kullanan kullanıcılar', -)); +]); // // Class: URP_Dimensions // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_Dimensions' => 'boyut', 'Class:URP_Dimensions+' => 'uygulama boyutları (silo kullanımları)', 'Class:URP_Dimensions/Attribute:name' => 'Adı', @@ -206,13 +207,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:URP_Dimensions/Attribute:description+' => 'Tanımlama', 'Class:URP_Dimensions/Attribute:type' => 'Tip', 'Class:URP_Dimensions/Attribute:type+' => 'sınıf adı veya veri tipi (projection unit)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_UserProfile' => 'Kullanıcı Profili', 'Class:URP_UserProfile+' => 'Kullanıcı Profili', 'Class:URP_UserProfile/Name' => '%1$s ve %2$s arasındaki ilişki', @@ -226,14 +227,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:URP_UserProfile/Attribute:profile+' => 'Profil adı', 'Class:URP_UserProfile/Attribute:reason' => 'Sebep', 'Class:URP_UserProfile/Attribute:reason+' => 'Kullanıcının bu rolü alma sebebini açıklayınız', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_UserOrg' => 'Kullanıcı Kurumu', 'Class:URP_UserOrg+' => 'İzin verilen kurumlar', 'Class:URP_UserOrg/Name' => '%1$s ve %2$s arasındaki ilişki', @@ -247,13 +247,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Erişim yetkisi verilen kurumlar', 'Class:URP_UserOrg/Attribute:reason' => 'Sebep', 'Class:URP_UserOrg/Attribute:reason+' => 'Kullanıcının bu rolü alma sebebini açıklayınız', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_ProfileProjection' => 'profile_projection', 'Class:URP_ProfileProjection+' => 'profile projections', 'Class:URP_ProfileProjection/Attribute:dimensionid' => 'Boyut', @@ -268,13 +268,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL ifadesi (kullanıcı $user) | sabit | | +özellik kodu', 'Class:URP_ProfileProjection/Attribute:attribute' => 'Attribute', 'Class:URP_ProfileProjection/Attribute:attribute+' => 'Hedef özellik kodu (opsiyonel)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_ClassProjection' => 'sınıf projeksiyonu', 'Class:URP_ClassProjection+' => 'sınıf projeksiyonu', 'Class:URP_ClassProjection/Attribute:dimensionid' => 'Boyut', @@ -287,13 +287,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL ifadesi (kullanıcı $user) | sabit | | +özellik kodu', 'Class:URP_ClassProjection/Attribute:attribute' => 'Özellik', 'Class:URP_ClassProjection/Attribute:attribute+' => 'Hedef özellik kodu (opsiyonel)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_ActionGrant' => 'işlem yetkileri', 'Class:URP_ActionGrant+' => 'sınıf üzerindeki yetkiler', 'Class:URP_ActionGrant/Attribute:profileid' => 'Profil', @@ -310,13 +310,13 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => 'hayır', 'Class:URP_ActionGrant/Attribute:action' => 'İşlem', 'Class:URP_ActionGrant/Attribute:action+' => 'verilen sınıf üzerinde uygulanacak işlemler', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_StimulusGrant' => 'uyarı yetkileri', 'Class:URP_StimulusGrant+' => 'nesnenin yaşam döngüsündeki uyarı yetkileri', 'Class:URP_StimulusGrant/Attribute:profileid' => 'Profil', @@ -333,25 +333,25 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'hayır', 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Uyarı', 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'uyarı kodu', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:URP_AttributeGrant' => 'özellik yetkisi', 'Class:URP_AttributeGrant+' => 'özellik seviyesinde yetki', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => 'İzin verilen işlem', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => 'İşlem izni', 'Class:URP_AttributeGrant/Attribute:attcode' => 'Özellik', 'Class:URP_AttributeGrant/Attribute:attcode+' => 'Özellik kodu', -)); +]); // // Class: UserDashboard // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Class:UserDashboard' => 'User dashboard~~', 'Class:UserDashboard+' => '~~', 'Class:UserDashboard/Attribute:user_id' => 'User~~', @@ -360,12 +360,12 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Class:UserDashboard/Attribute:menu_code+' => '~~', 'Class:UserDashboard/Attribute:contents' => 'Contents~~', 'Class:UserDashboard/Attribute:contents+' => '~~', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:WelcomeMenu' => 'Hoşgeldiniz', 'Menu:WelcomeMenu+' => ITOP_APPLICATION_SHORT.'\'a Hoşgeldiniz', 'Menu:WelcomeMenuPage' => 'Hoşgeldiniz', @@ -384,14 +384,14 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Menu:MyShortcuts' => 'My Shortcuts~~', 'Menu:Notifications:Title' => 'Denetleme Kategorileri', 'Menu:DataAdministration' => 'Veri Yönetimi', - 'Menu:DataAdministration+' => 'Veri Yönetimi' -)); + 'Menu:DataAdministration+' => 'Veri Yönetimi', +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'BooleanLabel:yes' => 'evet', 'BooleanLabel:no' => 'hayır', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.' login~~', @@ -1541,13 +1541,13 @@ Tetikleme gerçekleştiriğinde işlemler tanımlanan sıra numarası ile gerçe 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => 'Children of the selected objects will be included.~~', 'UI:Search:Criteria:Raw:Filtered' => 'Filtered~~', 'UI:Search:Criteria:Raw:FilteredOn' => 'Filtered on %1$s~~', - 'UI:StateChanged' => 'State changed~~' -)); + 'UI:StateChanged' => 'State changed~~', +]); // // Expression to Natural language // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Expression:Operator:AND' => ' AND ~~', 'Expression:Operator:OR' => ' OR ~~', 'Expression:Operator:=' => ': ~~', @@ -1560,12 +1560,12 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Expression:Unit:Long:MINUTE' => 'minute(s)~~', 'Expression:Verb:NOW' => 'now~~', 'Expression:Verb:ISNULL' => ': undefined~~', -)); +]); // // iTop Newsroom menu // -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'UI:Newsroom:NoNewMessage' => 'No new message~~', 'UI:Newsroom:XNewMessage' => '%1$s new message(s)~~', 'UI:Newsroom:MarkAllAsRead' => 'Mark all messages as read~~', @@ -1580,10 +1580,9 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Newsroom:Priority:2:Tooltip' => 'Urgent~~', 'UI:Newsroom:Priority:3:Tooltip' => 'Important~~', 'UI:Newsroom:Priority:4:Tooltip' => 'Normal~~', -)); +]); - -Dict::Add('TR TR', 'Turkish', 'Türkçe', array( +Dict::Add('TR TR', 'Turkish', 'Türkçe', [ 'Menu:DataSources' => 'Synchronization Data Sources~~', 'Menu:DataSources+' => 'Data synchro used for batch import of external data~~', 'Menu:AuditCategories' => 'Denetleme Kategorileri', @@ -1611,4 +1610,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'Menu:Integrations' => 'Integrations~~', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/dictionaries/ui/application/bulk/cs.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/cs.dictionary.itop.bulk.php index 142939b64..4ec8fba4b 100644 --- a/dictionaries/ui/application/bulk/cs.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/cs.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/da.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/da.dictionary.itop.bulk.php index 746f2dcef..19f984f7d 100644 --- a/dictionaries/ui/application/bulk/da.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/da.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/de.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/de.dictionary.itop.bulk.php index 455d3fcf0..2aa593d27 100644 --- a/dictionaries/ui/application/bulk/de.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/de.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'Dieses Attribut kann in einer Massenänderung nicht bearbeitet werden.', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel-Sicherheitswarnung', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Das Öffnen einer Datei mit nicht vertrauenswürdigen Daten in Microsoft Excel kann zu einer Formel-Injektion führen. Stellen Sie sicher, dass Ihre Excel-Einstellungen so konfiguriert sind, dass Dateien sicher verarbeitet werden. Erfahren Sie mehr in unserer Dokumentation.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/en.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/en.dictionary.itop.bulk.php index 43c2a8b1f..a2d8e73f4 100644 --- a/dictionaries/ui/application/bulk/en.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/en.dictionary.itop.bulk.php @@ -1,4 +1,5 @@ 'This attribute can\'t be edited in bulk context', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/en_gb.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/en_gb.dictionary.itop.bulk.php index e360f4274..442855c19 100644 --- a/dictionaries/ui/application/bulk/en_gb.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/en_gb.dictionary.itop.bulk.php @@ -1,13 +1,14 @@ 'This attribute can\'t be edited in bulk context', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/es_cr.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/es_cr.dictionary.itop.bulk.php index 87a419c19..732fca221 100644 --- a/dictionaries/ui/application/bulk/es_cr.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/es_cr.dictionary.itop.bulk.php @@ -1,14 +1,15 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Bulk:modify:IncompatibleAttribute' => 'Este atributo no se puede editar en contexto masivo', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Advertencia de seguridad de Excel', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Abrir un archivo con datos que no son de confianza en Microsoft Excel puede provocar la inyección de fórmulas. Asegúrese de que la configuración de Excel esté configurada para manejar archivos de forma segura. Obtenga más información en nuestra documentación.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/fr.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/fr.dictionary.itop.bulk.php index 53a410284..fe822187d 100644 --- a/dictionaries/ui/application/bulk/fr.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/fr.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'Cet attribut ne peut être édité dans une modification en masse', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Avertissement sur la sécurité d\'Excel', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'L\'ouverture d\'un fichier contenant des données non fiables dans Microsoft Excel peut entraîner l\'injection de formules. Assurez-vous que vos paramètres Excel sont configurés pour traiter les fichiers en toute sécurité. Pour en savoir plus, consultez notre documentation.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/hu.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/hu.dictionary.itop.bulk.php index 5e215ec0e..ca88b25d9 100644 --- a/dictionaries/ui/application/bulk/hu.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/hu.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/it.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/it.dictionary.itop.bulk.php index 089cc9a94..9a2aaf3a6 100644 --- a/dictionaries/ui/application/bulk/it.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/it.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'Questo attributo non può essere modificato nel contesto di modifica bulk', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Avviso di sicurezza di Excel', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'L\'apertura di un file con dati non fidati in Microsoft Excel potrebbe comportare l\'iniezione di formule. Assicurati che le impostazioni di Excel siano configurate per gestire i file in modo sicuro. Ulteriori informazioni nella nostra documentazione.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/ja.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/ja.dictionary.itop.bulk.php index 9ab26929e..2c6029cd0 100644 --- a/dictionaries/ui/application/bulk/ja.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/ja.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/nl.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/nl.dictionary.itop.bulk.php index 47c7cb37b..34caf4cf9 100644 --- a/dictionaries/ui/application/bulk/nl.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/nl.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/pl.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/pl.dictionary.itop.bulk.php index 4a08cfb2e..ae71e7ee1 100644 --- a/dictionaries/ui/application/bulk/pl.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/pl.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'Tego atrybutu nie można edytować zbiorczo', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Ostrzeżenie dotyczące bezpieczeństwa programu Excel', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Otwarcie pliku z niezaufanymi danymi w programie Microsoft Excel może spowodować wstrzyknięcie formuły. Upewnij się, że ustawienia programu Excel są skonfigurowane tak, aby bezpiecznie obsługiwać pliki. Dowiedz się więcej w naszej dokumentacji.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/pt_br.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/pt_br.dictionary.itop.bulk.php index b1db2af8a..b7347bd71 100644 --- a/dictionaries/ui/application/bulk/pt_br.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/pt_br.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/ru.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/ru.dictionary.itop.bulk.php index 6473ad184..11e539a25 100644 --- a/dictionaries/ui/application/bulk/ru.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/ru.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/sk.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/sk.dictionary.itop.bulk.php index 39374416d..e3f6792d9 100644 --- a/dictionaries/ui/application/bulk/sk.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/sk.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/tr.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/tr.dictionary.itop.bulk.php index c26ec8321..9c93546d0 100644 --- a/dictionaries/ui/application/bulk/tr.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/tr.dictionary.itop.bulk.php @@ -1,16 +1,17 @@ 'This attribute can\'t be edited in bulk context~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel security warning~~', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => 'Opening a file with untrusted data in Microsoft Excel may lead to formula injection. Ensure that your Excel settings are configured to handle files safely. Learn more in our documentation.~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/bulk/zh_cn.dictionary.itop.bulk.php b/dictionaries/ui/application/bulk/zh_cn.dictionary.itop.bulk.php index 476d1f694..08a354d54 100644 --- a/dictionaries/ui/application/bulk/zh_cn.dictionary.itop.bulk.php +++ b/dictionaries/ui/application/bulk/zh_cn.dictionary.itop.bulk.php @@ -1,4 +1,5 @@ '此属性无法在批量操作中编辑', 'UI:Bulk:Export:MaliciousInjection:Alert:Title' => 'Excel 安全警告', 'UI:Bulk:Export:MaliciousInjection:Alert:Message' => '在 Microsoft Excel 中打开不信任的文件可能导致公式注入. 请确保 Excel 设置能够安全的处理该文件. 进入我们的文档了解更多.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/cs.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/cs.dictionary.itop.display-block.php index a7cc444de..73dcbcf75 100644 --- a/dictionaries/ui/application/display-block/cs.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/cs.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/da.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/da.dictionary.itop.display-block.php index be859b4de..60c3b45eb 100644 --- a/dictionaries/ui/application/display-block/da.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/da.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/de.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/de.dictionary.itop.display-block.php index 317707ecc..5a8e699c5 100644 --- a/dictionaries/ui/application/display-block/de.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/de.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Einen Eintrag zur Liste hinzufügen', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/en.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/en.dictionary.itop.display-block.php index 294b05d0c..ef5346559 100644 --- a/dictionaries/ui/application/display-block/en.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/en.dictionary.itop.display-block.php @@ -1,4 +1,5 @@ 'Add an entry in the list', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/en_gb.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/en_gb.dictionary.itop.display-block.php index c000b989c..58c5901c7 100644 --- a/dictionaries/ui/application/display-block/en_gb.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/en_gb.dictionary.itop.display-block.php @@ -1,9 +1,10 @@ 'Add an entry in the list', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/es_cr.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/es_cr.dictionary.itop.display-block.php index 2c3bd7597..b9bfb2422 100644 --- a/dictionaries/ui/application/display-block/es_cr.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/es_cr.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Agregar una entrada en la lista', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/fr.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/fr.dictionary.itop.display-block.php index f5d1b75e3..0d0331c7c 100644 --- a/dictionaries/ui/application/display-block/fr.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/fr.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Ajouter une entrée dans la liste', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/hu.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/hu.dictionary.itop.display-block.php index 9044d4d4b..38137bb49 100644 --- a/dictionaries/ui/application/display-block/hu.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/hu.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/it.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/it.dictionary.itop.display-block.php index b423b50f6..49442844f 100644 --- a/dictionaries/ui/application/display-block/it.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/it.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Aggiungi una voce nella lista', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/ja.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/ja.dictionary.itop.display-block.php index 3c6ccae5f..58db28dbf 100644 --- a/dictionaries/ui/application/display-block/ja.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/ja.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/nl.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/nl.dictionary.itop.display-block.php index 686f50e3d..5c1b50c0b 100644 --- a/dictionaries/ui/application/display-block/nl.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/nl.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/pl.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/pl.dictionary.itop.display-block.php index ea35c5b2e..2172f3208 100644 --- a/dictionaries/ui/application/display-block/pl.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/pl.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Dodaj wpis do listy', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/pt_br.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/pt_br.dictionary.itop.display-block.php index 5c8c06a0c..5b1126775 100644 --- a/dictionaries/ui/application/display-block/pt_br.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/pt_br.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/ru.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/ru.dictionary.itop.display-block.php index 313238765..befa5ee05 100644 --- a/dictionaries/ui/application/display-block/ru.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/ru.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/sk.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/sk.dictionary.itop.display-block.php index 14729a59b..b02efc614 100644 --- a/dictionaries/ui/application/display-block/sk.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/sk.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/tr.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/tr.dictionary.itop.display-block.php index c0fd91295..d05af4e08 100644 --- a/dictionaries/ui/application/display-block/tr.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/tr.dictionary.itop.display-block.php @@ -1,14 +1,15 @@ 'Add an entry in the list~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/display-block/zh_cn.dictionary.itop.display-block.php b/dictionaries/ui/application/display-block/zh_cn.dictionary.itop.display-block.php index 9a2afbd53..c69434e0e 100644 --- a/dictionaries/ui/application/display-block/zh_cn.dictionary.itop.display-block.php +++ b/dictionaries/ui/application/display-block/zh_cn.dictionary.itop.display-block.php @@ -1,4 +1,5 @@ '向列表添加条目', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/cs.dictionary.itop.links.php b/dictionaries/ui/application/links/cs.dictionary.itop.links.php index e40ce6d6b..1986b05cd 100644 --- a/dictionaries/ui/application/links/cs.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/cs.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/da.dictionary.itop.links.php b/dictionaries/ui/application/links/da.dictionary.itop.links.php index 12b6c9cb3..3163511c8 100644 --- a/dictionaries/ui/application/links/da.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/da.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/de.dictionary.itop.links.php b/dictionaries/ui/application/links/de.dictionary.itop.links.php index faec293f2..53cd3f425 100644 --- a/dictionaries/ui/application/links/de.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/de.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Ein Objekt erstellen', 'UI:Links:Create:Button' => 'Erstellen', 'UI:Links:Create:Button+' => '%4$s erstellen', @@ -41,4 +42,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'Ein Objekt ist verknüpft', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} Objekte sind verknüpft', 'UI:Links:NewItem' => 'Neues Element', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/en.dictionary.itop.links.php b/dictionaries/ui/application/links/en.dictionary.itop.links.php index 9e4d2add3..aa13ce341 100644 --- a/dictionaries/ui/application/links/en.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/en.dictionary.itop.links.php @@ -1,4 +1,5 @@ 'New item', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/en_gb.dictionary.itop.links.php b/dictionaries/ui/application/links/en_gb.dictionary.itop.links.php index 7bf65f71f..f904b4232 100644 --- a/dictionaries/ui/application/links/en_gb.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/en_gb.dictionary.itop.links.php @@ -1,10 +1,11 @@ 'New item', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/es_cr.dictionary.itop.links.php b/dictionaries/ui/application/links/es_cr.dictionary.itop.links.php index 14312987a..65b04b5ae 100644 --- a/dictionaries/ui/application/links/es_cr.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/es_cr.dictionary.itop.links.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Links:Object:New:Modal:Title' => 'Crear un objeto', 'UI:Links:Create:Button' => 'Crear', 'UI:Links:Create:Button+' => 'Crear un %4$s', @@ -39,4 +40,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'Un objeto está vinculado', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objetos están vinculados', 'UI:Links:NewItem' => 'Nuevo elemento', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/fr.dictionary.itop.links.php b/dictionaries/ui/application/links/fr.dictionary.itop.links.php index 590c1fdcb..db9e937c4 100644 --- a/dictionaries/ui/application/links/fr.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/fr.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Créer un objet', 'UI:Links:Create:Button' => 'Créer', 'UI:Links:Create:Button+' => 'Créer un(e) %4$s', @@ -41,4 +42,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'Un objet est lié', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objets sont liés', 'UI:Links:NewItem' => 'Nouvel element', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/hu.dictionary.itop.links.php b/dictionaries/ui/application/links/hu.dictionary.itop.links.php index dd2583512..d4f802ced 100644 --- a/dictionaries/ui/application/links/hu.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/hu.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/it.dictionary.itop.links.php b/dictionaries/ui/application/links/it.dictionary.itop.links.php index 083cfe895..e84155833 100644 --- a/dictionaries/ui/application/links/it.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/it.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Crea un oggetto', 'UI:Links:Create:Button' => 'Crea', 'UI:Links:Create:Button+' => 'Crea un %4$s', @@ -41,4 +42,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'Un oggetto è collegato', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} oggetti sono collegati', 'UI:Links:NewItem' => 'Nuovo elemento', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/ja.dictionary.itop.links.php b/dictionaries/ui/application/links/ja.dictionary.itop.links.php index 4f0cfee14..835b40f4d 100644 --- a/dictionaries/ui/application/links/ja.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/ja.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/nl.dictionary.itop.links.php b/dictionaries/ui/application/links/nl.dictionary.itop.links.php index 4dbfa16e1..f5356ae6a 100644 --- a/dictionaries/ui/application/links/nl.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/nl.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/pl.dictionary.itop.links.php b/dictionaries/ui/application/links/pl.dictionary.itop.links.php index 73ebd38f4..1dde715a6 100644 --- a/dictionaries/ui/application/links/pl.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/pl.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Tworzy obiekt', 'UI:Links:Create:Button' => 'Utwórz', 'UI:Links:Create:Button+' => 'Tworzy %4$s', @@ -41,4 +42,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'Jeden obiekt jest połączony', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} obiekty są połączone', 'UI:Links:NewItem' => 'Nowy obiekt', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/pt_br.dictionary.itop.links.php b/dictionaries/ui/application/links/pt_br.dictionary.itop.links.php index 768a84425..1c17731bd 100644 --- a/dictionaries/ui/application/links/pt_br.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/pt_br.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/ru.dictionary.itop.links.php b/dictionaries/ui/application/links/ru.dictionary.itop.links.php index 614869fab..4347712ab 100644 --- a/dictionaries/ui/application/links/ru.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/ru.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/sk.dictionary.itop.links.php b/dictionaries/ui/application/links/sk.dictionary.itop.links.php index e169ea2e7..c7a2194ab 100644 --- a/dictionaries/ui/application/links/sk.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/sk.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/tr.dictionary.itop.links.php b/dictionaries/ui/application/links/tr.dictionary.itop.links.php index e4b8fe37f..03bc9a28e 100644 --- a/dictionaries/ui/application/links/tr.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/tr.dictionary.itop.links.php @@ -1,15 +1,16 @@ 'Create an object~~', 'UI:Links:Create:Button' => 'Create~~', 'UI:Links:Create:Button+' => 'Create a %4$s~~', @@ -41,4 +42,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Links:Bulk:LinkExistForOneObject' => 'One object is linked~~', 'UI:Links:Bulk:LinkExistForXObjects' => '{count} objects are linked~~', 'UI:Links:NewItem' => 'New item~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/links/zh_cn.dictionary.itop.links.php b/dictionaries/ui/application/links/zh_cn.dictionary.itop.links.php index 55cd94ad5..78a630409 100644 --- a/dictionaries/ui/application/links/zh_cn.dictionary.itop.links.php +++ b/dictionaries/ui/application/links/zh_cn.dictionary.itop.links.php @@ -1,4 +1,5 @@ '新建条目', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/cs.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/cs.dictionary.itop.newsroom.php index e9545677a..c261ccf71 100644 --- a/dictionaries/ui/application/newsroom/cs.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/cs.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Vaše '.ITOP_APPLICATION_SHORT.' novinky', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Spravujte oznámení, označujte je jako přečtené, smažte je, atd.', @@ -58,4 +59,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'Žádné novinky nelze smazat', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'Novinky byly smazány', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s novinek bylo smazáno', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/da.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/da.dictionary.itop.newsroom.php index e3ac64c48..a4cf5d9a0 100644 --- a/dictionaries/ui/application/newsroom/da.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/da.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/de.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/de.dictionary.itop.newsroom.php index 622e786fb..1d504e6b6 100644 --- a/dictionaries/ui/application/newsroom/de.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/de.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/en.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/en.dictionary.itop.newsroom.php index 4a263f24f..23bd3b9de 100644 --- a/dictionaries/ui/application/newsroom/en.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/en.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, - 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your ' . ITOP_APPLICATION_SHORT.' news', + 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.', 'UI:Newsroom:iTopNotification:ViewAllPage:Read:Label' => 'Read', 'UI:Newsroom:iTopNotification:ViewAllPage:Unread:Label' => 'Unread', @@ -30,7 +31,7 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Success:Message' => 'All %1$s news have been deleted', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Confirmation:Title' => 'Delete all news', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Confirmation:Message' => 'Are you sure you want to delete all news?', - + 'UI:Newsroom:iTopNotification:ViewAllPage:Empty:Title' => 'No news, you are up to date!', // Actions @@ -60,4 +61,4 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/en_gb.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/en_gb.dictionary.itop.newsroom.php index 127501532..edc6f85c0 100644 --- a/dictionaries/ui/application/newsroom/en_gb.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/en_gb.dictionary.itop.newsroom.php @@ -1,12 +1,13 @@ ITOP_APPLICATION_SHORT, - 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your ' . ITOP_APPLICATION_SHORT.' news', + 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.', 'UI:Newsroom:iTopNotification:ViewAllPage:Read:Label' => 'Read', 'UI:Newsroom:iTopNotification:ViewAllPage:Unread:Label' => 'Unread', @@ -17,7 +18,7 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Success:Message' => 'All %1$s news have been deleted', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Confirmation:Title' => 'Delete all news', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteAll:Confirmation:Message' => 'Are you sure you want to delete all news?', - + 'UI:Newsroom:iTopNotification:ViewAllPage:Empty:Title' => 'No news, you are up to date!', // Actions @@ -47,4 +48,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/es_cr.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/es_cr.dictionary.itop.newsroom.php index 130f5c1db..3460928a1 100644 --- a/dictionaries/ui/application/newsroom/es_cr.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/es_cr.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Newsroom:iTopNotification:Label' => ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Sus noticias de '.ITOP_APPLICATION_SHORT.'', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Gestione sus noticias, márquelas como leídas o no leídas, elimínadas, etc.', @@ -49,4 +50,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No hay noticias para eliminar', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'La noticia ha sido eliminada.', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s noticias han sido eliminadas', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/fr.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/fr.dictionary.itop.newsroom.php index 1667a185e..067ba8b34 100644 --- a/dictionaries/ui/application/newsroom/fr.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/fr.dictionary.itop.newsroom.php @@ -1,15 +1,16 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Vos news '.ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Gérer vos news, les marquer comme lues ou non lues, les supprimer, etc.', @@ -42,4 +43,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'Aucune news à supprimer', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'La news a été supprimée', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news ont été supprimées', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/hu.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/hu.dictionary.itop.newsroom.php index e0bfa39f2..a8c0ae2fe 100644 --- a/dictionaries/ui/application/newsroom/hu.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/hu.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/it.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/it.dictionary.itop.newsroom.php index 7b9b3cb42..196ae5c69 100644 --- a/dictionaries/ui/application/newsroom/it.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/it.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/ja.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/ja.dictionary.itop.newsroom.php index 9c6d2e7a2..00b35499b 100644 --- a/dictionaries/ui/application/newsroom/ja.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/ja.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/nl.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/nl.dictionary.itop.newsroom.php index bbbe08a41..c8d092773 100644 --- a/dictionaries/ui/application/newsroom/nl.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/nl.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/pl.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/pl.dictionary.itop.newsroom.php index 15c7e346c..dabea281f 100644 --- a/dictionaries/ui/application/newsroom/pl.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/pl.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Twoje wiadomości '.ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Zarządzaj swoimi wiadomościami, oznaczaj je jako przeczytane lub nieprzeczytane, usuwaj je itp.', @@ -58,4 +59,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'Brak wiadomości do usunięcia', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'Wiadomość została usunięta', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s wiadomości zostało usuniętych', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/pt_br.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/pt_br.dictionary.itop.newsroom.php index 3990bf9fa..bebc1e88c 100644 --- a/dictionaries/ui/application/newsroom/pt_br.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/pt_br.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/ru.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/ru.dictionary.itop.newsroom.php index f4415c410..bc4aee562 100644 --- a/dictionaries/ui/application/newsroom/ru.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/ru.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/sk.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/sk.dictionary.itop.newsroom.php index 8b7257e2c..bfaeeaf20 100644 --- a/dictionaries/ui/application/newsroom/sk.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/sk.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/tr.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/tr.dictionary.itop.newsroom.php index 4b2b5b645..f1b19910f 100644 --- a/dictionaries/ui/application/newsroom/tr.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/tr.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -59,4 +60,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => 'No news to delete~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => 'The news has been deleted~~', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '%1$s news have been deleted~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/newsroom/zh_cn.dictionary.itop.newsroom.php b/dictionaries/ui/application/newsroom/zh_cn.dictionary.itop.newsroom.php index 9f271798e..98777e7c3 100644 --- a/dictionaries/ui/application/newsroom/zh_cn.dictionary.itop.newsroom.php +++ b/dictionaries/ui/application/newsroom/zh_cn.dictionary.itop.newsroom.php @@ -1,4 +1,5 @@ ITOP_APPLICATION_SHORT, 'UI:Newsroom:iTopNotification:ViewAllPage:Title' => 'Your '.ITOP_APPLICATION_SHORT.' news~~', 'UI:Newsroom:iTopNotification:ViewAllPage:SubTitle' => 'Manage your news, flag them as read or unread, delete them, etc.~~', @@ -58,4 +59,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:NoEvent:Message' => '没有可删除的消息', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:Delete:Success:Message' => '消息已删除', 'UI:Newsroom:iTopNotification:ViewAllPage:Action:DeleteMultiple:Success:Message' => '已删除 %1$s 条消息', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/application/object/cs.dictionary.itop.object.php b/dictionaries/ui/application/object/cs.dictionary.itop.object.php index 8585cfc55..d3ea7d0a8 100644 --- a/dictionaries/ui/application/object/cs.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/cs.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/da.dictionary.itop.object.php b/dictionaries/ui/application/object/da.dictionary.itop.object.php index 1ef2acf05..e1a0c6c31 100644 --- a/dictionaries/ui/application/object/da.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/da.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/de.dictionary.itop.object.php b/dictionaries/ui/application/object/de.dictionary.itop.object.php index e4175661f..68f17a56a 100644 --- a/dictionaries/ui/application/object/de.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/de.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Ein Objekt erstellen', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'Dieses Formular enthält ein Pflichtdateiattribut, das im Modalmodus nicht festgelegt werden kann. Die Erstellung dieses Objekts ist unvollständig; bearbeiten Sie es in einem Vollbildformular, um es abzuschließen.', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'Dieses Formular enthält ein Pflichtdateiattribut, das im Modalmodus nicht festgelegt werden kann. Dieses Objekt ist unvollständig; bearbeiten Sie es in einem Vollbildformular, um es abzuschließen.', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'Dieses Formular enthält ein Pflichtdateiattribut, das im Modalmodus nicht geändert werden kann.', -)); +]); diff --git a/dictionaries/ui/application/object/en.dictionary.itop.object.php b/dictionaries/ui/application/object/en.dictionary.itop.object.php index ec54c8097..55ec10b2a 100644 --- a/dictionaries/ui/application/object/en.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/en.dictionary.itop.object.php @@ -1,4 +1,5 @@ 'Create an object', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.', -)); +]); diff --git a/dictionaries/ui/application/object/en_gb.dictionary.itop.object.php b/dictionaries/ui/application/object/en_gb.dictionary.itop.object.php index 6522929b5..d707cab6b 100644 --- a/dictionaries/ui/application/object/en_gb.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/en_gb.dictionary.itop.object.php @@ -1,12 +1,13 @@ 'Create an object', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.', -)); +]); diff --git a/dictionaries/ui/application/object/es_cr.dictionary.itop.object.php b/dictionaries/ui/application/object/es_cr.dictionary.itop.object.php index 48e66464d..eb4138a29 100644 --- a/dictionaries/ui/application/object/es_cr.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/es_cr.dictionary.itop.object.php @@ -1,15 +1,16 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Object:Modal:Title' => 'Crear un objeto', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'Este formulario contiene un atributo de archivo obligatorio que no se puede configurar en modo modal. La creación de este objeto estará incompleta, edítela en un formulario de página completa para completarla.', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'Este formulario contiene un atributo de archivo obligatorio que no se puede configurar en modo modal. Este objeto está incompleto, edítelo en un formulario de página completa para completarlo.', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'Este formulario contiene un atributo de archivo obligatorio que no se puede modificar en modo modal.', -)); +]); diff --git a/dictionaries/ui/application/object/fr.dictionary.itop.object.php b/dictionaries/ui/application/object/fr.dictionary.itop.object.php index 2cfab51e5..9e0a5dbf6 100644 --- a/dictionaries/ui/application/object/fr.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/fr.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Créer un objet', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'Ce formulaire contient un attribut fichier obligatoire qui ne peut pas être renseigné en mode pop-up. La création de cet objet sera incomplète et pourra être complétée dans un formulaire en pleine page.', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'Ce formulaire contient un attribut fichier obligatoire qui ne peut pas être renseigné en mode pop-up. Cet objet est incomplet, il peut être complété dans un formulaire en pleine page.', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'Ce formulaire contient un attribut fichier obligatoire qui ne peut pas être modifié en mode pop-up.', -)); +]); diff --git a/dictionaries/ui/application/object/hu.dictionary.itop.object.php b/dictionaries/ui/application/object/hu.dictionary.itop.object.php index 4c4926858..3366a39b7 100644 --- a/dictionaries/ui/application/object/hu.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/hu.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/it.dictionary.itop.object.php b/dictionaries/ui/application/object/it.dictionary.itop.object.php index 619fb4dd8..4571541b2 100644 --- a/dictionaries/ui/application/object/it.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/it.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Crea un oggetto', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'Questo modulo contiene un attributo di file obbligatorio che non può essere impostato in modalità modale. La creazione di questo oggetto sarà incompleta; modificalo in una pagina completa per completarlo.', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'Questo modulo contiene un attributo di file obbligatorio che non può essere impostato in modalità modale. Questo oggetto è incompleto; modificalo in una pagina completa per completarlo.', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'Questo modulo contiene attributi di file obbligatori che non possono essere modificati in modalità modale.', -)); +]); diff --git a/dictionaries/ui/application/object/ja.dictionary.itop.object.php b/dictionaries/ui/application/object/ja.dictionary.itop.object.php index 0b16ca8a6..2504628b3 100644 --- a/dictionaries/ui/application/object/ja.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/ja.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/nl.dictionary.itop.object.php b/dictionaries/ui/application/object/nl.dictionary.itop.object.php index 1f1d34760..39e46ae65 100644 --- a/dictionaries/ui/application/object/nl.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/nl.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/pl.dictionary.itop.object.php b/dictionaries/ui/application/object/pl.dictionary.itop.object.php index 1915f4ee5..371700efa 100644 --- a/dictionaries/ui/application/object/pl.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/pl.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Utwórz obiekt', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'Formularz ten zawiera obowiązkowy atrybut pliku, którego nie można ustawić w trybie modalnym. Utworzenie tego obiektu będzie niekompletne, edytuj go w formie całostronicowej, aby go ukończyć.', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'Formularz ten zawiera obowiązkowy atrybut pliku, którego nie można ustawić w trybie modalnym. Obiekt ten jest niekompletny. Aby go uzupełnić, edytuj go w formie całostronicowej.', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'Formularz ten zawiera obowiązkowy atrybut pliku, którego nie można modyfikować w trybie modalnym.', -)); +]); diff --git a/dictionaries/ui/application/object/pt_br.dictionary.itop.object.php b/dictionaries/ui/application/object/pt_br.dictionary.itop.object.php index cf0789690..bbbfc6932 100644 --- a/dictionaries/ui/application/object/pt_br.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/pt_br.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/ru.dictionary.itop.object.php b/dictionaries/ui/application/object/ru.dictionary.itop.object.php index e2a18124f..0d5ca1746 100644 --- a/dictionaries/ui/application/object/ru.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/ru.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/sk.dictionary.itop.object.php b/dictionaries/ui/application/object/sk.dictionary.itop.object.php index 670ad6551..aebb0534c 100644 --- a/dictionaries/ui/application/object/sk.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/sk.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/tr.dictionary.itop.object.php b/dictionaries/ui/application/object/tr.dictionary.itop.object.php index fdfebabd7..d10c5441d 100644 --- a/dictionaries/ui/application/object/tr.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/tr.dictionary.itop.object.php @@ -1,17 +1,18 @@ 'Create an object~~', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. The creation of this object will be incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains a mandatory file attribute which cannot be set in modal mode. This object is incomplete, edit it in a full-page form to complete it.~~', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => 'This form contains mandatory file attribute which cannot be modified in modal mode.~~', -)); +]); diff --git a/dictionaries/ui/application/object/zh_cn.dictionary.itop.object.php b/dictionaries/ui/application/object/zh_cn.dictionary.itop.object.php index ef62bd482..9ba984763 100644 --- a/dictionaries/ui/application/object/zh_cn.dictionary.itop.object.php +++ b/dictionaries/ui/application/object/zh_cn.dictionary.itop.object.php @@ -1,4 +1,5 @@ '创建对象', 'UI:Object:Modal:Create:MandatoryAttributeBlobInputs:Warning:Text' => '当前表单包含一个模态模式下不支持的必填文件属性. 创建/修改此对象可能无法进行, 其需要在页表单中完成.', 'UI:Object:Modal:Modify:MandatoryAttributeBlobInputs:Warning:Text' => '当前表单包含一个模态模式下不支持的必填文件属性. 此对象信息不完整, 请在页表单中完成编辑.', 'UI:Object:Modal:Modify:Filled:MandatoryAttributeBlobInputs:Warning:Text' => '当前表单包含一个模态模式下不支持的必填文件属性.', -)); +]); diff --git a/dictionaries/ui/application/welcome-popup/cs.dictionary.itop.welcome-popup.php b/dictionaries/ui/application/welcome-popup/cs.dictionary.itop.welcome-popup.php index 055756753..19fb7f7de 100644 --- a/dictionaries/ui/application/welcome-popup/cs.dictionary.itop.welcome-popup.php +++ b/dictionaries/ui/application/welcome-popup/cs.dictionary.itop.welcome-popup.php @@ -1,4 +1,5 @@ 'Welcome to ' . ITOP_APPLICATION_SHORT . ' 3.2', + 'UI:WelcomePopup:Message:320_01_Welcome:Title' => 'Welcome to '.ITOP_APPLICATION_SHORT.' 3.2', 'UI:WelcomePopup:Message:320_01_Welcome:Description' => '
        Congratulations, you landed on '.ITOP_APPLICATION.' '.ITOP_VERSION_NAME.'!

        We\'re excited to announce this new release.
        -
        In addition to introducing new features such as Newsroom, ' . ITOP_APPLICATION_SHORT . ' 3.2 includes critical security patches, enhanced accessibility and other significant improvements focused on providing you with stability and security.
        +
        In addition to introducing new features such as Newsroom, '.ITOP_APPLICATION_SHORT.' 3.2 includes critical security patches, enhanced accessibility and other significant improvements focused on providing you with stability and security.

        Discover all of '.ITOP_APPLICATION_SHORT.'\'s exciting new features and stay up-to-date with important notifications with our new welcome pop-up!
        We hope you\'ll enjoy this version as much as we enjoyed imagining and creating it.
        @@ -27,14 +28,14 @@ Dict::Add('EN US', 'English', 'English', [ 'UI:WelcomePopup:Message:320_02_Newsroom:Description' => '
        Say goodbye to cluttered inboxes and hello to personalized alerts with '.ITOP_APPLICATION_SHORT.'\'s Newsroom!
        Newsroom allows you to easily manage notifications within the platform, so you can stay on top of important updates without constantly checking your email. With the ability to mark messages as read or unread, and automatically delete old notifications, you have complete control over your notifications.

        -
        Try it out today and streamline your ' . ITOP_APPLICATION_SHORT . '\'s communication experience!
        ', +
        Try it out today and streamline your '.ITOP_APPLICATION_SHORT.'\'s communication experience!
        ', 'UI:WelcomePopup:Message:320_03_NotificationsCenter:Title' => 'Notifications center', 'UI:WelcomePopup:Message:320_03_NotificationsCenter:Description' => '
        As we know your information intake is already at its max, you can now easily choose how you receive your notifications - via email, chat, or even the Newsroom feature
        You don\'t want to receive a certain type of alerts? Nothing easier with these advanced customization capabilities giving you the flexibility to tailor your experience to your needs.

        Access your notifications center through the newsroom or through your preferences and avoid information overload on all your communication channels!
        ', - 'UI:WelcomePopup:Message:320_05_A11yThemes:Title' => 'Accessibility for ' . ITOP_APPLICATION_SHORT . '\'s UI', - 'UI:WelcomePopup:Message:320_05_A11yThemes:Description' => '
        To ensure ' . ITOP_APPLICATION_SHORT . '\'s accessibility, our team has been working on new back-office themes. WCAG compliants, those UI focus on making it easier for users with visual impairments to use the solution: + 'UI:WelcomePopup:Message:320_05_A11yThemes:Title' => 'Accessibility for '.ITOP_APPLICATION_SHORT.'\'s UI', + 'UI:WelcomePopup:Message:320_05_A11yThemes:Description' => '
        To ensure '.ITOP_APPLICATION_SHORT.'\'s accessibility, our team has been working on new back-office themes. WCAG compliants, those UI focus on making it easier for users with visual impairments to use the solution:
        • Color-blind theme: Designed to help users with colorblindness, this theme actually breaks down in two sub-themes to adapt to specific cases:
          • diff --git a/dictionaries/ui/application/welcome-popup/en_gb.dictionary.itop.welcome-popup.php b/dictionaries/ui/application/welcome-popup/en_gb.dictionary.itop.welcome-popup.php index 6790d1318..2b765665b 100644 --- a/dictionaries/ui/application/welcome-popup/en_gb.dictionary.itop.welcome-popup.php +++ b/dictionaries/ui/application/welcome-popup/en_gb.dictionary.itop.welcome-popup.php @@ -1,4 +1,5 @@ 'Welcome to ' . ITOP_APPLICATION_SHORT . ' 3.2', + 'UI:WelcomePopup:Message:320_01_Welcome:Title' => 'Welcome to '.ITOP_APPLICATION_SHORT.' 3.2', 'UI:WelcomePopup:Message:320_01_Welcome:Description' => '
            Congratulations, you landed on '.ITOP_APPLICATION.' '.ITOP_VERSION_NAME.'!

            We\'re excited to announce this new release.
            -
            In addition to introducing new features such as Newsroom, ' . ITOP_APPLICATION_SHORT . ' 3.2 includes critical security patches, enhanced accessibility and other significant improvements focused on providing you with stability and security.
            +
            In addition to introducing new features such as Newsroom, '.ITOP_APPLICATION_SHORT.' 3.2 includes critical security patches, enhanced accessibility and other significant improvements focused on providing you with stability and security.

            Discover all of '.ITOP_APPLICATION_SHORT.'\'s exciting new features and stay up-to-date with important notifications with our new welcome pop-up!
            We hope you\'ll enjoy this version as much as we enjoyed imagining and creating it.
            @@ -27,14 +28,14 @@ Dict::Add('EN GB', 'British English', 'British English', [ 'UI:WelcomePopup:Message:320_02_Newsroom:Description' => '
            Say goodbye to cluttered inboxes and hello to personalized alerts with '.ITOP_APPLICATION_SHORT.'\'s Newsroom!
            Newsroom allows you to easily manage notifications within the platform, so you can stay on top of important updates without constantly checking your email. With the ability to mark messages as read or unread, and automatically delete old notifications, you have complete control over your notifications.

            -
            Try it out today and streamline your ' . ITOP_APPLICATION_SHORT . '\'s communication experience!
            ', +
            Try it out today and streamline your '.ITOP_APPLICATION_SHORT.'\'s communication experience!
            ', 'UI:WelcomePopup:Message:320_03_NotificationsCenter:Title' => 'Notifications centre', 'UI:WelcomePopup:Message:320_03_NotificationsCenter:Description' => '
            As we know your information intake is already at its max, you can now easily choose how you receive your notifications - via email, chat, or even the Newsroom feature
            You don\'t want to receive a certain type of alerts? Nothing easier with these advanced customization capabilities giving you the flexibility to tailor your experience to your needs.

            Access your notifications center through the newsroom or through your preferences and avoid information overload on all your communication channels!
            ', - 'UI:WelcomePopup:Message:320_05_A11yThemes:Title' => 'Accessibility for ' . ITOP_APPLICATION_SHORT . '\'s UI', - 'UI:WelcomePopup:Message:320_05_A11yThemes:Description' => '
            To ensure ' . ITOP_APPLICATION_SHORT . '\'s accessibility, our team has been working on new back-office themes. WCAG compliants, those UI focus on making it easier for users with visual impairments to use the solution: + 'UI:WelcomePopup:Message:320_05_A11yThemes:Title' => 'Accessibility for '.ITOP_APPLICATION_SHORT.'\'s UI', + 'UI:WelcomePopup:Message:320_05_A11yThemes:Description' => '
            To ensure '.ITOP_APPLICATION_SHORT.'\'s accessibility, our team has been working on new back-office themes. WCAG compliants, those UI focus on making it easier for users with visual impairments to use the solution:
            • Color-blind theme: Designed to help users with colorblindness, this theme actually breaks down in two sub-themes to adapt to specific cases:
              • diff --git a/dictionaries/ui/application/welcome-popup/es_cr.dictionary.itop.welcome-popup.php b/dictionaries/ui/application/welcome-popup/es_cr.dictionary.itop.welcome-popup.php index 624ec38ec..49b61bdf6 100644 --- a/dictionaries/ui/application/welcome-popup/es_cr.dictionary.itop.welcome-popup.php +++ b/dictionaries/ui/application/welcome-popup/es_cr.dictionary.itop.welcome-popup.php @@ -1,11 +1,12 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:WelcomePopup:Button:RemindLater' => 'Recordarme despues', diff --git a/dictionaries/ui/application/welcome-popup/fr.dictionary.itop.welcome-popup.php b/dictionaries/ui/application/welcome-popup/fr.dictionary.itop.welcome-popup.php index a1e1a24dd..a2309a7b4 100644 --- a/dictionaries/ui/application/welcome-popup/fr.dictionary.itop.welcome-popup.php +++ b/dictionaries/ui/application/welcome-popup/fr.dictionary.itop.welcome-popup.php @@ -1,10 +1,11 @@ 'Předchozí stránky', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/da.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/da.dictionary.itop.breadcrumbs.php index b57005619..3b5aa59f7 100644 --- a/dictionaries/ui/components/breadcrumbs/da.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/da.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Previous pages~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/de.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/de.dictionary.itop.breadcrumbs.php index f187c2700..6cc5d1bdb 100644 --- a/dictionaries/ui/components/breadcrumbs/de.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/de.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Vorherige Seiten', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/en.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/en.dictionary.itop.breadcrumbs.php index ae27a5c73..2b3694063 100644 --- a/dictionaries/ui/components/breadcrumbs/en.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/en.dictionary.itop.breadcrumbs.php @@ -1,4 +1,5 @@ 'Previous pages', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/en_gb.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/en_gb.dictionary.itop.breadcrumbs.php index 13eed656a..8de074eb9 100644 --- a/dictionaries/ui/components/breadcrumbs/en_gb.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/en_gb.dictionary.itop.breadcrumbs.php @@ -1,10 +1,11 @@ 'Previous pages', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/es_cr.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/es_cr.dictionary.itop.breadcrumbs.php index 3c3508b4d..3feef1d5a 100644 --- a/dictionaries/ui/components/breadcrumbs/es_cr.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/es_cr.dictionary.itop.breadcrumbs.php @@ -1,12 +1,13 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Component:Breadcrumbs:PreviousItemsListToggler:Label' => 'Páginas anteriores', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/fr.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/fr.dictionary.itop.breadcrumbs.php index 1509b9d7b..cd1f3bc86 100644 --- a/dictionaries/ui/components/breadcrumbs/fr.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/fr.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Pages précédentes', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/hu.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/hu.dictionary.itop.breadcrumbs.php index 0e92abc4e..35b56d5f9 100644 --- a/dictionaries/ui/components/breadcrumbs/hu.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/hu.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Előző oldalak', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/it.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/it.dictionary.itop.breadcrumbs.php index 84da7c5cd..2fb8bd743 100644 --- a/dictionaries/ui/components/breadcrumbs/it.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/it.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Pagine precedenti', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/ja.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/ja.dictionary.itop.breadcrumbs.php index 3de55fb2d..32ff94adb 100644 --- a/dictionaries/ui/components/breadcrumbs/ja.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/ja.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Previous pages~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/nl.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/nl.dictionary.itop.breadcrumbs.php index 79df25249..4903c6dc7 100644 --- a/dictionaries/ui/components/breadcrumbs/nl.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/nl.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Vorige pagina\'s', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/pl.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/pl.dictionary.itop.breadcrumbs.php index eece60ac9..507ee8f2c 100644 --- a/dictionaries/ui/components/breadcrumbs/pl.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/pl.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Poprzednie strony', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/pt_br.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/pt_br.dictionary.itop.breadcrumbs.php index 908d5a154..8cb5586df 100644 --- a/dictionaries/ui/components/breadcrumbs/pt_br.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/pt_br.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Páginas anteriores', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/ru.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/ru.dictionary.itop.breadcrumbs.php index 17e787f6c..e82afdfe5 100644 --- a/dictionaries/ui/components/breadcrumbs/ru.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/ru.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Previous pages~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/sk.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/sk.dictionary.itop.breadcrumbs.php index ab7a40250..c138065e1 100644 --- a/dictionaries/ui/components/breadcrumbs/sk.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/sk.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Previous pages~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/tr.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/tr.dictionary.itop.breadcrumbs.php index dfed35ed2..e342916f5 100644 --- a/dictionaries/ui/components/breadcrumbs/tr.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/tr.dictionary.itop.breadcrumbs.php @@ -1,14 +1,15 @@ 'Previous pages~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/breadcrumbs/zh_cn.dictionary.itop.breadcrumbs.php b/dictionaries/ui/components/breadcrumbs/zh_cn.dictionary.itop.breadcrumbs.php index ce77eb4d6..914f3745c 100644 --- a/dictionaries/ui/components/breadcrumbs/zh_cn.dictionary.itop.breadcrumbs.php +++ b/dictionaries/ui/components/breadcrumbs/zh_cn.dictionary.itop.breadcrumbs.php @@ -1,4 +1,5 @@ '上一页', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/cs.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/cs.dictionary.itop.datatable.php index 6d2df0827..53d57fe56 100644 --- a/dictionaries/ui/components/datatable/cs.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/cs.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Please wait...~~', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per page~~', 'UI:Datatables:Language:ZeroRecords' => 'No result~~', @@ -24,4 +25,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/da.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/da.dictionary.itop.datatable.php index 82c720d5e..725bd82ee 100644 --- a/dictionaries/ui/components/datatable/da.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/da.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Please wait...~~', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per page~~', 'UI:Datatables:Language:ZeroRecords' => 'No result~~', @@ -24,4 +25,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/de.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/de.dictionary.itop.datatable.php index 240e0a80b..22cf3f9d5 100644 --- a/dictionaries/ui/components/datatable/de.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/de.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Bitte warten...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ pro Seite', 'UI:Datatables:Language:ZeroRecords' => 'Kein Ergebnis', @@ -24,4 +25,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:Datatables:Column:RowActions:Description' => '', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Aktion bestätigen', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Möchten Sie diese Aktion ausführen?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/en.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/en.dictionary.itop.datatable.php index c5a383181..c389e8720 100644 --- a/dictionaries/ui/components/datatable/en.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/en.dictionary.itop.datatable.php @@ -1,4 +1,5 @@ 'Please wait...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per page', 'UI:Datatables:Language:ZeroRecords' => 'No result', @@ -33,4 +34,4 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Datatables:Column:RowActions:Description' => '', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/en_gb.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/en_gb.dictionary.itop.datatable.php index 372fcb5ba..2f731362e 100644 --- a/dictionaries/ui/components/datatable/en_gb.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/en_gb.dictionary.itop.datatable.php @@ -1,11 +1,12 @@ 'Please wait...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per page', 'UI:Datatables:Language:ZeroRecords' => 'No result', @@ -20,4 +21,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:Datatables:Column:RowActions:Description' => '', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/es_cr.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/es_cr.dictionary.itop.datatable.php index a5bb2d444..c331c11e4 100644 --- a/dictionaries/ui/components/datatable/es_cr.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/es_cr.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Por favor espere...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ por página', 'UI:Datatables:Language:ZeroRecords' => 'Sin Resultados', @@ -24,4 +25,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Datatables:Column:RowActions:Description' => 'Descripción', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Confirmación de acción', 'UI:Datatables:RowActions:ConfirmationMessage' => '¿Confirma la acción?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/fr.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/fr.dictionary.itop.datatable.php index 6f9c3332e..7b339fa6c 100644 --- a/dictionaries/ui/components/datatable/fr.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/fr.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Patientez ...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ par page', 'UI:Datatables:Language:ZeroRecords' => 'Pas de résultat', @@ -24,4 +25,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Datatables:Column:RowActions:Description' => '', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Confirmation', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Confirmez-vous cette action ?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/hu.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/hu.dictionary.itop.datatable.php index 99d0213d3..1067c0c09 100644 --- a/dictionaries/ui/components/datatable/hu.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/hu.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Kérem várjon...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ oldalanként', 'UI:Datatables:Language:ZeroRecords' => 'Nincs eredmény', @@ -24,4 +25,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/it.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/it.dictionary.itop.datatable.php index 7db5e7689..8ba7ff533 100644 --- a/dictionaries/ui/components/datatable/it.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/it.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Attendere prego...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per pagina', 'UI:Datatables:Language:ZeroRecords' => 'Nessun risultato', @@ -24,4 +25,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Conferma azione', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Confermi l\'azione?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/ja.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/ja.dictionary.itop.datatable.php index 3a7099f6c..ea92900c6 100644 --- a/dictionaries/ui/components/datatable/ja.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/ja.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Please wait...~~', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per page~~', 'UI:Datatables:Language:ZeroRecords' => 'No result~~', @@ -24,4 +25,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/nl.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/nl.dictionary.itop.datatable.php index 7a42b0151..127ad627f 100644 --- a/dictionaries/ui/components/datatable/nl.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/nl.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'UI:Datatables:Language:Processing' => 'Even geduld…', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per pagina', 'UI:Datatables:Language:ZeroRecords' => 'Geen resultaten', @@ -24,4 +25,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:Datatables:Column:RowActions:Description' => '', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Bevestiging actie', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Bevestig je deze actie?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/pl.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/pl.dictionary.itop.datatable.php index c2cb75e86..bb795ae8e 100644 --- a/dictionaries/ui/components/datatable/pl.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/pl.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Proszę czekać...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ na stronę', 'UI:Datatables:Language:ZeroRecords' => 'Brak wyników', @@ -24,4 +25,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:Datatables:Column:RowActions:Description' => '', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Potwierdzenie działania', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Czy potwierdzasz działanie?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/pt_br.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/pt_br.dictionary.itop.datatable.php index 2980af20a..a7f2e5a84 100644 --- a/dictionaries/ui/components/datatable/pt_br.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/pt_br.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Aguarde...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ por página', 'UI:Datatables:Language:ZeroRecords' => 'Nenhum resultado', @@ -24,4 +25,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/ru.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/ru.dictionary.itop.datatable.php index e33f9fe95..c56169b64 100755 --- a/dictionaries/ui/components/datatable/ru.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/ru.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Пожалуйста, подождите...', 'UI:Datatables:Language:LengthMenu' => '_MENU_ объектов на страницу', 'UI:Datatables:Language:ZeroRecords' => 'Нет объектов для отображения', @@ -24,4 +25,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/sk.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/sk.dictionary.itop.datatable.php index d769b8422..ee2d6c822 100644 --- a/dictionaries/ui/components/datatable/sk.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/sk.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Please wait...~~', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per page~~', 'UI:Datatables:Language:ZeroRecords' => 'No result~~', @@ -24,4 +25,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/tr.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/tr.dictionary.itop.datatable.php index d694a6ed1..64a5f481d 100644 --- a/dictionaries/ui/components/datatable/tr.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/tr.dictionary.itop.datatable.php @@ -1,15 +1,16 @@ 'Please wait...~~', 'UI:Datatables:Language:LengthMenu' => '_MENU_ per page~~', 'UI:Datatables:Language:ZeroRecords' => 'No result~~', @@ -24,4 +25,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Datatables:Column:RowActions:Description' => '~~', 'UI:Datatables:RowActions:ConfirmationDialog' => 'Action Confirmation~~', 'UI:Datatables:RowActions:ConfirmationMessage' => 'Do you confirm action ?~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/datatable/zh_cn.dictionary.itop.datatable.php b/dictionaries/ui/components/datatable/zh_cn.dictionary.itop.datatable.php index 702ab49d3..4984574c1 100644 --- a/dictionaries/ui/components/datatable/zh_cn.dictionary.itop.datatable.php +++ b/dictionaries/ui/components/datatable/zh_cn.dictionary.itop.datatable.php @@ -1,4 +1,5 @@ '请稍候...', 'UI:Datatables:Language:LengthMenu' => '每页 _MENU_ 项', 'UI:Datatables:Language:ZeroRecords' => '未找到相关结果', @@ -32,4 +33,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Datatables:Column:RowActions:Description' => '备注', 'UI:Datatables:RowActions:ConfirmationDialog' => '操作确认', 'UI:Datatables:RowActions:ConfirmationMessage' => '确认操作?', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/cs.dictionary.itop.field.php b/dictionaries/ui/components/field/cs.dictionary.itop.field.php index 8b1182e6c..9e17850a2 100644 --- a/dictionaries/ui/components/field/cs.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/cs.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Neznámé hodnoty', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/da.dictionary.itop.field.php b/dictionaries/ui/components/field/da.dictionary.itop.field.php index 660c78122..7d007854e 100644 --- a/dictionaries/ui/components/field/da.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/da.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Unknown values~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/de.dictionary.itop.field.php b/dictionaries/ui/components/field/de.dictionary.itop.field.php index 5562d2861..cd6602fd4 100644 --- a/dictionaries/ui/components/field/de.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/de.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Unbekannte Werte', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/en.dictionary.itop.field.php b/dictionaries/ui/components/field/en.dictionary.itop.field.php index 128a9be3d..ca6c19db0 100644 --- a/dictionaries/ui/components/field/en.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/en.dictionary.itop.field.php @@ -1,4 +1,5 @@ 'Unknown values', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/en_gb.dictionary.itop.field.php b/dictionaries/ui/components/field/en_gb.dictionary.itop.field.php index 09cef4289..dba2faa92 100644 --- a/dictionaries/ui/components/field/en_gb.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/en_gb.dictionary.itop.field.php @@ -1,10 +1,11 @@ 'Unknown values', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/es_cr.dictionary.itop.field.php b/dictionaries/ui/components/field/es_cr.dictionary.itop.field.php index 6642dd230..0137741c1 100644 --- a/dictionaries/ui/components/field/es_cr.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/es_cr.dictionary.itop.field.php @@ -1,12 +1,13 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Component:Field:BulkModify:UnknownValues:Tooltip' => 'Valores desconocidos', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/fr.dictionary.itop.field.php b/dictionaries/ui/components/field/fr.dictionary.itop.field.php index f6d57c75d..ca72f4fa0 100644 --- a/dictionaries/ui/components/field/fr.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/fr.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Valeurs inconnues', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/hu.dictionary.itop.field.php b/dictionaries/ui/components/field/hu.dictionary.itop.field.php index ca6cbc246..a55a0618d 100644 --- a/dictionaries/ui/components/field/hu.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/hu.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Ismeretlen értékek', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/it.dictionary.itop.field.php b/dictionaries/ui/components/field/it.dictionary.itop.field.php index 6c4c0975b..da6160b72 100644 --- a/dictionaries/ui/components/field/it.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/it.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Valori sconosciuti', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/ja.dictionary.itop.field.php b/dictionaries/ui/components/field/ja.dictionary.itop.field.php index a5ded9f19..4770049bb 100644 --- a/dictionaries/ui/components/field/ja.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/ja.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Unknown values~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/nl.dictionary.itop.field.php b/dictionaries/ui/components/field/nl.dictionary.itop.field.php index 2f22d3fc0..2814ef8a6 100644 --- a/dictionaries/ui/components/field/nl.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/nl.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Onbekende waardes', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/pl.dictionary.itop.field.php b/dictionaries/ui/components/field/pl.dictionary.itop.field.php index 3d6d679da..b1c72557a 100644 --- a/dictionaries/ui/components/field/pl.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/pl.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Nieznane wartości', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/pt_br.dictionary.itop.field.php b/dictionaries/ui/components/field/pt_br.dictionary.itop.field.php index a249c2e7e..614c22a78 100644 --- a/dictionaries/ui/components/field/pt_br.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/pt_br.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Valores desconhecidos', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/ru.dictionary.itop.field.php b/dictionaries/ui/components/field/ru.dictionary.itop.field.php index 81317ae29..8ffcb4c18 100755 --- a/dictionaries/ui/components/field/ru.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/ru.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Неизвестные значения', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/sk.dictionary.itop.field.php b/dictionaries/ui/components/field/sk.dictionary.itop.field.php index 487a22052..da42fde3e 100644 --- a/dictionaries/ui/components/field/sk.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/sk.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Unknown values~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/tr.dictionary.itop.field.php b/dictionaries/ui/components/field/tr.dictionary.itop.field.php index 0ec064175..3feaf3145 100644 --- a/dictionaries/ui/components/field/tr.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/tr.dictionary.itop.field.php @@ -1,14 +1,15 @@ 'Unknown values~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/field/zh_cn.dictionary.itop.field.php b/dictionaries/ui/components/field/zh_cn.dictionary.itop.field.php index c6e34a0cd..3174cda94 100644 --- a/dictionaries/ui/components/field/zh_cn.dictionary.itop.field.php +++ b/dictionaries/ui/components/field/zh_cn.dictionary.itop.field.php @@ -1,4 +1,5 @@ '未知值', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/cs.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/cs.dictionary.itop.global-search.php index 43bdd1644..6a050488c 100644 --- a/dictionaries/ui/components/global-search/cs.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/cs.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Vyhledávání v celé aplikaci', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Vyhledávání...', 'UI:Component:GlobalSearch:Recents:Title' => 'Nedávné', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Ještě jste nespustili žádné vyhledávání', 'UI:Component:GlobalSearch:HistoryDisabled' => 'Historie ja zakázána', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Otevřít globální vyhledávání', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/da.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/da.dictionary.itop.global-search.php index 7f6e69d12..8d95e9108 100644 --- a/dictionaries/ui/components/global-search/da.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/da.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Search throughout the whole application~~', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Search...~~', 'UI:Component:GlobalSearch:Recents:Title' => 'Recents~~', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'You haven\'t run any search yet~~', 'UI:Component:GlobalSearch:HistoryDisabled' => 'History is disabled~~', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Open global search~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/de.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/de.dictionary.itop.global-search.php index 6cadea31b..2d75d776a 100644 --- a/dictionaries/ui/components/global-search/de.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/de.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Durchsuche die gesamte Datenbank', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Suche...', 'UI:Component:GlobalSearch:Recents:Title' => 'Letzte', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Sie haben bisher noch keine Suchanfragen gestellt', 'UI:Component:GlobalSearch:HistoryDisabled' => 'Suchhistorie ist deaktiviert', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Öffne die globale Suche', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/en.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/en.dictionary.itop.global-search.php index 453c9a814..fab17bfc7 100644 --- a/dictionaries/ui/components/global-search/en.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/en.dictionary.itop.global-search.php @@ -1,4 +1,5 @@ 'Search throughout the whole application', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Search...', 'UI:Component:GlobalSearch:Recents:Title' => 'Recents', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'You haven\'t run any search yet', 'UI:Component:GlobalSearch:HistoryDisabled' => 'History is disabled', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Open global search', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/en_gb.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/en_gb.dictionary.itop.global-search.php index cfb415de3..b1a9ced05 100644 --- a/dictionaries/ui/components/global-search/en_gb.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/en_gb.dictionary.itop.global-search.php @@ -1,15 +1,16 @@ 'Search throughout the whole application', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Search...', 'UI:Component:GlobalSearch:Recents:Title' => 'Recents', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'You haven\'t run any search yet', 'UI:Component:GlobalSearch:HistoryDisabled' => 'History is disabled', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Open global search', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/es_cr.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/es_cr.dictionary.itop.global-search.php index b6e3cc82e..96044e102 100644 --- a/dictionaries/ui/components/global-search/es_cr.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/es_cr.dictionary.itop.global-search.php @@ -1,17 +1,18 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Component:GlobalSearch:Tooltip' => 'Buscar en toda la aplicación', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Búsqueda...', 'UI:Component:GlobalSearch:Recents:Title' => 'Recientes', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Aún no ha realizado ninguna búsqueda', 'UI:Component:GlobalSearch:HistoryDisabled' => 'El historial está deshabilitado', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Abrir búsqueda global', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/fr.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/fr.dictionary.itop.global-search.php index facc12fa0..9fdf43f83 100644 --- a/dictionaries/ui/components/global-search/fr.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/fr.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Rechercher dans toute l\'application', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Rechercher...', 'UI:Component:GlobalSearch:Recents:Title' => 'Dernières recherches', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Vous n\'avez pas encore effectué de recherche', 'UI:Component:GlobalSearch:HistoryDisabled' => 'L\'historique est désactivé', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Ouvrir la recherche globale', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/hu.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/hu.dictionary.itop.global-search.php index 1780bc80e..2945b0df2 100644 --- a/dictionaries/ui/components/global-search/hu.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/hu.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Keresés a teljes alkalmazásban', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Keresés...', 'UI:Component:GlobalSearch:Recents:Title' => 'Legutóbbiak', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Még nem futtatott semmilyen keresést', 'UI:Component:GlobalSearch:HistoryDisabled' => 'Az előzmények le lettek tiltva', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Globális keresés megnyitása', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/it.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/it.dictionary.itop.global-search.php index 18f3c73d2..1478e0d21 100644 --- a/dictionaries/ui/components/global-search/it.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/it.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Cerca in tutta l\'applicazione', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Cerca...', 'UI:Component:GlobalSearch:Recents:Title' => 'Recenti', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Non hai ancora eseguito alcuna ricerca', 'UI:Component:GlobalSearch:HistoryDisabled' => 'La cronologia è disabilitata', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Apri la ricerca globale', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/ja.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/ja.dictionary.itop.global-search.php index cedc2f013..b279708f0 100644 --- a/dictionaries/ui/components/global-search/ja.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/ja.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Search throughout the whole application~~', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Search...~~', 'UI:Component:GlobalSearch:Recents:Title' => 'Recents~~', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'You haven\'t run any search yet~~', 'UI:Component:GlobalSearch:HistoryDisabled' => 'History is disabled~~', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Open global search~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/nl.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/nl.dictionary.itop.global-search.php index 1ce6af656..7d73aad54 100644 --- a/dictionaries/ui/components/global-search/nl.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/nl.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Doorzoek de volledige applicatie', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Zoek…', 'UI:Component:GlobalSearch:Recents:Title' => 'Recente', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Je hebt nog geen enkele zoekopdracht gemaakt', 'UI:Component:GlobalSearch:HistoryDisabled' => 'Zoekgeschiedenis staat uit', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Open globale zoekopdracht', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/pl.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/pl.dictionary.itop.global-search.php index 71660a05c..c00bd2871 100644 --- a/dictionaries/ui/components/global-search/pl.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/pl.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Szukaj w całej aplikacji', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Szukaj...', 'UI:Component:GlobalSearch:Recents:Title' => 'Ostatnie', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Nie przeprowadziłeś jeszcze żadnego wyszukiwania', 'UI:Component:GlobalSearch:HistoryDisabled' => 'Historia jest wyłączona', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Otwórz wyszukiwanie globalne', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/pt_br.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/pt_br.dictionary.itop.global-search.php index 437da63fd..3e223beeb 100644 --- a/dictionaries/ui/components/global-search/pt_br.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/pt_br.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Pesquisar em todo o '.ITOP_APPLICATION_SHORT, 'UI:Component:GlobalSearch:Input:Placeholder' => 'Pesquisar...', 'UI:Component:GlobalSearch:Recents:Title' => 'Recentes', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Você ainda não realizou nenhuma pesquisa', 'UI:Component:GlobalSearch:HistoryDisabled' => 'O histórico está desativado', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Abrir pesquisa universal', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/ru.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/ru.dictionary.itop.global-search.php index e9e5fe549..f8bc75504 100755 --- a/dictionaries/ui/components/global-search/ru.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/ru.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Глобальный поиск', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Поиск...', 'UI:Component:GlobalSearch:Recents:Title' => 'Недавние', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'Поиск ещё не выполнялся', 'UI:Component:GlobalSearch:HistoryDisabled' => 'История отключена', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Открыть глобальный поиск', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/sk.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/sk.dictionary.itop.global-search.php index 5e90187c7..6b5519ebc 100644 --- a/dictionaries/ui/components/global-search/sk.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/sk.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Search throughout the whole application~~', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Search...~~', 'UI:Component:GlobalSearch:Recents:Title' => 'Recents~~', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'You haven\'t run any search yet~~', 'UI:Component:GlobalSearch:HistoryDisabled' => 'History is disabled~~', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Open global search~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/tr.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/tr.dictionary.itop.global-search.php index ec0b674a0..fd3f923cd 100644 --- a/dictionaries/ui/components/global-search/tr.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/tr.dictionary.itop.global-search.php @@ -1,19 +1,20 @@ 'Search throughout the whole application~~', 'UI:Component:GlobalSearch:Input:Placeholder' => 'Search...~~', 'UI:Component:GlobalSearch:Recents:Title' => 'Recents~~', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => 'You haven\'t run any search yet~~', 'UI:Component:GlobalSearch:HistoryDisabled' => 'History is disabled~~', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => 'Open global search~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/global-search/zh_cn.dictionary.itop.global-search.php b/dictionaries/ui/components/global-search/zh_cn.dictionary.itop.global-search.php index 9e9cb72c3..3e865a8e8 100644 --- a/dictionaries/ui/components/global-search/zh_cn.dictionary.itop.global-search.php +++ b/dictionaries/ui/components/global-search/zh_cn.dictionary.itop.global-search.php @@ -1,4 +1,5 @@ '全局搜索', 'UI:Component:GlobalSearch:Input:Placeholder' => '搜索...', 'UI:Component:GlobalSearch:Recents:Title' => '最近', 'UI:Component:GlobalSearch:LastQueries:NoQuery:Placeholder' => '您尚未运行任何搜索', 'UI:Component:GlobalSearch:HistoryDisabled' => '历史记录已禁用', 'UI:Component:GlobalSearch:KeyboardShortcut:OpenDrawer' => '打开全局搜索', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/cs.dictionary.itop.input.php b/dictionaries/ui/components/input/cs.dictionary.itop.input.php index 06068c8f7..ed66e38b4 100644 --- a/dictionaries/ui/components/input/cs.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/cs.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'Tato změna není povolena', 'UI:Component:Input:Password:DoesNotMatch' => 'Hesla se neshodují', 'UI:Component:Input:Set:MinimumItems' => 'Vyžaduje minimálně %1$s položku (položky)', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/da.dictionary.itop.input.php b/dictionaries/ui/components/input/da.dictionary.itop.input.php index e1a0275e0..879929685 100644 --- a/dictionaries/ui/components/input/da.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/da.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => 'Passwords do not match~~', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/de.dictionary.itop.input.php b/dictionaries/ui/components/input/de.dictionary.itop.input.php index e25210800..2b3ba7a30 100644 --- a/dictionaries/ui/components/input/de.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/de.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'Diese Änderung ist nicht erlaubt', 'UI:Component:Input:Password:DoesNotMatch' => 'Passwörter stimmen nicht überein', 'UI:Component:Input:Set:MinimumItems' => 'Mindestens %1$s Element(e) benötigt', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/en.dictionary.itop.input.php b/dictionaries/ui/components/input/en.dictionary.itop.input.php index f1c5b4278..7cc0e228d 100644 --- a/dictionaries/ui/components/input/en.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/en.dictionary.itop.input.php @@ -1,4 +1,5 @@ 'This change is not allowed', 'UI:Component:Input:Password:DoesNotMatch' => 'Passwords do not match', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/en_gb.dictionary.itop.input.php b/dictionaries/ui/components/input/en_gb.dictionary.itop.input.php index d70999cc2..c108a8f21 100644 --- a/dictionaries/ui/components/input/en_gb.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/en_gb.dictionary.itop.input.php @@ -1,12 +1,13 @@ 'This change is not allowed', 'UI:Component:Input:Password:DoesNotMatch' => 'Passwords do not match', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/es_cr.dictionary.itop.input.php b/dictionaries/ui/components/input/es_cr.dictionary.itop.input.php index 85481767b..c92710516 100644 --- a/dictionaries/ui/components/input/es_cr.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/es_cr.dictionary.itop.input.php @@ -1,14 +1,15 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Component:Input:ChangeNotAllowed' => 'Este cmabio no es permitido', 'UI:Component:Input:Password:DoesNotMatch' => 'No coincide la contraseña', 'UI:Component:Input:Set:MinimumItems' => 'Se requieren %1$s elemento(s) mínimo(s)', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/fr.dictionary.itop.input.php b/dictionaries/ui/components/input/fr.dictionary.itop.input.php index 6d87abb4d..c17c79112 100644 --- a/dictionaries/ui/components/input/fr.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/fr.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'Cette modification n\'est pas autorisée', 'UI:Component:Input:Password:DoesNotMatch' => 'Les mots de passe ne correspondent pas', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s élément(s) requis', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/hu.dictionary.itop.input.php b/dictionaries/ui/components/input/hu.dictionary.itop.input.php index 7a2ec8676..0babe78b1 100644 --- a/dictionaries/ui/components/input/hu.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/hu.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => 'A jelszavak nem egyeznek', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/it.dictionary.itop.input.php b/dictionaries/ui/components/input/it.dictionary.itop.input.php index aa7e70e92..4665bcc0d 100644 --- a/dictionaries/ui/components/input/it.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/it.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => 'Le password non corrispondono', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/ja.dictionary.itop.input.php b/dictionaries/ui/components/input/ja.dictionary.itop.input.php index 5263150f0..516e8ad53 100644 --- a/dictionaries/ui/components/input/ja.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/ja.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => 'Passwords do not match~~', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/nl.dictionary.itop.input.php b/dictionaries/ui/components/input/nl.dictionary.itop.input.php index 8c16c3b20..d1e0b4dee 100644 --- a/dictionaries/ui/components/input/nl.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/nl.dictionary.itop.input.php @@ -1,16 +1,17 @@ */ -Dict::Add('NL NL', 'Dutch', 'Nederlands', array( +Dict::Add('NL NL', 'Dutch', 'Nederlands', [ 'UI:Component:Input:ChangeNotAllowed' => 'Deze aanpassing is niet toegestaan', 'UI:Component:Input:Password:DoesNotMatch' => 'Wachtwoorden komen niet overeen', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) verplicht', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/pl.dictionary.itop.input.php b/dictionaries/ui/components/input/pl.dictionary.itop.input.php index f4cefe6e3..891aba1d1 100644 --- a/dictionaries/ui/components/input/pl.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/pl.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'Ta zmiana jest niedozwolona', 'UI:Component:Input:Password:DoesNotMatch' => 'Hasła nie pasują', 'UI:Component:Input:Set:MinimumItems' => 'Wymagane są co najmniej %1$s elementy', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/pt_br.dictionary.itop.input.php b/dictionaries/ui/components/input/pt_br.dictionary.itop.input.php index 84ce08bdb..dfa518287 100644 --- a/dictionaries/ui/components/input/pt_br.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/pt_br.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => 'Senhas não correspondem', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/ru.dictionary.itop.input.php b/dictionaries/ui/components/input/ru.dictionary.itop.input.php index 7e5beffd5..5e9fe3f37 100644 --- a/dictionaries/ui/components/input/ru.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/ru.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => 'Passwords do not match~~', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/sk.dictionary.itop.input.php b/dictionaries/ui/components/input/sk.dictionary.itop.input.php index 17974451a..3d9cbabf3 100644 --- a/dictionaries/ui/components/input/sk.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/sk.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => 'Passwords do not match~~', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/tr.dictionary.itop.input.php b/dictionaries/ui/components/input/tr.dictionary.itop.input.php index 1ef26f444..a46e89f73 100644 --- a/dictionaries/ui/components/input/tr.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/tr.dictionary.itop.input.php @@ -1,16 +1,17 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => 'Passwords do not match~~', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/input/zh_cn.dictionary.itop.input.php b/dictionaries/ui/components/input/zh_cn.dictionary.itop.input.php index 5887bc49a..e7392d096 100644 --- a/dictionaries/ui/components/input/zh_cn.dictionary.itop.input.php +++ b/dictionaries/ui/components/input/zh_cn.dictionary.itop.input.php @@ -1,4 +1,5 @@ 'This change is not allowed~~', 'UI:Component:Input:Password:DoesNotMatch' => '密码不匹配', 'UI:Component:Input:Set:MinimumItems' => 'Minimum %1$s item(s) required~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/cs.dictionary.itop.modal.php b/dictionaries/ui/components/modal/cs.dictionary.itop.modal.php index f617202b6..f355c5d67 100644 --- a/dictionaries/ui/components/modal/cs.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/cs.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Potvrzení', 'UI:Modal:Informative:Title' => 'Informativní modální dialog', 'UI:Modal:InformativeError:Title' => 'Chyba', 'UI:Modal:InformativeWarning:Title' => 'Varování', 'UI:Modal:InformativeInformation:Title' => 'Informace', 'UI:Modal:InformativeSuccess:Title' => 'Úspěch', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/da.dictionary.itop.modal.php b/dictionaries/ui/components/modal/da.dictionary.itop.modal.php index 952c7c327..d7cd4c355 100644 --- a/dictionaries/ui/components/modal/da.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/da.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation~~', 'UI:Modal:Informative:Title' => 'Informative Modal~~', 'UI:Modal:InformativeError:Title' => 'Error~~', 'UI:Modal:InformativeWarning:Title' => 'Warning~~', 'UI:Modal:InformativeInformation:Title' => 'Information~~', 'UI:Modal:InformativeSuccess:Title' => 'Success~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/de.dictionary.itop.modal.php b/dictionaries/ui/components/modal/de.dictionary.itop.modal.php index 3cad3ee0f..c33d2f9b8 100644 --- a/dictionaries/ui/components/modal/de.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/de.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Bestätigung', 'UI:Modal:Informative:Title' => 'Informations-Modal', 'UI:Modal:InformativeError:Title' => 'Fehler', 'UI:Modal:InformativeWarning:Title' => 'Warnung', 'UI:Modal:InformativeInformation:Title' => 'Information', 'UI:Modal:InformativeSuccess:Title' => 'Erfolgreich', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/en.dictionary.itop.modal.php b/dictionaries/ui/components/modal/en.dictionary.itop.modal.php index 393ed120d..d9df86abe 100644 --- a/dictionaries/ui/components/modal/en.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/en.dictionary.itop.modal.php @@ -1,4 +1,5 @@ 'Confirmation', 'UI:Modal:Informative:Title' => 'Informative Modal', 'UI:Modal:InformativeError:Title' => 'Error', 'UI:Modal:InformativeWarning:Title' => 'Warning', 'UI:Modal:InformativeInformation:Title' => 'Information', 'UI:Modal:InformativeSuccess:Title' => 'Success', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/en_gb.dictionary.itop.modal.php b/dictionaries/ui/components/modal/en_gb.dictionary.itop.modal.php index e554e706d..cffa10ec2 100644 --- a/dictionaries/ui/components/modal/en_gb.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/en_gb.dictionary.itop.modal.php @@ -1,14 +1,15 @@ 'Confirmation', 'UI:Modal:Informative:Title' => 'Informative Modal', 'UI:Modal:InformativeError:Title' => 'Error', 'UI:Modal:InformativeWarning:Title' => 'Warning', 'UI:Modal:InformativeInformation:Title' => 'Information', 'UI:Modal:InformativeSuccess:Title' => 'Success', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/es_cr.dictionary.itop.modal.php b/dictionaries/ui/components/modal/es_cr.dictionary.itop.modal.php index 66b099532..274c2f002 100644 --- a/dictionaries/ui/components/modal/es_cr.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/es_cr.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmación', 'UI:Modal:Informative:Title' => 'Modalidad Informativa', 'UI:Modal:InformativeError:Title' => 'Error', 'UI:Modal:InformativeWarning:Title' => 'Advertencia', 'UI:Modal:InformativeInformation:Title' => 'Información', 'UI:Modal:InformativeSuccess:Title' => 'Éxito', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/fr.dictionary.itop.modal.php b/dictionaries/ui/components/modal/fr.dictionary.itop.modal.php index 71e5e0f62..ee9a7613c 100644 --- a/dictionaries/ui/components/modal/fr.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/fr.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation', 'UI:Modal:Informative:Title' => 'Modale d\'information', 'UI:Modal:InformativeError:Title' => 'Erreur', 'UI:Modal:InformativeWarning:Title' => 'Avertissement', 'UI:Modal:InformativeInformation:Title' => 'Information', 'UI:Modal:InformativeSuccess:Title' => 'Succès', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/hu.dictionary.itop.modal.php b/dictionaries/ui/components/modal/hu.dictionary.itop.modal.php index 004df1a10..b8f37a8ef 100644 --- a/dictionaries/ui/components/modal/hu.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/hu.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation~~', 'UI:Modal:Informative:Title' => 'Informative Modal~~', 'UI:Modal:InformativeError:Title' => 'Error~~', 'UI:Modal:InformativeWarning:Title' => 'Warning~~', 'UI:Modal:InformativeInformation:Title' => 'Information~~', 'UI:Modal:InformativeSuccess:Title' => 'Success~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/it.dictionary.itop.modal.php b/dictionaries/ui/components/modal/it.dictionary.itop.modal.php index 9e04a4ee0..3f7ea1acf 100644 --- a/dictionaries/ui/components/modal/it.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/it.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Conferma', 'UI:Modal:Informative:Title' => 'Modale Informativa', 'UI:Modal:InformativeError:Title' => 'Errore', 'UI:Modal:InformativeWarning:Title' => 'Avviso', 'UI:Modal:InformativeInformation:Title' => 'Informazione', 'UI:Modal:InformativeSuccess:Title' => 'Successo', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/ja.dictionary.itop.modal.php b/dictionaries/ui/components/modal/ja.dictionary.itop.modal.php index 96df7e1b7..b7c079d93 100644 --- a/dictionaries/ui/components/modal/ja.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/ja.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation~~', 'UI:Modal:Informative:Title' => 'Informative Modal~~', 'UI:Modal:InformativeError:Title' => 'Error~~', 'UI:Modal:InformativeWarning:Title' => 'Warning~~', 'UI:Modal:InformativeInformation:Title' => 'Information~~', 'UI:Modal:InformativeSuccess:Title' => 'Success~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/nl.dictionary.itop.modal.php b/dictionaries/ui/components/modal/nl.dictionary.itop.modal.php index 13ea78f97..ebc251109 100644 --- a/dictionaries/ui/components/modal/nl.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/nl.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation~~', 'UI:Modal:Informative:Title' => 'Informative Modal~~', 'UI:Modal:InformativeError:Title' => 'Error~~', 'UI:Modal:InformativeWarning:Title' => 'Warning~~', 'UI:Modal:InformativeInformation:Title' => 'Information~~', 'UI:Modal:InformativeSuccess:Title' => 'Success~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/pl.dictionary.itop.modal.php b/dictionaries/ui/components/modal/pl.dictionary.itop.modal.php index 4f607995b..39b863e28 100644 --- a/dictionaries/ui/components/modal/pl.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/pl.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Potwierdzenie', 'UI:Modal:Informative:Title' => 'Modal informacyjny', 'UI:Modal:InformativeError:Title' => 'Błąd', 'UI:Modal:InformativeWarning:Title' => 'Uwaga', 'UI:Modal:InformativeInformation:Title' => 'Informacja', 'UI:Modal:InformativeSuccess:Title' => 'Sukces', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/pt_br.dictionary.itop.modal.php b/dictionaries/ui/components/modal/pt_br.dictionary.itop.modal.php index fa313d99e..273224e37 100644 --- a/dictionaries/ui/components/modal/pt_br.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/pt_br.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation~~', 'UI:Modal:Informative:Title' => 'Informative Modal~~', 'UI:Modal:InformativeError:Title' => 'Error~~', 'UI:Modal:InformativeWarning:Title' => 'Warning~~', 'UI:Modal:InformativeInformation:Title' => 'Information~~', 'UI:Modal:InformativeSuccess:Title' => 'Success~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/ru.dictionary.itop.modal.php b/dictionaries/ui/components/modal/ru.dictionary.itop.modal.php index 1ec2e1ec5..78cb6e5f6 100644 --- a/dictionaries/ui/components/modal/ru.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/ru.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation~~', 'UI:Modal:Informative:Title' => 'Informative Modal~~', 'UI:Modal:InformativeError:Title' => 'Error~~', 'UI:Modal:InformativeWarning:Title' => 'Warning~~', 'UI:Modal:InformativeInformation:Title' => 'Information~~', 'UI:Modal:InformativeSuccess:Title' => 'Success~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/sk.dictionary.itop.modal.php b/dictionaries/ui/components/modal/sk.dictionary.itop.modal.php index 716288fb3..76302b9f8 100644 --- a/dictionaries/ui/components/modal/sk.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/sk.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation~~', 'UI:Modal:Informative:Title' => 'Informative Modal~~', 'UI:Modal:InformativeError:Title' => 'Error~~', 'UI:Modal:InformativeWarning:Title' => 'Warning~~', 'UI:Modal:InformativeInformation:Title' => 'Information~~', 'UI:Modal:InformativeSuccess:Title' => 'Success~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/tr.dictionary.itop.modal.php b/dictionaries/ui/components/modal/tr.dictionary.itop.modal.php index 9e7fa84d9..8895283a8 100644 --- a/dictionaries/ui/components/modal/tr.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/tr.dictionary.itop.modal.php @@ -1,19 +1,20 @@ 'Confirmation~~', 'UI:Modal:Informative:Title' => 'Informative Modal~~', 'UI:Modal:InformativeError:Title' => 'Error~~', 'UI:Modal:InformativeWarning:Title' => 'Warning~~', 'UI:Modal:InformativeInformation:Title' => 'Information~~', 'UI:Modal:InformativeSuccess:Title' => 'Success~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/modal/zh_cn.dictionary.itop.modal.php b/dictionaries/ui/components/modal/zh_cn.dictionary.itop.modal.php index 84b01e8ac..819676cf3 100644 --- a/dictionaries/ui/components/modal/zh_cn.dictionary.itop.modal.php +++ b/dictionaries/ui/components/modal/zh_cn.dictionary.itop.modal.php @@ -1,4 +1,5 @@ '确认', 'UI:Modal:Informative:Title' => '信息提示模态窗口', 'UI:Modal:InformativeError:Title' => '错误', 'UI:Modal:InformativeWarning:Title' => '警告', 'UI:Modal:InformativeInformation:Title' => '提示', 'UI:Modal:InformativeSuccess:Title' => '成功', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/quick-create/en.dictionary.itop.quick-create.php b/dictionaries/ui/components/quick-create/en.dictionary.itop.quick-create.php index 523395277..29a06a517 100644 --- a/dictionaries/ui/components/quick-create/en.dictionary.itop.quick-create.php +++ b/dictionaries/ui/components/quick-create/en.dictionary.itop.quick-create.php @@ -1,4 +1,5 @@ 'Quickly create any type of object', 'UI:Component:QuickCreate:Input:Placeholder' => 'Select object type...', 'UI:Component:QuickCreate:Recents:Title' => 'Recents', @@ -26,4 +27,4 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Component:QuickCreate:MostPopular:Title' => 'Most popular', 'UI:Component:QuickCreate:HistoryDisabled' => 'History is disabled', 'UI:Component:QuickCreate:KeyboardShortcut:OpenDrawer' => 'Open quick create', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/quick-create/en_gb.dictionary.itop.quick-create.php b/dictionaries/ui/components/quick-create/en_gb.dictionary.itop.quick-create.php index f4fd1adad..483354865 100644 --- a/dictionaries/ui/components/quick-create/en_gb.dictionary.itop.quick-create.php +++ b/dictionaries/ui/components/quick-create/en_gb.dictionary.itop.quick-create.php @@ -1,11 +1,12 @@ 'Quickly create any type of object', 'UI:Component:QuickCreate:Input:Placeholder' => 'Select object type...', 'UI:Component:QuickCreate:Recents:Title' => 'Recents', @@ -13,4 +14,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:Component:QuickCreate:MostPopular:Title' => 'Most popular', 'UI:Component:QuickCreate:HistoryDisabled' => 'History is disabled', 'UI:Component:QuickCreate:KeyboardShortcut:OpenDrawer' => 'Open quick create', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/components/quick-create/zh_cn.dictionary.itop.quick-create.php b/dictionaries/ui/components/quick-create/zh_cn.dictionary.itop.quick-create.php index 1916e05c0..4eaf2fc31 100644 --- a/dictionaries/ui/components/quick-create/zh_cn.dictionary.itop.quick-create.php +++ b/dictionaries/ui/components/quick-create/zh_cn.dictionary.itop.quick-create.php @@ -1,4 +1,5 @@ '快速创建任意类型的对象', 'UI:Component:QuickCreate:Input:Placeholder' => '请选择对象类型...', 'UI:Component:QuickCreate:Recents:Title' => '最近', 'UI:Component:QuickCreate:LastClasses:NoClass:Placeholder' => '您尚未创建任何对象', 'UI:Component:QuickCreate:MostPopular:Title' => '最常用', 'UI:Component:QuickCreate:HistoryDisabled' => '历史记录已禁用', - 'UI:Component:QuickCreate:KeyboardShortcut:OpenDrawer' => '打开快速创建' -)); \ No newline at end of file + 'UI:Component:QuickCreate:KeyboardShortcut:OpenDrawer' => '打开快速创建', +]); diff --git a/dictionaries/ui/layouts/activity-panel/cs.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/cs.dictionary.itop.activity-panel.php index 3d356bf79..6efba4761 100644 --- a/dictionaries/ui/layouts/activity-panel/cs.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/cs.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Rozšířit', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Zúžit', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Zavřít', @@ -35,4 +36,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Je tu klid, zatím žádná aktivita.', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Panel aktivit', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Kliknutím otevřete panel aktivit', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/da.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/da.dictionary.itop.activity-panel.php index a87ad6994..135cb6f23 100644 --- a/dictionaries/ui/layouts/activity-panel/da.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/da.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Expand~~', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reduce~~', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Close~~', @@ -35,4 +36,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'It\'s calm up here, no activity yet~~', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Activity panel~~', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Click to open the activity panel~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/de.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/de.dictionary.itop.activity-panel.php index a0ac09488..c0eeb2059 100644 --- a/dictionaries/ui/layouts/activity-panel/de.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/de.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Erweitern', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reduzieren', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Schließen', @@ -35,4 +36,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Hier ist\'s ruhig. Bisher keine Aktivitäten.', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Aktivitäten', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Hier klicken, um die Aktivitätenleiste anzuzeigen', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/en.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/en.dictionary.itop.activity-panel.php index ea325a45e..039b79722 100644 --- a/dictionaries/ui/layouts/activity-panel/en.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/en.dictionary.itop.activity-panel.php @@ -1,4 +1,5 @@ 'Expand', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reduce', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Close', @@ -56,4 +57,4 @@ Dict::Add('EN US', 'English', 'English', array( // Closed cover 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Activity panel', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Click to open the activity panel', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/en_gb.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/en_gb.dictionary.itop.activity-panel.php index 3a525f77c..19638a0f4 100644 --- a/dictionaries/ui/layouts/activity-panel/en_gb.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/en_gb.dictionary.itop.activity-panel.php @@ -1,11 +1,12 @@ 'Expand', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reduce', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Close', @@ -43,4 +44,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( // Closed cover 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Activity panel', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Click to open the activity panel', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/es_cr.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/es_cr.dictionary.itop.activity-panel.php index dbdc6440c..0ddcd9a67 100644 --- a/dictionaries/ui/layouts/activity-panel/es_cr.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/es_cr.dictionary.itop.activity-panel.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Layout:ActivityPanel:SizeToggler:Expand:Tooltip' => 'Expandir', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reducir', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Cerrar', @@ -33,4 +34,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Está tranquilo aquí, aún no hay actividad.', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Panel de actividad', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Dar click para abrir el panel de actividades.', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/fr.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/fr.dictionary.itop.activity-panel.php index 4ee1ff00e..6480c05a9 100644 --- a/dictionaries/ui/layouts/activity-panel/fr.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/fr.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Déplier', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Replier', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Fermer', @@ -35,4 +36,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Temps calme, il n\'y a pas encore d\'activité', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Panneau d\'activité', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Cliquer pour ouvrir le panneau d\'activité', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/hu.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/hu.dictionary.itop.activity-panel.php index 36fac8ec6..1809a7714 100644 --- a/dictionaries/ui/layouts/activity-panel/hu.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/hu.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Kiterjesztés', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Összecsukás', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Bezárás', @@ -35,4 +36,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Itt nyugalom van, még nincs aktivitás.', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Tevékenység panel', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Kattintson a gombra a tevékenység panel megnyitásához', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/it.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/it.dictionary.itop.activity-panel.php index 525d08d1e..b9cf5da8a 100644 --- a/dictionaries/ui/layouts/activity-panel/it.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/it.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Espandi', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Riduci', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Chiudi', @@ -35,4 +36,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'È tranquillo qui, nessuna attività ancora', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Pannello di attività', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Clicca per aprire il pannello di attività', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/ja.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/ja.dictionary.itop.activity-panel.php index 4329a9643..dc84ba3f5 100644 --- a/dictionaries/ui/layouts/activity-panel/ja.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/ja.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Expand~~', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reduce~~', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Close~~', @@ -35,4 +36,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'It\'s calm up here, no activity yet~~', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Activity panel~~', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Click to open the activity panel~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/nl.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/nl.dictionary.itop.activity-panel.php index fa3a20307..cdd94c307 100644 --- a/dictionaries/ui/layouts/activity-panel/nl.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/nl.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Vergroot', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reduceer', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Sluit', @@ -35,4 +36,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Nog geen activiteit.', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Activiteitenpaneel', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Klik om het activiteitenpaneel te openen', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/pl.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/pl.dictionary.itop.activity-panel.php index ee3495865..ca9b4dc70 100644 --- a/dictionaries/ui/layouts/activity-panel/pl.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/pl.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Rozwiń', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Zwiń', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Zamknij', @@ -35,4 +36,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Tu jest spokojnie, jeszcze nie ma aktywności', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Panel aktywności', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Kliknij, aby otworzyć panel aktywności', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/pt_br.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/pt_br.dictionary.itop.activity-panel.php index 6629fc492..7a7772055 100644 --- a/dictionaries/ui/layouts/activity-panel/pt_br.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/pt_br.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Expandir', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Recolher', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Fechar', @@ -35,4 +36,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Está calmo aqui, nenhuma atividade ainda', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Painel de Atividades', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Clique para abrir o Painel de Atividades', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/ru.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/ru.dictionary.itop.activity-panel.php index 75105f3ea..d9a38778d 100755 --- a/dictionaries/ui/layouts/activity-panel/ru.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/ru.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Расширить', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Уменьшить', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Закрыть', @@ -35,4 +36,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'Здесь пока пусто...', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Активность', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Открыть панель активности', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/sk.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/sk.dictionary.itop.activity-panel.php index 80f2115df..27f727bdd 100644 --- a/dictionaries/ui/layouts/activity-panel/sk.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/sk.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Expand~~', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reduce~~', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Close~~', @@ -35,4 +36,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'It\'s calm up here, no activity yet~~', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Activity panel~~', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Click to open the activity panel~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/tr.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/tr.dictionary.itop.activity-panel.php index c1dbb980d..612d529f6 100644 --- a/dictionaries/ui/layouts/activity-panel/tr.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/tr.dictionary.itop.activity-panel.php @@ -1,15 +1,16 @@ 'Expand~~', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => 'Reduce~~', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => 'Close~~', @@ -35,4 +36,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Layout:ActivityPanel:NoEntry:Placeholder:Hint' => 'It\'s calm up here, no activity yet~~', 'UI:Layout:ActivityPanel:ClosedCover:Title' => 'Activity panel~~', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => 'Click to open the activity panel~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/activity-panel/zh_cn.dictionary.itop.activity-panel.php b/dictionaries/ui/layouts/activity-panel/zh_cn.dictionary.itop.activity-panel.php index 4e210dd1c..c4a1ce344 100644 --- a/dictionaries/ui/layouts/activity-panel/zh_cn.dictionary.itop.activity-panel.php +++ b/dictionaries/ui/layouts/activity-panel/zh_cn.dictionary.itop.activity-panel.php @@ -1,4 +1,5 @@ '展开', 'UI:Layout:ActivityPanel:SizeToggler:Reduce:Tooltip' => '减少', 'UI:Layout:ActivityPanel:DisplayToggler:Close:Tooltip' => '关闭', @@ -55,4 +56,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Closed cover 'UI:Layout:ActivityPanel:ClosedCover:Title' => '活动面板', 'UI:Layout:ActivityPanel:ClosedCover:Tooltip' => '点击打开活动面板', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/cs.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/cs.dictionary.itop.navigation-menu.php index b59b01cbc..3fb6ff6cb 100644 --- a/dictionaries/ui/layouts/navigation-menu/cs.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/cs.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Logo společnosti', 'UI:Layout:NavigationMenu:Silo:Label' => 'Vyberte organizaci, podle které chcete filtrovat', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Rozbalit / Sbalit', @@ -23,4 +24,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Otevřít uživatelské menu', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filtrování položek menu', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/da.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/da.dictionary.itop.navigation-menu.php index b6dd0f5ed..d385cc785 100644 --- a/dictionaries/ui/layouts/navigation-menu/da.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/da.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Company logo~~', 'UI:Layout:NavigationMenu:Silo:Label' => 'Select organization to filter on~~', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Expand / Collapse~~', @@ -23,4 +24,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filter menu entries~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/de.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/de.dictionary.itop.navigation-menu.php index a92f2442f..4e11a7e37 100644 --- a/dictionaries/ui/layouts/navigation-menu/de.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/de.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Unternehmenslogo', 'UI:Layout:NavigationMenu:Silo:Label' => 'Organisation zum filtern auswählen', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Ausklappen/Einklappen', @@ -23,4 +24,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Benutzermenü öffnen', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filtere Menüeinträge', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/en.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/en.dictionary.itop.navigation-menu.php index 8cddec3e9..84f1e6632 100644 --- a/dictionaries/ui/layouts/navigation-menu/en.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/en.dictionary.itop.navigation-menu.php @@ -1,4 +1,5 @@ 'Company logo', 'UI:Layout:NavigationMenu:Silo:Label' => 'Select organization to filter on', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Expand / Collapse', @@ -32,4 +33,4 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filter menu entries', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/en_gb.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/en_gb.dictionary.itop.navigation-menu.php index f91ed4daa..9e4f92d03 100644 --- a/dictionaries/ui/layouts/navigation-menu/en_gb.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/en_gb.dictionary.itop.navigation-menu.php @@ -1,11 +1,12 @@ 'Company logo', 'UI:Layout:NavigationMenu:Silo:Label' => 'Select organisation to filter on', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Expand / Collapse', @@ -19,4 +20,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filter menu entries', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/es_cr.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/es_cr.dictionary.itop.navigation-menu.php index 9d6ed35ce..2efffd961 100644 --- a/dictionaries/ui/layouts/navigation-menu/es_cr.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/es_cr.dictionary.itop.navigation-menu.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Layout:NavigationMenu:CompanyLogo:AltText' => 'Logotipo de la Compañia', 'UI:Layout:NavigationMenu:Silo:Label' => 'Seleccione la organización para filtrar', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Expandir / Contraer', @@ -21,4 +22,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Abrir menú de usuario', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filtrar entradas del menú', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/fr.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/fr.dictionary.itop.navigation-menu.php index cc2b3f5e7..b57ab61d6 100644 --- a/dictionaries/ui/layouts/navigation-menu/fr.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/fr.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Logo entreprise', 'UI:Layout:NavigationMenu:Silo:Label' => 'Selectionnez l\'organisation sur laquelle filtrer', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Déplier / Replier', @@ -23,4 +24,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Ouvre le menu utilisateur', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filtrer les entrées de menu', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/hu.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/hu.dictionary.itop.navigation-menu.php index 175c89b68..3a2bbd57c 100644 --- a/dictionaries/ui/layouts/navigation-menu/hu.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/hu.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Cég logo', 'UI:Layout:NavigationMenu:Silo:Label' => 'Válassza ki a szűrni kívánt szervezetet', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Kiterjesztés / Össszecsukás', @@ -23,4 +24,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Felhasználói menü megnyitása', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Menüpontok szűrése', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/it.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/it.dictionary.itop.navigation-menu.php index 70e866b9d..44225802f 100644 --- a/dictionaries/ui/layouts/navigation-menu/it.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/it.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Logo dell\'azienda', 'UI:Layout:NavigationMenu:Silo:Label' => 'Seleziona l\'organizzazione per filtrare', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Espandi / Comprimi', @@ -23,4 +24,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Apri menu utente', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filtra le voci del menu', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/ja.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/ja.dictionary.itop.navigation-menu.php index e046401d9..2e4a07e50 100644 --- a/dictionaries/ui/layouts/navigation-menu/ja.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/ja.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Company logo~~', 'UI:Layout:NavigationMenu:Silo:Label' => 'Select organization to filter on~~', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Expand / Collapse~~', @@ -23,4 +24,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filter menu entries~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/nl.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/nl.dictionary.itop.navigation-menu.php index 7b40ec5ad..a211671fa 100644 --- a/dictionaries/ui/layouts/navigation-menu/nl.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/nl.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Bedrijfslogo', 'UI:Layout:NavigationMenu:Silo:Label' => 'Selecteer de organisatie waarop gefilterd moet worden', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Vergroot / Verberg', @@ -23,4 +24,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open gebruikersmenu', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filter menu\'s', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/pl.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/pl.dictionary.itop.navigation-menu.php index e18a2fbf7..fb2343d9d 100644 --- a/dictionaries/ui/layouts/navigation-menu/pl.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/pl.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Logo firmy', 'UI:Layout:NavigationMenu:Silo:Label' => 'Wybierz organizację do filtrowania', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Rozwiń / Zwiń', @@ -23,4 +24,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Otwórz menu użytkownika', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filtruj wpisy w menu', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/pt_br.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/pt_br.dictionary.itop.navigation-menu.php index 0ee5765f7..fc2d0bee5 100644 --- a/dictionaries/ui/layouts/navigation-menu/pt_br.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/pt_br.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Logo da organização', 'UI:Layout:NavigationMenu:Silo:Label' => 'Selecione a organização para filtrar', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Expandir / Recolher', @@ -23,4 +24,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Abrir menu do usuário', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filtrar entradas de menu', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/ru.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/ru.dictionary.itop.navigation-menu.php index b86603d87..019800da3 100755 --- a/dictionaries/ui/layouts/navigation-menu/ru.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/ru.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Логотип компании', 'UI:Layout:NavigationMenu:Silo:Label' => 'Select organization to filter on~~', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Развернуть / Свернуть', @@ -23,4 +24,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Фильтр пунктов меню', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/sk.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/sk.dictionary.itop.navigation-menu.php index c96a6f8d5..04ddde240 100644 --- a/dictionaries/ui/layouts/navigation-menu/sk.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/sk.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Company logo~~', 'UI:Layout:NavigationMenu:Silo:Label' => 'Select organization to filter on~~', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Expand / Collapse~~', @@ -23,4 +24,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filter menu entries~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/tr.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/tr.dictionary.itop.navigation-menu.php index 0eb835ea9..98d4c47fe 100644 --- a/dictionaries/ui/layouts/navigation-menu/tr.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/tr.dictionary.itop.navigation-menu.php @@ -1,15 +1,16 @@ 'Company logo~~', 'UI:Layout:NavigationMenu:Silo:Label' => 'Select organization to filter on~~', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => 'Expand / Collapse~~', @@ -23,4 +24,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => 'Open user menu~~', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => 'Filter menu entries~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/navigation-menu/zh_cn.dictionary.itop.navigation-menu.php b/dictionaries/ui/layouts/navigation-menu/zh_cn.dictionary.itop.navigation-menu.php index 1692dfb0c..d59ef87db 100644 --- a/dictionaries/ui/layouts/navigation-menu/zh_cn.dictionary.itop.navigation-menu.php +++ b/dictionaries/ui/layouts/navigation-menu/zh_cn.dictionary.itop.navigation-menu.php @@ -1,4 +1,5 @@ '公司标志', 'UI:Layout:NavigationMenu:Silo:Label' => '请选择要筛选的组织', 'UI:Layout:NavigationMenu:Toggler:Tooltip' => '展开/折叠', @@ -31,4 +32,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Layout:NavigationMenu:UserMenu:Toggler:Label' => '打开用户菜单', 'UI:Layout:NavigationMenu:KeyboardShortcut:FocusFilter' => '筛选菜单', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/layouts/object-details/cs.dictionary.itop.object-details.php b/dictionaries/ui/layouts/object-details/cs.dictionary.itop.object-details.php index 843f6c07a..cf236ecc4 100644 --- a/dictionaries/ui/layouts/object-details/cs.dictionary.itop.object-details.php +++ b/dictionaries/ui/layouts/object-details/cs.dictionary.itop.object-details.php @@ -1,10 +1,11 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Layout:ObjectDetails:KeyboardShortcut:EditObject' => 'Editar objeto mostrado', diff --git a/dictionaries/ui/layouts/object-details/fr.dictionary.itop.object-details.php b/dictionaries/ui/layouts/object-details/fr.dictionary.itop.object-details.php index 756786426..6da9ac47b 100644 --- a/dictionaries/ui/layouts/object-details/fr.dictionary.itop.object-details.php +++ b/dictionaries/ui/layouts/object-details/fr.dictionary.itop.object-details.php @@ -1,10 +1,11 @@ diff --git a/dictionaries/ui/layouts/object-details/pl.dictionary.itop.object-details.php b/dictionaries/ui/layouts/object-details/pl.dictionary.itop.object-details.php index 93f91b698..d9b020d5f 100644 --- a/dictionaries/ui/layouts/object-details/pl.dictionary.itop.object-details.php +++ b/dictionaries/ui/layouts/object-details/pl.dictionary.itop.object-details.php @@ -1,10 +1,11 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UIBlock:Error:CannotGetBlocks' => 'No se pudieron recuperar bloques del área de contenido "%1$s", ya que parece existir para el contenido de la página "%2$s"', diff --git a/dictionaries/ui/layouts/page-content/fr.dictionary.itop.page-content.php b/dictionaries/ui/layouts/page-content/fr.dictionary.itop.page-content.php index c3af90b1e..813687872 100644 --- a/dictionaries/ui/layouts/page-content/fr.dictionary.itop.page-content.php +++ b/dictionaries/ui/layouts/page-content/fr.dictionary.itop.page-content.php @@ -1,10 +1,11 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Layout:TabContainer:ExtraTabsListToggler:Label' => 'Otras pestañas', diff --git a/dictionaries/ui/layouts/tab-container/fr.dictionary.itop.tab-container.php b/dictionaries/ui/layouts/tab-container/fr.dictionary.itop.tab-container.php index 6c6514763..9555e908c 100644 --- a/dictionaries/ui/layouts/tab-container/fr.dictionary.itop.tab-container.php +++ b/dictionaries/ui/layouts/tab-container/fr.dictionary.itop.tab-container.php @@ -1,10 +1,11 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UIBlock:Error:AddBlockForbidden' => 'No se puede agregar bloque a %1$s', diff --git a/dictionaries/ui/layouts/ui-content-block/fr.dictionary.itop.ui-content-block.php b/dictionaries/ui/layouts/ui-content-block/fr.dictionary.itop.ui-content-block.php index f7e39786c..57a3b529d 100644 --- a/dictionaries/ui/layouts/ui-content-block/fr.dictionary.itop.ui-content-block.php +++ b/dictionaries/ui/layouts/ui-content-block/fr.dictionary.itop.ui-content-block.php @@ -1,10 +1,11 @@ 'Používáte nestabilní verzi, která může obsahovat chyby. Pokud si myslíte, že k chybě došlo z tohoto důvodu, pošlete nám prosím zpětnou vazbu!', 'UI:ErrorPage:KittyDisclaimer' => 'Při tvorbě tohoto GIFu a vydání nebyla zraněna žádná kočička. - The R&D Team', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/da.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/da.dictionary.itop.errorpage.php index e8b7932fe..58bef2a84 100644 --- a/dictionaries/ui/pages/errorpage/da.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/da.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'You are using an unstable version that may include bugs. If you think this error occurred because of this please send us your feedback!~~', 'UI:ErrorPage:KittyDisclaimer' => 'No kitty were injured during the making of this GIF and release. - The R&D Team~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/de.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/de.dictionary.itop.errorpage.php index 649240696..c78af7dcb 100644 --- a/dictionaries/ui/pages/errorpage/de.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/de.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'Sie nutzeng gerade eine Unstable-Version, die eventuell Bugs enthält. Wenn Sie glauben, dieser Fehler liegt an einem solchen Bug, bitte senden Sie uns Ihr Feedback!', 'UI:ErrorPage:KittyDisclaimer' => 'Keine klitzekleinen Kätzchen wurden während des Erstellens dieses GIFs und Releases verletzt! - Das Entwicklungsteam', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/en.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/en.dictionary.itop.errorpage.php index fe4606148..400fbd322 100644 --- a/dictionaries/ui/pages/errorpage/en.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/en.dictionary.itop.errorpage.php @@ -1,4 +1,5 @@ 'You are using an unstable version that may include bugs. If you think this error occurred because of this please send us your feedback!', 'UI:ErrorPage:KittyDisclaimer' => 'No kitty were injured during the making of this GIF and release. - The R&D Team', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/en_gb.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/en_gb.dictionary.itop.errorpage.php index 634af1160..2ac7fa5f4 100644 --- a/dictionaries/ui/pages/errorpage/en_gb.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/en_gb.dictionary.itop.errorpage.php @@ -1,13 +1,14 @@ 'You are using an unstable version that may include bugs. If you think this error occurred because of this please send us your feedback!', 'UI:ErrorPage:KittyDisclaimer' => 'No kitty were injured during the making of this GIF and release. - The R&D Team', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/es_cr.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/es_cr.dictionary.itop.errorpage.php index 5686e5367..09103934f 100644 --- a/dictionaries/ui/pages/errorpage/es_cr.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/es_cr.dictionary.itop.errorpage.php @@ -1,15 +1,16 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:ErrorPage:UnstableVersion' => 'Está utilizando una versión inestable que puede incluir errores. Si cree que este error ocurrió debido a esto, ¡envíenos sus comentarios!', 'UI:ErrorPage:KittyDisclaimer' => 'Ningún gatito resultó herido durante la realización de este GIF y lanzamiento. - El Equipo de I&D', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/fr.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/fr.dictionary.itop.errorpage.php index 05a2b1fde..5b49534b3 100644 --- a/dictionaries/ui/pages/errorpage/fr.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/fr.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'Vous utilisez une version instable qui peut contenir des bugs. Si vous pensez que cette erreur est liée merci de nous contacter !', 'UI:ErrorPage:KittyDisclaimer' => 'Aucun chatton n\'a été maltraité durant la réalisation de ce GIF et de cette version. - L\'équipe R&D', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/hu.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/hu.dictionary.itop.errorpage.php index 15f17f8be..28e6f0c25 100644 --- a/dictionaries/ui/pages/errorpage/hu.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/hu.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'Ön egy instabil verziót használ, amely hibákat tartalmazhat. Ha úgy gondolja, hogy ez a hiba emiatt lépett fel, kérjük, küldje el visszajelzését!', 'UI:ErrorPage:KittyDisclaimer' => 'Egyetlen cica sem sérült meg ennek a GIF-nek a készítése és kiadása során. - The R&D Team', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/it.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/it.dictionary.itop.errorpage.php index 3cbbb3708..eb4d0c7da 100644 --- a/dictionaries/ui/pages/errorpage/it.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/it.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'Stai utilizzando una versione instabile che potrebbe contenere errori. Se pensi che questo errore sia dovuto a questo, ti preghiamo di inviarci il tuo feedback!', 'UI:ErrorPage:KittyDisclaimer' => 'Nessun gattino è stato ferito durante la creazione di questo GIF e rilascio. - Il Team R&D', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/ja.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/ja.dictionary.itop.errorpage.php index 9f3be50f3..f9b3359fc 100644 --- a/dictionaries/ui/pages/errorpage/ja.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/ja.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'You are using an unstable version that may include bugs. If you think this error occurred because of this please send us your feedback!~~', 'UI:ErrorPage:KittyDisclaimer' => 'No kitty were injured during the making of this GIF and release. - The R&D Team~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/nl.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/nl.dictionary.itop.errorpage.php index c7aa6b49b..629722a2c 100644 --- a/dictionaries/ui/pages/errorpage/nl.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/nl.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'Je gebruikt een instabiele versie die mogelijks fouten bevat. Als je denkt dat deze fout hierdoor komt, gelieve ons hierover te contacteren!', 'UI:ErrorPage:KittyDisclaimer' => 'Er werden geen katjes misbruikt tijdens het maken van deze GIF en software. - Het R&D team', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/pl.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/pl.dictionary.itop.errorpage.php index 2aca9b750..9ccf54af6 100644 --- a/dictionaries/ui/pages/errorpage/pl.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/pl.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'Używasz niestabilnej wersji, która może zawierać błędy. Jeśli uważasz, że ten błąd wystąpił z tego powodu, prześlij nam swoją opinię!', 'UI:ErrorPage:KittyDisclaimer' => 'Żaden kotek nie został ranny podczas tworzenia tego GIF-a i wydania. - Zespół R&D', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/pt_br.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/pt_br.dictionary.itop.errorpage.php index 39e4e5046..d5aaa1665 100644 --- a/dictionaries/ui/pages/errorpage/pt_br.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/pt_br.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'Você está usando uma versão instável que pode incluir bugs. Se você acha que esse erro ocorreu por causa disso, envie-nos o seu feedback!', 'UI:ErrorPage:KittyDisclaimer' => 'Nenhum gatinho foi ferido durante a confecção deste GIF e lançamento de versão do '.ITOP_APPLICATION_SHORT.'. - The R&D Team', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/ru.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/ru.dictionary.itop.errorpage.php index b425b78d4..56c4ccafc 100755 --- a/dictionaries/ui/pages/errorpage/ru.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/ru.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'Вы используете нестабильную версию, которая может содержать ошибки. Если вы считаете, что ошибка возникла из-за этого, отправьте нам свой отзыв.', 'UI:ErrorPage:KittyDisclaimer' => 'Ни один котёнок не пострадал во время создания этого GIF и этого релиза. - The R&D Team', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/sk.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/sk.dictionary.itop.errorpage.php index d4ce5f6f7..35cecba53 100644 --- a/dictionaries/ui/pages/errorpage/sk.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/sk.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'You are using an unstable version that may include bugs. If you think this error occurred because of this please send us your feedback!~~', 'UI:ErrorPage:KittyDisclaimer' => 'No kitty were injured during the making of this GIF and release. - The R&D Team~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/tr.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/tr.dictionary.itop.errorpage.php index f25cad8a7..64cf1f2d6 100644 --- a/dictionaries/ui/pages/errorpage/tr.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/tr.dictionary.itop.errorpage.php @@ -1,17 +1,18 @@ 'You are using an unstable version that may include bugs. If you think this error occurred because of this please send us your feedback!~~', 'UI:ErrorPage:KittyDisclaimer' => 'No kitty were injured during the making of this GIF and release. - The R&D Team~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/errorpage/zh_cn.dictionary.itop.errorpage.php b/dictionaries/ui/pages/errorpage/zh_cn.dictionary.itop.errorpage.php index 0aa3753d2..63d1e7982 100644 --- a/dictionaries/ui/pages/errorpage/zh_cn.dictionary.itop.errorpage.php +++ b/dictionaries/ui/pages/errorpage/zh_cn.dictionary.itop.errorpage.php @@ -1,4 +1,5 @@ '当前正在使用可能包含缺陷的不稳定版本. 如果确信错误是因为缺陷导致请反馈给我们!', 'UI:ErrorPage:KittyDisclaimer' => '请放心, 制作此动画和发行版的时候没有任何猫咪受到伤害. - 研发团队', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/cs.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/cs.dictionary.itop.notifications-center.php index df87d7d80..d6be0afda 100644 --- a/dictionaries/ui/pages/notifications-center/cs.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/cs.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/da.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/da.dictionary.itop.notifications-center.php index 5bfcbea02..a48674753 100644 --- a/dictionaries/ui/pages/notifications-center/da.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/da.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/de.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/de.dictionary.itop.notifications-center.php index c8eb098da..490d94ecd 100644 --- a/dictionaries/ui/pages/notifications-center/de.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/de.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/en.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/en.dictionary.itop.notifications-center.php index 22d4e844a..f73b22e07 100644 --- a/dictionaries/ui/pages/notifications-center/en.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/en.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel', @@ -29,4 +30,4 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/en_gb.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/en_gb.dictionary.itop.notifications-center.php index 8489ff10b..ef6f0ab4b 100644 --- a/dictionaries/ui/pages/notifications-center/en_gb.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/en_gb.dictionary.itop.notifications-center.php @@ -1,10 +1,11 @@ 'Notifications centre', 'UI:NotificationsCenter:Panel:Title' => 'Notifications centre', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel', @@ -16,4 +17,4 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/es_cr.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/es_cr.dictionary.itop.notifications-center.php index 0d9e9d304..d266c3285 100644 --- a/dictionaries/ui/pages/notifications-center/es_cr.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/es_cr.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:NotificationsCenter:Page:Title' => 'Centro de notificaciones', 'UI:NotificationsCenter:Panel:Title' => 'Centro de notificaciones', 'UI:NotificationsCenter:Panel:SubTitle' => 'Gestionar las notificaciones que ha recibido: cancelar la suscripción o limitarlas a un solo canal', @@ -19,4 +20,4 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:NotificationsCenter:Subscribe:Error' => 'Se produjo un error al suscribirse a las notificaciones seleccionadas.', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s de %2$s', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/fr.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/fr.dictionary.itop.notifications-center.php index f2bf91acc..09154ac10 100644 --- a/dictionaries/ui/pages/notifications-center/fr.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/fr.dictionary.itop.notifications-center.php @@ -1,15 +1,16 @@ 'Notifications', 'UI:NotificationsCenter:Panel:Title' => 'Notifications', 'UI:NotificationsCenter:Panel:SubTitle' => 'Gérer les Notifications dont vous êtes destinataire : désabonnez-vous des news, des méls ou des deux', @@ -21,4 +22,4 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:NotificationsCenter:Subscribe:Error' => 'Une erreur c\'est produite, lors de votre ré-inscription.', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s sur %2$s', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/hu.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/hu.dictionary.itop.notifications-center.php index 7fb5b85fa..d34c99fb2 100644 --- a/dictionaries/ui/pages/notifications-center/hu.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/hu.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/it.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/it.dictionary.itop.notifications-center.php index f33fde143..87d83775f 100644 --- a/dictionaries/ui/pages/notifications-center/it.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/it.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/ja.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/ja.dictionary.itop.notifications-center.php index 8b838ad34..f681e7c6a 100644 --- a/dictionaries/ui/pages/notifications-center/ja.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/ja.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/nl.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/nl.dictionary.itop.notifications-center.php index 0a91211f5..01aeb288e 100644 --- a/dictionaries/ui/pages/notifications-center/nl.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/nl.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/pl.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/pl.dictionary.itop.notifications-center.php index 0cb184673..1c46759e5 100644 --- a/dictionaries/ui/pages/notifications-center/pl.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/pl.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Centrum powiadomień', 'UI:NotificationsCenter:Panel:Title' => 'Centrum powiadomień', 'UI:NotificationsCenter:Panel:SubTitle' => 'Zarządzaj otrzymanymi powiadomieniami: zrezygnuj z subskrypcji lub ogranicz je do jednego kanału', @@ -28,4 +29,4 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:NotificationsCenter:Subscribe:Error' => 'Wystąpił błąd podczas subskrybowania wybranych powiadomień.', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s poza %2$s', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/pt_br.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/pt_br.dictionary.itop.notifications-center.php index bde4825b3..a81df6bb7 100644 --- a/dictionaries/ui/pages/notifications-center/pt_br.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/pt_br.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/ru.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/ru.dictionary.itop.notifications-center.php index d06757ffc..7acd57eba 100644 --- a/dictionaries/ui/pages/notifications-center/ru.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/ru.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/sk.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/sk.dictionary.itop.notifications-center.php index ecb56e4cd..dc20b746d 100644 --- a/dictionaries/ui/pages/notifications-center/sk.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/sk.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/tr.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/tr.dictionary.itop.notifications-center.php index 59be7b132..8b395c089 100644 --- a/dictionaries/ui/pages/notifications-center/tr.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/tr.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/notifications-center/zh_cn.dictionary.itop.notifications-center.php b/dictionaries/ui/pages/notifications-center/zh_cn.dictionary.itop.notifications-center.php index 8b3aeeb46..de58611b6 100644 --- a/dictionaries/ui/pages/notifications-center/zh_cn.dictionary.itop.notifications-center.php +++ b/dictionaries/ui/pages/notifications-center/zh_cn.dictionary.itop.notifications-center.php @@ -1,4 +1,5 @@ 'Notifications center~~', 'UI:NotificationsCenter:Panel:Title' => 'Notifications center~~', 'UI:NotificationsCenter:Panel:SubTitle' => 'Manage Notifications that you have received : unsubscribe or limit them to a single channel~~', @@ -29,4 +30,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:NotificationsCenter:Subscribe:Error' => 'An error occurred while subscribing to the selected notifications.~~', 'UI:NotificationsCenter:Channel:OutOf:Text' => '%1$s out of %2$s~~', 'UI:NotificationsCenter:Advanced:Input:Label' => '%1$s: %2$s~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/cs.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/cs.dictionary.itop.oauth.landing.php index 64888d360..b4dce9086 100644 --- a/dictionaries/ui/pages/oauth.landing/cs.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/cs.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/da.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/da.dictionary.itop.oauth.landing.php index 6c478e544..1005d5e32 100644 --- a/dictionaries/ui/pages/oauth.landing/da.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/da.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/de.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/de.dictionary.itop.oauth.landing.php index 6aaaabbbf..09b0b2d67 100644 --- a/dictionaries/ui/pages/oauth.landing/de.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/de.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/en.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/en.dictionary.itop.oauth.landing.php index 2bd5d45bf..564383f04 100644 --- a/dictionaries/ui/pages/oauth.landing/en.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/en.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/en_gb.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/en_gb.dictionary.itop.oauth.landing.php index 82fed5d8b..c5d69628a 100644 --- a/dictionaries/ui/pages/oauth.landing/en_gb.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/en_gb.dictionary.itop.oauth.landing.php @@ -1,10 +1,11 @@ 'OAuth token creation', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/es_cr.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/es_cr.dictionary.itop.oauth.landing.php index d4fb84590..b3dd16658 100644 --- a/dictionaries/ui/pages/oauth.landing/es_cr.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/es_cr.dictionary.itop.oauth.landing.php @@ -1,12 +1,13 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'core/Operation:Landing/Title' => 'Creación de tokens OAuth', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/fr.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/fr.dictionary.itop.oauth.landing.php index d0d990255..e162ac8c6 100644 --- a/dictionaries/ui/pages/oauth.landing/fr.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/fr.dictionary.itop.oauth.landing.php @@ -1,14 +1,15 @@ 'Création d\'un jeton OAuth', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/hu.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/hu.dictionary.itop.oauth.landing.php index fafd2958d..824c105d9 100644 --- a/dictionaries/ui/pages/oauth.landing/hu.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/hu.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/it.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/it.dictionary.itop.oauth.landing.php index 23309efc6..cbcec1257 100644 --- a/dictionaries/ui/pages/oauth.landing/it.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/it.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/ja.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/ja.dictionary.itop.oauth.landing.php index 593abb2a7..cd112298b 100644 --- a/dictionaries/ui/pages/oauth.landing/ja.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/ja.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/nl.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/nl.dictionary.itop.oauth.landing.php index 56e4e99a1..034a7e64f 100644 --- a/dictionaries/ui/pages/oauth.landing/nl.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/nl.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/pl.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/pl.dictionary.itop.oauth.landing.php index 246b2792f..84140b4d9 100644 --- a/dictionaries/ui/pages/oauth.landing/pl.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/pl.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'Tworzenie tokena OAuth', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/pt_br.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/pt_br.dictionary.itop.oauth.landing.php index 8b3883330..d479742e8 100644 --- a/dictionaries/ui/pages/oauth.landing/pt_br.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/pt_br.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/ru.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/ru.dictionary.itop.oauth.landing.php index 693702820..f909f2e5f 100644 --- a/dictionaries/ui/pages/oauth.landing/ru.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/ru.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/sk.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/sk.dictionary.itop.oauth.landing.php index 60c73cfcc..441bfe410 100644 --- a/dictionaries/ui/pages/oauth.landing/sk.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/sk.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/tr.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/tr.dictionary.itop.oauth.landing.php index d5ae9275b..77a932dc9 100644 --- a/dictionaries/ui/pages/oauth.landing/tr.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/tr.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth token creation~~', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/oauth.landing/zh_cn.dictionary.itop.oauth.landing.php b/dictionaries/ui/pages/oauth.landing/zh_cn.dictionary.itop.oauth.landing.php index aa05ce793..9fa69a797 100644 --- a/dictionaries/ui/pages/oauth.landing/zh_cn.dictionary.itop.oauth.landing.php +++ b/dictionaries/ui/pages/oauth.landing/zh_cn.dictionary.itop.oauth.landing.php @@ -1,4 +1,5 @@ 'OAuth令牌创建', -)); \ No newline at end of file +]); diff --git a/dictionaries/ui/pages/preferences/cs.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/cs.dictionary.itop.preferences.php index 89530d02d..64feaf523 100644 --- a/dictionaries/ui/pages/preferences/cs.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/cs.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Předvolby', 'UI:Preferences:UserInterface:Title' => 'Uživatelské rozhraní', 'UI:Preferences:General:Title' => 'Obecné', @@ -45,5 +46,5 @@ Dict::Add('CS CZ', 'Czech', 'Čeština', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Váš zástupný obrázek byl úspěšně aktualizován', 'UI:Preferences:Notifications' => 'Upozornění', 'UI:Preferences:Notifications+' => 'Nastavení upozornění, která chcete dostávat na této stránce.', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/da.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/da.dictionary.itop.preferences.php index fbe14c99f..6f63553d4 100644 --- a/dictionaries/ui/pages/preferences/da.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/da.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Preferences~~', 'UI:Preferences:UserInterface:Title' => 'User interface~~', 'UI:Preferences:General:Title' => 'General~~', @@ -45,5 +46,5 @@ Dict::Add('DA DA', 'Danish', 'Dansk', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/de.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/de.dictionary.itop.preferences.php index b3d8b13da..f2b285c36 100644 --- a/dictionaries/ui/pages/preferences/de.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/de.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Einstellungen', 'UI:Preferences:UserInterface:Title' => 'Benutzerinterface', 'UI:Preferences:General:Title' => 'Generell', @@ -45,5 +46,5 @@ Dict::Add('DE DE', 'German', 'Deutsch', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Ihr Platzhalterbild wurde erfolgreich aktualisiert.', 'UI:Preferences:Notifications' => 'Benachrichtigungen', 'UI:Preferences:Notifications+' => 'Konfigurieren Sie die Benachrichtigungen, die Sie erhalten möchten. auf dieser Seite.', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/en.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/en.dictionary.itop.preferences.php index 184ae1a2e..0347d0b11 100644 --- a/dictionaries/ui/pages/preferences/en.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/en.dictionary.itop.preferences.php @@ -1,4 +1,5 @@ 'Preferences', 'UI:Preferences:UserInterface:Title' => 'User interface', 'UI:Preferences:General:Title' => 'General', @@ -54,5 +55,5 @@ Dict::Add('EN US', 'English', 'English', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated', 'UI:Preferences:Notifications' => 'Notifications', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/en_gb.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/en_gb.dictionary.itop.preferences.php index 9015c2d55..658f40961 100644 --- a/dictionaries/ui/pages/preferences/en_gb.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/en_gb.dictionary.itop.preferences.php @@ -1,11 +1,12 @@ 'Preferences', 'UI:Preferences:UserInterface:Title' => 'User interface', 'UI:Preferences:General:Title' => 'General', @@ -41,5 +42,5 @@ Dict::Add('EN GB', 'British English', 'British English', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated', 'UI:Preferences:Notifications' => 'Notifications', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/es_cr.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/es_cr.dictionary.itop.preferences.php index d32d5da85..1722bc09a 100644 --- a/dictionaries/ui/pages/preferences/es_cr.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/es_cr.dictionary.itop.preferences.php @@ -1,13 +1,14 @@ - * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ -Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( +Dict::Add('ES CR', 'Spanish', 'Español, Castellano', [ 'UI:Preferences:Title' => 'Preferencias', 'UI:Preferences:UserInterface:Title' => 'Interfaz de Usuario', 'UI:Preferences:General:Title' => 'General', @@ -43,5 +44,5 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellano', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Imagen de marcador de posición se ha actualizado correctamente.', 'UI:Preferences:Notifications' => 'Notificaciones', 'UI:Preferences:Notifications+' => 'Configure las notificaciones que desea recibir en esta página.', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/fr.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/fr.dictionary.itop.preferences.php index bd2dd9b11..db1561b55 100644 --- a/dictionaries/ui/pages/preferences/fr.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/fr.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Préférences', 'UI:Preferences:UserInterface:Title' => 'Interface utilisateur', 'UI:Preferences:General:Title' => 'Général', @@ -45,5 +46,5 @@ Dict::Add('FR FR', 'French', 'Français', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Votre avatar a été mis à jour avec succès', 'UI:Preferences:Notifications' => 'Notifications', 'UI:Preferences:Notifications+' => 'Désabonnez-vous des notifications qui vous importunent (emails et news) en suivant ce lien.', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/hu.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/hu.dictionary.itop.preferences.php index 64a5668a1..e56da661b 100644 --- a/dictionaries/ui/pages/preferences/hu.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/hu.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Beállítások', 'UI:Preferences:UserInterface:Title' => 'Felhasználói felület', 'UI:Preferences:General:Title' => 'Általános beállítások', @@ -45,5 +46,5 @@ Dict::Add('HU HU', 'Hungarian', 'Magyar', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/it.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/it.dictionary.itop.preferences.php index 95ba358a7..0265ae66a 100644 --- a/dictionaries/ui/pages/preferences/it.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/it.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Preferenze', 'UI:Preferences:UserInterface:Title' => 'Interfaccia utente', 'UI:Preferences:General:Title' => 'Generale', @@ -45,5 +46,5 @@ Dict::Add('IT IT', 'Italian', 'Italiano', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/ja.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/ja.dictionary.itop.preferences.php index f29871ae3..f3fae6131 100644 --- a/dictionaries/ui/pages/preferences/ja.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/ja.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Preferences~~', 'UI:Preferences:UserInterface:Title' => 'User interface~~', 'UI:Preferences:General:Title' => 'General~~', @@ -45,5 +46,5 @@ Dict::Add('JA JP', 'Japanese', '日本語', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/nl.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/nl.dictionary.itop.preferences.php index d7416dbff..7f33f25f8 100644 --- a/dictionaries/ui/pages/preferences/nl.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/nl.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Voorkeuren', 'UI:Preferences:UserInterface:Title' => 'Gebruikersinterface', 'UI:Preferences:General:Title' => 'Algemeen', @@ -45,5 +46,5 @@ Dict::Add('NL NL', 'Dutch', 'Nederlands', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/pl.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/pl.dictionary.itop.preferences.php index 0395b33c9..a499f25f5 100644 --- a/dictionaries/ui/pages/preferences/pl.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/pl.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Preferencje', 'UI:Preferences:UserInterface:Title' => 'Interfejs użytkownika', 'UI:Preferences:General:Title' => 'Ogólne', @@ -45,5 +46,5 @@ Dict::Add('PL PL', 'Polish', 'Polski', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Twój obraz zastępczy został pomyślnie zaktualizowany', 'UI:Preferences:Notifications' => 'Powiadomienia', 'UI:Preferences:Notifications+' => 'Skonfiguruj powiadomienia, które chcesz otrzymywać na tej stronie.', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/pt_br.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/pt_br.dictionary.itop.preferences.php index 199354750..d939c09ad 100644 --- a/dictionaries/ui/pages/preferences/pt_br.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/pt_br.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Preferências', 'UI:Preferences:UserInterface:Title' => 'Interface de usuário', 'UI:Preferences:General:Title' => 'Geral', @@ -45,5 +46,5 @@ Dict::Add('PT BR', 'Brazilian', 'Brazilian', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/ru.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/ru.dictionary.itop.preferences.php index 82790bbf0..94a739748 100755 --- a/dictionaries/ui/pages/preferences/ru.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/ru.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Предпочтения', 'UI:Preferences:UserInterface:Title' => 'Пользовательский интерфейс', 'UI:Preferences:General:Title' => 'Основные', @@ -45,5 +46,5 @@ Dict::Add('RU RU', 'Russian', 'Русский', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/sk.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/sk.dictionary.itop.preferences.php index cbe7e48f7..bc054f9f6 100644 --- a/dictionaries/ui/pages/preferences/sk.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/sk.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Preferences~~', 'UI:Preferences:UserInterface:Title' => 'User interface~~', 'UI:Preferences:General:Title' => 'General~~', @@ -45,5 +46,5 @@ Dict::Add('SK SK', 'Slovak', 'Slovenčina', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/tr.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/tr.dictionary.itop.preferences.php index 9470e915f..37dfcd193 100644 --- a/dictionaries/ui/pages/preferences/tr.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/tr.dictionary.itop.preferences.php @@ -1,15 +1,16 @@ 'Preferences~~', 'UI:Preferences:UserInterface:Title' => 'User interface~~', 'UI:Preferences:General:Title' => 'General~~', @@ -45,5 +46,5 @@ Dict::Add('TR TR', 'Turkish', 'Türkçe', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/ui/pages/preferences/zh_cn.dictionary.itop.preferences.php b/dictionaries/ui/pages/preferences/zh_cn.dictionary.itop.preferences.php index 6ff85293f..2ec082a1d 100644 --- a/dictionaries/ui/pages/preferences/zh_cn.dictionary.itop.preferences.php +++ b/dictionaries/ui/pages/preferences/zh_cn.dictionary.itop.preferences.php @@ -1,4 +1,5 @@ '首选项', 'UI:Preferences:UserInterface:Title' => '用户界面', 'UI:Preferences:General:Title' => '概况', @@ -53,5 +54,5 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Preferences:ChooseAPlaceholder:Success:Message' => 'Your placeholder image has been successfully updated~~', 'UI:Preferences:Notifications' => 'Notifications~~', 'UI:Preferences:Notifications+' => 'Configure the notifications you want to receive on this page.~~', - -)); + +]); diff --git a/dictionaries/zh_cn.dictionary.itop.core.php b/dictionaries/zh_cn.dictionary.itop.core.php index 2cf511679..142948e14 100644 --- a/dictionaries/zh_cn.dictionary.itop.core.php +++ b/dictionaries/zh_cn.dictionary.itop.core.php @@ -1,4 +1,5 @@ '%1s (已删除)', 'Core:DeletedObjectTip' => '对象已被删除于 %1$s (%2$s)', 'Core:UnknownObjectLabel' => '找不到对象 (类型: %1$s, 编号: %2$d)', @@ -157,8 +158,7 @@ Operators:
                'Core:Context=GUI:Console' => '命令行', 'Core:Context=CRON' => '定时任务', 'Core:Context=GUI:Portal' => '门户', -)); - +]); ////////////////////////////////////////////////////////////////////// // Classes in 'core/cmdb' @@ -169,7 +169,7 @@ Operators:
                // Class: CMDBChange // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CMDBChange' => '变更', 'Class:CMDBChange+' => '变更跟踪', 'Class:CMDBChange/Attribute:date' => '日期', @@ -184,13 +184,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:CMDBChange/Attribute:origin/Value:webservice-rest' => 'REST/JSON服务', 'Class:CMDBChange/Attribute:origin/Value:webservice-soap' => 'SOAP服务', 'Class:CMDBChange/Attribute:origin/Value:custom-extension' => '插件', -)); +]); // // Class: CMDBChangeOp // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CMDBChangeOp' => '变更操作', 'Class:CMDBChangeOp+' => '变更操作跟踪', 'Class:CMDBChangeOp/Attribute:change' => '变更', @@ -205,51 +205,51 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:CMDBChangeOp/Attribute:objkey+' => '对象id', 'Class:CMDBChangeOp/Attribute:finalclass' => 'CMDB 操作类型', 'Class:CMDBChangeOp/Attribute:finalclass+' => '根本属性的名称', -)); +]); // // Class: CMDBChangeOpCreate // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CMDBChangeOpCreate' => '对象创建', 'Class:CMDBChangeOpCreate+' => '对象创建跟踪', -)); +]); // // Class: CMDBChangeOpDelete // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CMDBChangeOpDelete' => '对象删除', 'Class:CMDBChangeOpDelete+' => '对象删除跟踪', -)); +]); // // Class: CMDBChangeOpSetAttribute // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CMDBChangeOpSetAttribute' => '对象变化', 'Class:CMDBChangeOpSetAttribute+' => '对象属性变化跟踪', 'Class:CMDBChangeOpSetAttribute/Attribute:attcode' => '属性', 'Class:CMDBChangeOpSetAttribute/Attribute:attcode+' => '更改的属性编码', -)); +]); // // Class: CMDBChangeOpSetAttributeScalar // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CMDBChangeOpSetAttributeScalar' => '属性更改跟踪', 'Class:CMDBChangeOpSetAttributeScalar+' => '对象属性更改跟踪', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue' => '旧值', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue+' => '以前该属性的值', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue' => '新值', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue+' => '属性的新值', -)); +]); // Used by CMDBChangeOp... & derived classes -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Change:ObjectCreated' => '对象已创建', 'Change:ObjectDeleted' => '对象已删除', 'Change:ObjectModified' => '对象已修改', @@ -266,35 +266,35 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Change:LinkSet:Added' => '已添加 %1$s', 'Change:LinkSet:Removed' => '已移除 %1$s', 'Change:LinkSet:Modified' => '已修改 %1$s', -)); +]); // // Class: CMDBChangeOpSetAttributeBlob // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CMDBChangeOpSetAttributeBlob' => '数据变更跟踪', 'Class:CMDBChangeOpSetAttributeBlob+' => '数据变更跟踪', 'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata' => '之前的值', 'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata+' => '该数据之前的内容', -)); +]); // // Class: CMDBChangeOpSetAttributeText // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:CMDBChangeOpSetAttributeText' => '文本变更跟踪', 'Class:CMDBChangeOpSetAttributeText+' => '文本变更跟踪', 'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata' => '旧值', 'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata+' => '该文本之前的内容', -)); +]); // // Class: Event // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Event' => '日志事件', 'Class:Event+' => '应用程序的内部事件', 'Class:Event/Attribute:message' => '消息', @@ -305,13 +305,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Event/Attribute:userinfo+' => '触发此事件的动作执行用户的身份', 'Class:Event/Attribute:finalclass' => '事件类型', 'Class:Event/Attribute:finalclass+' => '根本属性的名称', -)); +]); // // Class: EventNotification // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:EventNotification' => '通知事件', 'Class:EventNotification+' => '已发送通知的追踪', 'Class:EventNotification/Attribute:trigger_id' => '触发器', @@ -321,14 +321,14 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:EventNotification/Attribute:action_id' => '用户', 'Class:EventNotification/Attribute:action_id+' => '用户账号', 'Class:EventNotification/Attribute:object_id' => '对象编号', - 'Class:EventNotification/Attribute:object_id+' => '对象编号 (类型由触发器定义?)' -)); + 'Class:EventNotification/Attribute:object_id+' => '对象编号 (类型由触发器定义?)', +]); // // Class: EventNotificationEmail // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:EventNotificationEmail' => '邮件发送', 'Class:EventNotificationEmail+' => '跟踪每封已发送的邮件', 'Class:EventNotificationEmail/Attribute:to' => '收件人', @@ -345,13 +345,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:EventNotificationEmail/Attribute:body+' => '内容', 'Class:EventNotificationEmail/Attribute:attachments' => '附件', 'Class:EventNotificationEmail/Attribute:attachments+' => '', -)); +]); // // Class: EventIssue // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:EventIssue' => '问题事件', 'Class:EventIssue+' => '跟踪问题 (告警, 错误, 等)', 'Class:EventIssue/Attribute:issue' => '事件', @@ -368,13 +368,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:EventIssue/Attribute:callstack+' => '调用栈', 'Class:EventIssue/Attribute:data' => '数据', 'Class:EventIssue/Attribute:data+' => '更多信息', -)); +]); // // Class: EventWebService // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:EventWebService' => 'WebService调用', 'Class:EventWebService+' => '跟踪WebService调用', 'Class:EventWebService/Attribute:verb' => '命令', @@ -389,9 +389,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:EventWebService/Attribute:log_error+' => '结果错误记录', 'Class:EventWebService/Attribute:data' => '数据', 'Class:EventWebService/Attribute:data+' => '结果数据', -)); +]); -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:EventRestService' => 'REST/JSON 调用', 'Class:EventRestService+' => '跟踪REST/JSON服务调用', 'Class:EventRestService/Attribute:operation' => '操作', @@ -406,13 +406,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:EventRestService/Attribute:json_output+' => 'HTTP 响应 (json)', 'Class:EventRestService/Attribute:provider' => '提供者', 'Class:EventRestService/Attribute:provider+' => '实现该功能的PHP类', -)); +]); // // Class: EventLoginUsage // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:EventLoginUsage' => '登录频率', 'Class:EventLoginUsage+' => '连接至应用', 'Class:EventLoginUsage/Attribute:user_id' => '登录', @@ -421,13 +421,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:EventLoginUsage/Attribute:contact_name+' => '用户名', 'Class:EventLoginUsage/Attribute:contact_email' => '用户邮箱', 'Class:EventLoginUsage/Attribute:contact_email+' => '用户的邮箱地址', -)); +]); // // Class: EventNotificationNewsroom // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:EventNotificationNewsroom' => 'News sent~~', 'Class:EventNotificationNewsroom+' => '', 'Class:EventNotificationNewsroom/Attribute:title' => '标题', @@ -456,13 +456,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:EventNotificationNewsroom/Attribute:read_date+' => '', 'Class:EventNotificationNewsroom/Attribute:contact_id' => '联系人', 'Class:EventNotificationNewsroom/Attribute:contact_id+' => '', -)); +]); // // Class: Action // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Action' => '自定义操作', 'Class:Action+' => '用户定义的操作', 'Class:Action/ComplementaryName' => '%1$s: %2$s', @@ -492,24 +492,24 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Action:last_executions_tab_panel_title' => 'Executions of this action (%1$s)~~', 'Action:last_executions_tab_limit_days' => '过去 %1$s 天', 'Action:last_executions_tab_limit_none' => '无限制', -)); +]); // // Class: ActionNotification // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ActionNotification' => '通知', 'Class:ActionNotification+' => '通知 (抽象)', 'Class:ActionNotification/Attribute:language' => '语言', 'Class:ActionNotification/Attribute:language+' => '', -)); +]); // // Class: ActionEmail // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ActionEmail' => '邮件通知', 'Class:ActionEmail+' => '', 'Class:ActionEmail/Attribute:status+' => '此状态将决定提醒谁: @@ -576,14 +576,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'ActionEmail:preview_warning' => '实际收到的邮件在客户端中可能与当前在浏览器中的预览有所不同.', 'ActionEmail:preview_more_info' => '若需更多不同邮件客户端支持的CSS特性信息, 请参阅%1$s', 'ActionEmail:content_placeholder_missing' => '标识符 "%1$s" 在HTML中不存在. 字段 "%2$s" 的内容将不会包含在生成的邮件中.', -)); - +]); // // Class: ActionNewsroom // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'ActionNewsroom:trigger' => '触发器', 'ActionNewsroom:content' => '消息', 'ActionNewsroom:settings' => '设置', @@ -618,13 +617,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:ActionNewsroom/Attribute:recipients+' => 'An OQL query returning Contact objects~~', 'Class:ActionNewsroom/Attribute:url' => 'URL', 'Class:ActionNewsroom/Attribute:url+' => 'By default, it points to the object triggering the notification. But you can also specify a custom URL.~~', -)); +]); // // Class: Trigger // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Trigger' => '触发器', 'Class:Trigger+' => '自定义事件处理', 'Class:Trigger/ComplementaryName' => '%1$s, %2$s', @@ -643,13 +642,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:Trigger/Attribute:subscription_policy/Value:allow_no_channel' => 'Allow complete unsubscription~~', 'Class:Trigger/Attribute:subscription_policy/Value:force_at_least_one_channel' => 'Force at least one channel (News or Email)~~', 'Class:Trigger/Attribute:subscription_policy/Value:force_all_channels' => 'Deny unsubscription~~', -)); +]); // // Class: TriggerOnObject // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnObject' => '触发器 (类型依赖的)', 'Class:TriggerOnObject+' => '在指定类型对象上的触发器', 'Class:TriggerOnObject/Attribute:target_class' => '目标类型', @@ -658,115 +657,115 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:TriggerOnObject/Attribute:filter+' => '限定将激活触发器的对象 (目标类型的)', 'TriggerOnObject:WrongFilterQuery' => '错误的筛选查询: %1$s', 'TriggerOnObject:WrongFilterClass' => '筛选查询返回的对象必须是类型 "%1$s"', -)); +]); // // Class: TriggerOnPortalUpdate // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnPortalUpdate' => '触发器 (工单更新时)', 'Class:TriggerOnPortalUpdate+' => '终端用户更新工单时触发', -)); +]); // // Class: TriggerOnStateChange // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnStateChange' => '触发器 (当状态变化时)', 'Class:TriggerOnStateChange+' => '当对象状态变化时触发', 'Class:TriggerOnStateChange/Attribute:state' => '状态', 'Class:TriggerOnStateChange/Attribute:state+' => '', -)); +]); // // Class: TriggerOnStateEnter // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnStateEnter' => '触发器 (进入指定状态)', 'Class:TriggerOnStateEnter+' => '对象进入指定状态时触发', -)); +]); // // Class: TriggerOnStateLeave // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnStateLeave' => '触发器 (离开指定状态时)', 'Class:TriggerOnStateLeave+' => '对象离开指定状态时触发', -)); +]); // // Class: TriggerOnObjectCreate // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnObjectCreate' => '触发器 (对象创建时)', 'Class:TriggerOnObjectCreate+' => '对象创建时触发', -)); +]); // // Class: TriggerOnObjectDelete // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnObjectDelete' => '触发器 (对象删除时)', 'Class:TriggerOnObjectDelete+' => '指定类型或子类型对象删除时的触发器', -)); +]); // // Class: TriggerOnObjectUpdate // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnObjectUpdate' => '触发器 (对象更新时)', 'Class:TriggerOnObjectUpdate+' => '指定类型或子类型对象更新时的触发器', 'Class:TriggerOnObjectUpdate/Attribute:target_attcodes' => '目标字段', 'Class:TriggerOnObjectUpdate/Attribute:target_attcodes+' => '', -)); +]); // // Class: TriggerOnObjectMention // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnObjectMention' => '触发器 (对象提及时)', 'Class:TriggerOnObjectMention+' => '指定类型或子类型对象在属性日志中提及 (@xxx) 时的触发器', 'Class:TriggerOnObjectMention/Attribute:mentioned_filter' => '提及筛选', 'Class:TriggerOnObjectMention/Attribute:mentioned_filter+' => '限丁将激活此触发器的提及对象. 如果为空则任何类的提及对象将激活此触发器.', -)); +]); // // Class: TriggerOnAttributeBlobDownload // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnAttributeBlobDownload' => '触发器 (对象文档下载时)', 'Class:TriggerOnAttributeBlobDownload+' => '指定类型或子类型对象的文档下载时的触发器', 'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes' => '目标字段', 'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes+' => '', -)); +]); // // Class: TriggerOnThresholdReached // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TriggerOnThresholdReached' => '触发器 (基于阈值)', 'Class:TriggerOnThresholdReached+' => '当达到某个阈值时触发', 'Class:TriggerOnThresholdReached/Attribute:stop_watch_code' => '秒表', 'Class:TriggerOnThresholdReached/Attribute:stop_watch_code+' => '', 'Class:TriggerOnThresholdReached/Attribute:threshold_index' => '阈值', 'Class:TriggerOnThresholdReached/Attribute:threshold_index+' => '', -)); +]); // // Class: lnkTriggerAction // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkTriggerAction' => '操作/触发器', 'Class:lnkTriggerAction+' => '关联触发器和操作', 'Class:lnkTriggerAction/Attribute:action_id' => '操作', @@ -779,12 +778,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkTriggerAction/Attribute:trigger_name+' => '', 'Class:lnkTriggerAction/Attribute:order' => '顺序', 'Class:lnkTriggerAction/Attribute:order+' => '操作的执行顺序', -)); +]); // // Synchro Data Source // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:SynchroDataSource' => '数据源同步', 'Class:SynchroDataSource/Attribute:name' => '名称', 'Class:SynchroDataSource/Attribute:name+' => '', @@ -1078,13 +1077,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Core:Validator:Mandatory' => '这里必填', 'Core:Validator:MustBeInteger' => '必须是整数', 'Core:Validator:MustSelectOne' => '请选择', - 'INTERNAL:JQuery-DatePicker:LangCode' => 'zh-CN' -)); + 'INTERNAL:JQuery-DatePicker:LangCode' => 'zh-CN', +]); // // Class: TagSetFieldData // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:TagSetFieldData' => '类型%1$s的%2$s', 'Class:TagSetFieldData+' => '~~', 'Class:TagSetFieldData/Attribute:code' => '代码', @@ -1106,12 +1105,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Core:TagSetFieldData:ErrorAttCodeUpdateNotAllowed' => '标签 "属性编码" 不能更改', 'Core:TagSetFieldData:WhereIsThisTagTab' => '标签使用率 (%1$d)', 'Core:TagSetFieldData:NoEntryFound' => '此标签没有条目', -)); +]); // // Class: DBProperty // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:DBProperty' => '数据库属性', 'Class:DBProperty+' => '~~', 'Class:DBProperty/Attribute:name' => '名称', @@ -1124,12 +1123,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:DBProperty/Attribute:change_date+' => '', 'Class:DBProperty/Attribute:change_comment' => '备注', 'Class:DBProperty/Attribute:change_comment+' => '', -)); +]); // // Class: BackgroundTask // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:BackgroundTask' => '后台任务', 'Class:BackgroundTask+' => '', 'Class:BackgroundTask/Attribute:class_name' => '类型名称', @@ -1154,12 +1153,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:BackgroundTask/Attribute:running+' => '', 'Class:BackgroundTask/Attribute:status' => '状态', 'Class:BackgroundTask/Attribute:status+' => '', -)); +]); // // Class: AsyncTask // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:AsyncTask' => '异步任务', 'Class:AsyncTask+' => '', 'Class:AsyncTask/Attribute:created' => '已创建', @@ -1184,43 +1183,40 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:AsyncTask/Attribute:last_attempt+' => '~~', 'Class:AsyncTask:InvalidConfig_Class_Keys' => '配置 "async_task_retries[%1$s]" 的格式无效. 应该为包含以下值的数组: %2$s', 'Class:AsyncTask:InvalidConfig_Class_InvalidKey_Keys' => '配置 "async_task_retries[%1$s]" 的格式无效: 未知的值 "%2$s". 应该只包含以下值: %3$s', -)); +]); // // Class: AbstractResource // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:AbstractResource' => '抽象资源', 'Class:AbstractResource+' => '', -)); +]); // // Class: ResourceAdminMenu // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ResourceAdminMenu' => '资源管理菜单', 'Class:ResourceAdminMenu+' => '', -)); +]); // // Class: ResourceRunQueriesMenu // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ResourceRunQueriesMenu' => '资源运行查询菜单', 'Class:ResourceRunQueriesMenu+' => '', -)); +]); // // Class: Action // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:ResourceSystemMenu' => '资源系统菜单', 'Class:ResourceSystemMenu+' => '', -)); - - - +]); diff --git a/dictionaries/zh_cn.dictionary.itop.ui.php b/dictionaries/zh_cn.dictionary.itop.ui.php index 871168b07..720f21be4 100644 --- a/dictionaries/zh_cn.dictionary.itop.ui.php +++ b/dictionaries/zh_cn.dictionary.itop.ui.php @@ -1,15 +1,16 @@ '审计类别', 'Class:AuditCategory+' => '审计类别规定了需要被审计的对象的范围. 其组合了用于此范围内对象的所有审计规则', @@ -27,13 +28,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:AuditCategory/Attribute:warning_error_tolerance+' => '结果仍然显示为警告 (橙色) 的可允许的最大无效对象比例', 'Class:AuditCategory/Attribute:domains_list' => '审计域', 'Class:AuditCategory/Attribute:domains_list+' => '关联此类别的审计域列表', -)); +]); // // Class: AuditRule // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:AuditRule' => '审计规则', 'Class:AuditRule+' => '一条审计规则对应审计类别中的一项检查. 其应用于审计规则定义的对象范围', @@ -53,13 +54,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:AuditRule/Attribute:category_id+' => '该规则对应的类别', 'Class:AuditRule/Attribute:category_name' => '类别', 'Class:AuditRule/Attribute:category_name+' => '该规则对应的类名称', -)); +]); // // Class: AuditDomain // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:AuditDomain' => '审计域', 'Class:AuditDomain+' => '审计域用于分组审计规则. 审计域通常对应负责检查和修复错误的人', @@ -71,13 +72,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:AuditDomain/Attribute:icon+' => '', 'Class:AuditDomain/Attribute:categories_list' => '类别', 'Class:AuditDomain/Attribute:categories_list+' => '关联的审计类别', -)); +]); // // Class: lnkAuditCategoryToAuditDomain // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:lnkAuditCategoryToAuditDomain' => '关联审计类别/审计域', 'Class:lnkAuditCategoryToAuditDomain+' => '', 'Class:lnkAuditCategoryToAuditDomain/Attribute:category_id' => '类别', @@ -88,13 +89,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_id+' => '审计域', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name' => '名称', 'Class:lnkAuditCategoryToAuditDomain/Attribute:domain_name+' => '审计域名称', -)); +]); // // Class: QueryOQL // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:Query' => '查询', 'Class:Query+' => '查询是一种动态的数据集', 'Class:Query/Attribute:name' => '名称', @@ -121,7 +122,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:QueryOQL+' => '一种基于对象查询的语言', 'Class:QueryOQL/Attribute:oql' => '表达式', 'Class:QueryOQL/Attribute:oql+' => 'OQL表达式', -)); +]); ////////////////////////////////////////////////////////////////////// // Classes in 'addon/userrights' @@ -132,7 +133,7 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( // Class: User // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:User' => '用户', 'Class:User+' => '用户登录名', 'Class:User/Attribute:finalclass' => '账号类型', @@ -178,13 +179,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:User/Warning:NoContactHasImpact' => 'Cautious: there is no Person defined on this User, this prevents access to portals, news notifications and other side effects in back-office~~', 'Class:UserInternal' => '内部用户', 'Class:UserInternal+' => ITOP_APPLICATION_SHORT.'内部定义的用户', -)); +]); // // Class: URP_Profiles // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_Profiles' => '角色', 'Class:URP_Profiles+' => '用户角色', 'Class:URP_Profiles/Attribute:name' => '名称', @@ -193,13 +194,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:URP_Profiles/Attribute:description+' => '单行描述', 'Class:URP_Profiles/Attribute:user_list' => '用户', 'Class:URP_Profiles/Attribute:user_list+' => '拥有此角色的用户', -)); +]); // // Class: URP_Dimensions // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_Dimensions' => '维度', 'Class:URP_Dimensions+' => '应用维度 (定义纵深)', 'Class:URP_Dimensions/Attribute:name' => '名称', @@ -208,13 +209,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:URP_Dimensions/Attribute:description+' => '单行描述', 'Class:URP_Dimensions/Attribute:type' => '类型', 'Class:URP_Dimensions/Attribute:type+' => '类型名称或数据类型 (投影单位)', -)); +]); // // Class: URP_UserProfile // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_UserProfile' => '角色目标用户', 'Class:URP_UserProfile+' => '用户的角色', 'Class:URP_UserProfile/Name' => '关联 %1$s 和 %2$s', @@ -228,14 +229,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:URP_UserProfile/Attribute:profile+' => '角色名称', 'Class:URP_UserProfile/Attribute:reason' => '原因', 'Class:URP_UserProfile/Attribute:reason+' => '解释为什么此用户需要拥有此角色', -)); +]); // // Class: URP_UserOrg // - -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_UserOrg' => '用户组织', 'Class:URP_UserOrg+' => '可以访问的组织', 'Class:URP_UserOrg/Name' => '关联 %1$s 和 %2$s', @@ -249,13 +249,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:URP_UserOrg/Attribute:allowed_org_name+' => '可以访问的组织', 'Class:URP_UserOrg/Attribute:reason' => '原因', 'Class:URP_UserOrg/Attribute:reason+' => '解释为什么此用户可以访问此组织的数据', -)); +]); // // Class: URP_ProfileProjection // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_ProfileProjection' => '角色映射', 'Class:URP_ProfileProjection+' => '角色映射', 'Class:URP_ProfileProjection/Attribute:dimensionid' => '维度', @@ -270,13 +270,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:URP_ProfileProjection/Attribute:value+' => 'OQL 表达式 (使用$user) | constant | | +attribute code', 'Class:URP_ProfileProjection/Attribute:attribute' => '属性', 'Class:URP_ProfileProjection/Attribute:attribute+' => '目标属性编码 (可选)', -)); +]); // // Class: URP_ClassProjection // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_ClassProjection' => '类型映射', 'Class:URP_ClassProjection+' => '类型映射', 'Class:URP_ClassProjection/Attribute:dimensionid' => '维度', @@ -289,13 +289,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:URP_ClassProjection/Attribute:value+' => 'OQL表达式 (使用$this) | constant | | +attribute code', 'Class:URP_ClassProjection/Attribute:attribute' => '属性', 'Class:URP_ClassProjection/Attribute:attribute+' => '目标属性编码 (可选)', -)); +]); // // Class: URP_ActionGrant // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_ActionGrant' => '操作权限', 'Class:URP_ActionGrant+' => '类型权限', 'Class:URP_ActionGrant/Attribute:profileid' => '角色', @@ -312,13 +312,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:URP_ActionGrant/Attribute:permission/Value:no+' => '否', 'Class:URP_ActionGrant/Attribute:action' => '操作', 'Class:URP_ActionGrant/Attribute:action+' => '可用于指定类型上的操作权限', -)); +]); // // Class: URP_StimulusGrant // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_StimulusGrant' => '权限调整', 'Class:URP_StimulusGrant+' => '对象生命周期中权限的调整', 'Class:URP_StimulusGrant/Attribute:profileid' => '角色', @@ -335,25 +335,25 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => '否', 'Class:URP_StimulusGrant/Attribute:stimulus' => '调整', 'Class:URP_StimulusGrant/Attribute:stimulus+' => '调整编码', -)); +]); // // Class: URP_AttributeGrant // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:URP_AttributeGrant' => '属性权限', 'Class:URP_AttributeGrant+' => '属性的权限', 'Class:URP_AttributeGrant/Attribute:actiongrantid' => '操作权限', 'Class:URP_AttributeGrant/Attribute:actiongrantid+' => '操作权限', 'Class:URP_AttributeGrant/Attribute:attcode' => '属性', 'Class:URP_AttributeGrant/Attribute:attcode+' => '属性编码', -)); +]); // // Class: UserDashboard // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Class:UserDashboard' => '用户仪表盘', 'Class:UserDashboard+' => '', 'Class:UserDashboard/Attribute:user_id' => '用户', @@ -362,12 +362,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Class:UserDashboard/Attribute:menu_code+' => '', 'Class:UserDashboard/Attribute:contents' => '内容', 'Class:UserDashboard/Attribute:contents+' => '', -)); +]); // // Duplicated into itop-welcome-itil ( will be removed from here...) // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:WelcomeMenu' => '欢迎', 'Menu:WelcomeMenu+' => '欢迎使用'.ITOP_APPLICATION_SHORT, 'Menu:WelcomeMenuPage' => '欢迎', @@ -386,13 +386,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Menu:MyShortcuts' => '我的快捷方式', 'Menu:DataAdministration' => '数据管理', 'Menu:DataAdministration+' => '数据管理', -)); +]); // // String from the User Interface: menu, messages, buttons, etc... // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'BooleanLabel:yes' => '是', 'BooleanLabel:no' => '否', 'UI:Login:Title' => ITOP_APPLICATION_SHORT.'登录', @@ -1536,13 +1536,13 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Search:Criteria:HierarchicalKey:ChildrenIncluded:Hint' => '将会包含选中对象的子集.', 'UI:Search:Criteria:Raw:Filtered' => '已筛选', 'UI:Search:Criteria:Raw:FilteredOn' => '基于%1$s筛选', - 'UI:StateChanged' => '状态已改变' -)); + 'UI:StateChanged' => '状态已改变', +]); // // Expression to Natural language // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Expression:Operator:AND' => ' 与 ', 'Expression:Operator:OR' => ' 或 ', 'Expression:Operator:=' => ': ', @@ -1555,12 +1555,12 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Expression:Unit:Long:MINUTE' => '分钟', 'Expression:Verb:NOW' => '现在', 'Expression:Verb:ISNULL' => ': 未定义', -)); +]); // // iTop Newsroom menu // -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'UI:Newsroom:NoNewMessage' => '没有新消息', 'UI:Newsroom:XNewMessage' => '%1$s 条新消息', 'UI:Newsroom:MarkAllAsRead' => '标记所有消息为已读', @@ -1575,10 +1575,9 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'UI:Newsroom:Priority:2:Tooltip' => '紧急', 'UI:Newsroom:Priority:3:Tooltip' => '重要', 'UI:Newsroom:Priority:4:Tooltip' => '普通', -)); +]); - -Dict::Add('ZH CN', 'Chinese', '简体中文', array( +Dict::Add('ZH CN', 'Chinese', '简体中文', [ 'Menu:DataSources' => '同步数据源', 'Menu:DataSources+' => '所有同步数据源', 'Menu:AuditCategories' => '审计类别', @@ -1606,4 +1605,4 @@ Dict::Add('ZH CN', 'Chinese', '简体中文', array( 'Menu:Integrations' => '集成', 'Menu:Integrations+' => '~~', -)); +]); diff --git a/index.php b/index.php index 1b66a7dad..f96f6a1a2 100644 --- a/index.php +++ b/index.php @@ -1,4 +1,5 @@ Error: Unable to read the configuration file: '$sConfigFile'. Please check the access rights on this file.

                "; - } - else if (is_writable($sConfigFile)) - { - require_once (APPROOT.'setup/setuputils.class.inc.php'); - if (SetupUtils::IsInReadOnlyMode()) - { + } elseif (is_writable($sConfigFile)) { + require_once(APPROOT.'setup/setuputils.class.inc.php'); + if (SetupUtils::IsInReadOnlyMode()) { echo "

                Warning: the application is currently in maintenance, please wait.

                "; echo "

                Click here to ignore this warning and continue to run iTop in read-only mode.

                "; - } - else - { + } else { echo <<Security Warning: the configuration file '{$sConfigFile}' should be read-only.

                Please modify the access rights to this file.

                Click here to ignore this warning and continue to run iTop.

                HTML; } - } - else - { + } else { header("Location: $sStartPage"); } -} -else -{ +} else { // Config file does not exist, need to run the setup wizard to create it header("Location: $sSetupPage"); } diff --git a/log/index.php b/log/index.php index 112807643..fcb6f20af 100644 --- a/log/index.php +++ b/log/index.php @@ -1,2 +1,3 @@ ') === false) - { + } elseif (strpos($sFieldCode, '->') === false) { $oAttDef = MetaModel::GetAttributeDef($sClassName, $sFieldCode); $bResult = $oAttDef->IsExternalKey(); } @@ -61,26 +58,22 @@ function IsIdField($sClassName, $sFieldCode) */ function GetMappingsForExtKey($sAttCode, AttributeDefinition $oExtKeyAttDef, $bAdvanced) { - $aResult = array(); + $aResult = []; $sTargetClass = $oExtKeyAttDef->GetTargetClass(); - foreach(MetaModel::ListAttributeDefs($sTargetClass) as $sTargetAttCode => $oTargetAttDef) - { - if (MetaModel::IsReconcKey($sTargetClass, $sTargetAttCode)) - { + foreach (MetaModel::ListAttributeDefs($sTargetClass) as $sTargetAttCode => $oTargetAttDef) { + if (MetaModel::IsReconcKey($sTargetClass, $sTargetAttCode)) { $bExtKey = $oTargetAttDef->IsExternalKey(); $sSuffix = ''; - if ($bExtKey) - { + if ($bExtKey) { $sSuffix = '->id'; } - if ($bAdvanced || !$bExtKey) - { + if ($bAdvanced || !$bExtKey) { // When not in advanced mode do not allow to use reconciliation keys (on external keys) if they are themselves external keys ! $aResult[$sAttCode.'->'.$sTargetAttCode] = $oExtKeyAttDef->GetLabel().'->'.$oTargetAttDef->GetLabel().$sSuffix; } } } - return $aResult; + return $aResult; } /** @@ -102,15 +95,15 @@ function GetMappingsForExtKey($sAttCode, AttributeDefinition $oExtKeyAttDef, $bA */ function GetMappingForField($sClassName, $sFieldName, $iFieldIndex, $bAdvancedMode, $sDefaultChoice) { - $aChoices = array('' => Dict::S('UI:CSVImport:MappingSelectOne')); + $aChoices = ['' => Dict::S('UI:CSVImport:MappingSelectOne')]; $aChoices[':none:'] = Dict::S('UI:CSVImport:MappingNotApplicable'); $sFieldCode = ''; // Code of the attribute, if there is a match - $aMatches = array(); + $aMatches = []; if (preg_match('/^(.+)\*$/', $sFieldName, $aMatches)) { // Remove any trailing "star" character. // A star character at the end can be used to indicate a mandatory field $sFieldName = $aMatches[1]; - } else if (preg_match('/^(.+)\*->(.+)$/', $sFieldName, $aMatches)) { + } elseif (preg_match('/^(.+)\*->(.+)$/', $sFieldName, $aMatches)) { // Remove any trailing "star" character before the arrow (->) // A star character at the end can be used to indicate a mandatory field $sFieldName = $aMatches[1].'->'.$aMatches[2]; @@ -135,7 +128,7 @@ function GetMappingForField($sClassName, $sFieldName, $iFieldIndex, $bAdvancedMo // Note: Could not use "MetaModel::GetFriendlyNameAttributeCode($sTargetClass) === $sTargetAttCode" as it would return empty because the friendlyname is composite. if (MetaModel::IsReconcKey($sTargetClass, $sTargetAttCode) || ($oTargetAttDef instanceof AttributeFriendlyName)) { $bExtKey = $oTargetAttDef->IsExternalKey(); - $aSignatures = array(); + $aSignatures = []; $aSignatures[] = $oAttDef->GetLabel().'->'.$oTargetAttDef->GetLabel(); $aSignatures[] = $sAttCode.'->'.$sTargetAttCode; if ($bExtKey) { @@ -154,8 +147,7 @@ function GetMappingForField($sClassName, $sFieldName, $iFieldIndex, $bAdvancedMo } } } - } - else if ( + } elseif ( ($oAttDef->IsWritable() && (!$oAttDef->IsLinkset() || ($bAdvancedMode && $oAttDef->IsIndirect()))) || ($oAttDef instanceof AttributeFriendlyName) ) { @@ -171,18 +163,17 @@ function GetMappingForField($sClassName, $sFieldName, $iFieldIndex, $bAdvancedMo $bIsIdField = IsIdField($sClassName, $sFieldCode); foreach ($aChoices as $sAttCode => $sLabel) { $bSelected = false; - if ($bIsIdField && (!$bAdvancedMode)) // When not in advanced mode, ID are mapped to n/a - { + if ($bIsIdField && (!$bAdvancedMode)) { // When not in advanced mode, ID are mapped to n/a if ($sAttCode == ':none:') { $bSelected = true; } - } else if (empty($sFieldCode) && (strpos($sFieldName, '->') !== false)) { + } elseif (empty($sFieldCode) && (strpos($sFieldName, '->') !== false)) { if ($sAttCode == ':none:') { $bSelected = true; } - } else if (is_null($sDefaultChoice) && ($sFieldCode == $sAttCode)) { + } elseif (is_null($sDefaultChoice) && ($sFieldCode == $sAttCode)) { $bSelected = true; - } else if (!is_null($sDefaultChoice) && ($sDefaultChoice == $sAttCode)) { + } elseif (!is_null($sDefaultChoice) && ($sDefaultChoice == $sAttCode)) { $bSelected = true; } $oOption = SelectOptionUIBlockFactory::MakeForSelectOption($sAttCode, $sLabel, $bSelected); @@ -192,19 +183,16 @@ function GetMappingForField($sClassName, $sFieldName, $iFieldIndex, $bAdvancedMo return $oSelect; } -try -{ +try { require_once(APPROOT.'/application/startup.inc.php'); require_once(APPROOT.'/application/loginwebpage.class.inc.php'); IssueLog::Trace('----- Request: '.utils::GetRequestUri(), LogChannels::WEB_REQUEST); LoginWebPage::DoLogin(); // Check user rights and prompt if needed - $sOperation = utils::ReadParam('operation', ''); - switch($sOperation) - { + switch ($sOperation) { case 'parser_preview': $oPage = new AjaxPage(""); $oPage->SetContentType('text/html'); @@ -245,7 +233,7 @@ try $aColumns[] = ''; // first line as header - if($bFirstLineAsHeader){ + if ($bFirstLineAsHeader) { foreach ($aRow as $sCell) { $aColumns[] = ["label" => utils::EscapeHtml($sCell)]; } @@ -254,7 +242,7 @@ try // default headers for ($iDataColumnNumber = 0 ; $iDataColumnNumber < count($aRow) ; $iDataColumnNumber++) { - $aColumns[] = ["label" => Dict::Format('UI:CSVImport:Column', $iDataColumnNumber+1)]; + $aColumns[] = ["label" => Dict::Format('UI:CSVImport:Column', $iDataColumnNumber + 1)]; } } @@ -289,8 +277,8 @@ try $sInitFieldMapping = utils::ReadParam('init_field_mapping', '', false, 'raw_data'); $sInitSearchField = utils::ReadParam('init_search_field', '', false, 'raw_data'); - $aInitFieldMapping = empty($sInitFieldMapping) ? array() : json_decode($sInitFieldMapping, true); - $aInitSearchField = empty($sInitSearchField) ? array() : json_decode($sInitSearchField, true); + $aInitFieldMapping = empty($sInitFieldMapping) ? [] : json_decode($sInitFieldMapping, true); + $aInitSearchField = empty($sInitSearchField) ? [] : json_decode($sInitSearchField, true); $oCSVParser = new CSVParser($sData, $sSeparator, $sTextQualifier, MetaModel::GetConfig()->Get('max_execution_time_per_loop')); $aData = $oCSVParser->ToArray($iLinesToSkip, null, 3 /* Max: 1 header line + 2 lines of sample data */); @@ -349,7 +337,7 @@ try // Propose a reconciliation scheme // $aReconciliationKeys = MetaModel::GetReconcKeys($sClassName); - $aMoreReconciliationKeys = array(); // Store: key => void to automatically remove duplicates + $aMoreReconciliationKeys = []; // Store: key => void to automatically remove duplicates foreach ($aReconciliationKeys as $sAttCode) { if (!MetaModel::IsValidAttCode($sClassName, $sAttCode)) { continue; @@ -371,7 +359,7 @@ try } else { // The reconciliation scheme is given (navigating back in the wizard) // - $aDefaultKeys = array(); + $aDefaultKeys = []; foreach ($aInitSearchField as $iSearchField => $void) { $sAttCodeEx = $aInitFieldMapping[$iSearchField]; $aDefaultKeys[] = $sAttCodeEx; @@ -380,7 +368,7 @@ try } // Read only attributes (will be forced to "search") - $aReadOnlyKeys = array(); + $aReadOnlyKeys = []; foreach (MetaModel::ListAttributeDefs($sClassName) as $sAttCode => $oAttDef) { if (!$oAttDef->IsWritable()) { $aReadOnlyKeys[] = $sAttCode; @@ -397,7 +385,7 @@ try EOF ); } - break; + break; case 'get_csv_template': $sClassName = utils::ReadParam('class_name'); @@ -406,7 +394,7 @@ EOF $oSearch = new DBObjectSearch($sClassName); $oSearch->AddCondition('id', 0, '='); // Make sure we create an empty set $oSet = new CMDBObjectSet($oSearch); - $sResult = cmdbAbstractObject::GetSetAsCSV($oSet, array('showMandatoryFields' => true)); + $sResult = cmdbAbstractObject::GetSetAsCSV($oSet, ['showMandatoryFields' => true]); $sClassDisplayName = MetaModel::GetName($sClassName); $sDisposition = utils::ReadParam('disposition', 'inline'); @@ -419,8 +407,8 @@ EOF require_once(APPROOT.'/application/excelexporter.class.inc.php'); $writer = new XLSXWriter(); $writer->setAuthor(UserRights::GetUserFriendlyName()); - $aHeaders = array(0 => explode(',', $sResult)); // comma is the default separator - $writer->writeSheet($aHeaders, $sClassDisplayName, array()); + $aHeaders = [0 => explode(',', $sResult)]; // comma is the default separator + $writer->writeSheet($aHeaders, $sClassDisplayName, []); $oPage->add($writer->writeToString()); break; @@ -446,9 +434,6 @@ EOF break; } $oPage->output(); -} -catch (Exception $e) -{ +} catch (Exception $e) { IssueLog::Error($e->getMessage()); } - diff --git a/pages/ajax.document.php b/pages/ajax.document.php index 19b321e7a..3320c298f 100644 --- a/pages/ajax.document.php +++ b/pages/ajax.document.php @@ -1,4 +1,5 @@ 0)) -{ +if (array_key_exists('HTTP_IF_MODIFIED_SINCE', $_SERVER) && (strlen($_SERVER['HTTP_IF_MODIFIED_SINCE']) > 0)) { // The content is garanteed to be unmodified since the URL includes a signature based on the contents of the document header('Last-Modified: Mon, 1 January 2018 00:00:00 GMT', true, 304); // Any date in the past exit; } -try -{ +try { require_once(APPROOT.'/application/application.inc.php'); require_once(APPROOT.'/application/startup.inc.php'); @@ -48,19 +46,14 @@ try LoginWebPage::DoLoginEx('backoffice', false); $id = utils::ReadParam('id', ''); $sField = utils::ReadParam('field', ''); - if ($sClass == 'Attachment') - { + if ($sClass == 'Attachment') { $iCacheSec = 31556926; // One year ahead: an attachment cannot change - } - else - { + } else { $iCacheSec = (int)utils::ReadParam('cache', 0); } - if (!empty($sClass) && ($sClass != 'InlineImage') && !empty($id) && !empty($sField)) - { + if (!empty($sClass) && ($sClass != 'InlineImage') && !empty($id) && !empty($sField)) { ormDocument::DownloadDocument($oPage, $sClass, $id, $sField, 'attachment'); - if ($iCacheSec > 0) - { + if ($iCacheSec > 0) { $oPage->set_cache($iCacheSec); // X-Frame http header : set in page constructor, but we need to allow frame integration for this specific page // so we're resetting its value ! (see N°3416) @@ -88,7 +81,7 @@ try $oPage->add_header("Last-Modified: Wed, 15 Jun 2016 13:21:15 GMT"); // An arbitrary date in the past is ok } break; - + case 'dict': $sSignature = Utils::ReadParam('s', ''); // Sanitization prevents / and .. $oPage->SetContentType('text/javascript'); @@ -100,17 +93,14 @@ try $oPage->add(file_get_contents(Utils::GetCachePath().$sSignature.'.js')); break; - + default: - $oPage->p("Invalid query."); + $oPage->p("Invalid query."); } $oPage->output(); -} -catch (Exception $e) -{ +} catch (Exception $e) { // note: transform to cope with XSS attacks echo utils::EscapeHtml($e->GetMessage()); IssueLog::Error($e->getMessage()."\nDebug trace:\n".$e->getTraceAsString()); } - diff --git a/pages/ajax.searchform.php b/pages/ajax.searchform.php index e50d5edfd..3b4f3451a 100644 --- a/pages/ajax.searchform.php +++ b/pages/ajax.searchform.php @@ -1,4 +1,5 @@ ComputeAndReport('Data model loaded'); $oKPI = new ExecutionKPI(); @@ -23,8 +23,7 @@ try LoginWebPage::DoLogin(); $sParams = utils::ReadParam('params', '', false, 'raw_data'); - if (!$sParams) - { + if (!$sParams) { throw new AjaxSearchException("Invalid query (empty filter)", 400); } @@ -36,61 +35,47 @@ try $aListParams = (array)json_decode($sListParams, true); $aParams = json_decode($sParams, true); - if (array_key_exists('hidden_criteria', $aListParams)) - { + if (array_key_exists('hidden_criteria', $aListParams)) { $sHiddenCriteria = $aListParams['hidden_criteria']; - } - else - { + } else { $sHiddenCriteria = ''; } $oFilter = CriterionParser::Parse($aParams['base_oql'], $aParams['criterion'], $sHiddenCriteria); $oDisplayBlock = new DisplayBlock($oFilter, 'list_search', false); - foreach($aListParams as $key => $value) - { - $aExtraParams[$key] = $value; - } + foreach ($aListParams as $key => $value) { + $aExtraParams[$key] = $value; + } - if (array_key_exists('table_inner_id', $aListParams)) - { - $sListId = utils::Sanitize($aListParams['table_inner_id'], '', utils::ENUM_SANITIZATION_FILTER_ELEMENT_IDENTIFIER); - } + if (array_key_exists('table_inner_id', $aListParams)) { + $sListId = utils::Sanitize($aListParams['table_inner_id'], '', utils::ENUM_SANITIZATION_FILTER_ELEMENT_IDENTIFIER); + } - if (array_key_exists('json', $aListParams)) - { + if (array_key_exists('json', $aListParams)) { $aJson = $aListParams['json']; $sJson = json_encode($aJson); $oWizardHelper = WizardHelper::FromJSON($sJson); $oObj = $oWizardHelper->GetTargetObject(); - if (array_key_exists('query_params', $aExtraParams)) - { + if (array_key_exists('query_params', $aExtraParams)) { $aExtraParams['query_params']['this->object()'] = $oObj; - } - else - { - $aExtraParams['query_params'] = array('this->object()' => $oObj); + } else { + $aExtraParams['query_params'] = ['this->object()' => $oObj]; } } - if (!isset($aExtraParams['update_history'])) - { + if (!isset($aExtraParams['update_history'])) { $aExtraParams['update_history'] = true; } $aExtraParams['display_limit'] = true; - if (isset($sListId)) - { + if (isset($sListId)) { $oPage->AddUiBlock($oDisplayBlock->GetDisplay($oPage, $sListId, $aExtraParams)); - } - else - { + } else { $oDisplayBlock->RenderContent($oPage, $aExtraParams); } - if (isset($aListParams['debug']) || UserRights::IsAdministrator()) - { + if (isset($aListParams['debug']) || UserRights::IsAdministrator()) { $oCollapsible = CollapsibleSectionUIBlockFactory::MakeStandard(Dict::S('UI:RunQuery:MoreInfo')); $oPage->AddSubBlock($oCollapsible); @@ -123,4 +108,4 @@ try // note: transform to cope with XSS attacks echo '
                '.utils::EscapeHtml($e->GetMessage()).'
                '; IssueLog::Error($e->getMessage()."\nDebug trace:\n".$e->getTraceAsString()); -} \ No newline at end of file +} diff --git a/pages/audit.php b/pages/audit.php index f4c705d31..3e9a3051a 100644 --- a/pages/audit.php +++ b/pages/audit.php @@ -1,4 +1,5 @@ GetClass(); + $sObjClass = $oFilter->GetClass(); $aContextParams = $oAppContext->GetNames(); - $aCallSpec = array($sObjClass, 'MapContextParam'); - if (is_callable($aCallSpec)) - { - foreach($aContextParams as $sParamName) - { + $aCallSpec = [$sObjClass, 'MapContextParam']; + if (is_callable($aCallSpec)) { + foreach ($aContextParams as $sParamName) { $sValue = $oAppContext->GetCurrentValue($sParamName, null); - if ($sValue != null) - { + if ($sValue != null) { $sAttCode = call_user_func($aCallSpec, $sParamName); // Returns null when there is no mapping for this parameter - if ( ($sAttCode != null) && MetaModel::IsValidAttCode($sObjClass, $sAttCode)) - { + if (($sAttCode != null) && MetaModel::IsValidAttCode($sObjClass, $sAttCode)) { // Check if the condition points to a hierarchical key - $bConditionAdded = false; - if ($sAttCode == 'id') - { + $bConditionAdded = false; + if ($sAttCode == 'id') { // Filtering on the objects themselves $sHierarchicalKeyCode = MetaModel::IsHierarchicalClass($sObjClass); - - if ($sHierarchicalKeyCode !== false) - { + + if ($sHierarchicalKeyCode !== false) { $oRootFilter = new DBObjectSearch($sObjClass); $oRootFilter->AddCondition($sAttCode, $sValue); $oFilter->AddCondition_PointingTo($oRootFilter, $sHierarchicalKeyCode, TREE_OPERATOR_BELOW); // Use the 'below' operator by default $bConditionAdded = true; } - } - else - { + } else { $oAttDef = MetaModel::GetAttributeDef($sObjClass, $sAttCode); $bConditionAdded = false; - if ($oAttDef->IsExternalKey()) - { + if ($oAttDef->IsExternalKey()) { $sHierarchicalKeyCode = MetaModel::IsHierarchicalClass($oAttDef->GetTargetClass()); - - if ($sHierarchicalKeyCode !== false) - { + + if ($sHierarchicalKeyCode !== false) { $oRootFilter = new DBObjectSearch($oAttDef->GetTargetClass()); $oRootFilter->AddCondition('id', $sValue); $oHKFilter = new DBObjectSearch($oAttDef->GetTargetClass()); @@ -77,8 +68,7 @@ function FilterByContext(DBSearch &$oFilter, ApplicationContext $oAppContext) } } } - if (!$bConditionAdded) - { + if (!$bConditionAdded) { $oFilter->AddCondition($sAttCode, $sValue); } } @@ -105,37 +95,28 @@ function GetRuleResultFilter($iRuleId, $oDefinitionFilter, $oAppContext) $oRuleFilter->UpdateContextFromUser(); FilterByContext($oRuleFilter, $oAppContext); // Not needed since this filter is a subset of the definition filter, but may speedup things - if ($oRule->Get('valid_flag') == 'false') - { + if ($oRule->Get('valid_flag') == 'false') { // The query returns directly the invalid elements $oFilter = $oRuleFilter->Intersect($oDefinitionFilter); - } - else - { + } else { // The query returns only the valid elements, all the others are invalid // Warning : we're generating a `WHERE ID IN`... query, and this could be very slow if there are lots of id ! - $aValidRows = $oRuleFilter->ToDataArray(array('id')); - $aValidIds = array(); - foreach($aValidRows as $aRow) - { + $aValidRows = $oRuleFilter->ToDataArray(['id']); + $aValidIds = []; + foreach ($aValidRows as $aRow) { $aValidIds[] = $aRow['id']; } /** @var \DBObjectSearch $oFilter */ $oFilter = $oDefinitionFilter->DeepClone(); - if (count($aValidIds) > 0) - { - $aInDefSet = array(); - foreach($oDefinitionFilter->ToDataArray(array('id')) as $aRow) - { + if (count($aValidIds) > 0) { + $aInDefSet = []; + foreach ($oDefinitionFilter->ToDataArray(['id']) as $aRow) { $aInDefSet[] = $aRow['id']; } $aInvalids = array_diff($aInDefSet, $aValidIds); - if (count($aInvalids) > 0) - { + if (count($aInvalids) > 0) { $oFilter->AddConditionForInOperatorUsingParam('id', $aInvalids, true); - } - else - { + } else { $oFilter->AddCondition('id', 0, '='); } } @@ -143,8 +124,7 @@ function GetRuleResultFilter($iRuleId, $oDefinitionFilter, $oAppContext) return $oFilter; } -try -{ +try { require_once('../approot.inc.php'); require_once(APPROOT.'/application/application.inc.php'); require_once(APPROOT.'/application/startup.inc.php'); @@ -153,85 +133,77 @@ try $bSelectionAuditRulesByDefault = utils::GetConfig()->Get('audit.enable_selection_landing_page'); $operation = utils::ReadParam('operation', $bSelectionAuditRulesByDefault ? 'selection' : 'audit'); $oAppContext = new ApplicationContext(); - + require_once(APPROOT.'/application/loginwebpage.class.inc.php'); LoginWebPage::DoLogin(); // Check user rights and prompt if needed - + $oP = new iTopWebPage(Dict::S('UI:Audit:Title')); - switch($operation) - { + switch ($operation) { case 'csv': - $oP->DisableBreadCrumb(); - // Big result sets cause long OQL that cannot be passed (serialized) as a GET parameter - // Therefore we don't use the standard "search_oql" operation of UI.php to display the CSV - $iCategory = utils::ReadParam('category', ''); - $iRuleIndex = utils::ReadParam('rule', 0); - - $oAuditCategory = MetaModel::GetObject('AuditCategory', $iCategory); - $oDefinitionFilter = DBObjectSearch::FromOQL($oAuditCategory->Get('definition_set')); - $oDefinitionFilter->UpdateContextFromUser(); - FilterByContext($oDefinitionFilter, $oAppContext); - $oDefinitionSet = new CMDBObjectSet($oDefinitionFilter); - $oFilter = GetRuleResultFilter($iRuleIndex, $oDefinitionFilter, $oAppContext); - $oErrorObjectSet = new CMDBObjectSet($oFilter); - $oAuditRule = MetaModel::GetObject('AuditRule', $iRuleIndex); - $sFileName = utils::ReadParam('filename', null, true, 'string'); - $bAdvanced = utils::ReadParam('advanced', false); - $sAdvanced = $bAdvanced ? '&advanced=1' : ''; - - if ($sFileName != null) - { - $oP = new CSVPage("iTop - Export"); - $sCharset = MetaModel::GetConfig()->Get('csv_file_default_charset'); - $sCSVData = cmdbAbstractObject::GetSetAsCSV($oErrorObjectSet, array('localize_values' => true, 'fields_advanced' => $bAdvanced), $sCharset); - if ($sCharset == 'UTF-8') - { - $sOutputData = UTF8_BOM.$sCSVData; - } - else - { - $sOutputData = $sCSVData; - } - if ($sFileName == '') - { - // Plain text => Firefox will NOT propose to download the file - $oP->add_header("Content-type: text/plain; charset=$sCharset"); - } - else - { - $sCSVName = basename($sFileName); // pseudo sanitization, just in case - // Force the name of the downloaded file, since windows gives precedence to the extension over of the mime type - $oP->add_header("Content-disposition: attachment; filename=\"$sCSVName\""); - $oP->add_header("Content-type: text/csv; charset=$sCharset"); - } - $oP->add($sOutputData); - $oP->TrashUnexpectedOutput(); - $oP->output(); - exit; - } else { - $sTitle = Dict::S('UI:Audit:AuditErrors'); - $oP->SetBreadCrumbEntry('ui-tool-auditerrors', $sTitle, '', '', 'fas fa-stethoscope', iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES); + $oP->DisableBreadCrumb(); + // Big result sets cause long OQL that cannot be passed (serialized) as a GET parameter + // Therefore we don't use the standard "search_oql" operation of UI.php to display the CSV + $iCategory = utils::ReadParam('category', ''); + $iRuleIndex = utils::ReadParam('rule', 0); - $oBackButton = ButtonUIBlockFactory::MakeIconLink('fas fa-chevron-left', Dict::S('UI:Audit:InteractiveAudit:Back'), "./audit.php?".$oAppContext->GetForLink()); - $oP->AddUiBlock($oBackButton); - $oP->AddUiBlock(TitleUIBlockFactory::MakeForPage($sTitle.$oAuditRule->Get('description'))); + $oAuditCategory = MetaModel::GetObject('AuditCategory', $iCategory); + $oDefinitionFilter = DBObjectSearch::FromOQL($oAuditCategory->Get('definition_set')); + $oDefinitionFilter->UpdateContextFromUser(); + FilterByContext($oDefinitionFilter, $oAppContext); + $oDefinitionSet = new CMDBObjectSet($oDefinitionFilter); + $oFilter = GetRuleResultFilter($iRuleIndex, $oDefinitionFilter, $oAppContext); + $oErrorObjectSet = new CMDBObjectSet($oFilter); + $oAuditRule = MetaModel::GetObject('AuditRule', $iRuleIndex); + $sFileName = utils::ReadParam('filename', null, true, 'string'); + $bAdvanced = utils::ReadParam('advanced', false); + $sAdvanced = $bAdvanced ? '&advanced=1' : ''; - $sBlockId = 'audit_errors'; - $oP->p("
                "); - $oBlock = DisplayBlock::FromObjectSet($oErrorObjectSet, 'csv', array('show_obsolete_data' => true)); - $oBlock->Display($oP, 1); - $oP->p("
                "); - // Adjust the size of the Textarea containing the CSV to fit almost all the remaining space - $oP->add_ready_script(" $('#1>textarea').height(400);"); // adjust the size of the block - $sExportUrl = utils::GetAbsoluteUrlAppRoot()."pages/audit.php?operation=csv&category=".$oAuditCategory->GetKey()."&rule=".$oAuditRule->GetKey(); - $oDownloadButton = ButtonUIBlockFactory::MakeForAlternativePrimaryAction('fas fa-chevron-left', Dict::S('UI:Audit:InteractiveAudit:Back'), "./audit.php?".$oAppContext->GetForLink()); + if ($sFileName != null) { + $oP = new CSVPage("iTop - Export"); + $sCharset = MetaModel::GetConfig()->Get('csv_file_default_charset'); + $sCSVData = cmdbAbstractObject::GetSetAsCSV($oErrorObjectSet, ['localize_values' => true, 'fields_advanced' => $bAdvanced], $sCharset); + if ($sCharset == 'UTF-8') { + $sOutputData = UTF8_BOM.$sCSVData; + } else { + $sOutputData = $sCSVData; + } + if ($sFileName == '') { + // Plain text => Firefox will NOT propose to download the file + $oP->add_header("Content-type: text/plain; charset=$sCharset"); + } else { + $sCSVName = basename($sFileName); // pseudo sanitization, just in case + // Force the name of the downloaded file, since windows gives precedence to the extension over of the mime type + $oP->add_header("Content-disposition: attachment; filename=\"$sCSVName\""); + $oP->add_header("Content-type: text/csv; charset=$sCharset"); + } + $oP->add($sOutputData); + $oP->TrashUnexpectedOutput(); + $oP->output(); + exit; + } else { + $sTitle = Dict::S('UI:Audit:AuditErrors'); + $oP->SetBreadCrumbEntry('ui-tool-auditerrors', $sTitle, '', '', 'fas fa-stethoscope', iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES); + + $oBackButton = ButtonUIBlockFactory::MakeIconLink('fas fa-chevron-left', Dict::S('UI:Audit:InteractiveAudit:Back'), "./audit.php?".$oAppContext->GetForLink()); + $oP->AddUiBlock($oBackButton); + $oP->AddUiBlock(TitleUIBlockFactory::MakeForPage($sTitle.$oAuditRule->Get('description'))); + + $sBlockId = 'audit_errors'; + $oP->p("
                "); + $oBlock = DisplayBlock::FromObjectSet($oErrorObjectSet, 'csv', ['show_obsolete_data' => true]); + $oBlock->Display($oP, 1); + $oP->p("
                "); + // Adjust the size of the Textarea containing the CSV to fit almost all the remaining space + $oP->add_ready_script(" $('#1>textarea').height(400);"); // adjust the size of the block + $sExportUrl = utils::GetAbsoluteUrlAppRoot()."pages/audit.php?operation=csv&category=".$oAuditCategory->GetKey()."&rule=".$oAuditRule->GetKey(); + $oDownloadButton = ButtonUIBlockFactory::MakeForAlternativePrimaryAction('fas fa-chevron-left', Dict::S('UI:Audit:InteractiveAudit:Back'), "./audit.php?".$oAppContext->GetForLink()); + + $oP->add_ready_script("$('a[href*=\"webservices/export.php?expression=\"]').attr('href', '".$sExportUrl."&filename=audit.csv".$sAdvanced."');"); + $oP->add_ready_script("$('#1 :checkbox').removeAttr('onclick').on('click', function() { var sAdvanced = ''; if (this.checked) sAdvanced = '&advanced=1'; window.location.href='$sExportUrl'+sAdvanced; } );"); + } + break; - $oP->add_ready_script("$('a[href*=\"webservices/export.php?expression=\"]').attr('href', '".$sExportUrl."&filename=audit.csv".$sAdvanced."');"); - $oP->add_ready_script("$('#1 :checkbox').removeAttr('onclick').on('click', function() { var sAdvanced = ''; if (this.checked) sAdvanced = '&advanced=1'; window.location.href='$sExportUrl'+sAdvanced; } );"); - } - break; - case 'errors': $sTitle = Dict::S('UI:Audit:AuditErrors'); $iCategory = utils::ReadParam('category', ''); @@ -253,7 +225,7 @@ try $oP->AddUiBlock(TitleUIBlockFactory::MakeForPage($sTitle.$oAuditRule->Get('description'))); $sBlockId = 'audit_errors'; $oP->p("
                "); - $oBlock = DisplayBlock::FromObjectSet($oErrorObjectSet, 'list', array('show_obsolete_data' => true)); + $oBlock = DisplayBlock::FromObjectSet($oErrorObjectSet, 'list', ['show_obsolete_data' => true]); $oBlock->Display($oP, 1); $oP->p("
                "); $sExportUrl = utils::GetAbsoluteUrlAppRoot()."pages/audit.php?operation=csv&category=".$oAuditCategory->GetKey()."&rule=".$oAuditRule->GetKey(); @@ -299,13 +271,13 @@ try // Fetch all audit domains with at least on linked category $oDomainSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT AuditDomain AS domain JOIN lnkAuditCategoryToAuditDomain AS lnk ON lnk.domain_id = domain.id")); - $oDomainSet->SetOrderBy(array('name' => true)); + $oDomainSet->SetOrderBy(['name' => true]); $iDomainCnt = 0; /** @var AuditDomain $oAuditDomain */ - while($oAuditDomain = $oDomainSet->Fetch()) { + while ($oAuditDomain = $oDomainSet->Fetch()) { $sDomainUrl = utils::GetAbsoluteUrlAppRoot()."pages/audit.php?operation=audit&domain=".$oAuditDomain->GetKey(); $sIconUrl = utils::GetAbsoluteUrlAppRoot().'images/icons/icons8-puzzle.svg'; - /** @var \ormDocument $oImage */ + /** @var \ormDocument $oImage */ $oImage = $oAuditDomain->Get('icon'); if (!$oImage->IsEmpty()) { $sIconUrl = $oImage->GetDisplayURL(get_class($oAuditDomain), $oAuditDomain->GetKey(), 'icon'); @@ -333,7 +305,7 @@ try $sBreadCrumbTooltip = Dict::S('UI:Audit:Interactive:All:BreadCrumb+'); if (!empty($sCategories)) { // Case with a set of categories - $oCategoriesSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT AuditCategory WHERE id IN (:categories)", array('categories' => explode(',', $sCategories)))); + $oCategoriesSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT AuditCategory WHERE id IN (:categories)", ['categories' => explode(',', $sCategories)])); $sCategories = implode(", ", $oCategoriesSet->GetColumnAsArray('name')); $oCategoriesSet->Rewind(); $sTitle = Dict::Format('UI:Audit:Interactive:Categories:Title', $sCategories); @@ -343,7 +315,7 @@ try } elseif (!empty($sDomainKey)) { // Case with a single Domain $oAuditDomain = MetaModel::GetObject('AuditDomain', $sDomainKey); - $oCategoriesSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT AuditCategory AS c JOIN lnkAuditCategoryToAuditDomain AS lnk ON lnk.category_id = c.id WHERE lnk.domain_id = :domain", array('domain' => $oAuditDomain->GetKey()))); + $oCategoriesSet = new DBObjectSet(DBObjectSearch::FromOQL("SELECT AuditCategory AS c JOIN lnkAuditCategoryToAuditDomain AS lnk ON lnk.category_id = c.id WHERE lnk.domain_id = :domain", ['domain' => $oAuditDomain->GetKey()])); $sDomainName = $oAuditDomain->GetName(); $sTitle = Dict::Format('UI:Audit:Interactive:Domain:Title', $sDomainName); $sSubTitle = Dict::Format('UI:Audit:Interactive:Domain:SubTitle', $sDomainName); @@ -400,16 +372,16 @@ try // Add a button in the above toolbar $sAuditCategoryClass = get_class($oAuditCategory); if (UserRights::IsActionAllowed($sAuditCategoryClass, UR_ACTION_READ)) { - $oToolbar->AddSubBlock(ButtonUIBlockFactory::MakeIconLink('fas fa-wrench fa-lg', Dict::S('UI:Audit:ViewRules'), ApplicationContext::MakeObjectUrl($sAuditCategoryClass, $oAuditCategory->GetKey()).'&#ObjectProperties=tab_ClassAuditCategoryAttributerules_list'),); + $oToolbar->AddSubBlock(ButtonUIBlockFactory::MakeIconLink('fas fa-wrench fa-lg', Dict::S('UI:Audit:ViewRules'), ApplicationContext::MakeObjectUrl($sAuditCategoryClass, $oAuditCategory->GetKey()).'&#ObjectProperties=tab_ClassAuditCategoryAttributerules_list'), ); } - $aResults = array(); + $aResults = []; try { $iCount = 0; $oDefinitionFilter = DBObjectSearch::FromOQL($oAuditCategory->Get('definition_set')); $oDefinitionFilter->UpdateContextFromUser(); FilterByContext($oDefinitionFilter, $oAppContext); - $aObjectsWithErrors = array(); + $aObjectsWithErrors = []; if (!empty($currentOrganization)) { if (MetaModel::IsValidFilterCode($oDefinitionFilter->GetClass(), 'org_id')) { $oDefinitionFilter->AddCondition('org_id', $currentOrganization, '='); @@ -421,7 +393,7 @@ try $oRulesFilter->AddCondition('category_id', $oAuditCategory->GetKey(), '='); $oRulesSet = new DBObjectSet($oRulesFilter); while ($oAuditRule = $oRulesSet->fetch()) { - $aRow = array(); + $aRow = []; $aRow['description'] = $oAuditRule->GetName(); if ($iCount == 0) { // nothing to check, really ! @@ -431,16 +403,15 @@ try } else { try { $oFilter = GetRuleResultFilter($oAuditRule->GetKey(), $oDefinitionFilter, $oAppContext); - $aErrors = $oFilter->SelectAttributeToArray('id'); + $aErrors = $oFilter->SelectAttributeToArray('id'); $iErrorsCount = count($aErrors); foreach ($aErrors as $aErrorRow) { $aObjectsWithErrors[$aErrorRow['id']] = true; } - $aRow['nb_errors'] = ($iErrorsCount == 0) ? '0' : "GetKey()."&rule=".$oAuditRule->GetKey().$oAppContext->GetForLink(true)."\">$iErrorsCount GetKey()."&rule=".$oAuditRule->GetKey().$oAppContext->GetForLink(true)."\">"; + $aRow['nb_errors'] = ($iErrorsCount == 0) ? '0' : "GetKey()."&rule=".$oAuditRule->GetKey().$oAppContext->GetForLink(true)."\">$iErrorsCount GetKey()."&rule=".$oAuditRule->GetKey().$oAppContext->GetForLink(true)."\">"; $aRow['percent_ok'] = sprintf('%.2f', 100.0 * (($iCount - $iErrorsCount) / $iCount)); $aRow['class'] = $oAuditCategory->GetReportColor($iCount, $iErrorsCount); - } - catch (Exception $e) { + } catch (Exception $e) { $aRow['nb_errors'] = Dict::S('UI:Audit:OqlError'); $aRow['percent_ok'] = Dict::S('UI:Audit:Error:ValueNA'); $aRow['class'] = 'red'; @@ -462,57 +433,50 @@ try $oWorkingBlock->SetCount((int)$oWorkingBlock->GetCount() + ($iCount - $iTotalErrors)); $oAuditCategoryPanelBlock->SetSubTitle(Dict::Format('UI:Audit:AuditCategory:Subtitle', $iTotalErrors, $iCount, $sOverallPercentOk)); + } catch (Exception $e) { + $sMessage = Dict::Format('UI:Audit:ErrorIn_Category_Reason', $oAuditCategory->GetHyperlink(), utils::HtmlEntities($e->getMessage())); + $oErrorAlert = AlertUIBlockFactory::MakeForFailure(Dict::S('UI:Audit:ErrorIn_Category'), $sMessage); + $oErrorAlert->AddCSSClass('ibo-audit--error-alert'); + $oP->AddUiBlock($oErrorAlert); + continue; } - catch(Exception $e) - { - $sMessage = Dict::Format('UI:Audit:ErrorIn_Category_Reason', $oAuditCategory->GetHyperlink(), utils::HtmlEntities($e->getMessage())); - $oErrorAlert = AlertUIBlockFactory::MakeForFailure(Dict::S('UI:Audit:ErrorIn_Category'), $sMessage); - $oErrorAlert->AddCSSClass('ibo-audit--error-alert'); - $oP->AddUiBlock($oErrorAlert); - continue; + + $oAuditCategoryPanelBlock->SetColorFromColorSemantic($sClass); + $oAuditCategoryPanelBlock->AddCSSClass('ibo-audit--audit-category--panel'); + $aData = []; + foreach ($aResults as $aRow) { + $aData[] = [ + 'audit_rule' => $aRow['description'], + 'nb_err' => $aRow['nb_errors'], + 'percentage_ok' => $aRow['percent_ok'], + '@class' => 'ibo-is-'.$aRow['class'].'', + ]; + } + + $aAttribs = [ + 'audit_rule' => ['label' => Dict::S('UI:Audit:HeaderAuditRule'), 'description' => Dict::S('UI:Audit:HeaderAuditRule')], + 'nb_err' => ['label' => Dict::S('UI:Audit:HeaderNbErrors'), 'description' => Dict::S('UI:Audit:HeaderNbErrors')], + 'percentage_ok' => ['label' => Dict::S('UI:Audit:PercentageOk'), 'description' => Dict::S('UI:Audit:PercentageOk')], + ]; + + $oAttachmentTableBlock = DataTableUIBlockFactory::MakeForStaticData('', $aAttribs, $aData, null, [], "", ['pageLength' => -1]); + $oAuditCategoryPanelBlock->AddSubBlock($oAttachmentTableBlock); + $aAuditCategoryPanels[] = $oAuditCategoryPanelBlock; } - - $oAuditCategoryPanelBlock->SetColorFromColorSemantic($sClass); - $oAuditCategoryPanelBlock->AddCSSClass('ibo-audit--audit-category--panel'); - $aData = []; - foreach($aResults as $aRow) - { - $aData[] = array( - 'audit_rule' => $aRow['description'], - 'nb_err' => $aRow['nb_errors'], - 'percentage_ok' => $aRow['percent_ok'], - '@class' => 'ibo-is-'.$aRow['class'].'', - ); + foreach ($aAuditCategoryPanels as $oAuditCategoryPanel) { + $oP->AddUiBlock($oAuditCategoryPanel); } - - $aAttribs = array( - 'audit_rule' => array('label' => Dict::S('UI:Audit:HeaderAuditRule'), 'description' => Dict::S('UI:Audit:HeaderAuditRule')), - 'nb_err' => array('label' => Dict::S('UI:Audit:HeaderNbErrors'), 'description' => Dict::S('UI:Audit:HeaderNbErrors')), - 'percentage_ok' => array('label' => Dict::S('UI:Audit:PercentageOk'), 'description' => Dict::S('UI:Audit:PercentageOk')), - ); - - $oAttachmentTableBlock = DataTableUIBlockFactory::MakeForStaticData('', $aAttribs, $aData, null, [], "", array('pageLength' => -1)); - $oAuditCategoryPanelBlock->AddSubBlock($oAttachmentTableBlock); - $aAuditCategoryPanels[] = $oAuditCategoryPanelBlock; - } - foreach ($aAuditCategoryPanels as $oAuditCategoryPanel) { - $oP->AddUiBlock($oAuditCategoryPanel); - } } $oP->output(); -} -catch(CoreException $e) -{ +} catch (CoreException $e) { require_once(APPROOT.'/setup/setuppage.class.inc.php'); $oP = new ErrorPage(Dict::S('UI:PageTitle:FatalError')); - $oP->add("

                ".Dict::S('UI:FatalErrorMessage')."

                \n"); - $oP->error(Dict::Format('UI:Error_Details', $e->getHtmlDesc())); + $oP->add("

                ".Dict::S('UI:FatalErrorMessage')."

                \n"); + $oP->error(Dict::Format('UI:Error_Details', $e->getHtmlDesc())); $oP->output(); - if (MetaModel::IsLogEnabledIssue()) - { - if (MetaModel::IsValidClass('EventIssue')) - { + if (MetaModel::IsLogEnabledIssue()) { + if (MetaModel::IsValidClass('EventIssue')) { $oLog = new EventIssue(); $oLog->Set('message', $e->getMessage()); @@ -529,19 +493,15 @@ catch(CoreException $e) // For debugging only //throw $e; -} -catch(Exception $e) -{ +} catch (Exception $e) { require_once(APPROOT.'/setup/setuppage.class.inc.php'); $oP = new ErrorPage(Dict::S('UI:PageTitle:FatalError')); - $oP->add("

                ".Dict::S('UI:FatalErrorMessage')."

                \n"); - $oP->error(Dict::Format('UI:Error_Details', $e->getMessage())); + $oP->add("

                ".Dict::S('UI:FatalErrorMessage')."

                \n"); + $oP->error(Dict::Format('UI:Error_Details', $e->getMessage())); $oP->output(); - if (MetaModel::IsLogEnabledIssue()) - { - if (MetaModel::IsValidClass('EventIssue')) - { + if (MetaModel::IsLogEnabledIssue()) { + if (MetaModel::IsValidClass('EventIssue')) { $oLog = new EventIssue(); $oLog->Set('message', $e->getMessage()); @@ -549,7 +509,7 @@ catch(Exception $e) $oLog->Set('issue', 'PHP Exception'); $oLog->Set('impact', 'Page could not be displayed'); $oLog->Set('callstack', $e->getTrace()); - $oLog->Set('data', array()); + $oLog->Set('data', []); $oLog->DBInsertNoReload(); } diff --git a/pages/exec.php b/pages/exec.php index 62decc06e..093a5e9ff 100644 --- a/pages/exec.php +++ b/pages/exec.php @@ -1,4 +1,5 @@ ComputeAndReport("Session Start"); - $sEnvFullPath = APPROOT.'env-'.$sEnvironment; $sPageRelativePath = $sModule.'/'.$sPage; $sPageEnvFullPath = $sEnvFullPath.'/'.$sPageRelativePath; diff --git a/pages/index.php b/pages/index.php index 7e4fc5ca3..750fb70f2 100644 --- a/pages/index.php +++ b/pages/index.php @@ -1,3 +1,3 @@ diff --git a/pages/logoff.php b/pages/logoff.php index 229cb0c01..953b00ee3 100644 --- a/pages/logoff.php +++ b/pages/logoff.php @@ -1,4 +1,5 @@ Get('login_debug'); -if ($bLoginDebug) -{ +if ($bLoginDebug) { IssueLog::Info("---------------------------------"); - if (isset($sAuthUser)) - { + if (isset($sAuthUser)) { IssueLog::Info("--> Logout user: [$sAuthUser]"); - } - else - { + } else { IssueLog::Info("--> Logout"); } $sSessionLog = session_id().' '.utils::GetSessionLog(); @@ -71,13 +66,10 @@ if ($bLoginDebug) $aPluginList = LoginWebPage::GetLoginPluginList('iLogoutExtension'); /** @var iLogoutExtension $oLogoutExtension */ -foreach ($aPluginList as $oLogoutExtension) -{ - if ($bLoginDebug) - { +foreach ($aPluginList as $oLogoutExtension) { + if ($bLoginDebug) { $sCurrSessionLog = session_id().' '.utils::GetSessionLog(); - if ($sCurrSessionLog != $sSessionLog) - { + if ($sCurrSessionLog != $sSessionLog) { $sSessionLog = $sCurrSessionLog; IssueLog::Info("SESSION: $sSessionLog"); } @@ -87,11 +79,9 @@ foreach ($aPluginList as $oLogoutExtension) $oLogoutExtension->LogoutAction(); } -if ($bLoginDebug) -{ +if ($bLoginDebug) { $sCurrSessionLog = session_id().' '.utils::GetSessionLog(); - if ($sCurrSessionLog != $sSessionLog) - { + if ($sCurrSessionLog != $sSessionLog) { $sSessionLog = $sCurrSessionLog; IssueLog::Info("SESSION: $sSessionLog"); } @@ -100,8 +90,8 @@ if ($bLoginDebug) LoginWebPage::ResetSession(true); if ($bLoginDebug) { - $sSessionLog = session_id().' '.utils::GetSessionLog(); - IssueLog::Info("SESSION: $sSessionLog"); + $sSessionLog = session_id().' '.utils::GetSessionLog(); + IssueLog::Info("SESSION: $sSessionLog"); } $oPage = LoginWebPage::NewLoginWebPage(); diff --git a/pages/notifications.php b/pages/notifications.php index 71cbd23f7..7b8a91aad 100644 --- a/pages/notifications.php +++ b/pages/notifications.php @@ -1,4 +1,5 @@ SetCurrentTab('UI:NotificationsMenu:Actions:'.$sClassToDisplay); $iBlock = 0; - foreach($aActionClasses as $sActionClass) - { + foreach ($aActionClasses as $sActionClass) { $oFilter = new DBObjectSearch($sActionClass); $oFilter->AddCondition('finalclass', $sActionClass); // derived classes will be further processed - $aParams = array('panel_title' => MetaModel::GetName($sActionClass)); + $aParams = ['panel_title' => MetaModel::GetName($sActionClass)]; $sBlockId = 'block_'.utils::Sanitize($sClassToDisplay, '', utils::ENUM_SANITIZATION_FILTER_ELEMENT_IDENTIFIER).'_'.$iBlock; $oBlock = new DisplayBlock($oFilter, 'list', false, $aParams); @@ -91,8 +90,14 @@ function DisplayActionsTab(iTopWebPage &$oP, string $sClassToDisplay, array $aCl // Main program // $oP = new iTopWebPage(Dict::S('Menu:NotificationsMenu+')); -$oP->SetBreadCrumbEntry('ui-tool-notifications', Dict::S('Menu:NotificationsMenu'), Dict::S('Menu:NotificationsMenu+'), '', 'fas fa-bell', - iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES); +$oP->SetBreadCrumbEntry( + 'ui-tool-notifications', + Dict::S('Menu:NotificationsMenu'), + Dict::S('Menu:NotificationsMenu+'), + '', + 'fas fa-bell', + iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES +); $oPageContentLayout = PageContentFactory::MakeStandardEmpty(); $oP->SetContentLayout($oPageContentLayout); @@ -115,7 +120,7 @@ $oP->SetCurrentTabContainer('Tabs_0'); $oP->SetCurrentTab('UI:NotificationsMenu:Triggers'); $oFilter = new DBObjectSearch('Trigger'); -$aParams = array('panel_title' => Dict::S('UI:NotificationsMenu:AvailableTriggers')); +$aParams = ['panel_title' => Dict::S('UI:NotificationsMenu:AvailableTriggers')]; $oBlock = new DisplayBlock($oFilter, 'list', false, $aParams); $oBlock->Display($oP, 'block_0', $aParams); diff --git a/pages/oauth.landing.php b/pages/oauth.landing.php index 5c70944ec..0f065a839 100644 --- a/pages/oauth.landing.php +++ b/pages/oauth.landing.php @@ -1,6 +1,5 @@ ".MetaModel::GetName($sClass)." (".$sClass.")"; + return "".MetaModel::GetName($sClass)." (".$sClass.")"; } /** @@ -41,25 +44,20 @@ function MakeClassHLink($sClass, $sContext) function DisplaySubclasses($oPage, $sClass, $sContext) { $aChildClasses = MetaModel::EnumChildClasses($sClass); - if (count($aChildClasses) != 0) - { + if (count($aChildClasses) != 0) { $oPage->add("
                  \n"); - $aOrderedClasses = array(); - foreach ($aChildClasses as $sClassName) - { + $aOrderedClasses = []; + foreach ($aChildClasses as $sClassName) { // Skip indirect childs, they will be handled somewhere else - if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) - { + if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) { $aOrderedClasses[$sClassName] = MetaModel::GetName($sClassName); } } // Sort on the display name asort($aOrderedClasses); - foreach ($aOrderedClasses as $sClassName => $sDisplayName) - { + foreach ($aOrderedClasses as $sClassName => $sDisplayName) { // Skip indirect childs, they will be handled somewhere else - if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) - { + if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) { $oPage->add("
                • ".MakeClassHLink($sClassName, $sContext)."\n"); DisplaySubclasses($oPage, $sClassName, $sContext); $oPage->add("
                • \n"); @@ -73,40 +71,33 @@ function DisplaySubclasses($oPage, $sClass, $sContext) */ function GetSubclasses($sClass, $sContext) { - - $sHtml = ''; - try{ - $aChildClasses = MetaModel::EnumChildClasses($sClass); - if (count($aChildClasses) != 0) - { - $sHtml .= "
                    "; - $aOrderedClasses = array(); - foreach ($aChildClasses as $sClassName) - { - // Skip indirect childs, they will be handled somewhere else - if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) - { - $aOrderedClasses[$sClassName] = MetaModel::GetName($sClassName); + $sHtml = ''; + try { + $aChildClasses = MetaModel::EnumChildClasses($sClass); + if (count($aChildClasses) != 0) { + + $sHtml .= "
                      "; + $aOrderedClasses = []; + foreach ($aChildClasses as $sClassName) { + // Skip indirect childs, they will be handled somewhere else + if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) { + $aOrderedClasses[$sClassName] = MetaModel::GetName($sClassName); + } } - } - // Sort on the display name - asort($aOrderedClasses); - foreach ($aOrderedClasses as $sClassName => $sDisplayName) - { - // Skip indirect childs, they will be handled somewhere else - if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) - { - $sHtml .="
                    • ".MakeClassHLink($sClassName, $sContext); - $sHtml .= GetSubclasses($sClassName, $sContext); - $sHtml .= "
                    • "; + // Sort on the display name + asort($aOrderedClasses); + foreach ($aOrderedClasses as $sClassName => $sDisplayName) { + // Skip indirect childs, they will be handled somewhere else + if (MetaModel::GetParentPersistentClass($sClassName) == $sClass) { + $sHtml .= "
                    • ".MakeClassHLink($sClassName, $sContext); + $sHtml .= GetSubclasses($sClassName, $sContext); + $sHtml .= "
                    • "; + } } + $sHtml .= "
                    "; } - $sHtml .= "
                  "; - } - } - - catch(Exception $e){ + } catch (Exception $e) { } return $sHtml; } @@ -116,12 +107,9 @@ function GetSubclasses($sClass, $sContext) */ function DisplayLifecycle($oPage, $sClass) { - if (!MetaModel::HasLifecycle($sClass)) - { + if (!MetaModel::HasLifecycle($sClass)) { $oPage->p(Dict::S('UI:Schema:NoLifeCyle')); - } - else - { + } else { $aStates = MetaModel::EnumStates($sClass); $aStimuli = MetaModel::EnumStimuli($sClass); $oPage->add("\n"); @@ -130,7 +118,6 @@ function DisplayLifecycle($oPage, $sClass) $("#img-lifecycle").attr('href',$("#img-lifecycle").attr('src')); $("#img-lifecycle").magnificPopup({type: 'image', closeOnContentClick: true}); EOF - ); $oOpenAllButton = ButtonUIBlockFactory::MakeForAlternativePrimaryAction('Open All', '', '', false, 'lifecycleOpenAll'); $oOpenAllButton->SetOnClickJsCode( @@ -138,7 +125,6 @@ EOF $('#LifeCycleList').find('.expandable-hitarea').trigger('click'); $('#LifeCycleAttrOptList').find('.expandable-hitarea').trigger('click'); JS - ); $oCloseAllButton = ButtonUIBlockFactory::MakeForAlternativePrimaryAction('Close All', '', '', false, 'lifecycleCloseAll'); $oCloseAllButton->SetOnClickJsCode( @@ -146,46 +132,35 @@ JS $('#LifeCycleList').find('.collapsable-hitarea').trigger('click'); $('#LifeCycleAttrOptList').find('.collapsable-hitarea').trigger('click'); JS - ); $oPage->AddUiBlock($oOpenAllButton); $oPage->AddUiBlock($oCloseAllButton); $oPage->AddUiBlock(TitleUIBlockFactory::MakeNeutral(Dict::S('UI:Schema:LifeCycleTransitions'), 3)); $oPage->add("
                    \n"); - foreach ($aStates as $sStateCode => $aStateDef) - { + foreach ($aStates as $sStateCode => $aStateDef) { $sStateLabel = MetaModel::GetStateLabel($sClass, $sStateCode); $sStateDescription = MetaModel::GetStateDescription($sClass, $sStateCode); $oPage->add("
                  • $sStateLabel ($sStateCode) $sStateDescription\n"); $oPage->add("
                      \n"); - foreach (MetaModel::EnumTransitions($sClass, $sStateCode) as $sStimulusCode => $aTransitionDef) - { + foreach (MetaModel::EnumTransitions($sClass, $sStateCode) as $sStimulusCode => $aTransitionDef) { $sStimulusLabel = $aStimuli[$sStimulusCode]->GetLabel(); $sTargetState = $aTransitionDef['target_state']; $sTargetStateLabel = MetaModel::GetStateLabel($sClass, $sTargetState); - if (count($aTransitionDef['actions']) > 0) - { - $aActionsDesc = array(); - foreach ($aTransitionDef['actions'] as $actionHandler) - { - if (is_string($actionHandler)) - { + if (count($aTransitionDef['actions']) > 0) { + $aActionsDesc = []; + foreach ($aTransitionDef['actions'] as $actionHandler) { + if (is_string($actionHandler)) { $aActionsDesc[] = $actionHandler; - } - else - { - $aParamsDesc = array(); - foreach ($actionHandler['params'] as $aParamData) - { + } else { + $aParamsDesc = []; + foreach ($actionHandler['params'] as $aParamData) { $aParamsDesc[] = $aParamData['type'].':'.$aParamData['value']; } $aActionsDesc[] = $actionHandler['verb'].'('.implode(', ', $aParamsDesc).')'; } } $sActions = " (".implode(', ', $aActionsDesc).")"; - } - else - { + } else { $sActions = ""; } @@ -199,55 +174,42 @@ JS $oPage->add("
                    \n"); $oPage->AddUiBlock(TitleUIBlockFactory::MakeNeutral(Dict::S('UI:Schema:LifeCyleAttributeOptions'), 3)); $oPage->add("
                      \n"); - foreach ($aStates as $sStateCode => $aStateDef) - { + foreach ($aStates as $sStateCode => $aStateDef) { $sStateLabel = MetaModel::GetStateLabel($sClass, $sStateCode); $sStateDescription = MetaModel::GetStateDescription($sClass, $sStateCode); $oPage->add("
                    • $sStateLabel ($sStateCode) $sStateDescription\n"); - if (count($aStates[$sStateCode]['attribute_list']) > 0) - { + if (count($aStates[$sStateCode]['attribute_list']) > 0) { $oPage->add("
                        \n"); - foreach ($aStates[$sStateCode]['attribute_list'] as $sAttCode => $iOptions) - { + foreach ($aStates[$sStateCode]['attribute_list'] as $sAttCode => $iOptions) { $oAttDef = MetaModel::GetAttributeDef($sClass, $sAttCode); $sAttLabel = $oAttDef->GetLabel(); - $aOptions = array(); - if ($iOptions & OPT_ATT_HIDDEN) - { + $aOptions = []; + if ($iOptions & OPT_ATT_HIDDEN) { $aOptions[] = Dict::S('UI:Schema:LifeCycleHiddenAttribute'); } - if ($iOptions & OPT_ATT_READONLY) - { + if ($iOptions & OPT_ATT_READONLY) { $aOptions[] = Dict::S('UI:Schema:LifeCycleReadOnlyAttribute'); } - if ($iOptions & OPT_ATT_MANDATORY) - { + if ($iOptions & OPT_ATT_MANDATORY) { $aOptions[] = Dict::S('UI:Schema:LifeCycleMandatoryAttribute'); } - if ($iOptions & OPT_ATT_MUSTCHANGE) - { + if ($iOptions & OPT_ATT_MUSTCHANGE) { $aOptions[] = Dict::S('UI:Schema:LifeCycleAttributeMustChange'); } - if ($iOptions & OPT_ATT_MUSTPROMPT) - { + if ($iOptions & OPT_ATT_MUSTPROMPT) { $aOptions[] = Dict::S('UI:Schema:LifeCycleAttributeMustPrompt'); } - if (count($aOptions)) - { + if (count($aOptions)) { $sOptions = implode(', ', $aOptions); - } - else - { + } else { $sOptions = ""; } $oPage->add("
                      • $sAttLabel $sOptions
                      • \n"); } $oPage->add("
                    • \n"); - } - else - { + } else { $oPage->p("".Dict::S('UI:Schema:LifeCycleEmptyList').""); } } @@ -257,7 +219,6 @@ JS } } - /** * Helper for the trigger */ @@ -265,7 +226,7 @@ function DisplayTriggers($oPage, $sClass) { $sClassList = implode("', '", MetaModel::EnumParentClasses($sClass, ENUM_PARENT_CLASSES_ALL)); $oSet = new CMDBObjectSet(DBObjectSearch::FromOQL("SELECT TriggerOnObject WHERE target_class IN ('$sClassList')")); - cmdbAbstractObject::DisplaySet($oPage, $oSet, array('block_id' => 'triggers')); + cmdbAbstractObject::DisplaySet($oPage, $oSet, ['block_id' => 'triggers']); } function DisplayEvents(WebPage $oPage, $sClass) @@ -301,7 +262,7 @@ function DisplayEvents(WebPage $oPage, $sClass) } else { $oObject = MetaModel::NewObject($sClass); foreach (MetaModel::EnumParentClasses($sClass, ENUM_PARENT_CLASSES_ALL, false) as $sParentClass) { - $aSources[] = $sParentClass; + $aSources[] = $sParentClass; } } $aListeners = []; @@ -345,7 +306,7 @@ function DisplayEvents(WebPage $oPage, $sClass) } } $sListener = $sListenerClass.'->'.$aListener['callback'][1].'(\Combodo\iTop\Service\Events\EventData $oEventData)'; - } else if (is_array($aListener['callback'])) { + } elseif (is_array($aListener['callback'])) { $sListener = $aListener['callback'][0].'::'.$aListener['callback'][1]; } else { $sListener = $aListener['callback'].'(\Combodo\iTop\Service\Events\EventData $oEventData)'; @@ -368,28 +329,24 @@ function DisplayEvents(WebPage $oPage, $sClass) function DisplayClassesList($oPage, $oLayout, $sContext) { $sSelectedClass = utils::ReadParam('class', '', false, 'class'); - + $oLayout->AddSideHtml("
                      "); - + $oListSearch = new Select("ibo-datamodel-viewer--class-search"); $oListSearch->SetName('aa'); // Get all the "root" classes for display - $aRootClasses = array(); + $aRootClasses = []; $aClassLabelAndCodeAsJSON = []; - $aClassLabelAsJSON = array(); - $aClassCodeAsJSON = array(); + $aClassLabelAsJSON = []; + $aClassCodeAsJSON = []; $oOptionSearch = SelectOptionUIBlockFactory::MakeForSelectOption('', "select option", true); $oListSearch->AddOption($oOptionSearch->SetDisabled(true)); - foreach (MetaModel::GetClasses() as $sClassName) - { - if (MetaModel::IsRootClass($sClassName)) - { + foreach (MetaModel::GetClasses() as $sClassName) { + if (MetaModel::IsRootClass($sClassName)) { $aRootClasses[$sClassName] = MetaModel::GetName($sClassName); - } - elseif (MetaModel::IsStandaloneClass($sClassName)) - { + } elseif (MetaModel::IsStandaloneClass($sClassName)) { $aRootClasses[$sClassName] = MetaModel::GetName($sClassName); } $sLabelClassName = MetaModel::GetName($sClassName); @@ -398,9 +355,9 @@ function DisplayClassesList($oPage, $oLayout, $sContext) $oListSearch->AddOption($oOptionSearch); //Fetch classes names for autocomplete purpose // - Encode as JSON to escape quotes and other characters - array_push ($aClassLabelAndCodeAsJSON, ["value"=>$sClassName,"label"=>"$sLabelClassName ($sClassName)"]); - array_push ($aClassLabelAsJSON, ["value"=>$sClassName,"label"=>"$sLabelClassName"]); - array_push ($aClassCodeAsJSON, ["value"=>$sClassName,"label"=>"$sClassName"]); + array_push($aClassLabelAndCodeAsJSON, ["value" => $sClassName,"label" => "$sLabelClassName ($sClassName)"]); + array_push($aClassLabelAsJSON, ["value" => $sClassName,"label" => "$sLabelClassName"]); + array_push($aClassCodeAsJSON, ["value" => $sClassName,"label" => "$sClassName"]); } usort($aClassLabelAndCodeAsJSON, "Label_sort"); $oLayout->AddSideBlock($oListSearch); @@ -457,22 +414,17 @@ JS } JS - ); // Sort them alphabetically on their display name asort($aClassLabelAndCodeAsJSON); //usort($aRootClasses,"Label_sort"); - foreach ($aRootClasses as $sClassName => $sDisplayName) - { - if (MetaModel::IsRootClass($sClassName)) - { + foreach ($aRootClasses as $sClassName => $sDisplayName) { + if (MetaModel::IsRootClass($sClassName)) { $oLayout->AddSideHtml("
                    • ".MakeClassHLink($sClassName, $sContext)."\n"); $oLayout->AddSideHtml(GetSubclasses($sClassName, $sContext)); $oLayout->AddSideHtml("
                    • \n"); - } - elseif (MetaModel::IsStandaloneClass($sClassName)) - { + } elseif (MetaModel::IsStandaloneClass($sClassName)) { $oLayout->AddSideHtml("
                    • ".MakeClassHLink($sClassName, $sContext)."
                    • \n"); } } @@ -480,8 +432,9 @@ JS $oPage->add_ready_script('$("#ibo-datamodel-viewer--classes-list--list").treeview();'); } -function Label_sort($building_a, $building_b) { - return strnatcmp ($building_a["label"], $building_b["label"]); +function Label_sort($building_a, $building_b) +{ + return strnatcmp($building_a["label"], $building_b["label"]); } /** @@ -489,29 +442,23 @@ function Label_sort($building_a, $building_b) { */ function DisplayRelatedClassesGraph($oPage, $sClass) { - try - { + try { $bOnTheLeft = true; $bSkipLinkingClasses = false; // 1) Fetching referencing classes data // - $aData = array(); - $aOrigins = array('_' => true); + $aData = []; + $aOrigins = ['_' => true]; $aRefs = MetaModel::EnumReferencingClasses($sClass, $bSkipLinkingClasses); $sSelfReference = "false"; - if (count($aRefs) != 0) - { - foreach ($aRefs as $sRemoteClass => $aRemoteKeys) - { - foreach ($aRemoteKeys as $sExtKeyAttCode => $oExtKeyAttDef) - { - if ($sRemoteClass != $sClass) - { + if (count($aRefs) != 0) { + foreach ($aRefs as $sRemoteClass => $aRemoteKeys) { + foreach ($aRemoteKeys as $sExtKeyAttCode => $oExtKeyAttDef) { + if ($sRemoteClass != $sClass) { // ref_prefix to avoid collision between attributes labels that refer to this class and local attributes label that references other classes - $aAttribute = array('label' => 'ref_'.$sExtKeyAttCode); + $aAttribute = ['label' => 'ref_'.$sExtKeyAttCode]; // Test if a distant attribut exists and if it uses a link class - if (!($oExtKeyAttDef->GetMirrorLinkAttribute() == null ? false : $oExtKeyAttDef->GetMirrorLinkAttribute() instanceof AttributeLinkedSetIndirect)) - { + if (!($oExtKeyAttDef->GetMirrorLinkAttribute() == null ? false : $oExtKeyAttDef->GetMirrorLinkAttribute() instanceof AttributeLinkedSetIndirect)) { $aAttribute['related'] = $sRemoteClass; $aAttribute['related_icon'] = MetaModel::GetClassIcon($aAttribute['related'], false); $aAttribute['related_position'] = $bOnTheLeft ? -1 : 1; @@ -529,24 +476,21 @@ function DisplayRelatedClassesGraph($oPage, $sClass) // 2) Fetching referenced classes data // - $aDataRef = array( - array( + $aDataRef = [ + [ 'label' => $sClass, 'icon' => MetaModel::GetClassIcon($sClass, false), 'origin_index' => 0, 'alphabetical_index' => 0, 'origin' => '_', - ), - ); + ], + ]; $bOnTheLeft = true; - $aOriginsRef = array('_' => true); - foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) - { - $aAttribute = array('label' => $sAttCode); - if ($oAttDef->IsLinkSet()) - { - if ($oAttDef->IsIndirect()) - { + $aOriginsRef = ['_' => true]; + foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { + $aAttribute = ['label' => $sAttCode]; + if ($oAttDef->IsLinkSet()) { + if ($oAttDef->IsIndirect()) { $sRemoteAttDef = $oAttDef->GetExtKeyToRemote(); $aAttribute['related'] = MetaModel::GetAttributeDef($oAttDef->GetLinkedClass(), $sRemoteAttDef)->GetTargetClass(); $aAttribute['related_icon'] = MetaModel::GetClassIcon($aAttribute['related'], false); @@ -557,9 +501,7 @@ function DisplayRelatedClassesGraph($oPage, $sClass) $aAttribute['tooltip_data']['to_me'] = $oAttDef->GetExtKeyToMe(); $bOnTheLeft = !$bOnTheLeft; // Toggle the side - } - else - { + } else { $aAttribute['related'] = $oAttDef->GetLinkedClass(); $aAttribute['related_icon'] = MetaModel::GetClassIcon($aAttribute['related'], false); $aAttribute['related_position'] = $bOnTheLeft ? 1 : -1; @@ -567,22 +509,16 @@ function DisplayRelatedClassesGraph($oPage, $sClass) $bOnTheLeft = !$bOnTheLeft; // Toggle the side } - } - else - { - if ($oAttDef->IsHierarchicalKey()) - { + } else { + if ($oAttDef->IsHierarchicalKey()) { $aAttribute['related'] = $sClass; $aAttribute['related_icon'] = MetaModel::GetClassIcon($aAttribute['related'], false); $aAttribute['related_position'] = $bOnTheLeft ? 1 : -1; $aAttribute['relation_type'] = 2; $bOnTheLeft = !$bOnTheLeft; // Toggle the side $sSelfReference = "true"; - } - else - { - if ($oAttDef->IsExternalKey()) - { + } else { + if ($oAttDef->IsExternalKey()) { $aAttribute['related'] = $oAttDef->GetTargetClass(); $aAttribute['related_icon'] = MetaModel::GetClassIcon($aAttribute['related'], false); $aAttribute['related_position'] = $bOnTheLeft ? 1 : -1; @@ -592,8 +528,7 @@ function DisplayRelatedClassesGraph($oPage, $sClass) } } } - if ($oAttDef->IsLinkSet() || $oAttDef->IsHierarchicalKey() || $oAttDef->IsExternalKey()) - { + if ($oAttDef->IsLinkSet() || $oAttDef->IsHierarchicalKey() || $oAttDef->IsExternalKey()) { $sOrigin = MetaModel::GetAttributeOrigin($sClass, $sAttCode); $aAttribute['origin'] = $sOrigin; @@ -604,39 +539,31 @@ function DisplayRelatedClassesGraph($oPage, $sClass) } - //sort referencing data $aOrigins = array_keys($aOrigins); $idx = 0; $bOnTheLeft = true; - foreach ($aData as $sAttCode => $aAttribute) - { + foreach ($aData as $sAttCode => $aAttribute) { $is_also_referenced = false; - foreach ($aDataRef as $sAttCodeRef => $aAttributeRef) - { - if (!empty($aDataRef[$sAttCodeRef]['related']) && ($aData[$sAttCode]['related'] == $aDataRef[$sAttCodeRef]['related'])) - { + foreach ($aDataRef as $sAttCodeRef => $aAttributeRef) { + if (!empty($aDataRef[$sAttCodeRef]['related']) && ($aData[$sAttCode]['related'] == $aDataRef[$sAttCodeRef]['related'])) { $is_also_referenced = true; } } - if (!$is_also_referenced) - { + if (!$is_also_referenced) { $aData[$sAttCode]['related_position'] = ($bOnTheLeft) ? -1 : 1; $bOnTheLeft = !$bOnTheLeft; $aData[$sAttCode]['origin_index'] = ($aData[$sAttCode]['related_position'] == -1) ? ++$idx : $idx; - } - else - { + } else { unset($aData[$sAttCode]); } } ksort($aData); $idx = 0; - $aFinalDataReferencing = array(); - foreach ($aData as $sAttCode => $aAttribute) - { + $aFinalDataReferencing = []; + foreach ($aData as $sAttCode => $aAttribute) { $aData[$sAttCode]['alphabetical_index'] = $aAttribute['related_position'] == 1 ? ++$idx : $idx; $aFinalDataReferencing[] = $aData[$sAttCode]; } @@ -646,15 +573,13 @@ function DisplayRelatedClassesGraph($oPage, $sClass) //sort referenced data $idx = 1; - foreach ($aDataRef as $sAttCode => $aAttribute) - { + foreach ($aDataRef as $sAttCode => $aAttribute) { $aDataRef[$sAttCode]['origin_index'] = $idx++; } $idx = 1; - $aFinalData = array(); - foreach ($aDataRef as $sAttCode => $aAttribute) - { + $aFinalData = []; + foreach ($aDataRef as $sAttCode => $aAttribute) { $aDataRef[$sAttCode]['alphabetical_index'] = $idx++; $aFinalData[] = $aDataRef[$sAttCode]; } @@ -960,9 +885,7 @@ if(window.IntersectionObserver) { } JS ); - } - catch (Exception $e) - { + } catch (Exception $e) { $oPage->p(''.Dict::Format('UI:RunQuery:Error', $e->getMessage()).''); } } @@ -978,9 +901,8 @@ JS */ function DisplayClassDetails($oPage, $sClass, $sContext) { - $aParentClasses = array(); - foreach (MetaModel::EnumParentClasses($sClass) as $sParentClass) - { + $aParentClasses = []; + foreach (MetaModel::EnumParentClasses($sClass) as $sParentClass) { $aParentClasses[] = MakeClassHLink($sParentClass, $sContext); } if (count($aParentClasses) > 0) { @@ -1004,9 +926,9 @@ function DisplayClassDetails($oPage, $sClass, $sContext) $oPage->SetCurrentTabContainer('details'); // List the attributes of the object $aForwardChangeTracking = MetaModel::GetTrackForwardExternalKeys($sClass); - $aDetails = array(); + $aDetails = []; - $aOrigins = array(); + $aOrigins = []; foreach (MetaModel::ListAttributeDefs($sClass) as $sAttCode => $oAttDef) { if ($oAttDef->IsExternalKey()) { $sValue = Dict::Format('UI:Schema:ExternalKey_To', MakeClassHLink($oAttDef->GetTargetClass(), $sContext)); @@ -1017,9 +939,7 @@ function DisplayClassDetails($oPage, $sClass, $sContext) } } elseif ($oAttDef->IsLinkSet()) { $sValue = MakeClassHLink($oAttDef->GetLinkedClass(), $sContext); - } - else - { + } else { $sValue = $oAttDef->GetDescription(); } $sType = get_class($oAttDef); @@ -1031,30 +951,25 @@ function DisplayClassDetails($oPage, $sClass, $sContext) $sAllowedValues = ""; $sMoreInfo = ""; $sDefaultNullValue = ''; - if (call_user_func(array(get_class($oAttDef), 'IsBasedOnDBColumns'))) - { + if (call_user_func([get_class($oAttDef), 'IsBasedOnDBColumns'])) { - $aMoreInfo = array(); - if ($oAttDef->IsNullAllowed()) - { + $aMoreInfo = []; + if ($oAttDef->IsNullAllowed()) { $aMoreInfo[] = Dict::S('UI:Schema:NullAllowed'); $sDefaultNullValue = (!is_null($oAttDef->GetNullValue()) ? $oAttDef->GetNullValue() : null); - if (!is_null($sDefaultNullValue) && !is_string($sDefaultNullValue)) - { + if (!is_null($sDefaultNullValue) && !is_string($sDefaultNullValue)) { $sDefaultNullValue = json_encode($sDefaultNullValue); } - $sDefaultNullValue = (!is_null($sDefaultNullValue) ? Dict::Format('UI:Schema:DefaultNullValue', - $sDefaultNullValue) : ''); - } - else - { + $sDefaultNullValue = (!is_null($sDefaultNullValue) ? Dict::Format( + 'UI:Schema:DefaultNullValue', + $sDefaultNullValue + ) : ''); + } else { $aMoreInfo[] = Dict::S('UI:Schema:NullNotAllowed'); } - if ($oAttDef->GetDefaultValue()) - { + if ($oAttDef->GetDefaultValue()) { $sDefaultValue = $oAttDef->GetDefaultValue(); - if (!is_string($sDefaultValue)) - { + if (!is_string($sDefaultValue)) { $sDefaultValue = json_encode($sDefaultValue); } $aMoreInfo[] = Dict::Format("UI:Schema:Default_Description", $sDefaultValue); @@ -1064,28 +979,22 @@ function DisplayClassDetails($oPage, $sClass, $sContext) $sAttrCode = $oAttDef->GetCode(); $sIsEnumValues = 'false'; $sAllowedValuesEscpd = '""'; - if ($oAttDef instanceof AttributeEnum) - { + if ($oAttDef instanceof AttributeEnum) { // Display localized values for the enum (which depend on the localization provided by the class) - $aLocalizedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, array()); - $aDescription = array(); - foreach ($aLocalizedValues as $val => $sDisplay) - { + $aLocalizedValues = MetaModel::GetAllowedValues_att($sClass, $sAttCode, []); + $aDescription = []; + foreach ($aLocalizedValues as $val => $sDisplay) { $aDescription[] = $sDisplay." (".$val.")"; } $sAllowedValues = implode(', ', $aDescription); $sIsEnumValues = 'true'; - } - elseif (is_object($oAllowedValuesDef = $oAttDef->GetValuesDef())) - { + } elseif (is_object($oAllowedValuesDef = $oAttDef->GetValuesDef())) { $sAllowedValues = str_replace("Filter: ", "", $oAllowedValuesDef->GetValuesDescription()); $sAllowedValuesEscpd = utils::HtmlEntities($sAllowedValues); $sFilterURL = urlencode($sAllowedValues); $sAllowedValues = ' '.Dict::S('UI:Schema:Attribute/Filter').""; - } - else - { + } else { $sAllowedValues = ''; } $sAttrValueEscpd = utils::HtmlEntities($sValue); @@ -1093,29 +1002,29 @@ function DisplayClassDetails($oPage, $sClass, $sContext) $sAttrOriginEscpd = utils::HtmlEntities($sOrigin); $sDefaultNullValueEscpd = utils::HtmlEntities($sDefaultNullValue); - $aDetails[] = array( + $aDetails[] = [ 'code' => ''.$oAttDef->GetLabel().' ('.$oAttDef->GetCode().')', 'type' => ''.$sTypeDict.' ('.$sType.')', 'origincolor' => '
                      ', 'origin' => "$sOrigin", 'values' => $sAllowedValues, 'moreinfo' => ''.$sMoreInfo.'', - ); + ]; } $oPage->SetCurrentTab('UI:Schema:Attributes'); - $aConfig = array( - 'origincolor' => array('label' => "", 'description' => ""), - 'code' => array('label' => Dict::S('UI:Schema:AttributeCode'), 'description' => Dict::S('UI:Schema:AttributeCode+')), - 'type' => array('label' => Dict::S('UI:Schema:Type'), 'description' => Dict::S('UI:Schema:Type+')), - 'values' => array('label' => Dict::S('UI:Schema:AllowedValues'), 'description' => Dict::S('UI:Schema:AllowedValues+')), - 'moreinfo' => array('label' => Dict::S('UI:Schema:MoreInfo'), 'description' => Dict::S('UI:Schema:MoreInfo+')), - 'origin' => array('label' => Dict::S('UI:Schema:Origin'), 'description' => Dict::S('UI:Schema:Origin+')), - ); + $aConfig = [ + 'origincolor' => ['label' => "", 'description' => ""], + 'code' => ['label' => Dict::S('UI:Schema:AttributeCode'), 'description' => Dict::S('UI:Schema:AttributeCode+')], + 'type' => ['label' => Dict::S('UI:Schema:Type'), 'description' => Dict::S('UI:Schema:Type+')], + 'values' => ['label' => Dict::S('UI:Schema:AllowedValues'), 'description' => Dict::S('UI:Schema:AllowedValues+')], + 'moreinfo' => ['label' => Dict::S('UI:Schema:MoreInfo'), 'description' => Dict::S('UI:Schema:MoreInfo+')], + 'origin' => ['label' => Dict::S('UI:Schema:Origin'), 'description' => Dict::S('UI:Schema:Origin+')], + ]; $oTablePanel = PanelUIBlockFactory::MakeForClass($sClass, ''); $oTablePanel->AddCSSClass('ibo-datatable-panel'); - $oAttributesTable = DataTableUIBlockFactory::MakeForStaticData('', $aConfig, $aDetails, 'ibo-datamodel-viewer--attributes-table', [], "", array('pageLength' => -1)); + $oAttributesTable = DataTableUIBlockFactory::MakeForStaticData('', $aConfig, $aDetails, 'ibo-datamodel-viewer--attributes-table', [], "", ['pageLength' => -1]); $oTablePanel->AddSubBlock($oAttributesTable); $oPage->AddUiBlock($oTablePanel); $sOrigins = json_encode(array_keys($aOrigins)); @@ -1140,9 +1049,8 @@ EOF $oPage->SetCurrentTab('UI:Schema:RelatedClasses'); DisplayRelatedClassesGraph($oPage, $sClass); - - if (MetaModel::HasChildrenClasses($sClass)) - { + + if (MetaModel::HasChildrenClasses($sClass)) { $oPage->SetCurrentTab('UI:Schema:ChildClasses'); $oPage->add("
                        "); $oPage->add("
                      • ".$sClass."\n"); @@ -1151,7 +1059,7 @@ EOF $oPage->add("
                      \n"); $oPage->add_ready_script('$("#ClassHierarchy").treeview({collapsed: false,});'); } - + $oPage->SetCurrentTab('UI:Schema:LifeCycle'); DisplayLifecycle($oPage, $sClass); @@ -1165,14 +1073,12 @@ EOF $oPage->SetCurrentTabContainer(); } - //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // MAIN BLOCK // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Display the menu on the left - $oAppContext = new ApplicationContext(); $sContext = $oAppContext->GetForLink(true); $operation = utils::ReadParam('operation', ''); @@ -1184,8 +1090,14 @@ $oPage->SetContentLayout($oLayout); $oPage->no_cache(); -$oPage->SetBreadCrumbEntry('ui-tool-datamodel', Dict::S('Menu:DataModelMenu'), Dict::S('Menu:DataModelMenu+'), '', - 'fas fa-book', iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES); +$oPage->SetBreadCrumbEntry( + 'ui-tool-datamodel', + Dict::S('Menu:DataModelMenu'), + Dict::S('Menu:DataModelMenu+'), + '', + 'fas fa-book', + iTopWebPage::ENUM_BREADCRUMB_ENTRY_ICON_TYPE_CSS_CLASSES +); $oTitle = TitleUIBlockFactory::MakeForPage(Dict::S('UI:Schema:Title')); $oPage->AddUiBlock($oTitle); @@ -1195,17 +1107,16 @@ $oLayout->AddSideHtml("
            "); $oPage->add("
            "); $oPage->add("
            "); -switch ($operation) -{ +switch ($operation) { case 'details_class': $sClass = utils::ReadParam('class', '', false, 'class'); //if we want to see class details & class is given then display it, otherwise act default (just show the class list) - if ($sClass != '') - { + if ($sClass != '') { $oPage->set_title(Dict::Format('UI:Schema:TitleForClass', $sClass)); DisplayClassDetails($oPage, $sClass, $sContext); break; } + // no break default: } $oPage->add("
            "); diff --git a/portal/index.php b/portal/index.php index 7dbefbd1b..1f5ff0391 100644 --- a/portal/index.php +++ b/portal/index.php @@ -23,38 +23,30 @@ use Combodo\iTop\Application\WebPage\ErrorPage; require_once('../approot.inc.php'); require_once(APPROOT.'/application/application.inc.php'); -try -{ +try { require_once(APPROOT.'/application/startup.inc.php'); require_once(APPROOT.'/application/loginwebpage.class.inc.php'); LoginWebPage::DoLogin(false /* bMustBeAdmin */, true /* IsAllowedToPortalUsers */); // Check user rights and prompt if needed -} -catch(Exception $e) -{ +} catch (Exception $e) { require_once(APPROOT.'/setup/setuppage.class.inc.php'); $oP = new ErrorPage(Dict::S('UI:PageTitle:FatalError')); - $oP->add("

            ".Dict::S('UI:FatalErrorMessage')."

            \n"); + $oP->add("

            ".Dict::S('UI:FatalErrorMessage')."

            \n"); $oP->error(Dict::Format('UI:Error_Details', $e->getMessage())); $oP->output(); - if (MetaModel::IsLogEnabledIssue()) - { - if (MetaModel::IsValidClass('EventIssue')) - { - try - { + if (MetaModel::IsLogEnabledIssue()) { + if (MetaModel::IsValidClass('EventIssue')) { + try { $oLog = new EventIssue(); - + $oLog->Set('message', $e->getMessage()); $oLog->Set('userinfo', ''); $oLog->Set('issue', 'PHP Exception'); $oLog->Set('impact', 'Page could not be displayed'); $oLog->Set('callstack', $e->getTrace()); - $oLog->Set('data', array()); + $oLog->Set('data', []); $oLog->DBInsertNoReload(); - } - catch(Exception $e) - { + } catch (Exception $e) { IssueLog::Error("Failed to log issue into the DB"); } } diff --git a/setup/ajax.dataloader.php b/setup/ajax.dataloader.php index 647ddf569..3e9f498c1 100644 --- a/setup/ajax.dataloader.php +++ b/setup/ajax.dataloader.php @@ -1,4 +1,5 @@ '.$sLogMessage.''; } - function FatalErrorCatcher($sOutput) { - if (preg_match('|<'.PHP_FATAL_ERROR_TAG.'>.*|s', $sOutput, $aMatches)) - { + if (preg_match('|<'.PHP_FATAL_ERROR_TAG.'>.*|s', $sOutput, $aMatches)) { header("HTTP/1.0 500 Internal server error."); $errors = ''; - foreach ($aMatches as $sMatch) - { + foreach ($aMatches as $sMatch) { $errors .= strip_tags($sMatch)."\n"; } $sOutput = "$errors\n"; - // Logging to a file does not work if the whole memory is exhausted... + // Logging to a file does not work if the whole memory is exhausted... // SetupLog::Error("Fatal error - in $__FILE__ , $errors"); } return $sOutput; @@ -132,7 +120,6 @@ require_once(APPROOT.'/core/kpi.class.inc.php'); require_once(APPROOT.'/core/cmdbsource.class.inc.php'); require_once('./xmldataloader.class.inc.php'); - // Never cache this page header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Fri, 17 Jul 1970 05:00:00 GMT"); // Date in the past @@ -141,41 +128,38 @@ header("Expires: Fri, 17 Jul 1970 05:00:00 GMT"); // Date in the past * Main program */ $sOperation = Utils::ReadParam('operation', ''); -try -{ +try { SetupUtils::CheckSetupToken(); - switch($sOperation) - { + switch ($sOperation) { case 'async_action': - ini_set('max_execution_time', max(240, ini_get('max_execution_time'))); - // While running the setup it is desirable to see any error that may happen - ini_set('display_errors', true); - ini_set('display_startup_errors', true); - - require_once(APPROOT.'/setup/wizardcontroller.class.inc.php'); - require_once(APPROOT.'/setup/wizardsteps.class.inc.php'); - - $sClass = utils::ReadParam('step_class', ''); - $sState = utils::ReadParam('step_state', ''); - $sActionCode = utils::ReadParam('code', ''); - $aParams = utils::ReadParam('params', array(), false, 'raw_data'); - $oPage = new AjaxPage(''); - $oDummyController = new WizardController(''); - if (is_subclass_of($sClass, 'WizardStep')) - { - /** @var WizardStep $oStep */ - $oStep = new $sClass($oDummyController, $sState); - $sConfigFile = utils::GetConfigFilePath(); - if (file_exists($sConfigFile) && !is_writable($sConfigFile) && $oStep->RequiresWritableConfig()) { - $sRelativePath = utils::GetConfigFilePathRelative(); - $oPage->error("Error: the configuration file '".$sRelativePath."' already exists and cannot be overwritten."); - $oPage->p("The wizard cannot modify the configuration file for you. If you want to upgrade ".ITOP_APPLICATION.", make sure that the file '".$sRelativePath."' can be modified by the web server."); - $oPage->output(); - } else { - $oStep->AsyncAction($oPage, $sActionCode, $aParams); + ini_set('max_execution_time', max(240, ini_get('max_execution_time'))); + // While running the setup it is desirable to see any error that may happen + ini_set('display_errors', true); + ini_set('display_startup_errors', true); + + require_once(APPROOT.'/setup/wizardcontroller.class.inc.php'); + require_once(APPROOT.'/setup/wizardsteps.class.inc.php'); + + $sClass = utils::ReadParam('step_class', ''); + $sState = utils::ReadParam('step_state', ''); + $sActionCode = utils::ReadParam('code', ''); + $aParams = utils::ReadParam('params', [], false, 'raw_data'); + $oPage = new AjaxPage(''); + $oDummyController = new WizardController(''); + if (is_subclass_of($sClass, 'WizardStep')) { + /** @var WizardStep $oStep */ + $oStep = new $sClass($oDummyController, $sState); + $sConfigFile = utils::GetConfigFilePath(); + if (file_exists($sConfigFile) && !is_writable($sConfigFile) && $oStep->RequiresWritableConfig()) { + $sRelativePath = utils::GetConfigFilePathRelative(); + $oPage->error("Error: the configuration file '".$sRelativePath."' already exists and cannot be overwritten."); + $oPage->p("The wizard cannot modify the configuration file for you. If you want to upgrade ".ITOP_APPLICATION.", make sure that the file '".$sRelativePath."' can be modified by the web server."); + $oPage->output(); + } else { + $oStep->AsyncAction($oPage, $sActionCode, $aParams); + } } - } $oPage->output(); break; @@ -189,23 +173,17 @@ try default: throw(new Exception("Error unsupported operation '$sOperation'")); } -} -catch(Exception $e) -{ +} catch (Exception $e) { header("HTTP/1.0 500 Internal server error."); echo "

            An error happened while processing the installation:

            \n"; echo '

            '.$e."

            \n"; SetupLog::Error("An error happened while processing the installation: ".$e); } -if (function_exists('memory_get_peak_usage')) -{ - if ($sOperation == 'file') - { +if (function_exists('memory_get_peak_usage')) { + if ($sOperation == 'file') { SetupLog::Info("loading file '$sFileName', peak memory usage. ".memory_get_peak_usage()); - } - else - { + } else { SetupLog::Info("operation '$sOperation', peak memory usage. ".memory_get_peak_usage()); } -} \ No newline at end of file +} diff --git a/setup/appupgradecopy.php b/setup/appupgradecopy.php index 6a8465e5f..e27166470 100644 --- a/setup/appupgradecopy.php +++ b/setup/appupgradecopy.php @@ -15,8 +15,7 @@ function AppUpgradeCopyFiles($sSourceDir) CoreUpdater::CopyDir($sSourceDir, APPROOT); // Update Core update files $sSource = realpath($sSourceDir.'/datamodels/2.x/itop-core-update'); - if ($sSource !== false) - { + if ($sSource !== false) { CoreUpdater::CopyDir($sSource, APPROOT.'env-production/itop-core-update'); } -} \ No newline at end of file +} diff --git a/setup/compat/domcompat.php b/setup/compat/domcompat.php index 271c1c798..a98d58a40 100644 --- a/setup/compat/domcompat.php +++ b/setup/compat/domcompat.php @@ -1,4 +1,5 @@ add_http_headers('DENY'); - /** * Helper to check server setting required to send an email */ @@ -48,85 +48,64 @@ function CheckEmailSetting($oP) { $bRet = true; - if (function_exists('php_ini_loaded_file')) // PHP >= 5.2.4 - { + if (function_exists('php_ini_loaded_file')) { // PHP >= 5.2.4 $sPhpIniFile = php_ini_loaded_file(); - } - else - { + } else { $sPhpIniFile = 'php.ini'; } $sTransport = MetaModel::GetConfig()->Get('email_transport'); - switch($sTransport) - { + switch ($sTransport) { case 'PHPMail': - $oP->info("iTop is configured to use PHP's mail function to send emails."); - $bIsWindows = (array_key_exists('WINDIR', $_SERVER) || array_key_exists('windir', $_SERVER)); - if ($bIsWindows) - { - $sSmtpServer = ini_get('SMTP'); - if (empty($sSmtpServer)) - { - $oP->error("The SMTP server is not defined. Please add the 'SMTP' directive into $sPhpIniFile"); - $bRet = false; + $oP->info("iTop is configured to use PHP's mail function to send emails."); + $bIsWindows = (array_key_exists('WINDIR', $_SERVER) || array_key_exists('windir', $_SERVER)); + if ($bIsWindows) { + $sSmtpServer = ini_get('SMTP'); + if (empty($sSmtpServer)) { + $oP->error("The SMTP server is not defined. Please add the 'SMTP' directive into $sPhpIniFile"); + $bRet = false; + } elseif (strcasecmp($sSmtpServer, 'localhost') == 0) { + $oP->warning("Your SMTP server is configured to 'localhost'. You might want to set or change the 'SMTP' directive into $sPhpIniFile"); + } else { + $oP->info("Your SMTP server: $sSmtpServer. To change this value, modify the 'SMTP' directive into $sPhpIniFile"); + } + + $iSmtpPort = (int) ini_get('smtp_port'); + if (empty($iSmtpPort)) { + $oP->info("The SMTP port is not defined. Please add the 'smtp_port' directive into $sPhpIniFile"); + $bRet = false; + } elseif ($iSmtpPort == 25) { + $oP->info("Your SMTP port is configured to the default value: 25. You might want to set or change the 'smtp_port' directive into $sPhpIniFile"); + } else { + $oP->info("Your SMTP port is configured to $iSmtpPort. You might want to set or change the 'smtp_port' directive into $sPhpIniFile"); + } + } else { + // Not a windows system + $sSendMail = ini_get('sendmail_path'); + if (empty($sSendMail)) { + $oP->error("The command to send mail is not defined. Please add the 'sendmail_path' directive into $sPhpIniFile. A recommended setting is sendmail_path=sendmail -t -i"); + $bRet = false; + } else { + $oP->info("The command to send mail is: $sSendMail. To change this value, modify the 'sendmail_path' directive into $sPhpIniFile"); + } } - else if (strcasecmp($sSmtpServer, 'localhost') == 0) - { - $oP->warning("Your SMTP server is configured to 'localhost'. You might want to set or change the 'SMTP' directive into $sPhpIniFile"); - } - else - { - $oP->info("Your SMTP server: $sSmtpServer. To change this value, modify the 'SMTP' directive into $sPhpIniFile"); - } - - $iSmtpPort = (int) ini_get('smtp_port'); - if (empty($iSmtpPort)) - { - $oP->info("The SMTP port is not defined. Please add the 'smtp_port' directive into $sPhpIniFile"); - $bRet = false; - } - else if ($iSmtpPort == 25) - { - $oP->info("Your SMTP port is configured to the default value: 25. You might want to set or change the 'smtp_port' directive into $sPhpIniFile"); - } - else - { - $oP->info("Your SMTP port is configured to $iSmtpPort. You might want to set or change the 'smtp_port' directive into $sPhpIniFile"); - } - } - else - { - // Not a windows system - $sSendMail = ini_get('sendmail_path'); - if (empty($sSendMail)) - { - $oP->error("The command to send mail is not defined. Please add the 'sendmail_path' directive into $sPhpIniFile. A recommended setting is sendmail_path=sendmail -t -i"); - $bRet = false; - } - else - { - $oP->info("The command to send mail is: $sSendMail. To change this value, modify the 'sendmail_path' directive into $sPhpIniFile"); - } - } - break; + break; case 'SMTP': - $oP->info("iTop is configured to use the $sTransport transport."); - $sHost = MetaModel::GetConfig()->Get('email_transport_smtp.host'); - $sPort = MetaModel::GetConfig()->Get('email_transport_smtp.port'); - $sEncryption = MetaModel::GetConfig()->Get('email_transport_smtp.encryption'); - $sDisplayEncryption = empty($sEncryption) ? 'no encryption ' : $sEncryption; - $sUserName = MetaModel::GetConfig()->Get('email_transport_smtp.username'); - $sDisplayUserName = empty($sUserName) ? 'no user ' : $sUserName; - $sPassword = MetaModel::GetConfig()->Get('email_transport_smtp.password'); - $sDisplayPassword = empty($sPassword) ? 'no password ' : str_repeat('*', strlen($sPassword)); - $oP->info("SMTP configuration (from config-itop.php): host: $sHost, port: $sPort, user: $sDisplayUserName, password: $sDisplayPassword, encryption: $sDisplayEncryption."); - if (($sHost == 'localhost') && ($sPort == '25') && ($sUserName == '') && ($sPassword == '') ) - { - $oP->warning("The default settings may not be suitable for your environment. You may want to adjust these values by editing iTop's configuration file (".utils::GetConfigFilePathRelative().")."); - } - break; + $oP->info("iTop is configured to use the $sTransport transport."); + $sHost = MetaModel::GetConfig()->Get('email_transport_smtp.host'); + $sPort = MetaModel::GetConfig()->Get('email_transport_smtp.port'); + $sEncryption = MetaModel::GetConfig()->Get('email_transport_smtp.encryption'); + $sDisplayEncryption = empty($sEncryption) ? 'no encryption ' : $sEncryption; + $sUserName = MetaModel::GetConfig()->Get('email_transport_smtp.username'); + $sDisplayUserName = empty($sUserName) ? 'no user ' : $sUserName; + $sPassword = MetaModel::GetConfig()->Get('email_transport_smtp.password'); + $sDisplayPassword = empty($sPassword) ? 'no password ' : str_repeat('*', strlen($sPassword)); + $oP->info("SMTP configuration (from config-itop.php): host: $sHost, port: $sPort, user: $sDisplayUserName, password: $sDisplayPassword, encryption: $sDisplayEncryption."); + if (($sHost == 'localhost') && ($sPort == '25') && ($sUserName == '') && ($sPassword == '')) { + $oP->warning("The default settings may not be suitable for your environment. You may want to adjust these values by editing iTop's configuration file (".utils::GetConfigFilePathRelative().")."); + } + break; case 'SMTP_OAuth': $oP->info("iTop is configured to use the $sTransport transport."); @@ -153,63 +132,58 @@ function CheckEmailSetting($oP) } break; - case 'Null': - $oP->warning("iTop is configured to use the Null transport: emails sending will have no effect."); - $bRet = false; - break; - + $oP->warning("iTop is configured to use the Null transport: emails sending will have no effect."); + $bRet = false; + break; + case 'LogFile': - $oP->warning("iTop is configured to use the LogFile transport: emails will not be sent but logged to the file: 'log/mail.log'."); - $bRet = true; - break; - + $oP->warning("iTop is configured to use the LogFile transport: emails will not be sent but logged to the file: 'log/mail.log'."); + $bRet = true; + break; + default: - $oP->error("Unknown transport '$sTransport' configured."); - $bRet = false; + $oP->error("Unknown transport '$sTransport' configured."); + $bRet = false; } - if ($bRet) - { + if ($bRet) { $oP->ok("PHP settings are ok to proceed with a test of the email"); } $bConfigAsync = MetaModel::GetConfig()->Get('email_asynchronous'); - if ($bConfigAsync) - { + if ($bConfigAsync) { $oP->warning("iTop is configured to send emails asynchronously. Make sure that cron.php is scheduled to run in the background, otherwise regular emails will not be sent. For the purpose of this test, the email will be sent synchronously."); } - + return $bRet; } - /** * Display the form for the first step of the test wizard * which consists in a basic check of the configuration and display of a form for testing - */ + */ function DisplayStep1(SetupPage $oP) { $sNextOperation = 'step2'; $oP->add("

            iTop email test

            \n"); $oP->add("

            Checking prerequisites

            \n"); - if (CheckEmailSetting($oP)) - { + if (CheckEmailSetting($oP)) { $sRedStar = '*'; $oP->add("

            Try to send an email

            \n"); $oP->add("
            \n"); // Form goes here $oP->add("
            Test recipient\n"); - $aForm = array(); - $aForm[] = array( + $aForm = []; + $aForm[] = [ 'label' => "To$sRedStar:", 'input' => "", 'help' => ' email address (e.g. john.foo@worldcompany.com)', - ); + ]; $sDefaultFrom = MetaModel::GetConfig()->Get('email_transport_smtp.username'); - $aForm[] = array( + $aForm[] = [ 'label' => "From:", 'input' => "", 'help' => ' defaults to the configuration param "email_default_sender_address" or "To" field.', - ); + ]; $oP->form($aForm); $oP->add("
            \n"); $oP->add("\n"); @@ -225,7 +199,7 @@ function DisplayStep1(SetupPage $oP) /** * Display the form for the second step of the configuration wizard * which consists in sending an email, which maybe a problem under Windows - */ + */ function DisplayStep2(SetupPage $oP, $sFrom, $sTo) { //$sNextOperation = 'step3'; @@ -240,16 +214,12 @@ function DisplayStep2(SetupPage $oP, $sFrom, $sTo) $oEmail->SetSubject("Test iTop"); $oEmail->SetBody("

            Hello,

            The email function is now working fine.

            You may now be able to use the notification function.

            iTop

            "); $iRes = $oEmail->Send($aIssues, true /* force synchronous exec */); - switch ($iRes) - { + switch ($iRes) { case EMAIL_SEND_OK: $sTransport = MetaModel::GetConfig()->Get('email_transport'); - if ($sTransport == 'LogFile') - { + if ($sTransport == 'LogFile') { $oP->ok("The email has been logged into the file ".APPROOT."/log/mail.log."); - } - else - { + } else { $oP->ok("The email has been sent, check your inbox for the incoming mail..."); } $oP->add("\n"); @@ -261,8 +231,7 @@ function DisplayStep2(SetupPage $oP, $sFrom, $sTo) break; case EMAIL_SEND_ERROR: - foreach ($aIssues as $sError) - { + foreach ($aIssues as $sError) { $oP->error(htmlentities($sError, ENT_QUOTES, 'utf-8')); } $oP->add("\n"); @@ -279,15 +248,12 @@ function DisplayStep2(SetupPage $oP, $sFrom, $sTo) // generate a notice date_default_timezone_set('Europe/Paris'); - -try -{ - switch($sOperation) - { +try { + switch ($sOperation) { case 'step1': - DisplayStep1($oP); - break; - + DisplayStep1($oP); + break; + case 'step2': $oP->no_cache(); $sTo = Utils::ReadParam('to', '', false, 'raw_data'); @@ -296,17 +262,12 @@ try break; default: - $oP->error("Error: unsupported operation '$sOperation'"); - + $oP->error("Error: unsupported operation '$sOperation'"); + } -} -catch(Exception $e) -{ +} catch (Exception $e) { $oP->error("Error: '".htmlentities($e->getMessage(), ENT_QUOTES, 'utf-8')."'"); -} -catch(CoreException $e) -{ - $oP->error("Error: '".$e->getHtmlDesc()."'"); +} catch (CoreException $e) { + $oP->error("Error: '".$e->getHtmlDesc()."'"); } $oP->output(); - diff --git a/setup/index.php b/setup/index.php index 468ba60da..1ff7201f3 100644 --- a/setup/index.php +++ b/setup/index.php @@ -1,4 +1,5 @@ - require_once(APPROOT.'setup/setuppage.class.inc.php'); /** * Class ModuleInstaller - * Defines the API to implement module specific actions during the setup + * Defines the API to implement module specific actions during the setup * * @copyright Copyright (C) 2010-2024 Combodo SAS * @license http://opensource.org/licenses/AGPL-3.0 @@ -43,7 +43,7 @@ abstract class ModuleInstallerAPI public static function BeforeDatabaseCreation(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion) { } - + /** * Handler called after the creation/update of the database schema * @param $oConfiguration Config The new configuration of the application @@ -54,41 +54,39 @@ abstract class ModuleInstallerAPI { } - /** - * Handler called at the end of the setup of the database (profiles and admin accounts created), but before the data load - * @param $oConfiguration Config The new configuration of the application - * @param $sPreviousVersion string Previous version number of the module (empty string in case of first install) - * @param $sCurrentVersion string Current version number of the module - */ - public static function AfterDatabaseSetup(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion) - { - } + /** + * Handler called at the end of the setup of the database (profiles and admin accounts created), but before the data load + * @param $oConfiguration Config The new configuration of the application + * @param $sPreviousVersion string Previous version number of the module (empty string in case of first install) + * @param $sCurrentVersion string Current version number of the module + */ + public static function AfterDatabaseSetup(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion) + { + } - /** - * Handler called at the end of the data load - * @param $oConfiguration Config The new configuration of the application - * @param $sPreviousVersion string Previous version number of the module (empty string in case of first install) - * @param $sCurrentVersion string Current version number of the module - */ - public static function AfterDataLoad(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion) - { - } + /** + * Handler called at the end of the data load + * @param $oConfiguration Config The new configuration of the application + * @param $sPreviousVersion string Previous version number of the module (empty string in case of first install) + * @param $sCurrentVersion string Current version number of the module + */ + public static function AfterDataLoad(Config $oConfiguration, $sPreviousVersion, $sCurrentVersion) + { + } /** * Helper to complete the renaming of a class - * The renaming is made in the datamodel definition, but the name has to be changed in the DB as well + * The renaming is made in the datamodel definition, but the name has to be changed in the DB as well * Must be called after DB update, i.e within an implementation of AfterDatabaseCreation() - * - * @param string $sFrom Original name (already INVALID in the current datamodel) + * + * @param string $sFrom Original name (already INVALID in the current datamodel) * @param string $sTo New name (valid in the current datamodel) - * @return void + * @return void */ public static function RenameClassInDB($sFrom, $sTo) { - try - { - if (!MetaModel::IsStandaloneClass($sTo)) - { + try { + if (!MetaModel::IsStandaloneClass($sTo)) { $sRootClass = MetaModel::GetRootClass($sTo); $sTableName = MetaModel::DBGetTable($sRootClass); $sFinalClassCol = MetaModel::DBGetClassField($sRootClass); @@ -97,77 +95,61 @@ abstract class ModuleInstallerAPI $iAffectedRows = CMDBSource::AffectedRows(); SetupLog::Info("Renaming class in DB - final class from '$sFrom' to '$sTo': $iAffectedRows rows affected"); } - } - catch(Exception $e) - { + } catch (Exception $e) { SetupLog::Warning("Failed to rename class in DB - final class from '$sFrom' to '$sTo'. Reason: ".$e->getMessage()); - } + } } /** - * Helper to modify an enum value - * The change is made in the datamodel definition, but the value has to be changed in the DB as well + * Helper to modify an enum value + * The change is made in the datamodel definition, but the value has to be changed in the DB as well * Must be called BEFORE DB update, i.e within an implementation of BeforeDatabaseCreation() - * This helper does change ONE value at a time - * + * This helper does change ONE value at a time + * * @param string $sClass A valid class name * @param string $sAttCode The enum attribute code - * @param string $sFrom Original value (already INVALID in the current datamodel) + * @param string $sFrom Original value (already INVALID in the current datamodel) * @param string $sTo New value (valid in the current datamodel) - * @return void + * @return void */ public static function RenameEnumValueInDB($sClass, $sAttCode, $sFrom, $sTo) { - try - { - if (!MetaModel::IsValidAttCode($sClass, $sAttCode)) - { + try { + if (!MetaModel::IsValidAttCode($sClass, $sAttCode)) { SetupLog::Warning("Changing enum in DB - $sClass::$sAttCode - from '$sFrom' to '$sTo' failed. Reason '$sAttCode' is not a valid attribute of the class '$sClass'."); return; } $sOriginClass = MetaModel::GetAttributeOrigin($sClass, $sAttCode); $sTableName = MetaModel::DBGetTable($sOriginClass); - + $oAttDef = MetaModel::GetAttributeDef($sOriginClass, $sAttCode); - if ($oAttDef instanceof AttributeEnum) - { + if ($oAttDef instanceof AttributeEnum) { $oValDef = $oAttDef->GetValuesDef(); - if ($oValDef) - { - $aNewValues = array_keys($oValDef->GetValues(array(), "")); - if (in_array($sTo, $aNewValues)) - { + if ($oValDef) { + $aNewValues = array_keys($oValDef->GetValues([], "")); + if (in_array($sTo, $aNewValues)) { $sEnumCol = $oAttDef->Get("sql"); $aFields = CMDBSource::QueryToArray("SHOW COLUMNS FROM `$sTableName` WHERE Field = '$sEnumCol'"); - if (isset($aFields[0]['Type'])) - { + if (isset($aFields[0]['Type'])) { $sColType = $aFields[0]['Type']; // Note: the parsing should rely on str_getcsv (requires PHP 5.3) to cope with escaped string - if (preg_match("/^enum\('(.*)'\)$/", $sColType, $aMatches)) - { + if (preg_match("/^enum\('(.*)'\)$/", $sColType, $aMatches)) { $aCurrentValues = explode("','", $aMatches[1]); - } - else - { + } else { // not an enum currently : return ! // we could update values, but a clear error message will be displayed when altering the column return; } } - if (!in_array($sFrom, $aNewValues)) - { - if (!in_array($sTo, $aCurrentValues)) // if not already transformed! - { + if (!in_array($sFrom, $aNewValues)) { + if (!in_array($sTo, $aCurrentValues)) { // if not already transformed! $sNullSpec = $oAttDef->IsNullAllowed() ? 'NULL' : 'NOT NULL'; - - if (strtolower($sTo) == strtolower($sFrom)) - { + + if (strtolower($sTo) == strtolower($sFrom)) { SetupLog::Info("Changing enum in DB - $sClass::$sAttCode from '$sFrom' to '$sTo' (just a change in the case)"); - $aTargetValues = array(); - foreach ($aCurrentValues as $sValue) - { - if ($sValue == $sFrom) - { + $aTargetValues = []; + foreach ($aCurrentValues as $sValue) { + if ($sValue == $sFrom) { $sValue = $sTo; } $aTargetValues[] = $sValue; @@ -175,9 +157,7 @@ abstract class ModuleInstallerAPI $sColumnDefinition = "ENUM(".implode(",", CMDBSource::Quote($aTargetValues)).") $sNullSpec"; $sRepair = "ALTER TABLE `$sTableName` MODIFY `$sEnumCol` $sColumnDefinition"; CMDBSource::Query($sRepair); - } - else - { + } else { // 1st - Allow both values in the column definition // SetupLog::Info("Changing enum in DB - $sClass::$sAttCode from '$sFrom' to '$sTo'"); @@ -186,21 +166,19 @@ abstract class ModuleInstallerAPI $sColumnDefinition = "ENUM(".implode(",", CMDBSource::Quote($aAllValues)).") $sNullSpec"; $sRepair = "ALTER TABLE `$sTableName` MODIFY `$sEnumCol` $sColumnDefinition"; CMDBSource::Query($sRepair); - + // 2nd - Change the old value into the new value // $sRepair = "UPDATE `$sTableName` SET `$sEnumCol` = '$sTo' WHERE `$sEnumCol` = BINARY '$sFrom'"; CMDBSource::Query($sRepair); $iAffectedRows = CMDBSource::AffectedRows(); SetupLog::Info("Changing enum in DB - $iAffectedRows rows updated"); - + // 3rd - Remove the useless value from the column definition // - $aTargetValues = array(); - foreach ($aCurrentValues as $sValue) - { - if ($sValue == $sFrom) - { + $aTargetValues = []; + foreach ($aCurrentValues as $sValue) { + if ($sValue == $sFrom) { $sValue = $sTo; } $aTargetValues[] = $sValue; @@ -211,21 +189,15 @@ abstract class ModuleInstallerAPI SetupLog::Info("Changing enum in DB - removed useless value '$sFrom'"); } } - } - else - { + } else { SetupLog::Warning("Changing enum in DB - $sClass::$sAttCode - '$sFrom' is still a valid value (".implode(', ', $aNewValues).")"); } - } - else - { + } else { SetupLog::Warning("Changing enum in DB - $sClass::$sAttCode - '$sTo' is not a known value (".implode(', ', $aNewValues).")"); } } } - } - catch(Exception $e) - { + } catch (Exception $e) { SetupLog::Warning("Changing enum in DB - $sClass::$sAttCode - '$sTo' failed. Reason ".$e->getMessage()); } } @@ -253,21 +225,18 @@ abstract class ModuleInstallerAPI */ public static function MoveColumnInDB($sOrigTable, $sOrigColumn, $sDstTable, $sDstColumn, bool $bIgnoreExistingDstColumn = false) { - if (!MetaModel::DBExists(false)) - { + if (!MetaModel::DBExists(false)) { // Install from scratch, no migration return; } - if (!CMDBSource::IsTable($sOrigTable) || !CMDBSource::IsField($sOrigTable, $sOrigColumn)) - { + if (!CMDBSource::IsTable($sOrigTable) || !CMDBSource::IsField($sOrigTable, $sOrigColumn)) { // Original field is not present return; } - + $bDstTableFieldExists = CMDBSource::IsField($sDstTable, $sDstColumn); - if (!CMDBSource::IsTable($sDstTable) || ($bDstTableFieldExists && !$bIgnoreExistingDstColumn)) - { + if (!CMDBSource::IsTable($sDstTable) || ($bDstTableFieldExists && !$bIgnoreExistingDstColumn)) { // Destination field is already created, and we are not ignoring it return; } @@ -284,10 +253,10 @@ abstract class ModuleInstallerAPI } // Create the destination field if necessary - if($bDstTableFieldExists === false){ + if ($bDstTableFieldExists === false) { $sSpec = CMDBSource::GetFieldSpec($sOrigTable, $sOrigColumn); $sQueryAdd = "ALTER TABLE `{$sDstTable}` ADD `{$sDstColumn}` {$sSpec}"; - CMDBSource::Query($sQueryAdd); + CMDBSource::Query($sQueryAdd); } // Copy the data @@ -317,25 +286,21 @@ abstract class ModuleInstallerAPI */ public static function RenameTableInDB(string $sOrigTable, string $sDstTable) { - if ($sOrigTable == $sDstTable) - { + if ($sOrigTable == $sDstTable) { throw new CoreUnexpectedValue("Origin table and destination table are the same"); } - if (!MetaModel::DBExists(false)) - { + if (!MetaModel::DBExists(false)) { // Install from scratch, no migration return; } - if (!CMDBSource::IsTable($sOrigTable)) - { + if (!CMDBSource::IsTable($sOrigTable)) { SetupLog::Warning(sprintf('Rename table in DB - Origin table %s doesn\'t exist', $sOrigTable)); return; } - if (CMDBSource::IsTable($sDstTable)) - { + if (CMDBSource::IsTable($sDstTable)) { SetupLog::Warning(sprintf('Rename table in DB - Destination table %s already exists', $sDstTable)); return; } diff --git a/setup/parameters.class.inc.php b/setup/parameters.class.inc.php index 0bc938250..40680a2da 100644 --- a/setup/parameters.class.inc.php +++ b/setup/parameters.class.inc.php @@ -1,4 +1,5 @@ aData = null; @@ -14,8 +15,7 @@ abstract class Parameters public function Get($sCode, $default = '') { - if (array_key_exists($sCode, $this->aData)) - { + if (array_key_exists($sCode, $this->aData)) { return $this->aData[$sCode]; } return $default; @@ -27,7 +27,7 @@ abstract class Parameters public function GetParamForConfigArray() { $aDBParams = $this->Get('database'); - $aParamValues = array( + $aParamValues = [ 'mode' => $this->Get('mode'), 'db_server' => $aDBParams['server'], 'db_user' => $aDBParams['user'], @@ -41,7 +41,7 @@ abstract class Parameters 'language' => $this->Get('language', ''), 'graphviz_path' => $this->Get('graphviz_path', ''), 'source_dir' => $this->Get('source_dir', ''), - ); + ]; return $aParamValues; } @@ -53,51 +53,37 @@ abstract class Parameters public function ToXML(DOMNode $oRoot, $data = null, $sNodeName = null) { - if ($data === null) - { + if ($data === null) { $data = $this->aData; } - - if (is_array($data)) - { - if ($oRoot instanceof DOMDocument) - { + + if (is_array($data)) { + if ($oRoot instanceof DOMDocument) { $oNode = $oRoot->createElement($sNodeName); - } - else - { + } else { $oNode = $oRoot->ownerDocument->createElement($sNodeName); } $oRoot->appendChild($oNode); $aKeys = array_keys($data); $bNumericKeys = true; - foreach($aKeys as $subkey) - { - if(((int)$subkey) !== $subkey) - { + foreach ($aKeys as $subkey) { + if (((int)$subkey) !== $subkey) { $bNumericKeys = false; break; } } - if ($bNumericKeys) - { + if ($bNumericKeys) { $oNode->setAttribute("type", "array"); - foreach($data as $key => $value) - { - $this->ToXML($oNode, $value , 'item'); + foreach ($data as $key => $value) { + $this->ToXML($oNode, $value, 'item'); + } + } else { + foreach ($data as $key => $value) { + $this->ToXML($oNode, $value, $key); } } - else - { - foreach($data as $key => $value) - { - $this->ToXML($oNode, $value , $key); - } - } - } - else - { + } else { $oNode = $oRoot->ownerDocument->createElement($sNodeName); $oRoot->appendChild($oNode); $oTextNode = $oRoot->ownerDocument->createTextNode($data); @@ -113,11 +99,10 @@ class PHPParameters extends Parameters { $this->aData = $aData; } - + public function LoadFromFile($sParametersFile) { - if ($this->aData == null) - { + if ($this->aData == null) { require_once($sParametersFile); $this->aData = $ITOP_PARAMS; // Defined in the file loaded just above } @@ -139,88 +124,75 @@ class XMLParameters extends Parameters public function LoadFromFile($sParametersFile) { $this->sParametersFile = $sParametersFile; - if ($this->aData == null) - { + if ($this->aData == null) { libxml_use_internal_errors(true); $oXML = @simplexml_load_file($this->sParametersFile); - if (!$oXML) - { - $aMessage = array(); - foreach(libxml_get_errors() as $oError) - { + if (!$oXML) { + $aMessage = []; + foreach (libxml_get_errors() as $oError) { $aMessage[] = "(line: {$oError->line}) ".$oError->message; // Beware: $oError->columns sometimes returns wrong (misleading) value } libxml_clear_errors(); throw new InvalidParameterException("Invalid Parameters file '{$this->sParametersFile}': ".implode(' ', $aMessage)); } - - $this->aData = array(); - foreach($oXML as $key => $oElement) - { + + $this->aData = []; + foreach ($oXML as $key => $oElement) { $this->aData[(string)$key] = $this->ReadElement($oElement); } } } - + protected function ReadElement(SimpleXMLElement $oElement) { $sDefaultNodeType = (count($oElement->children()) > 0) ? 'hash' : 'string'; $sNodeType = $this->GetAttribute('type', $oElement, $sDefaultNodeType); - switch($sNodeType) - { + switch ($sNodeType) { case 'array': - $value = array(); - // Treat the current element as zero based array, child tag names are NOT meaningful - $sFirstTagName = null; - foreach($oElement->children() as $oChildElement) - { - if ($sFirstTagName == null) - { - $sFirstTagName = $oChildElement->getName(); + $value = []; + // Treat the current element as zero based array, child tag names are NOT meaningful + $sFirstTagName = null; + foreach ($oElement->children() as $oChildElement) { + if ($sFirstTagName == null) { + $sFirstTagName = $oChildElement->getName(); + } elseif ($sFirstTagName != $oChildElement->getName()) { + throw new InvalidParameterException("Invalid Parameters file '{$this->sParametersFile}': mixed tags ('$sFirstTagName' and '".$oChildElement->getName()."') inside array '".$oElement->getName()."'"); + } + $val = $this->ReadElement($oChildElement); + $value[] = $val; } - else if ($sFirstTagName != $oChildElement->getName()) - { - throw new InvalidParameterException("Invalid Parameters file '{$this->sParametersFile}': mixed tags ('$sFirstTagName' and '".$oChildElement->getName()."') inside array '".$oElement->getName()."'"); - } - $val = $this->ReadElement($oChildElement); - $value[] = $val; - } - break; - + break; + case 'hash': - $value = array(); - // Treat the current element as a hash, child tag names are keys - foreach($oElement->children() as $oChildElement) - { - if (array_key_exists($oChildElement->getName(), $value)) - { - throw new InvalidParameterException("Invalid Parameters file '{$this->sParametersFile}': duplicate tags '".$oChildElement->getName()."' inside hash '".$oElement->getName()."'"); + $value = []; + // Treat the current element as a hash, child tag names are keys + foreach ($oElement->children() as $oChildElement) { + if (array_key_exists($oChildElement->getName(), $value)) { + throw new InvalidParameterException("Invalid Parameters file '{$this->sParametersFile}': duplicate tags '".$oChildElement->getName()."' inside hash '".$oElement->getName()."'"); + } + $val = $this->ReadElement($oChildElement); + $value[$oChildElement->getName()] = $val; } - $val = $this->ReadElement($oChildElement); - $value[$oChildElement->getName()] = $val; - } - break; - + break; + case 'int': case 'integer': - $value = (int)$oElement; - break; - + $value = (int)$oElement; + break; + case 'string': default: - $value = (string)$oElement; + $value = (string)$oElement; } return $value; } - + protected function GetAttribute($sAttName, $oElement, $sDefaultValue) { $sRet = $sDefaultValue; - foreach($oElement->attributes() as $sKey => $oChildElement) - { - if ((string)$sKey == $sAttName) - { + foreach ($oElement->attributes() as $sKey => $oChildElement) { + if ((string)$sKey == $sAttName) { $sRet = (string)$oChildElement; break; } diff --git a/setup/phpcheck.php b/setup/phpcheck.php index 34f5ccf58..a97fa6af6 100644 --- a/setup/phpcheck.php +++ b/setup/phpcheck.php @@ -1,2 +1,3 @@ PHP works!'; \ No newline at end of file + +echo '

            PHP works!

            '; diff --git a/setup/phpinfo.php b/setup/phpinfo.php index a8d5bd847..24524659f 100644 --- a/setup/phpinfo.php +++ b/setup/phpinfo.php @@ -1,4 +1,5 @@ diff --git a/setup/setuppage.class.inc.php b/setup/setuppage.class.inc.php index 546b08594..2beda5e1d 100644 --- a/setup/setuppage.class.inc.php +++ b/setup/setuppage.class.inc.php @@ -1,4 +1,5 @@ LinkScriptFromAppRoot('node_modules/@popperjs/core/dist/umd/popper.js'); $this->LinkScriptFromAppRoot('node_modules/tippy.js/dist/tippy-bundle.umd.js'); $this->LinkScriptFromAppRoot("setup/setup.js"); - $this->LinkScriptFromAppRoot("setup/csp-detection.js?itop_version_wiki_syntax=" . utils::GetItopVersionWikiSyntax()); + $this->LinkScriptFromAppRoot("setup/csp-detection.js?itop_version_wiki_syntax=".utils::GetItopVersionWikiSyntax()); $this->LinkStylesheetFromAppRoot('css/font-awesome/css/all.min.css'); $this->LinkStylesheetFromAppRoot('css/font-combodo/font-combodo.css'); $this->LinkStylesheetFromAppRoot('node_modules/tippy.js/dist/tippy.css'); @@ -72,7 +72,7 @@ class SetupPage extends NiceWebPage /** * Overriden because the application is not fully loaded when the setup is being run */ - function GetApplicationContext() + public function GetApplicationContext() { return ''; } @@ -104,33 +104,22 @@ class SetupPage extends NiceWebPage public function form($aData) { $this->add("
      ".$sLabel."
      $sField$sDate$sTime$sDate$sField$sField$sField$sField
      \n"); - foreach ($aData as $aRow) - { + foreach ($aData as $aRow) { $this->add("\n"); - if (isset($aRow['label']) && isset($aRow['input']) && isset($aRow['help'])) - { + if (isset($aRow['label']) && isset($aRow['input']) && isset($aRow['help'])) { $this->add("\n"); $this->add("\n"); $this->add("\n"); - } - else - { - if (isset($aRow['label']) && isset($aRow['help'])) - { + } else { + if (isset($aRow['label']) && isset($aRow['help'])) { $this->add("\n"); $this->add("\n"); - } - else - { - if (isset($aRow['label']) && isset($aRow['input'])) - { + } else { + if (isset($aRow['label']) && isset($aRow['input'])) { $this->add("\n"); $this->add("\n"); - } - else - { - if (isset($aRow['label'])) - { + } else { + if (isset($aRow['label'])) { $this->add("\n"); } } @@ -145,14 +134,12 @@ class SetupPage extends NiceWebPage { $this->add("

      $sTitle

      "); $this->p('
        '); - foreach ($aItems as $sItem) - { + foreach ($aItems as $sItem) { $this->p("
      • $sItem
      • \n"); } $this->p('
      '); $this->add_ready_script("$('#{$sId}').on('click', function() { $(this).toggleClass('open'); $('#{$sId}_list').toggle();} );\n"); - if (!$bOpen) - { + if (!$bOpen) { $this->add_ready_script("$('#{$sId}').toggleClass('open'); $('#{$sId}_list').toggle();\n"); } } diff --git a/setup/unattended-install/unattended-install.php b/setup/unattended-install/unattended-install.php index 4151318ad..34cf4901b 100644 --- a/setup/unattended-install/unattended-install.php +++ b/setup/unattended-install/unattended-install.php @@ -1,11 +1,11 @@ [--installation_xml=] [--use_itop_config] Options: @@ -22,27 +22,26 @@ Advanced options: --clean=1 In case of a first installation, cleanup the environment before proceeding: delete the configuration file, the cache directory, the target directory, the database (default: 0) --install=0 Set to 0 to perform a dry-run (default: 1) EOF; - exit(-1); + exit(-1); } ///////////////////////////////////////////////// $oCtx = new ContextTag(ContextTag::TAG_SETUP); $sCleanName = strtolower(trim(PHP_SAPI)); -if ($sCleanName !== 'cli') -{ +if ($sCleanName !== 'cli') { echo "Mode CLI only"; exit(-1); } if (in_array('--help', $argv)) { - PrintUsageAndExit(); + PrintUsageAndExit(); } $sParamFile = utils::ReadParam('param-file', null, true /* CLI allowed */, 'raw_data') ?? utils::ReadParam('response_file', null, true /* CLI allowed */, 'raw_data'); if (is_null($sParamFile)) { echo "Missing mandatory argument `--param-file`.\n"; - PrintUsageAndExit(); + PrintUsageAndExit(); } $bCheckConsistency = (utils::ReadParam('check-consistency', '0', true /* CLI allowed */) == '1'); @@ -56,8 +55,7 @@ $oParams = new XMLParameters($sParamFile); $sMode = $oParams->Get('mode'); $sTargetEnvironment = $oParams->Get('target_env', ''); -if ($sTargetEnvironment == '') -{ +if ($sTargetEnvironment == '') { $sTargetEnvironment = 'production'; } @@ -106,12 +104,12 @@ SetupLog::Info($sMsg, null, $aSelectedModules); // Configuration file $sConfigFile = APPCONF.$sTargetEnvironment.'/'.ITOP_CONFIG_FILE; $bUseItopConfig = in_array('--use_itop_config', $argv); -if ($bUseItopConfig && file_exists($sConfigFile)){ +if ($bUseItopConfig && file_exists($sConfigFile)) { //unattended run based on db settings coming from itop configuration copy($sConfigFile, "$sConfigFile.backup"); $oConfig = new Config($sConfigFile); - $aDBXmlSettings = $oParams->Get('database', array()); + $aDBXmlSettings = $oParams->Get('database', []); $aDBXmlSettings ['server'] = $oConfig->Get('db_host'); $aDBXmlSettings ['user'] = $oConfig->Get('db_user'); $aDBXmlSettings ['pwd'] = $oConfig->Get('db_pwd'); @@ -127,7 +125,7 @@ if ($bUseItopConfig && file_exists($sConfigFile)){ 'source_dir' => 'source_dir', 'graphviz_path' => 'graphviz_path', ]; - foreach($aFields as $sSetupField => $sConfField){ + foreach ($aFields as $sSetupField => $sConfField) { $oParams->Set($sSetupField, $oConfig->Get($sConfField)); } @@ -135,7 +133,7 @@ if ($bUseItopConfig && file_exists($sConfigFile)){ $oParams->Set('language', $oConfig->GetDefaultLanguage()); } else { //unattended run based on db settings coming from response_file (XML file) - $aDBXmlSettings = $oParams->Get('database', array()); + $aDBXmlSettings = $oParams->Get('database', []); } $sDBServer = $aDBXmlSettings['server']; @@ -146,36 +144,29 @@ $sDBPrefix = $aDBXmlSettings['prefix']; $bDBTlsEnabled = $aDBXmlSettings['db_tls_enabled']; $sDBTlsCa = $aDBXmlSettings['db_tls_ca']; -if ($sMode == 'install') -{ +if ($sMode == 'install') { echo "Installation mode detected.\n"; $bClean = utils::ReadParam('clean', false, true /* CLI allowed */); - if ($bClean) - { + if ($bClean) { echo "Cleanup mode detected.\n"; - if (file_exists($sConfigFile)) - { + if (file_exists($sConfigFile)) { echo "Trying to delete the configuration file: '$sConfigFile'.\n"; @chmod($sConfigFile, 0770); // RWX for owner and group, nothing for others unlink($sConfigFile); - } - else - { + } else { echo "No config file to delete ($sConfigFile does not exist).\n"; } // Starting with iTop 2.7.0, a failed setup leaves some lock files, let's remove them - $aLockFiles = array( + $aLockFiles = [ 'data/.readonly' => 'read-only lock file', 'data/.maintenance' => 'maintenance mode lock file', - ); - foreach($aLockFiles as $sFile => $sDescription) - { - $sLockFile = APPROOT.$sFile; - if (file_exists($sLockFile)) - { + ]; + foreach ($aLockFiles as $sFile => $sDescription) { + $sLockFile = APPROOT.$sFile; + if (file_exists($sLockFile)) { echo "Trying to delete the $sDescription: '$sLockFile'.\n"; unlink($sLockFile); } @@ -184,69 +175,49 @@ if ($sMode == 'install') // Starting with iTop 2.6.0, let's remove the cache directory as well // Can cause some strange issues in the setup (apparently due to the Dict class being automatically loaded ??) $sCacheDir = APPROOT.'data/cache-'.$sTargetEnvironment; - if (file_exists($sCacheDir)) - { - if (is_dir($sCacheDir)) - { - echo "Emptying the cache directory '$sCacheDir'.\n"; - SetupUtils::tidydir($sCacheDir); - } - else - { + if (file_exists($sCacheDir)) { + if (is_dir($sCacheDir)) { + echo "Emptying the cache directory '$sCacheDir'.\n"; + SetupUtils::tidydir($sCacheDir); + } else { die("ERROR the cache directory '$sCacheDir' exists, but is NOT a directory !!!\nExiting.\n"); } } // env-xxx directory $sTargetDir = APPROOT.'env-'.$sTargetEnvironment; - if (file_exists($sTargetDir)) - { - if (is_dir($sTargetDir)) - { - echo "Emptying the target directory '$sTargetDir'.\n"; - SetupUtils::tidydir($sTargetDir); - } - else - { + if (file_exists($sTargetDir)) { + if (is_dir($sTargetDir)) { + echo "Emptying the target directory '$sTargetDir'.\n"; + SetupUtils::tidydir($sTargetDir); + } else { die("ERROR the target dir '$sTargetDir' exists, but is NOT a directory !!!\nExiting.\n"); } - } - else - { + } else { echo "No target directory to delete ($sTargetDir does not exist).\n"; } - if ($sDBPrefix != '') - { + if ($sDBPrefix != '') { die("Cleanup not implemented for a partial database (prefix= '$sDBPrefix')\nExiting."); } - try - { + try { $oMysqli = CMDBSource::GetMysqliInstance($sDBServer, $sDBUser, $sDBPwd, null, $bDBTlsEnabled, $sDBTlsCa, true); - if ($oMysqli->select_db($sDBName)) - { + if ($oMysqli->select_db($sDBName)) { echo "Deleting database '$sDBName'\n"; $oMysqli->query("DROP DATABASE `$sDBName`"); - } - else - { + } else { echo "The database '$sDBName' does not seem to exist. Nothing to cleanup.\n"; } - } - catch (MySQLException $e) - { - die($e->getMessage()."\nExiting"); + } catch (MySQLException $e) { + die($e->getMessage()."\nExiting"); } } -} -else -{ +} else { //use settings from itop conf $sTargetEnvironment = $oParams->Get('target_env', ''); - if ($sTargetEnvironment == '') - { + if ($sTargetEnvironment == '') { $sTargetEnvironment = 'production'; } $sTargetDir = APPROOT.'env-'.$sTargetEnvironment; @@ -260,10 +231,8 @@ $sSourceDir = $oParams->Get('source_dir', 'datamodels/latest'); $sExtensionDir = $oParams->Get('extensions_dir', 'extensions'); $aChecks = array_merge($aChecks, SetupUtils::CheckSelectedModules($sSourceDir, $sExtensionDir, $aSelectedModules)); -foreach($aChecks as $oCheckResult) -{ - switch ($oCheckResult->iSeverity) - { +foreach ($aChecks as $oCheckResult) { + switch ($oCheckResult->iSeverity) { case CheckResult::ERROR: $bHasErrors = true; $sHeader = "Error"; @@ -284,15 +253,13 @@ foreach($aChecks as $oCheckResult) break; } echo $sHeader.": ".$oCheckResult->sLabel; - if (strlen($oCheckResult->sDescription)) - { + if (strlen($oCheckResult->sDescription)) { echo ' - '.$oCheckResult->sDescription; } echo "\n"; } -if ($bHasErrors) -{ +if ($bHasErrors) { echo "Encountered stopper issues. Aborting...\n"; $sLogMsg = "Encountered stopper issues. Aborting..."; echo "$sLogMsg\n"; @@ -303,103 +270,76 @@ if ($bHasErrors) $bFoundIssues = false; $bInstall = utils::ReadParam('install', true, true /* CLI allowed */); -if ($bInstall) -{ +if ($bInstall) { echo "Starting the unattended installation...\n"; $oWizard = new ApplicationInstaller($oParams); $bRes = $oWizard->ExecuteAllSteps(); - if (!$bRes) - { + if (!$bRes) { echo "\nencountered installation issues!"; $bFoundIssues = true; - } - else - { - try - { + } else { + try { $oMysqli = CMDBSource::GetMysqliInstance($sDBServer, $sDBUser, $sDBPwd, null, $bDBTlsEnabled, $sDBTlsCa, true); - if ($oMysqli->select_db($sDBName)) - { + if ($oMysqli->select_db($sDBName)) { // Check the presence of a table to record information about the MTP (from the Designer) $sDesignerUpdatesTable = $sDBPrefix.'priv_designer_update'; $sSQL = "SELECT id FROM `$sDesignerUpdatesTable`"; - if ($oMysqli->query($sSQL) !== false) - { + if ($oMysqli->query($sSQL) !== false) { // Record the Designer Udpates in the priv_designer_update table $sDeltaFile = APPROOT.'data/'.$sTargetEnvironment.'.delta.xml'; - if (is_readable($sDeltaFile)) - { + if (is_readable($sDeltaFile)) { // Retrieve the revision $oDoc = new DOMDocument(); $oDoc->load($sDeltaFile); $iRevision = 0; $iRevision = $oDoc->firstChild->getAttribute('revision_id'); - if ($iRevision > 0) // Safety net, just in case... - { + if ($iRevision > 0) { // Safety net, just in case... $sDate = date('Y-m-d H:i:s'); $sSQL = "INSERT INTO `$sDesignerUpdatesTable` (revision_id, compilation_date, comment) VALUES ($iRevision, '$sDate', 'Deployed using unattended.php.')"; - if ($oMysqli->query($sSQL) !== false) - { + if ($oMysqli->query($sSQL) !== false) { echo "\nDesigner update (MTP at revision $iRevision) successfully recorded.\n"; - } - else - { + } else { echo "\nFailed to record designer updates(".$oMysqli->error.").\n"; } - } - else - { + } else { echo "\nFailed to read the revision from $sDeltaFile file. No designer update information will be recorded.\n"; } - } - else - { + } else { echo "\nNo $sDeltaFile file (or the file is not accessible). No designer update information to record.\n"; } } } - } - catch (MySQLException $e) - { - // Continue anyway + } catch (MySQLException $e) { + // Continue anyway } } -} -else -{ +} else { echo "No installation requested.\n"; } -if (!$bFoundIssues && $bCheckConsistency) -{ +if (!$bFoundIssues && $bCheckConsistency) { echo "Checking data model consistency.\n"; ob_start(); $sCheckRes = ''; - try - { + try { MetaModel::CheckDefinitions(false); $sCheckRes = ob_get_clean(); - } - catch(Exception $e) - { + } catch (Exception $e) { $sCheckRes = ob_get_clean()."\nException: ".$e->getMessage(); } - if (strlen($sCheckRes) > 0) - { + if (strlen($sCheckRes) > 0) { echo $sCheckRes; echo "\nfound consistency issues!"; $bFoundIssues = true; } } -if (! $bFoundIssues) -{ +if (! $bFoundIssues) { // last line: used to check the install // the only way to track issues in case of Fatal error or even parsing error! $sLogMsg = "installed!"; - if ($bUseItopConfig && is_file("$sConfigFile.backup")) - { + if ($bUseItopConfig && is_file("$sConfigFile.backup")) { echo "\nuse config file provided by backup in $sConfigFile."; copy("$sConfigFile.backup", $sConfigFile); } diff --git a/setup/wizard.php b/setup/wizard.php index 39891f2b7..5d52ec952 100644 --- a/setup/wizard.php +++ b/setup/wizard.php @@ -1,4 +1,5 @@ sInitialStepClass = $sInitialStepClass; $this->sInitialState = $sInitialState; - $this->aParameters = array(); - $this->aSteps = array(); + $this->aParameters = []; + $this->aSteps = []; } - + /** * Pushes information about the current step onto the stack * @param hash $aStepInfo Array('class' => , 'state' => ) @@ -59,7 +60,7 @@ class WizardController { array_push($this->aSteps, $aStepInfo); } - + /** * Removes information about the previous step from the stack * @return hash Array('class' => , 'state' => ) @@ -68,7 +69,7 @@ class WizardController { return array_pop($this->aSteps); } - + /** * Reads a "persistent" parameter from the wizard's context * @param string $sParamCode The code identifying this parameter @@ -91,7 +92,7 @@ class WizardController public function GetParamForConfigArray(): array { /** @noinspection PhpUnnecessaryLocalVariableInspection */ - $aParamValues = array( + $aParamValues = [ 'db_server' => $this->GetParameter('db_server', ''), 'db_user' => $this->GetParameter('db_user', ''), 'db_pwd' => $this->GetParameter('db_pwd', ''), @@ -99,7 +100,7 @@ class WizardController 'db_prefix' => $this->GetParameter('db_prefix', ''), 'db_tls_enabled' => $this->GetParameter('db_tls_enabled', false), 'db_tls_ca' => $this->GetParameter('db_tls_ca', ''), - ); + ]; return $aParamValues; } @@ -114,7 +115,7 @@ class WizardController { $this->aParameters[$sParamCode] = $value; } - + /** * Stores the value of the page's parameter in a "persistent" parameter in the wizard's context * @param string $sParamCode The code identifying this parameter @@ -126,7 +127,7 @@ class WizardController $value = utils::ReadParam($sParamCode, $defaultValue, false, $sSanitizationFilter); $this->aParameters[$sParamCode] = $value; } - + /** * Starts the wizard by displaying it in its initial state */ @@ -146,23 +147,17 @@ class WizardController $sCurrentState = utils::ReadParam('_state', $this->sInitialState); /** @var \WizardStep $oStep */ $oStep = new $sCurrentStepClass($this, $sCurrentState); - if ($oStep->ValidateParams()) - { - $this->PushStep(array('class' => $sCurrentStepClass, 'state' => $sCurrentState)); + if ($oStep->ValidateParams()) { + $this->PushStep(['class' => $sCurrentStepClass, 'state' => $sCurrentState]); $aPossibleSteps = $oStep->GetPossibleSteps(); $aNextStepInfo = $oStep->ProcessParams(true); // true => moving forward - if (in_array($aNextStepInfo['class'], $aPossibleSteps)) - { + if (in_array($aNextStepInfo['class'], $aPossibleSteps)) { $oNextStep = new $aNextStepInfo['class']($this, $aNextStepInfo['state']); $this->DisplayStep($oNextStep); - } - else - { + } else { throw new Exception("Internal error: Unexpected next step '{$aNextStepInfo['class']}'. The possible next steps are: ".implode(', ', $aPossibleSteps)); } - } - else - { + } else { $this->DisplayStep($oStep); } } @@ -176,13 +171,13 @@ class WizardController $sCurrentState = utils::ReadParam('_state', $this->sInitialState); $oStep = new $sCurrentStepClass($this, $sCurrentState); $aNextStepInfo = $oStep->ProcessParams(false); // false => Moving backwards - + // Display the previous step $aCurrentStepInfo = $this->PopStep(); $oStep = new $aCurrentStepInfo['class']($this, $aCurrentStepInfo['state']); $this->DisplayStep($oStep); } - + /** * Displays the specified 'step' of the wizard * @param WizardStep $oStep The 'step' to display @@ -190,14 +185,11 @@ class WizardController protected function DisplayStep(WizardStep $oStep) { $oPage = new SetupPage($oStep->GetTitle()); - if ($oStep->RequiresWritableConfig()) - { + if ($oStep->RequiresWritableConfig()) { $sConfigFile = utils::GetConfigFilePath(); - if (file_exists($sConfigFile)) - { + if (file_exists($sConfigFile)) { // The configuration file already exists - if (!is_writable($sConfigFile)) - { + if (!is_writable($sConfigFile)) { SetupUtils::ExitReadOnlyMode(false); // Reset readonly mode in case of problem SetupUtils::EraseSetupToken(); $sRelativePath = utils::GetConfigFilePathRelative(); @@ -215,7 +207,7 @@ HTML; // Prevent token creation exit; } - } + } } $oPage->LinkScriptFromAppRoot('setup/setup.js'); $oPage->add_script("function CanMoveForward()\n{\n".$oStep->JSCanMoveForward()."\n}\n"); @@ -247,7 +239,7 @@ HTML; // Hack to have the "Next >>" button, be the default button, since the first submit button in the form is the default one $oPage->add_ready_script( -<<aParameters = utils::ReadParam('_params', array(), false, 'raw_data'); + $this->aParameters = utils::ReadParam('_params', [], false, 'raw_data'); $this->aSteps = json_decode(utils::ReadParam('_steps', '[]', false, 'raw_data'), true /* bAssoc */); - - switch($sOperation) - { + + switch ($sOperation) { case 'next': - $this->Next(); - break; - + $this->Next(); + break; + case 'back': - $this->Back(); - break; - + $this->Back(); + break; + default: - $this->Start(); + $this->Start(); } } - + /** * Provides information about the structure/workflow of the wizard by listing * the possible list of 'steps' and their dependencies @@ -318,22 +309,24 @@ on the page's parameters */ public function DumpStructure($sStep = '', $aAllSteps = null) { - if ($aAllSteps == null) $aAllSteps = array(); - if ($sStep == '') $sStep = $this->sInitialStepClass; - + if ($aAllSteps == null) { + $aAllSteps = []; + } + if ($sStep == '') { + $sStep = $this->sInitialStepClass; + } + $oStep = new $sStep($this, ''); $aAllSteps[$sStep] = $oStep->GetPossibleSteps(); - foreach($aAllSteps[$sStep] as $sNextStep) - { - if (!array_key_exists($sNextStep, $aAllSteps)) - { - $aAllSteps = $this->DumpStructure($sNextStep , $aAllSteps); + foreach ($aAllSteps[$sStep] as $sNextStep) { + if (!array_key_exists($sNextStep, $aAllSteps)) { + $aAllSteps = $this->DumpStructure($sNextStep, $aAllSteps); } } - + return $aAllSteps; } - + /** * Dump the wizard's structure as a string suitable to produce a chart * using graphviz's "dot" program @@ -345,25 +338,20 @@ on the page's parameters $sOutput = "digraph finite_state_machine {\n"; //$sOutput .= "\trankdir=LR;"; $sOutput .= "\tsize=\"10,12\"\n"; - - $aDeadEnds = array($this->sInitialStepClass); - foreach($aAllSteps as $sStep => $aNextSteps) - { - if (count($aNextSteps) == 0) - { + + $aDeadEnds = [$this->sInitialStepClass]; + foreach ($aAllSteps as $sStep => $aNextSteps) { + if (count($aNextSteps) == 0) { $aDeadEnds[] = $sStep; } } $sOutput .= "\tnode [shape = doublecircle]; ".implode(' ', $aDeadEnds).";\n"; $sOutput .= "\tnode [shape = box];\n"; - foreach($aAllSteps as $sStep => $aNextSteps) - { + foreach ($aAllSteps as $sStep => $aNextSteps) { $oStep = new $sStep($this, ''); $sOutput .= "\t$sStep [ label = \"".$oStep->GetTitle()."\"];\n"; - if (count($aNextSteps) > 0) - { - foreach($aNextSteps as $sNextStep) - { + if (count($aNextSteps) > 0) { + foreach ($aNextSteps as $sNextStep) { $sOutput .= "\t$sStep -> $sNextStep;\n"; } } @@ -394,18 +382,18 @@ abstract class WizardStep * @var string */ protected $sCurrentState; - + public function __construct(WizardController $oWizard, $sCurrentState) { $this->oWizard = $oWizard; $this->sCurrentState = $sCurrentState; } - + public function GetState() { return $this->sCurrentState; } - + /** * Displays the wizard page for the current class/state * The page can contain any number of "" fields, but no "..." tag @@ -445,7 +433,7 @@ abstract class WizardStep * @return string The title of the wizard page for the current step */ abstract public function GetTitle(); - + /** * Tells whether the parameters are Ok to move forward * @return boolean True to move forward, false to stey on the same step @@ -454,7 +442,7 @@ abstract class WizardStep { return true; } - + /** * Tells whether this step/state is the last one of the wizard (dead-end) * @return boolean True if the 'Next >>' button should be displayed @@ -463,7 +451,7 @@ abstract class WizardStep { return true; } - + /** * Tells whether the "Next" button should be enabled interactively * @return string A piece of javascript code returning either true or false @@ -472,7 +460,7 @@ abstract class WizardStep { return 'return true;'; } - + /** * Returns the label for the " Next >> " button * @return string The label for the button @@ -481,7 +469,7 @@ abstract class WizardStep { return 'Next'; } - + /** * Tells whether this step/state allows to go back or not * @return boolean True if the '<< Back' button should be displayed @@ -490,7 +478,7 @@ abstract class WizardStep { return true; } - + /** * Tells whether the "Back" button should be enabled interactively * @return string A piece of javascript code returning either true or false @@ -523,9 +511,9 @@ abstract class WizardStep * Example of a simple Setup Wizard with some parameters to store * the installation mode (install | upgrade) and a simple asynchronous * (AJAX) action. - * + * * The setup wizard is executed by the following code: - * + * * $oWizard = new WizardController('Step1'); * $oWizard->Run(); * @@ -535,12 +523,12 @@ class Step1 extends WizardStep { return 'Welcome'; } - + public function GetPossibleSteps() { return array('Step2', 'Step2bis'); } - + public function ProcessParams($bMoveForward = true) { $sNextStep = ''; @@ -554,11 +542,11 @@ class Step1 extends WizardStep { $this->oWizard->SetParameter('install_mode', 'upgrade'); $sNextStep = 'Step2bis'; - + } return array('class' => $sNextStep, 'state' => ''); } - + public function Display(WebPage $oPage) { $oPage->p('This is Step 1!'); @@ -576,17 +564,17 @@ class Step2 extends WizardStep { return 'Installation Parameters'; } - + public function GetPossibleSteps() { return array('Step3'); } - + public function ProcessParams($bMoveForward = true) { return array('class' => 'Step3', 'state' => ''); } - + public function Display(WebPage $oPage) { $oPage->p('This is Step 2! (Installation)'); @@ -599,12 +587,12 @@ class Step2bis extends WizardStep { return 'Upgrade Parameters'; } - + public function GetPossibleSteps() { return array('Step2ter'); } - + public function ProcessParams($bMoveForward = true) { $sUpgradeInfo = utils::ReadParam('upgrade_info'); @@ -613,7 +601,7 @@ class Step2bis extends WizardStep $this->oWizard->SetParameter('additional_upgrade_info', $sAdditionalUpgradeInfo); return array('class' => 'Step2ter', 'state' => ''); } - + public function Display(WebPage $oPage) { $oPage->p('This is Step 2bis! (Upgrade)'); @@ -621,18 +609,18 @@ class Step2bis extends WizardStep $oPage->p('Type your name here: '); $sAdditionalUpgradeInfo = $this->oWizard->GetParameter('additional_upgrade_info', ''); $oPage->p('The installer replies: '); - + $oPage->add_ready_script("$('#upgrade_info').change(function() { $('#v_upgrade_info').html(''); WizardAsyncAction('', { upgrade_info: $('#upgrade_info').val() }); });"); } - + public function AsyncAction(WebPage $oPage, $sCode, $aParameters) { usleep(300000); // 300 ms $sName = $aParameters['upgrade_info']; $sReply = addslashes("Hello ".$sName); - + $oPage->add_ready_script( << 'Step3', 'state' => ''); } - + public function Display(WebPage $oPage) { $oPage->p('This is Step 2ter! (Upgrade)'); @@ -671,22 +659,22 @@ class Step3 extends WizardStep { return 'Installation Complete'; } - + public function GetPossibleSteps() { return array(); } - + public function ProcessParams($bMoveForward = true) { return array('class' => '', 'state' => ''); } - + public function Display(WebPage $oPage) { $oPage->p('This is the FINAL Step'); } - + public function CanMoveForward() { return false; diff --git a/sources/Application/Branding.php b/sources/Application/Branding.php index 7352eb3b2..946714c7e 100644 --- a/sources/Application/Branding.php +++ b/sources/Application/Branding.php @@ -1,4 +1,5 @@ $sLanguage, 'maximize' => [], 'detectChanges' => [ - 'initialValue' => $sInitialValue + 'initialValue' => $sInitialValue, ], 'objectShortcut' => [ - 'buttonLabel' => Dict::S('UI:ObjectShortcutInsert') + 'buttonLabel' => Dict::S('UI:ObjectShortcutInsert'), ], 'htmlSupport' => $aSanitizerConfiguration, - ); + ]; // Mentions - if($bWithMentions){ - try{ + if ($bWithMentions) { + try { $aMentionConfiguration = self::GetMentionConfiguration(); $aConfiguration['mention'] = $aMentionConfiguration; - } - catch(Exception $e){ + } catch (Exception $e) { ExceptionLog::LogException($e); } } @@ -78,7 +77,7 @@ class CKEditorHelper * @return array|array[] * @throws \Exception */ - private static function GetMentionConfiguration() : array + private static function GetMentionConfiguration(): array { // initialize feeds $aMentionConfiguration = ['feeds' => []]; @@ -87,7 +86,7 @@ class CKEditorHelper $aMentionsAllowedClasses = MetaModel::GetConfig()->Get('mentions.allowed_classes'); // iterate throw classes... - foreach($aMentionsAllowedClasses as $sMentionMarker => $sMentionScope) { + foreach ($aMentionsAllowedClasses as $sMentionMarker => $sMentionScope) { // Retrieve mention class // - First test if the conf is a simple data model class @@ -108,7 +107,7 @@ class CKEditorHelper 'minimumCharacters' => MetaModel::GetConfig()->Get('min_autocomplete_chars'), 'feed_type' => 'ajax', 'feed_ajax_options' => [ - 'url' => utils::GetAbsoluteUrlAppRoot(). "pages/ajax.render.php?route=object.search_for_mentions&marker=".urlencode($sMentionMarker)."&needle=", + 'url' => utils::GetAbsoluteUrlAppRoot()."pages/ajax.render.php?route=object.search_for_mentions&marker=".urlencode($sMentionMarker)."&needle=", 'throttle' => 500, 'marker' => $sMentionMarker, ], @@ -127,12 +126,12 @@ class CKEditorHelper * * @return string|null */ - public static function PrepareCKEditorValueTextEncodingForTextarea(string $sValue = null) : ?string + public static function PrepareCKEditorValueTextEncodingForTextarea(string $sValue = null): ?string { - if($sValue === null){ + if ($sValue === null) { return null; } - return str_replace( '&', '&', $sValue ); + return str_replace('&', '&', $sValue); } /** @@ -150,10 +149,9 @@ class CKEditorHelper { // link CKEditor JS files foreach (static::GetJSFilesRelPathsForCKEditor() as $sFile) { - try{ + try { $oPage->LinkScriptFromAppRoot($sFile); - } - catch(Exception $e){ + } catch (Exception $e) { ExceptionLog::LogException($e); } } @@ -166,12 +164,11 @@ class CKEditorHelper $oPage->add_ready_script("CombodoCKEditorHandler.CreateInstance('#$sInputElementId', $sConfigJS)"); // handle mentions template - if($bWithMentions){ - try{ + if ($bWithMentions) { + try { $sMentionTemplate = self::GetMentionsTemplate($sInputElementId); $oPage->add($sMentionTemplate); - } - catch(Exception $e){ + } catch (Exception $e) { ExceptionLog::LogException($e); } } @@ -193,12 +190,11 @@ class CKEditorHelper public static function ConfigureCKEditorElementForRenderingOutput(RenderingOutput $oOutput, string $sInputElementId, string $sInitialValue = null, bool $bWithMentions = false, bool $bAddJSFiles = true, array $aOverloadConfiguration = []): void { // link CKEditor JS files - if($bAddJSFiles){ + if ($bAddJSFiles) { foreach (static::GetJSFilesRelPathsForCKEditor() as $sFile) { - try{ + try { $oOutput->AddJsFile($sFile); - } - catch(Exception $e){ + } catch (Exception $e) { ExceptionLog::LogException($e); } } @@ -212,12 +208,11 @@ class CKEditorHelper $oOutput->AddJs("CombodoCKEditorHandler.CreateInstance('#$sInputElementId', $sConfigJS)"); // mentions template - if($bWithMentions){ - try{ + if ($bWithMentions) { + try { $sMentionTemplate = self::GetMentionsTemplate($sInputElementId); $oOutput->add($sMentionTemplate); - } - catch(Exception $e){ + } catch (Exception $e) { ExceptionLog::LogException($e); } } @@ -256,7 +251,7 @@ HTML; 'node_modules/ckeditor5-itop-build/build/ckeditor.js', 'js/highlight/highlight.min.js', 'js/ckeditor.handler.js', - 'js/ckeditor.feeds.js' + 'js/ckeditor.feeds.js', ]; // add CKEditor translations resource @@ -267,13 +262,12 @@ HTML; // add corresponding ckeditor language file // P1 language + country // P2 language - $sLanguageFileRelPath = 'node_modules/ckeditor5-itop-build/build/translations/' . $sLanguage . '-' . $sCountry . '.js'; - if(file_exists(APPROOT . $sLanguageFileRelPath)){ + $sLanguageFileRelPath = 'node_modules/ckeditor5-itop-build/build/translations/'.$sLanguage.'-'.$sCountry.'.js'; + if (file_exists(APPROOT.$sLanguageFileRelPath)) { $aJSRelPaths[] = $sLanguageFileRelPath; - } - else { - $sLanguageFileRelPath = 'node_modules/ckeditor5-itop-build/build/translations/' . $sLanguage . '.js'; - if(file_exists(APPROOT . $sLanguageFileRelPath)){ + } else { + $sLanguageFileRelPath = 'node_modules/ckeditor5-itop-build/build/translations/'.$sLanguage.'.js'; + if (file_exists(APPROOT.$sLanguageFileRelPath)) { $aJSRelPaths[] = $sLanguageFileRelPath; } } @@ -288,26 +282,26 @@ HTML; * @throws \ConfigException * @throws \CoreException */ - public static function GetDOMSanitizerForCKEditor(DOMSanitizer $oSanitizer = null) : array + public static function GetDOMSanitizerForCKEditor(DOMSanitizer $oSanitizer = null): array { - if($oSanitizer === null) { + if ($oSanitizer === null) { /* @var $oSanitizer DOMSanitizer */ $sSanitizerClass = utils::GetConfig()->Get('html_sanitizer'); $oSanitizer = new $sSanitizerClass(); } - + $aWhitelist = [ 'allow' => [], - 'disallow' => [] + 'disallow' => [], ]; - + // Build the allow list foreach ($oSanitizer->GetTagsWhiteList() as $sTag => $aAttributes) { $aAllowedItem = [ 'name' => $sTag, 'attributes' => [], 'classes' => false, - 'styles' => false + 'styles' => false, ]; foreach ($aAttributes as $aAttr) { @@ -317,7 +311,7 @@ HTML; $aAllowedItem['classes'] = true; } elseif (isset($oSanitizer->GetAttrsWhiteList()[$aAttr])) { $aAllowedItem['attributes'][$aAttr] = [ - 'pattern' => $oSanitizer->GetAttrsWhiteList()[$aAttr] + 'pattern' => $oSanitizer->GetAttrsWhiteList()[$aAttr], ]; } else { $aAllowedItem['attributes'][$aAttr] = true; @@ -339,7 +333,7 @@ HTML; ]; foreach ($oSanitizer->GetAttrsBlackList() as $aAttr) { - $aDisallowedItem['attributes'][$aAttr] = true; + $aDisallowedItem['attributes'][$aAttr] = true; } if (empty($aDisallowedItem['attributes'])) { @@ -348,7 +342,7 @@ HTML; $aWhitelist['disallow'][] = $aDisallowedItem; } - + return $aWhitelist; } -} \ No newline at end of file +} diff --git a/sources/Application/Helper/ExportHelper.php b/sources/Application/Helper/ExportHelper.php index 41536898e..5e76b9d7e 100644 --- a/sources/Application/Helper/ExportHelper.php +++ b/sources/Application/Helper/ExportHelper.php @@ -1,6 +1,7 @@ SetIsClosable(false); return $oAlert; } -} \ No newline at end of file +} diff --git a/sources/Application/Helper/FormHelper.php b/sources/Application/Helper/FormHelper.php index 227dbe54a..0d6327998 100644 --- a/sources/Application/Helper/FormHelper.php +++ b/sources/Application/Helper/FormHelper.php @@ -1,4 +1,5 @@ '; + $aExtraParams['fieldsComments'][$sAttCode] = ' '; } } } @@ -93,12 +93,12 @@ class FormHelper } return null; } - + /** * Returns true if the object has a mandatory attribute blob - * + * * @see N°6861 - Display warning when creating/editing a mandatory blob in modal - * + * * @param \DBObject $oObject * * @return bool @@ -111,7 +111,7 @@ class FormHelper /** * Returns an Alert explaining what will happen when a mandatory attribute blob is displayed in a form - * + * * @see N°6861 - Display warning when creating/editing a mandatory blob in modal * @see self::ENUM_MANDATORY_BLOB_MODE_XXX * @@ -122,19 +122,19 @@ class FormHelper public static function GetAlertForMandatoryAttributeBlobInputsInModal(string $sMode = self::ENUM_MANDATORY_BLOB_MODE_MODIFY_EMPTY): Alert { $sMessage = Dict::S('UI:Object:Modal:'.$sMode.':MandatoryAttributeBlobInputs:Warning:Text'); - + // If the mandatory attribute is already filled, there's no risk to make an object incomplete so we display an information level alert - if($sMode === self::ENUM_MANDATORY_BLOB_MODE_MODIFY_FILLED){ + if ($sMode === self::ENUM_MANDATORY_BLOB_MODE_MODIFY_FILLED) { return AlertUIBlockFactory::MakeForInformation('', $sMessage); } return AlertUIBlockFactory::MakeForWarning('', $sMessage); } - + /** * Update flags to be sent to form with url parameters * For now only supports "readonly" param - * + * * @param \DBObject $oObject * @param array $aExtraParams * @@ -145,21 +145,21 @@ class FormHelper { $aRawValues = utils::ReadParam('readonly', [], '', 'raw_data'); $sObjectClass = get_class($oObject); - - if(array_key_exists('fieldsFlags', $aExtraParams) === false ) { + + if (array_key_exists('fieldsFlags', $aExtraParams) === false) { $aExtraParams['fieldsFlags'] = []; - } - - if(array_key_exists('forceFieldsSubmission', $aExtraParams) === false ) { + } + + if (array_key_exists('forceFieldsSubmission', $aExtraParams) === false) { $aExtraParams['forceFieldsSubmission'] = []; } // - For each attribute present in readonly array in url, add a flag and mark them as to be submitted with their default value - foreach($aRawValues as $sAttCode => $sValue) { - if(MetaModel::IsValidAttCode($sObjectClass, $sAttCode)) { + foreach ($aRawValues as $sAttCode => $sValue) { + if (MetaModel::IsValidAttCode($sObjectClass, $sAttCode)) { $aExtraParams['fieldsFlags'][$sAttCode] = array_key_exists($sAttCode, $aExtraParams['fieldsFlags']) ? $aExtraParams['fieldsFlags'][$sAttCode] & OPT_ATT_READONLY : OPT_ATT_READONLY; - + $aExtraParams['forceFieldsSubmission'][] = $sAttCode; } } @@ -167,14 +167,15 @@ class FormHelper /** * Get attribute flag for an object allowing to cross-check with extra flags present in a form - * + * * @param \DBObject $oObject * @param string $sAttCode * @param array $aExtraFlags * * @return int */ - public static function GetAttributeFlagsForObject(DBObject $oObject, string $sAttCode, array $aExtraFlags = []): int { + public static function GetAttributeFlagsForObject(DBObject $oObject, string $sAttCode, array $aExtraFlags = []): int + { $iFlags = $oObject->GetFormAttributeFlags($sAttCode); if (array_key_exists($sAttCode, $aExtraFlags)) { // the caller may override some flags if needed @@ -182,4 +183,4 @@ class FormHelper } return $iFlags; } -} \ No newline at end of file +} diff --git a/sources/Application/Helper/Session.php b/sources/Application/Helper/Session.php index cbd65eb7f..5fc2b0622 100644 --- a/sources/Application/Helper/Session.php +++ b/sources/Application/Helper/Session.php @@ -1,10 +1,10 @@ LinkScriptFromAppRoot('js/jquery.mousewheel.js'); $oPage->LinkScriptFromAppRoot('js/simple_graph.js'); } -} \ No newline at end of file +} diff --git a/sources/Application/Newsroom/iTopNewsroomProvider.php b/sources/Application/Newsroom/iTopNewsroomProvider.php index fb5f808b5..157ef9484 100644 --- a/sources/Application/Newsroom/iTopNewsroomProvider.php +++ b/sources/Application/Newsroom/iTopNewsroomProvider.php @@ -16,9 +16,10 @@ use User; * @package Combodo\iTop\Application\Newsroom * @since 3.2.0 */ -class iTopNewsroomProvider extends NewsroomProviderBase { - - public function IsApplicable(User $oUser = null){ +class iTopNewsroomProvider extends NewsroomProviderBase +{ + public function IsApplicable(User $oUser = null) + { return true; } public function GetLabel() @@ -43,11 +44,11 @@ class iTopNewsroomProvider extends NewsroomProviderBase { private static function MakeURL($sRouteCode) { - return Router::GetInstance()->GenerateUrl(iTopNewsroomController::ROUTE_NAMESPACE . '.' . $sRouteCode); + return Router::GetInstance()->GenerateUrl(iTopNewsroomController::ROUTE_NAMESPACE.'.'.$sRouteCode); } public function GetTTL() { return MetaModel::GetConfig()->Get('notifications.itop.newsroom_cache_time') * 60; } -} \ No newline at end of file +} diff --git a/sources/Application/Search/CriterionConversion/criteriontooql.class.inc.php b/sources/Application/Search/CriterionConversion/criteriontooql.class.inc.php index 0d668addf..139fe34d6 100644 --- a/sources/Application/Search/CriterionConversion/criteriontooql.class.inc.php +++ b/sources/Application/Search/CriterionConversion/criteriontooql.class.inc.php @@ -1,4 +1,5 @@ 'ContainsToOql', self::OP_EQUALS => 'EqualsToOql', self::OP_STARTS_WITH => 'StartsWithToOql', @@ -77,10 +70,9 @@ class CriterionToOQL extends CriterionConversionAbstract self::OP_IN => 'InToOql', self::OP_MATCHES => 'MatchesToOql', self::OP_ALL => 'AllToOql', - ); + ]; - if (array_key_exists($sOperator, $aMappedOperators)) - { + if (array_key_exists($sOperator, $aMappedOperators)) { $sFct = $aMappedOperators[$sOperator]; return self::$sFct($oSearch, $sRef, $aCriteria); @@ -93,9 +85,8 @@ class CriterionToOQL extends CriterionConversionAbstract private static function GetValues($aCriteria) { - if (!array_key_exists('values', $aCriteria)) - { - return array(); + if (!array_key_exists('values', $aCriteria)) { + return []; } return $aCriteria['values']; @@ -103,12 +94,10 @@ class CriterionToOQL extends CriterionConversionAbstract private static function GetValue($aValues, $iIndex) { - if (!array_key_exists($iIndex, $aValues)) - { + if (!array_key_exists($iIndex, $aValues)) { return null; } - if (!array_key_exists('value', $aValues[$iIndex])) - { + if (!array_key_exists('value', $aValues[$iIndex])) { return null; } @@ -155,8 +144,7 @@ class CriterionToOQL extends CriterionConversionAbstract { $aValues = self::GetValues($aCriteria); $sValue = self::GetValue($aValues, 0); - if (($aCriteria['widget'] == AttributeDefinition::SEARCH_WIDGET_TYPE_NUMERIC) && ($sValue === '0')) - { + if (($aCriteria['widget'] == AttributeDefinition::SEARCH_WIDGET_TYPE_NUMERIC) && ($sValue === '0')) { return "({$sRef} = '0')"; } @@ -182,10 +170,9 @@ class CriterionToOQL extends CriterionConversionAbstract protected static function MatchesToOql($oSearch, $sRef, $aCriteria) { $aValues = self::GetValues($aCriteria); - $aRawValues = array(); + $aRawValues = []; $bHasUnDefined = isset($aCriteria['has_undefined']) ? $aCriteria['has_undefined'] : false; - for($i = 0; $i < count($aValues); $i++) - { + for ($i = 0; $i < count($aValues); $i++) { $sRawValue = self::GetValue($aValues, $i); if (!utils::StrLen($sRawValue)) { $bHasUnDefined = true; @@ -194,21 +181,16 @@ class CriterionToOQL extends CriterionConversionAbstract } } // This allow to search for complete words - if (!empty($aRawValues)) - { + if (!empty($aRawValues)) { $sValue = implode(' ', $aRawValues).' _'; - } - else - { - if ($bHasUnDefined) - { + } else { + if ($bHasUnDefined) { return "({$sRef} = '')"; } return "1"; } - if ($bHasUnDefined) - { + if ($bHasUnDefined) { return "((({$sRef} MATCHES '{$sValue}') OR ({$sRef} = '')) AND 1)"; } return "({$sRef} MATCHES '{$sValue}')"; @@ -216,10 +198,8 @@ class CriterionToOQL extends CriterionConversionAbstract protected static function EmptyToOql($oSearch, $sRef, $aCriteria) { - if (isset($aCriteria['widget'])) - { - switch ($aCriteria['widget']) - { + if (isset($aCriteria['widget'])) { + switch ($aCriteria['widget']) { case AttributeDefinition::SEARCH_WIDGET_TYPE_NUMERIC: case AttributeDefinition::SEARCH_WIDGET_TYPE_EXTERNAL_FIELD: case AttributeDefinition::SEARCH_WIDGET_TYPE_DATE: @@ -233,10 +213,8 @@ class CriterionToOQL extends CriterionConversionAbstract protected static function NotEmptyToOql($oSearch, $sRef, $aCriteria) { - if (isset($aCriteria['widget'])) - { - switch ($aCriteria['widget']) - { + if (isset($aCriteria['widget'])) { + switch ($aCriteria['widget']) { case AttributeDefinition::SEARCH_WIDGET_TYPE_NUMERIC: case AttributeDefinition::SEARCH_WIDGET_TYPE_EXTERNAL_FIELD: case AttributeDefinition::SEARCH_WIDGET_TYPE_DATE: @@ -266,71 +244,54 @@ class CriterionToOQL extends CriterionConversionAbstract $sClass = $aCriteria['class']; $aValues = self::GetValues($aCriteria); - if (count($aValues) == 0) - { + if (count($aValues) == 0) { // Ignore when nothing is selected return "1"; } $oAttDef = null; - try - { + try { $aAttributeDefs = MetaModel::ListAttributeDefs($sClass); - } catch (\CoreException $e) - { + } catch (\CoreException $e) { return "1"; } - if (array_key_exists($sAttCode, $aAttributeDefs)) - { + if (array_key_exists($sAttCode, $aAttributeDefs)) { $oAttDef = $aAttributeDefs[$sAttCode]; } // Hierarchical keys $sHierarchicalKeyCode = false; $sTargetClass = ''; - if (isset($oAttDef) && $oAttDef->IsExternalKey() && ($aCriteria['widget'] == AttributeDefinition::SEARCH_WIDGET_TYPE_HIERARCHICAL_KEY)) - { - if ($oAttDef instanceof AttributeExternalKey) - { + if (isset($oAttDef) && $oAttDef->IsExternalKey() && ($aCriteria['widget'] == AttributeDefinition::SEARCH_WIDGET_TYPE_HIERARCHICAL_KEY)) { + if ($oAttDef instanceof AttributeExternalKey) { $sTargetClass = $oAttDef->GetTargetClass(); - } - else - { + } else { /** @var AttributeExternalKey $oFinalAttDef */ $oFinalAttDef = $oAttDef->GetFinalAttDef(); $sTargetClass = $oFinalAttDef->GetTargetClass(); } - try - { + try { $sHierarchicalKeyCode = MetaModel::IsHierarchicalClass($sTargetClass); - } catch (\CoreException $e) - { + } catch (\CoreException $e) { } } $sFilterOnUndefined = ''; - if ($oAttDef instanceof AttributeEnum) - { + if ($oAttDef instanceof AttributeEnum) { $aAllowedValues = SearchForm::GetFieldAllowedValues($oAttDef); - if (array_key_exists('values', $aAllowedValues)) - { + if (array_key_exists('values', $aAllowedValues)) { // Can't invert the test if NULL is allowed - if (!$oAttDef->IsNullAllowed()) - { + if (!$oAttDef->IsNullAllowed()) { $aAllowedValues = $aAllowedValues['values']; - if (count($aValues) == count($aAllowedValues)) - { + if (count($aValues) == count($aAllowedValues)) { // All entries are selected return "1"; } // more selected values than remaining so use NOT IN - else - { - if (count($aValues) > (count($aAllowedValues) / 2)) - { - foreach($aValues as $aValue) - { + else { + if (count($aValues) > (count($aAllowedValues) / 2)) { + foreach ($aValues as $aValue) { unset($aAllowedValues[$aValue['value']]); } $sInList = implode("','", array_keys($aAllowedValues)); @@ -340,11 +301,9 @@ class CriterionToOQL extends CriterionConversionAbstract } } // search for "undefined" - for($i = 0; $i < count($aValues); $i++) - { + for ($i = 0; $i < count($aValues); $i++) { $aValue = $aValues[$i]; - if (isset($aValue['value']) && ($aValue['value'] === 'null')) - { + if (isset($aValue['value']) && ($aValue['value'] === 'null')) { $sFilterOnUndefined = "ISNULL({$sRef})"; unset($aValues[$i]); break; @@ -353,14 +312,11 @@ class CriterionToOQL extends CriterionConversionAbstract } } - if ($sHierarchicalKeyCode !== false) - { + if ($sHierarchicalKeyCode !== false) { // search for "undefined" - for($i = 0; $i < count($aValues); $i++) - { + for ($i = 0; $i < count($aValues); $i++) { $aValue = $aValues[$i]; - if (isset($aValue['value']) && ($aValue['value'] === '0')) - { + if (isset($aValue['value']) && ($aValue['value'] === '0')) { $sFilterOnUndefined = "({$sRef} = '0')"; unset($aValues[$i]); break; @@ -368,28 +324,22 @@ class CriterionToOQL extends CriterionConversionAbstract } } - $aInValues = array(); - foreach($aValues as $aValue) - { + $aInValues = []; + foreach ($aValues as $aValue) { $aInValues[] = $aValue['value']; } $sInList = implode("','", $aInValues); $sCondition = '1'; - if (count($aInValues) == 1) - { + if (count($aInValues) == 1) { $sCondition = "({$sRef} = '$sInList')"; - } - elseif (count($aInValues) > 1) - { + } elseif (count($aInValues) > 1) { $sCondition = "({$sRef} IN ('$sInList'))"; } // Hierarchical keys - try - { - if (($sHierarchicalKeyCode !== false) && ($oSearch instanceof DBObjectSearch)) - { + try { + if (($sHierarchicalKeyCode !== false) && ($oSearch instanceof DBObjectSearch)) { // NOTE: The hierarchy does not work for unions for now. It'll be done with the full support of unions in search. // Add all the joins for hierarchical key $oFilter = new DBObjectSearch($sTargetClass); @@ -404,22 +354,17 @@ class CriterionToOQL extends CriterionConversionAbstract // Use the 'below' operator by default $oSearch->AddCondition_PointingTo($oHKFilter, $sAttCode); $oCriteria = $oSearch->GetCriteria(); - $aArgs = MetaModel::PrepareQueryArguments(array(), $oSearch->GetInternalParams(), $oSearch->GetExpectedArguments() ); + $aArgs = MetaModel::PrepareQueryArguments([], $oSearch->GetInternalParams(), $oSearch->GetExpectedArguments()); $oSearch->ResetCondition(); $sCondition = $oCriteria->RenderExpression(false, $aArgs); } - } catch (Exception $e) - { + } catch (Exception $e) { } - if (!empty($sFilterOnUndefined)) - { - if (count($aValues) === 0) - { + if (!empty($sFilterOnUndefined)) { + if (count($aValues) === 0) { $sCondition = $sFilterOnUndefined; - } - else - { + } else { // Add 'AND 1' to group the 'OR' inside an AND list for OQL parsing $sCondition = "(({$sCondition} OR {$sFilterOnUndefined}) AND 1)"; } @@ -430,55 +375,44 @@ class CriterionToOQL extends CriterionConversionAbstract protected static function BetweenDatesToOql($oSearch, $sRef, $aCriteria) { - $aOQL = array(); + $aOQL = []; $aValues = self::GetValues($aCriteria); - if (count($aValues) != 2) - { + if (count($aValues) != 2) { return "1"; } $sWidget = $aCriteria['widget']; - if ($sWidget == AttributeDefinition::SEARCH_WIDGET_TYPE_DATE_TIME) - { + if ($sWidget == AttributeDefinition::SEARCH_WIDGET_TYPE_DATE_TIME) { $sAttributeClass = AttributeDateTime::class; - } - else - { + } else { $sAttributeClass = AttributeDate::class; } $oFormat = $sAttributeClass::GetFormat(); $sStartDate = $aValues[0]['value']; - if (!empty($sStartDate)) - { - try - { + if (!empty($sStartDate)) { + try { $oDate = $oFormat->parse($sStartDate); $sStartDate = $oDate->format($sAttributeClass::GetSQLFormat()); $aOQL[] = "({$sRef} >= '$sStartDate')"; - } catch (Exception $e) - { + } catch (Exception $e) { } } $sEndDate = $aValues[1]['value']; - if (!empty($sEndDate)) - { - try - { + if (!empty($sEndDate)) { + try { $oDate = $oFormat->parse($sEndDate); $sEndDate = $oDate->format($sAttributeClass::GetSQLFormat()); $aOQL[] = "({$sRef} <= '$sEndDate')"; - } catch (Exception $e) - { + } catch (Exception $e) { } } $sOQL = implode(' AND ', $aOQL); - if (empty($sOQL)) - { + if (empty($sOQL)) { $sOQL = "1"; } @@ -495,41 +429,30 @@ class CriterionToOQL extends CriterionConversionAbstract */ protected static function BetweenToOql($oSearch, $sRef, $aCriteria) { - $aOQL = array(); + $aOQL = []; $aValues = self::GetValues($aCriteria); - if (count($aValues) != 2) - { + if (count($aValues) != 2) { return "1"; } - if (isset($aValues[0]['value'])) - { + if (isset($aValues[0]['value'])) { $sStartNum = trim($aValues[0]['value']); - if (is_numeric($sStartNum)) - { + if (is_numeric($sStartNum)) { $aOQL[] = "({$sRef} >= '$sStartNum')"; - } - else - { - if (!empty($sStartNum)) - { + } else { + if (!empty($sStartNum)) { throw new AjaxSearchException("'$sStartNum' is not a numeric value", 400); } } } - if (isset($aValues[1]['value'])) - { + if (isset($aValues[1]['value'])) { $sEndNum = trim($aValues[1]['value']); - if (is_numeric($sEndNum)) - { + if (is_numeric($sEndNum)) { $aOQL[] = "({$sRef} <= '$sEndNum')"; - } - else - { - if (!empty($sEndNum)) - { + } else { + if (!empty($sEndNum)) { throw new AjaxSearchException("'$sEndNum' is not a numeric value", 400); } } @@ -537,15 +460,13 @@ class CriterionToOQL extends CriterionConversionAbstract $sOQL = implode(' AND ', $aOQL); - if (empty($sOQL)) - { + if (empty($sOQL)) { $sOQL = "1"; } return $sOQL; } - protected static function AllToOql($oSearch, $sRef, $aCriteria) { return "1"; diff --git a/sources/Application/Search/CriterionConversion/criteriontosearchform.class.inc.php b/sources/Application/Search/CriterionConversion/criteriontosearchform.class.inc.php index 84b7101d2..7fe9c2745 100644 --- a/sources/Application/Search/CriterionConversion/criteriontosearchform.class.inc.php +++ b/sources/Application/Search/CriterionConversion/criteriontosearchform.class.inc.php @@ -1,4 +1,5 @@ 'TextToSearchForm', AttributeDefinition::SEARCH_WIDGET_TYPE_EXTERNAL_FIELD => 'ExternalFieldToSearchForm', AttributeDefinition::SEARCH_WIDGET_TYPE_DATE => 'DateTimeToSearchForm', @@ -77,112 +73,87 @@ class CriterionToSearchForm extends CriterionConversionAbstract AttributeDefinition::SEARCH_WIDGET_TYPE_ENUM => 'EnumToSearchForm', AttributeDefinition::SEARCH_WIDGET_TYPE_SET => 'SetToSearchForm', AttributeDefinition::SEARCH_WIDGET_TYPE_TAG_SET => 'TagSetToSearchForm', - ); + ]; - foreach($aAndCriterionRaw as $aCriteria) - { - if (isset($aCriteria['label'])) - { + foreach ($aAndCriterionRaw as $aCriteria) { + if (isset($aCriteria['label'])) { $aCriteria['label'] = preg_replace("@\)$@", '', $aCriteria['label']); $aCriteria['label'] = preg_replace("@^\(@", '', $aCriteria['label']); } $aCriteria['is_removable'] = $bIsRemovable; $sClass = ''; - if (isset($aCriteria['ref'])) - { + if (isset($aCriteria['ref'])) { $aRef = explode('.', $aCriteria['ref']); - if (isset($aClasses[$aRef[0]])) - { + if (isset($aClasses[$aRef[0]])) { $sClass = $aClasses[$aRef[0]]; $aCriteria['class'] = $sClass; } } // Check criteria validity - if (!isset($aCriteria['ref']) || !isset($aAllFields[$aCriteria['ref']])) - { + if (!isset($aCriteria['ref']) || !isset($aAllFields[$aCriteria['ref']])) { $aCriteria['widget'] = AttributeDefinition::SEARCH_WIDGET_TYPE_RAW; $aCriteria['label'] = Dict::S('UI:Search:Criteria:Raw:Filtered'); - if (isset($aCriteria['ref'])) - { - try - { + if (isset($aCriteria['ref'])) { + try { $aCriteria['label'] = Dict::Format('UI:Search:Criteria:Raw:FilteredOn', MetaModel::GetName($sClass)); - } - catch (Exception $e) - { + } catch (Exception $e) { } } } - if (array_key_exists('widget', $aCriteria)) - { - if (array_key_exists($aCriteria['widget'], $aMappingOperatorToFunction)) - { + if (array_key_exists('widget', $aCriteria)) { + if (array_key_exists($aCriteria['widget'], $aMappingOperatorToFunction)) { $sFct = $aMappingOperatorToFunction[$aCriteria['widget']]; $aAndCriterion = array_merge($aAndCriterion, self::$sFct($aCriteria, $aAllFields)); - } - else - { + } else { $aAndCriterion[] = $aCriteria; } } } // Regroup criterion by variable name (no ref first) - usort($aAndCriterion, function ($a, $b) - { - if (array_key_exists('ref', $a) || array_key_exists('ref', $b)) - { - if (array_key_exists('ref', $a) && array_key_exists('ref', $b)) - { + usort($aAndCriterion, function ($a, $b) { + if (array_key_exists('ref', $a) || array_key_exists('ref', $b)) { + if (array_key_exists('ref', $a) && array_key_exists('ref', $b)) { $iRefCmp = strcmp($a['ref'], $b['ref']); - if ($iRefCmp != 0) - { + if ($iRefCmp != 0) { return $iRefCmp; } return strcmp($a['operator'], $b['operator']); } - if (array_key_exists('ref', $a)) - { + if (array_key_exists('ref', $a)) { return 1; } return -1; } - if (array_key_exists('oql', $a) && array_key_exists('oql', $b)) - { + if (array_key_exists('oql', $a) && array_key_exists('oql', $b)) { return strcmp($a['oql'], $b['oql']); } return 0; }); - $aMergeFctByWidget = array( + $aMergeFctByWidget = [ AttributeDefinition::SEARCH_WIDGET_TYPE_DATE => 'MergeDate', AttributeDefinition::SEARCH_WIDGET_TYPE_DATE_TIME => 'MergeDateTime', AttributeDefinition::SEARCH_WIDGET_TYPE_NUMERIC => 'MergeNumeric', AttributeDefinition::SEARCH_WIDGET_TYPE_ENUM => 'MergeEnumExtKeys', AttributeDefinition::SEARCH_WIDGET_TYPE_EXTERNAL_KEY => 'MergeEnumExtKeys', - ); + ]; $aPrevCriterion = null; - $aMergedCriterion = array(); - foreach($aAndCriterion as $aCurrCriterion) - { - if (!is_null($aPrevCriterion)) - { - if (array_key_exists('ref', $aPrevCriterion) && array_key_exists('widget', $aPrevCriterion)) - { + $aMergedCriterion = []; + foreach ($aAndCriterion as $aCurrCriterion) { + if (!is_null($aPrevCriterion)) { + if (array_key_exists('ref', $aPrevCriterion) && array_key_exists('widget', $aPrevCriterion)) { // If previous has ref, the current has ref as the array is sorted with all without ref first - if (($aPrevCriterion['ref'] == $aCurrCriterion['ref']) && ($aPrevCriterion['widget'] == $aCurrCriterion['widget'])) - { + if (($aPrevCriterion['ref'] == $aCurrCriterion['ref']) && ($aPrevCriterion['widget'] == $aCurrCriterion['widget'])) { // Same attribute, try to merge - if (array_key_exists('widget', $aCurrCriterion)) - { - if (array_key_exists($aCurrCriterion['widget'], $aMergeFctByWidget)) - { + if (array_key_exists('widget', $aCurrCriterion)) { + if (array_key_exists($aCurrCriterion['widget'], $aMergeFctByWidget)) { $sFct = $aMergeFctByWidget[$aCurrCriterion['widget']]; $aPrevCriterion = self::$sFct($aPrevCriterion, $aCurrCriterion, $aMergedCriterion); continue; @@ -195,44 +166,35 @@ class CriterionToSearchForm extends CriterionConversionAbstract $aPrevCriterion = $aCurrCriterion; } - if (!is_null($aPrevCriterion)) - { + if (!is_null($aPrevCriterion)) { $aMergedCriterion[] = $aPrevCriterion; } // Sort by label criterion by variable name (no ref first) - usort($aMergedCriterion, function ($a, $b) - { + usort($aMergedCriterion, function ($a, $b) { if (($a['widget'] === AttributeDefinition::SEARCH_WIDGET_TYPE_RAW) || - ($b['widget'] === AttributeDefinition::SEARCH_WIDGET_TYPE_RAW)) - { + ($b['widget'] === AttributeDefinition::SEARCH_WIDGET_TYPE_RAW)) { if (($a['widget'] === AttributeDefinition::SEARCH_WIDGET_TYPE_RAW) && - ($b['widget'] === AttributeDefinition::SEARCH_WIDGET_TYPE_RAW)) - { - if (!isset($a['label'])) - { + ($b['widget'] === AttributeDefinition::SEARCH_WIDGET_TYPE_RAW)) { + if (!isset($a['label'])) { return -1; } - if (!isset($b['label'])) - { + if (!isset($b['label'])) { return 1; } return strcmp($a['label'], $b['label']); } - if ($a['widget'] === AttributeDefinition::SEARCH_WIDGET_TYPE_RAW) - { + if ($a['widget'] === AttributeDefinition::SEARCH_WIDGET_TYPE_RAW) { return -1; } return 1; } - if (!isset($a['label'])) - { + if (!isset($a['label'])) { return -1; } - if (!isset($b['label'])) - { + if (!isset($b['label'])) { return 1; } return strcmp($a['label'], $b['label']); @@ -253,8 +215,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract { $sPrevOperator = $aPrevCriterion['operator']; $sCurrOperator = $aCurrCriterion['operator']; - if (($sPrevOperator != '<=') || ($sCurrOperator != '>=')) - { + if (($sPrevOperator != '<=') || ($sCurrOperator != '>=')) { $aMergedCriterion[] = $aPrevCriterion; return $aCurrCriterion; @@ -274,9 +235,9 @@ class CriterionToSearchForm extends CriterionConversionAbstract $sFirstDateValue = $oDate->format(AttributeDate::GetSQLFormat()); $sFirstDateLabel = $oFormat->format($oDate); - $aCurrCriterion['values'] = array(); - $aCurrCriterion['values'][] = array('value' => $sFirstDateValue, 'label' => $sFirstDateLabel); - $aCurrCriterion['values'][] = array('value' => $sLastDateValue, 'label' => $sLastDateLabel); + $aCurrCriterion['values'] = []; + $aCurrCriterion['values'][] = ['value' => $sFirstDateValue, 'label' => $sFirstDateLabel]; + $aCurrCriterion['values'][] = ['value' => $sLastDateValue, 'label' => $sLastDateLabel]; $aCurrCriterion['oql'] = "({$aPrevCriterion['oql']} AND {$aCurrCriterion['oql']})"; $aCurrCriterion['label'] = $aPrevCriterion['label'].' '.Dict::S('Expression:Operator:AND', 'AND').' '.$aCurrCriterion['label']; @@ -298,8 +259,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract { $sPrevOperator = $aPrevCriterion['operator']; $sCurrOperator = $aCurrCriterion['operator']; - if (($sPrevOperator != '<=') || ($sCurrOperator != '>=')) - { + if (($sPrevOperator != '<=') || ($sCurrOperator != '>=')) { $aMergedCriterion[] = $aPrevCriterion; return $aCurrCriterion; @@ -318,13 +278,15 @@ class CriterionToSearchForm extends CriterionConversionAbstract $sFirstDateValue = $oDate->format(AttributeDateTime::GetSQLFormat()); $sFirstDateLabel = AttributeDateTime::GetFormat()->Format($sFirstDateValue); - $aCurrCriterion['values'] = array(); - $aCurrCriterion['values'][] = array('value' => $sFirstDateValue, 'label' => $sFirstDateLabel); - $aCurrCriterion['values'][] = array('value' => $sLastDateValue, 'label' => $sLastDateLabel); + $aCurrCriterion['values'] = []; + $aCurrCriterion['values'][] = ['value' => $sFirstDateValue, 'label' => $sFirstDateLabel]; + $aCurrCriterion['values'][] = ['value' => $sLastDateValue, 'label' => $sLastDateLabel]; $aCurrCriterion['oql'] = "({$aPrevCriterion['oql']} AND {$aCurrCriterion['oql']})"; - $aCurrCriterion['label'] = $aPrevCriterion['label'].' '.Dict::S('Expression:Operator:AND', - 'AND').' '.$aCurrCriterion['label']; + $aCurrCriterion['label'] = $aPrevCriterion['label'].' '.Dict::S( + 'Expression:Operator:AND', + 'AND' + ).' '.$aCurrCriterion['label']; $aMergedCriterion[] = $aCurrCriterion; @@ -343,8 +305,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract { $sPrevOperator = $aPrevCriterion['operator']; $sCurrOperator = $aCurrCriterion['operator']; - if (($sPrevOperator != '<=') || ($sCurrOperator != '>=')) - { + if (($sPrevOperator != '<=') || ($sCurrOperator != '>=')) { $aMergedCriterion[] = $aPrevCriterion; return $aCurrCriterion; @@ -353,9 +314,9 @@ class CriterionToSearchForm extends CriterionConversionAbstract // Merge into 'between' operation. $sLastNum = $aPrevCriterion['values'][0]['value']; $sFirstNum = $aCurrCriterion['values'][0]['value']; - $aCurrCriterion['values'] = array(); - $aCurrCriterion['values'][] = array('value' => $sFirstNum, 'label' => "$sFirstNum"); - $aCurrCriterion['values'][] = array('value' => $sLastNum, 'label' => "$sLastNum"); + $aCurrCriterion['values'] = []; + $aCurrCriterion['values'][] = ['value' => $sFirstNum, 'label' => "$sFirstNum"]; + $aCurrCriterion['values'][] = ['value' => $sLastNum, 'label' => "$sLastNum"]; $aCurrCriterion['oql'] = "({$aPrevCriterion['oql']} AND {$aCurrCriterion['oql']})"; $aCurrCriterion['label'] = $aPrevCriterion['label'].' '.Dict::S('Expression:Operator:AND', 'AND').' '.$aCurrCriterion['label']; @@ -368,9 +329,8 @@ class CriterionToSearchForm extends CriterionConversionAbstract private static function SerializeValues($aValues) { - $aSerializedValues = array(); - foreach($aValues as $aValue) - { + $aSerializedValues = []; + foreach ($aValues as $aValue) { $aSerializedValues[] = serialize($aValue); } @@ -397,8 +357,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract $bStartWithPercent = substr($sValue, 0, 1) == '%' ? true : false; $bEndWithPercent = substr($sValue, -1) == '%' ? true : false; - switch (true) - { + switch (true) { case ('' == $sValue and ($sOperator == '=' or $sOperator == 'LIKE')): $aCriteria['operator'] = CriterionConversionAbstract::OP_EMPTY; break; @@ -425,7 +384,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract break; } - return array($aCriteria); + return [$aCriteria]; } protected static function ExternalFieldToSearchForm($aCriteria, $aFields) @@ -436,8 +395,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract $bStartWithPercent = substr($sValue, 0, 1) == '%' ? true : false; $bEndWithPercent = substr($sValue, -1) == '%' ? true : false; - switch (true) - { + switch (true) { case ($sOperator == 'ISNULL'): case ('' == $sValue and ($sOperator == 'LIKE')): $aCriteria['operator'] = CriterionConversionAbstract::OP_EMPTY; @@ -465,59 +423,44 @@ class CriterionToSearchForm extends CriterionConversionAbstract break; } - return array($aCriteria); + return [$aCriteria]; } protected static function DateTimeToSearchForm($aCriterion, $aFields) { if ((!array_key_exists('is_relative', $aCriterion) || !$aCriterion['is_relative']) - && (!isset($aCriterion['unit']) || ($aCriterion['unit'] == 'DAY'))) - { + && (!isset($aCriterion['unit']) || ($aCriterion['unit'] == 'DAY'))) { // Convert '=' in 'between' - if (isset($aCriterion['operator'])) - { - switch ($aCriterion['operator']) - { + if (isset($aCriterion['operator'])) { + switch ($aCriterion['operator']) { case '=': - if (isset($aCriterion['has_undefined']) && (isset($aCriterion['values'][0]['value']) && ($aCriterion['values'][0]['value'] == 0))) - { + if (isset($aCriterion['has_undefined']) && (isset($aCriterion['values'][0]['value']) && ($aCriterion['values'][0]['value'] == 0))) { // Special case for NOT EMPTY $aCriterion['operator'] = CriterionConversionAbstract::OP_NOT_EMPTY; - } - else - { + } else { $aCriterion['operator'] = CriterionConversionAbstract::OP_BETWEEN_DATES; $sWidget = $aCriterion['widget']; - if ($sWidget == AttributeDefinition::SEARCH_WIDGET_TYPE_DATE) - { + if ($sWidget == AttributeDefinition::SEARCH_WIDGET_TYPE_DATE) { $aCriterion['values'][1] = $aCriterion['values'][0]; - } - else - { + } else { $sDate = $aCriterion['values'][0]['value']; $oDate = new DateTime($sDate); $sFirstDateValue = $oDate->format(AttributeDateTime::GetSQLFormat()); - try - { + try { $sFirstDateLabel = AttributeDateTime::GetFormat()->Format($sFirstDateValue); - $aCriterion['values'][0] = array('value' => $sFirstDateValue, 'label' => "$sFirstDateLabel"); - } - catch (Exception $e) - { + $aCriterion['values'][0] = ['value' => $sFirstDateValue, 'label' => "$sFirstDateLabel"]; + } catch (Exception $e) { } $oDate->add(DateInterval::createFromDateString('1 day')); $oDate->sub(DateInterval::createFromDateString('1 second')); $sLastDateValue = $oDate->format(AttributeDateTime::GetSQLFormat()); - try - { + try { $sLastDateLabel = AttributeDateTime::GetFormat()->Format($sLastDateValue); - $aCriterion['values'][1] = array('value' => $sLastDateValue, 'label' => "$sLastDateLabel"); - } - catch (Exception $e) - { + $aCriterion['values'][1] = ['value' => $sLastDateValue, 'label' => "$sLastDateLabel"]; + } catch (Exception $e) { } } } @@ -530,13 +473,10 @@ class CriterionToSearchForm extends CriterionConversionAbstract case '>': $aCriterion['operator'] = '>='; $sWidget = $aCriterion['widget']; - if ($sWidget == AttributeDefinition::SEARCH_WIDGET_TYPE_DATE) - { + if ($sWidget == AttributeDefinition::SEARCH_WIDGET_TYPE_DATE) { $sDelta = '1 day'; $sAttributeClass = AttributeDate::class; - } - else - { + } else { $sDelta = '1 second'; $sAttributeClass = AttributeDateTime::class; } @@ -547,23 +487,20 @@ class CriterionToSearchForm extends CriterionConversionAbstract $oDate = new DateTime($sFirstDate); $oDate->add(DateInterval::createFromDateString($sDelta)); $sFirstDateValue = $oDate->format($sAttributeClass::GetSQLFormat()); - try - { + try { $sFirstDateLabel = $oFormat->format($oDate); - $aCriterion['values'][0] = array('value' => $sFirstDateValue, 'label' => $sFirstDateLabel); - } catch (Exception $e) {} + $aCriterion['values'][0] = ['value' => $sFirstDateValue, 'label' => $sFirstDateLabel]; + } catch (Exception $e) { + } break; case '<': $aCriterion['operator'] = '<='; $sWidget = $aCriterion['widget']; - if ($sWidget == AttributeDefinition::SEARCH_WIDGET_TYPE_DATE) - { + if ($sWidget == AttributeDefinition::SEARCH_WIDGET_TYPE_DATE) { $sDelta = '1 day'; $sAttributeClass = AttributeDate::class; - } - else - { + } else { $sDelta = '1 second'; $sAttributeClass = AttributeDateTime::class; } @@ -574,26 +511,23 @@ class CriterionToSearchForm extends CriterionConversionAbstract $oDate = new DateTime($sFirstDate); $oDate->sub(DateInterval::createFromDateString($sDelta)); $sFirstDateValue = $oDate->format($sAttributeClass::GetSQLFormat()); - try - { + try { $sFirstDateLabel = $oFormat->format($oDate); - $aCriterion['values'][0] = array('value' => $sFirstDateValue, 'label' => $sFirstDateLabel); - } catch (Exception $e) {} + $aCriterion['values'][0] = ['value' => $sFirstDateValue, 'label' => $sFirstDateLabel]; + } catch (Exception $e) { + } break; } } - return array($aCriterion); + return [$aCriterion]; } - if (isset($aCriterion['values'][0]['value'])) - { + if (isset($aCriterion['values'][0]['value'])) { $sLabel = $aCriterion['values'][0]['value']; - if (isset($aCriterion['verb'])) - { - switch ($aCriterion['verb']) - { + if (isset($aCriterion['verb'])) { + switch ($aCriterion['verb']) { case 'DATE_SUB': $sLabel = '-'.$sLabel; break; @@ -602,8 +536,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract break; } } - if (isset($aCriterion['unit'])) - { + if (isset($aCriterion['unit'])) { $sLabel .= Dict::S('Expression:Unit:Short:'.$aCriterion['unit'], $aCriterion['unit']); } $aCriterion['values'][0]['label'] = "$sLabel"; @@ -612,34 +545,31 @@ class CriterionToSearchForm extends CriterionConversionAbstract // Temporary until the JS widget support relative dates $aCriterion['widget'] = AttributeDefinition::SEARCH_WIDGET_TYPE_RAW; - return array($aCriterion); + return [$aCriterion]; } protected static function NumericToSearchForm($aCriteria, $aFields) { - switch ($aCriteria['operator']) - { - case 'ISNULL': + switch ($aCriteria['operator']) { + case 'ISNULL': $aCriteria['operator'] = CriterionConversionAbstract::OP_EMPTY; break; case '=': - if (isset($aCriteria['has_undefined']) && (isset($aCriteria['values'][0]['value']) && ($aCriteria['values'][0]['value'] == 0))) - { + if (isset($aCriteria['has_undefined']) && (isset($aCriteria['values'][0]['value']) && ($aCriteria['values'][0]['value'] == 0))) { // Special case for NOT EMPTY $aCriteria['operator'] = CriterionConversionAbstract::OP_NOT_EMPTY; } break; } - return array($aCriteria); + return [$aCriteria]; } protected static function EnumToSearchForm($aCriteria, $aFields) { $sOperator = $aCriteria['operator']; - switch ($sOperator) - { + switch ($sOperator) { case '=': // Same as IN $aCriteria['operator'] = CriterionConversionAbstract::OP_IN; @@ -657,14 +587,12 @@ class CriterionToSearchForm extends CriterionConversionAbstract case 'ISNULL': // Special case when undefined and/or other values are selected $aCriteria['operator'] = CriterionConversionAbstract::OP_IN; - if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined']) - { - if (!isset($aCriteria['values'])) - { - $aCriteria['values'] = array(); + if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined']) { + if (!isset($aCriteria['values'])) { + $aCriteria['values'] = []; } // Convention for 'undefined' enums - $aCriteria['values'][] = array('value' => 'null', 'label' => Dict::S('Enum:Undefined')); + $aCriteria['values'][] = ['value' => 'null', 'label' => Dict::S('Enum:Undefined')]; } break; default: @@ -673,58 +601,49 @@ class CriterionToSearchForm extends CriterionConversionAbstract break; } - return array($aCriteria); + return [$aCriteria]; } protected static function TagSetToSearchForm($aCriteria, $aFields) { - $aCriterion = array($aCriteria); + $aCriterion = [$aCriteria]; $sOperator = $aCriteria['operator']; - switch ($sOperator) - { + switch ($sOperator) { case 'MATCHES': // Nothing special to do - if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined']) - { - if (!isset($aCriteria['values'])) - { - $aCriteria['values'] = array(); + if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined']) { + if (!isset($aCriteria['values'])) { + $aCriteria['values'] = []; } // Convention for 'undefined' tag set - $aCriteria['values'][] = array('value' => '', 'label' => Dict::S('Enum:Undefined')); + $aCriteria['values'][] = ['value' => '', 'label' => Dict::S('Enum:Undefined')]; } break; case 'OR': case 'ISNULL': $aCriteria['operator'] = CriterionConversionAbstract::OP_EQUALS; - if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined']) - { - if (!isset($aCriteria['values'])) - { - $aCriteria['values'] = array(); + if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined']) { + if (!isset($aCriteria['values'])) { + $aCriteria['values'] = []; } // Convention for 'undefined' tag set - $aCriteria['values'][] = array('value' => '', 'label' => Dict::S('Enum:Undefined')); + $aCriteria['values'][] = ['value' => '', 'label' => Dict::S('Enum:Undefined')]; } break; case '=': $aCriteria['operator'] = CriterionConversionAbstract::OP_MATCHES; - if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined']) - { - $aCriteria['values'] = array(); + if (isset($aCriteria['has_undefined']) && $aCriteria['has_undefined']) { + $aCriteria['values'] = []; // Convention for 'undefined' tag set - $aCriteria['values'][] = array('value' => '', 'label' => Dict::S('Enum:Undefined')); - } - else - { + $aCriteria['values'][] = ['value' => '', 'label' => Dict::S('Enum:Undefined')]; + } else { // Split values into a list of Matches - $aCriterion = array(); + $aCriterion = []; $aValues = $aCriteria['values']; - foreach($aValues as $aValue) - { - $aCriteria['values'] = array($aValue); + foreach ($aValues as $aValue) { + $aCriteria['values'] = [$aValue]; $aCriterion[] = $aCriteria; } } @@ -741,14 +660,13 @@ class CriterionToSearchForm extends CriterionConversionAbstract protected static function SetToSearchForm($aCriteria, $aFields) { $aCriteria['widget'] = AttributeDefinition::SEARCH_WIDGET_TYPE_RAW; - return array($aCriteria); + return [$aCriteria]; } protected static function ExternalKeyToSearchForm($aCriteria, $aFields) { $sOperator = $aCriteria['operator']; - switch ($sOperator) - { + switch ($sOperator) { case '=': // Same as IN $aCriteria['operator'] = CriterionConversionAbstract::OP_IN; @@ -763,7 +681,7 @@ class CriterionToSearchForm extends CriterionConversionAbstract break; } - return array($aCriteria); + return [$aCriteria]; } /** @@ -776,32 +694,25 @@ class CriterionToSearchForm extends CriterionConversionAbstract { $sRef = $aCriteria['ref']; $aValues = $aCriteria['values']; - if (array_key_exists($sRef, $aFields)) - { + if (array_key_exists($sRef, $aFields)) { $aField = $aFields[$sRef]; - if (array_key_exists('allowed_values', $aField) && array_key_exists('values', $aField['allowed_values'])) - { + if (array_key_exists('allowed_values', $aField) && array_key_exists('values', $aField['allowed_values'])) { $aAllowedValues = $aField['allowed_values']['values']; - } - else - { + } else { // Can't obtain the list of allowed values, just set as unknown $aCriteria['widget'] = AttributeDefinition::SEARCH_WIDGET_TYPE_RAW; } } - if (isset($aAllowedValues)) - { - foreach($aValues as $aValue) - { + if (isset($aAllowedValues)) { + foreach ($aValues as $aValue) { $sValue = $aValue['value']; unset($aAllowedValues[$sValue]); } - $aCriteria['values'] = array(); + $aCriteria['values'] = []; - foreach($aAllowedValues as $sValue => $sLabel) - { - $aValue = array('value' => $sValue, 'label' => "$sLabel"); + foreach ($aAllowedValues as $sValue => $sLabel) { + $aValue = ['value' => $sValue, 'label' => "$sLabel"]; $aCriteria['values'][] = $aValue; } $aCriteria['operator'] = 'IN'; diff --git a/sources/Application/Search/ajaxsearchexception.class.inc.php b/sources/Application/Search/ajaxsearchexception.class.inc.php index 9a5b1d85c..5f08fcba8 100644 --- a/sources/Application/Search/ajaxsearchexception.class.inc.php +++ b/sources/Application/Search/ajaxsearchexception.class.inc.php @@ -1,4 +1,5 @@ AddConditionExpression($oHiddenCriteriaExpression); } - if (empty($aExpression)) - { + if (empty($aExpression)) { return $oSearch; } @@ -78,8 +72,7 @@ class CriterionParser $oSearch->AddConditionExpression($oExpression); return $oSearch; - } catch (OQLException $e) - { + } catch (OQLException $e) { IssueLog::Error($e->getMessage()); } return null; @@ -87,22 +80,19 @@ class CriterionParser private static function ParseAndList($oSearch, $aAnd) { - $aExpression = array(); - foreach($aAnd as $aCriteria) - { + $aExpression = []; + foreach ($aAnd as $aCriteria) { $sExpression = CriterionToOQL::Convert($oSearch, $aCriteria); - if ($sExpression !== '1') - { + if ($sExpression !== '1') { $aExpression[] = $sExpression; } } - if (empty($aExpression)) - { + if (empty($aExpression)) { return '1'; } return '('.implode(" AND ", $aExpression).')'; } -} \ No newline at end of file +} diff --git a/sources/Application/Search/searchform.class.inc.php b/sources/Application/Search/searchform.class.inc.php index b01ce94ec..64cf2d3f3 100644 --- a/sources/Application/Search/searchform.class.inc.php +++ b/sources/Application/Search/searchform.class.inc.php @@ -1,13 +1,12 @@ AddUiBlock($this->GetSearchFormUIBlock($oPage, $oSet, $aExtraParams)); return ''; } - public function GetSearchFormUIBlock(WebPage $oPage, DBObjectSet $oSet, $aExtraParams = array()) + public function GetSearchFormUIBlock(WebPage $oPage, DBObjectSet $oSet, $aExtraParams = []) { $oUiBlock = new UIContentBlock(); $oUiBlock->AddMultipleJsFilesRelPaths([ @@ -76,10 +75,9 @@ class SearchForm $oAppContext = new ApplicationContext(); $sClassName = $oSet->GetFilter()->GetClass(); - $aListParams = array(); + $aListParams = []; - foreach($aExtraParams as $key => $value) - { + foreach ($aExtraParams as $key => $value) { $aListParams[$key] = $value; } @@ -127,7 +125,7 @@ class SearchForm } else { $aSubClasses = MetaModel::GetSubclasses($sRootClass); if (count($aSubClasses) > 0) { - $aOptions = array(); + $aOptions = []; $aOptions[MetaModel::GetName($sRootClass)] = " @@ -398,8 +394,7 @@ HTML ); /** @var \Attachment $oAttachment */ - while ($oAttachment = $this->oAttachmentsSet->Fetch()) - { + while ($oAttachment = $this->oAttachmentsSet->Fetch()) { $iAttId = $oAttachment->GetKey(); $sLineStyle = ''; @@ -418,8 +413,7 @@ HTML if ($oDoc->IsPreviewAvailable()) { $bHasPreview = true; $iMaxSizeForPreview = MetaModel::GetModuleSetting('itop-attachments', 'icon_preview_max_size', AbstractAttachmentsRenderer::DEFAULT_MAX_SIZE_FOR_PREVIEW); - if ($oDoc->GetSize() <= $iMaxSizeForPreview) - { + if ($oDoc->GetSize() <= $iMaxSizeForPreview) { $sAttachmentThumbUrl = $sDocDownloadUrl; } } @@ -431,8 +425,7 @@ HTML $bIsTempAttachment = ($oAttachment->Get('item_id') === 0); $sAttachmentDate = ''; $iAttachmentDateRaw = ''; - if (!$bIsTempAttachment) - { + if (!$bIsTempAttachment) { $sAttachmentDate = $oAttachment->Get('creation_date'); $iAttachmentDateRaw = AttributeDateTime::GetAsUnixSeconds($sAttachmentDate); } @@ -455,7 +448,8 @@ HTML )); } - $oOutput->Addhtml(<<Addhtml( + <<
      {$aRow['label']}{$aRow['input']}{$aRow['help']}{$aRow['label']}{$aRow['help']}{$aRow['label']}{$aRow['input']}{$aRow['label']}
      HTML @@ -511,18 +505,29 @@ HTML; * @since 2.7.0 */ protected static function GetAttachmentTableRow( - $iAttId, $sLineStyle, $sDocDownloadUrl, $sDocDisplayUrl, $bHasPreview, $sAttachmentThumbUrl, $sFileName, $sAttachmentMeta, $sFileSize, - $iFileSizeRaw, $iFileDownloadsCount, $sAttachmentDate, $iAttachmentDateRaw, $bIsDeleteAllowed + $iAttId, + $sLineStyle, + $sDocDownloadUrl, + $sDocDisplayUrl, + $bHasPreview, + $sAttachmentThumbUrl, + $sFileName, + $sAttachmentMeta, + $sFileSize, + $iFileSizeRaw, + $iFileDownloadsCount, + $sAttachmentDate, + $iAttachmentDateRaw, + $bIsDeleteAllowed ) { $sDeleteCell = ''; - if ($bIsDeleteAllowed) - { + if ($bIsDeleteAllowed) { $sDeleteBtnLabel = Dict::S('Portal:Button:Delete'); $sDeleteCell = ''; } $sHtml = ""; - if($bHasPreview) { + if ($bHasPreview) { $sHtml .= "\" data-tooltip-html-enabled=true>"; } else { $sHtml .= ""; diff --git a/sources/Renderer/Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php b/sources/Renderer/Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php index 7d6939e46..3bc3b39f0 100644 --- a/sources/Renderer/Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php +++ b/sources/Renderer/Bootstrap/FieldRenderer/BsLinkedSetFieldRenderer.php @@ -39,15 +39,15 @@ use utils; * Description of BsLinkedSetFieldRenderer * * @author Guillaume Lajarige - * - * @property \Combodo\iTop\Form\Field\LinkedSetField $oField - * + * + * @property \Combodo\iTop\Form\Field\LinkedSetField $oField + * */ class BsLinkedSetFieldRenderer extends BsFieldRenderer { - /** - * @inheritDoc - */ + /** + * @inheritDoc + */ public function Render() { $oOutput = parent::Render(); @@ -62,7 +62,7 @@ class BsLinkedSetFieldRenderer extends BsFieldRenderer // we sort the table on the first non link column $iSortColumnIndex = count($this->oField->GetLnkAttributesToDisplay()); // if we are in edition mode, we skip the first column (selection checkbox column) - if(!$this->oField->GetReadOnly()){ + if (!$this->oField->GetReadOnly()) { $iSortColumnIndex++; } @@ -72,17 +72,17 @@ class BsLinkedSetFieldRenderer extends BsFieldRenderer $sAttCodesToDisplayAsJson = json_encode($this->oField->GetAttributesToDisplay(true)); $sLnkAttCodesToDisplayAsJson = json_encode($this->oField->GetLnkAttributesToDisplay(true)); - $aItems = array(); - $aItemIds = array(); - $aAddedItemIds = array(); - $aAddedTargetIds = array(); + $aItems = []; + $aItemIds = []; + $aAddedItemIds = []; + $aAddedTargetIds = []; $this->InjectRendererFileAssets($this->oField->GetLinkedClass(), $this->oField->GetLnkAttributesToDisplay(true), $oOutput); $this->PrepareItems($aItems, $aItemIds, $oOutput, $aAddedItemIds, $aAddedTargetIds); $sItemsAsJson = json_encode($aItems); - $sItemIdsAsJson = utils::EscapeHtml(json_encode(array('current' => $aItemIds, 'add' => $aAddedItemIds))); + $sItemIdsAsJson = utils::EscapeHtml(json_encode(['current' => $aItemIds, 'add' => $aAddedItemIds])); foreach ($aAddedTargetIds as $sId) { - $aItemIds[$sId] = array(); + $aItemIds[$sId] = []; } if (!$this->oField->GetHidden()) { @@ -120,7 +120,7 @@ class BsLinkedSetFieldRenderer extends BsFieldRenderer // Rendering table // - Vars - $sTableId = 'table_' . $this->oField->GetGlobalId(); + $sTableId = 'table_'.$this->oField->GetGlobalId(); // - Output $oOutput->AddHtml( <<oField->GetGlobalId(); - $sButtonAddId = 'btn_add_' . $this->oField->GetGlobalId(); + $sButtonRemoveId = 'btn_remove_'.$this->oField->GetGlobalId(); + $sButtonAddId = 'btn_add_'.$this->oField->GetGlobalId(); $sLabelRemove = Dict::S('UI:Button:Remove'); $sLabelAdd = Dict::S('UI:Button:AddObject'); // - Output $oOutput->AddHtml( -<<
      @@ -607,7 +607,7 @@ EOF $sAddButtonEndpoint = str_replace('-sMode-', 'from-attribute', $this->oField->GetSearchEndpoint()); // - Output $oOutput->AddJs( - <<oField->GetGlobalId()} = function() @@ -704,9 +704,8 @@ JS } } // ... and in hidden mode - else - { - $oOutput->AddHtml(''); + else { + $oOutput->AddHtml(''); } // End of table rendering @@ -716,18 +715,18 @@ JS return $oOutput; } - /** - * @param $aItems - * @param $aItemIds - * - * @throws \Exception - * @throws \CoreException - */ + /** + * @param $aItems + * @param $aItemIds + * + * @throws \Exception + * @throws \CoreException + */ protected function PrepareItems(&$aItems, &$aItemIds, $oOutput, &$aAddedItemIds, &$aAddedTargetIds) { /** @var \ormLinkSet $oValueSet */ $oValueSet = $this->oField->GetCurrentValue(); - $oValueSet->OptimizeColumnLoad(array($this->oField->GetTargetClass() => $this->oField->GetAttributesToDisplay(true))); + $oValueSet->OptimizeColumnLoad([$this->oField->GetTargetClass() => $this->oField->GetAttributesToDisplay(true)]); while ($oItem = $oValueSet->Fetch()) { // In case of indirect linked set, we must retrieve the remote object @@ -735,8 +734,7 @@ JS try { // Note : AllowAllData set to true here instead of checking scope's flag because we are displaying a value that has been set and validated $oRemoteItem = MetaModel::GetObject($this->oField->GetTargetClass(), $oItem->Get($this->oField->GetExtKeyToRemote()), true, true); - } - catch (Exception $e) { + } catch (Exception $e) { // In some cases we can't retrieve an object from a linkedset, eg. when the extkey to remote is 0 due to a database corruption. // Rather than crashing we rather just skip the object like in the administration console IssueLog::Error('Could not retrieve object of linkedset in form #'.$this->oField->GetFormPath().' for field #'.$this->oField->GetId().'. Message: '.$e->getMessage()); @@ -752,17 +750,17 @@ JS continue; } - $aItemProperties = array( + $aItemProperties = [ 'id' => ($this->oField->IsIndirect() && $oItem->IsNew()) ? -1 * $oRemoteItem->GetKey() : $oItem->GetKey(), 'target_id' => $oRemoteItem->GetKey(), 'name' => $oItem->GetName(), - 'attributes' => array(), + 'attributes' => [], 'limited_access' => $bLimitedAccessItem, 'disabled' => true, 'active' => false, 'inactive' => true, 'not-selectable' => true, - ); + ]; // Link attributes to display $this->PrepareItem($oItem, $this->oField->GetLinkedClass(), $this->oField->GetLnkAttributesToDisplay(true), !$this->oField->GetReadOnly(), $aItemProperties, 'lnk__'); @@ -774,10 +772,10 @@ JS // and form reconstruct $aItems[] = $aItemProperties; if ($oItem->IsNew()) { - $aAddedItemIds[-1 * $aItemProperties['id']] = array(); + $aAddedItemIds[-1 * $aItemProperties['id']] = []; $aAddedTargetIds[] = $oRemoteItem->GetKey(); } else { - $aItemIds[$aItemProperties['id']] = array(); + $aItemIds[$aItemProperties['id']] = []; } } $oValueSet->rewind(); @@ -794,9 +792,9 @@ JS protected function InjectRendererFileAssets(string $sClass, array $aAttributesCodesToDisplay, $oOutput) { // handle abstract class - while(MetaModel::IsAbstract($sClass)){ + while (MetaModel::IsAbstract($sClass)) { $aChildClasses = MetaModel::EnumChildClasses($sClass); - if(count($aChildClasses) > 0){ + if (count($aChildClasses) > 0) { $sClass = $aChildClasses[0]; } } @@ -850,7 +848,7 @@ JS // Prepare attribute properties $aAttProperties = [ - 'prefix'=> $sAttribueKeyPrefix, + 'prefix' => $sAttribueKeyPrefix, 'object_class' => $sClass, 'object_id' => $oItem->GetKey(), 'attribute_code' => $sAttCode, @@ -859,10 +857,8 @@ JS // - Value raw // For simple fields, we get the raw (stored) value as well $bExcludeRawValue = false; - foreach (ApplicationHelper::GetAttDefClassesToExcludeFromMarkupMetadataRawValue() as $sAttDefClassToExclude) - { - if (is_a($oAttDef, $sAttDefClassToExclude, true)) - { + foreach (ApplicationHelper::GetAttDefClassesToExcludeFromMarkupMetadataRawValue() as $sAttDefClassToExclude) { + if (is_a($oAttDef, $sAttDefClassToExclude, true)) { $bExcludeRawValue = true; break; } @@ -890,7 +886,7 @@ JS $aAttProperties['value_html'] = $oFieldOutput->GetHtml(); } - } else if ($oAttDef->IsExternalKey()) { + } elseif ($oAttDef->IsExternalKey()) { /** @var \AttributeExternalKey $oAttDef */ $aAttProperties['value_html'] = utils::EscapeHtml($oItem->Get($sAttCode.'_friendlyname')); diff --git a/sources/Renderer/Bootstrap/FieldRenderer/BsSetFieldRenderer.php b/sources/Renderer/Bootstrap/FieldRenderer/BsSetFieldRenderer.php index 2816ef1e4..dc77ebfe7 100644 --- a/sources/Renderer/Bootstrap/FieldRenderer/BsSetFieldRenderer.php +++ b/sources/Renderer/Bootstrap/FieldRenderer/BsSetFieldRenderer.php @@ -30,38 +30,36 @@ use utils; */ class BsSetFieldRenderer extends BsFieldRenderer { - /** - * @inheritDoc - */ + /** + * @inheritDoc + */ public function Render() { - $oOutput = parent::Render(); + $oOutput = parent::Render(); $sFieldMandatoryClass = ($this->oField->GetMandatory()) ? 'form_mandatory' : ''; $sFieldDescriptionForHTMLTag = ($this->oField->HasDescription()) ? 'data-tooltip-content="'.utils::HtmlEntities($this->oField->GetDescription()).'"' : ''; // Vars to build the table -// $sAttributesToDisplayAsJson = json_encode($this->oField->GetAttributesToDisplay()); -// $sAttCodesToDisplayAsJson = json_encode($this->oField->GetAttributesToDisplay(true)); -// $aItems = array(); -// $aItemIds = array(); -// $this->PrepareItems($aItems, $aItemIds); -// $sItemsAsJson = json_encode($aItems); -// $sItemIdsAsJson = htmlentities(json_encode(array('current' => $aItemIds)), ENT_QUOTES, 'UTF-8'); + // $sAttributesToDisplayAsJson = json_encode($this->oField->GetAttributesToDisplay()); + // $sAttCodesToDisplayAsJson = json_encode($this->oField->GetAttributesToDisplay(true)); + // $aItems = array(); + // $aItemIds = array(); + // $this->PrepareItems($aItems, $aItemIds); + // $sItemsAsJson = json_encode($aItems); + // $sItemIdsAsJson = htmlentities(json_encode(array('current' => $aItemIds)), ENT_QUOTES, 'UTF-8'); // Rendering field - if (!$this->oField->GetHidden()) - { + if (!$this->oField->GetHidden()) { /** @var \ormSet $oOrmItemSet */ $oOrmItemSet = $this->oField->GetCurrentValue(); // Opening container - $oOutput->AddHtml('
      '); + $oOutput->AddHtml('
      '); // Label $oOutput->AddHtml('
      '); - if ($this->oField->GetLabel() !== '') - { - $oOutput->AddHtml('