diff --git a/include/ListView/ListViewController.php b/include/ListView/ListViewController.php index 586bed54f5d6529fabcfa1c7d8ddcae66f0fccc3..01de408f8886c2cdc3ff261eaf89dc8fcf2700de 100644 --- a/include/ListView/ListViewController.php +++ b/include/ListView/ListViewController.php @@ -438,7 +438,6 @@ class ListViewController { } elseif($field->getUIType() == 98) { $value = '<a href="index.php?module=Roles&parent=Settings&view=Edit&record='.$value.'">'.textlength_check(getRoleName($value)).'</a>'; } elseif($fieldDataType == 'multipicklist') { - $value = ($value != "") ? str_replace(' |##| ',', ',$value) : ""; if(!$is_admin && $value != '') { $valueArray = ($rawValue != "") ? explode(' |##| ',$rawValue) : array(); $notaccess = '<font color="red">'.getTranslatedString('LBL_NOT_ACCESSIBLE', @@ -465,6 +464,14 @@ class ListViewController { } $value = implode(', ', $tmpArray); $value = textlength_check($value); + } else if ($value != '') { + $moduleName = getTabModuleName($field->getTabId()); + $value = explode(' |##| ', $value); + foreach ($value as $key => $val) { + $value[$key] = vtranslate($val, $moduleName); + } + $value = implode(' |##| ', $value); + $value = str_replace(' |##| ', ', ', $value); } } elseif ($fieldDataType == 'skype') { $value = ($value != "") ? "<a href='skype:$value?call'>".textlength_check($value)."</a>" : ""; diff --git a/layouts/v7/modules/Vtiger/ListViewContents.tpl b/layouts/v7/modules/Vtiger/ListViewContents.tpl index 978fc88627a18c4d16398fa312ea6aed9ae158a7..4a89cd1a97b0c9dcb87faa91c6b99e697f3acd51 100644 --- a/layouts/v7/modules/Vtiger/ListViewContents.tpl +++ b/layouts/v7/modules/Vtiger/ListViewContents.tpl @@ -194,8 +194,9 @@ {else if $LISTVIEW_HEADER->getFieldDataType() eq 'multipicklist'} {assign var=MULTI_RAW_PICKLIST_VALUES value=explode('|##|',$LISTVIEW_ENTRY->getRaw($LISTVIEW_HEADERNAME))} {assign var=MULTI_PICKLIST_VALUES value=explode(',',$LISTVIEW_ENTRY_VALUE)} + {assign var=ALL_MULTI_PICKLIST_VALUES value=array_flip($LISTVIEW_HEADER->getPicklistValues())} {foreach item=MULTI_PICKLIST_VALUE key=MULTI_PICKLIST_INDEX from=$MULTI_PICKLIST_VALUES} - <span {if !empty($LISTVIEW_ENTRY_VALUE)} class="picklist-color picklist-{$LISTVIEW_HEADER->getId()}-{Vtiger_Util_Helper::convertSpaceToHyphen(trim($MULTI_PICKLIST_VALUE))}"{/if} > + <span {if !empty($LISTVIEW_ENTRY_VALUE)} class="picklist-color picklist-{$LISTVIEW_HEADER->getId()}-{Vtiger_Util_Helper::convertSpaceToHyphen(trim($ALL_MULTI_PICKLIST_VALUES[trim($MULTI_PICKLIST_VALUE)]))}"{/if} > {if trim($MULTI_PICKLIST_VALUES[$MULTI_PICKLIST_INDEX]) eq vtranslate('LBL_NOT_ACCESSIBLE', $MODULE)} <font color="red"> {trim($MULTI_PICKLIST_VALUES[$MULTI_PICKLIST_INDEX])} diff --git a/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl b/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl index d76f4b2aa478e0d8fdb8001d3e4cdf56e60caf13..c9a94e8cb30718ac714a7d476e722f4afe3815c6 100644 --- a/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl +++ b/layouts/v7/modules/Vtiger/uitypes/MultiPicklist.tpl @@ -10,19 +10,31 @@ ********************************************************************************/ -->*} {strip} -{assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPicklistValues()} -{assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} -{assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()} -{assign var="FIELD_VALUE_LIST" value=explode(' |##| ',$FIELD_MODEL->get('fieldvalue'))} -<input type="hidden" name="{$FIELD_MODEL->getFieldName()}" value="" data-fieldtype="multipicklist"/> -<select id="{$MODULE}_{$smarty.request.view}_fieldName_{$FIELD_MODEL->getFieldName()}" multiple class="select2" name="{$FIELD_MODEL->getFieldName()}[]" data-fieldtype="multipicklist" style='width:210px;height:30px;' - {if $FIELD_INFO["mandatory"] eq true} data-rule-required="true" {/if} - {if count($FIELD_INFO['validator'])} - data-specific-rules='{ZEND_JSON::encode($FIELD_INFO["validator"])}' - {/if} - > - {foreach item=PICKLIST_VALUE from=$PICKLIST_VALUES} - <option value="{Vtiger_Util_Helper::toSafeHTML($PICKLIST_VALUE)}" {if in_array(Vtiger_Util_Helper::toSafeHTML($PICKLIST_VALUE), $FIELD_VALUE_LIST)} selected {/if}>{vtranslate($PICKLIST_VALUE, $MODULE)}</option> - {/foreach} -</select> + {assign var=PICKLIST_VALUES value=$FIELD_MODEL->getPicklistValues()} + {assign var="FIELD_INFO" value=$FIELD_MODEL->getFieldInfo()} + {assign var="SPECIAL_VALIDATOR" value=$FIELD_MODEL->getValidator()} + {assign var="FIELD_VALUE_LIST" value=explode(' |##| ',$FIELD_MODEL->get('fieldvalue'))} + {assign var=PICKLIST_COLORS value=$FIELD_MODEL->getPicklistColors()} + <input type="hidden" name="{$FIELD_MODEL->getFieldName()}" value="" data-fieldtype="multipicklist"/> + <select id="{$MODULE}_{$smarty.request.view}_fieldName_{$FIELD_MODEL->getFieldName()}" multiple class="select2" name="{$FIELD_MODEL->getFieldName()}[]" data-fieldtype="multipicklist" style='width:210px;height:30px;' + {if $FIELD_INFO["mandatory"] eq true} data-rule-required="true" {/if} + {if count($FIELD_INFO['validator'])} + data-specific-rules='{ZEND_JSON::encode($FIELD_INFO["validator"])}' + {/if} + > + {foreach item=PICKLIST_VALUE key=PICKLIST_NAME from=$PICKLIST_VALUES} + {assign var=CLASS_NAME value="picklistColor_{$FIELD_MODEL->getFieldName()}_{$PICKLIST_NAME|replace:' ':'_'}"} + <option value="{Vtiger_Util_Helper::toSafeHTML($PICKLIST_NAME)}" {if $PICKLIST_COLORS[$PICKLIST_NAME]}class="{$CLASS_NAME}"{/if} {if in_array(Vtiger_Util_Helper::toSafeHTML($PICKLIST_NAME), $FIELD_VALUE_LIST)} selected {/if}>{vtranslate($PICKLIST_VALUE, $MODULE)}</option> + {/foreach} + </select> + {if $PICKLIST_COLORS} + <style type="text/css"> + {foreach item=PICKLIST_VALUE key=PICKLIST_NAME from=$PICKLIST_VALUES} + {assign var=CLASS_NAME value="{$FIELD_MODEL->getFieldName()}_{$PICKLIST_NAME|replace:' ':'_'}"} + .picklistColor_{$CLASS_NAME} { + background-color: {$PICKLIST_COLORS[$PICKLIST_NAME]} !important; + } + {/foreach} + </style> + {/if} {/strip} \ No newline at end of file diff --git a/modules/Vtiger/models/Record.php b/modules/Vtiger/models/Record.php index bfb75dd9d73229181bd51924f53317845c83113f..be7e4fc2b40d5de8f280393dd34150934f51fd43 100644 --- a/modules/Vtiger/models/Record.php +++ b/modules/Vtiger/models/Record.php @@ -629,8 +629,7 @@ class Vtiger_Record_Model extends Vtiger_Base_Model { } } if($dataType == 'multipicklist') { - $values = explode('|##|', $rawValue); - $rawValue = implode(',', array_map('vtranslate',$values)); + $rawValue = $fieldInstance->getDisplayValue($rawValue); } } return $rawValue; diff --git a/modules/Vtiger/uitypes/Multipicklist.php b/modules/Vtiger/uitypes/Multipicklist.php index 8805a2cb018a57ce63223a8a41514fb5ea30c622..83b4527c298631c14ca5f29758fefc27b6788cc2 100644 --- a/modules/Vtiger/uitypes/Multipicklist.php +++ b/modules/Vtiger/uitypes/Multipicklist.php @@ -24,7 +24,14 @@ class Vtiger_Multipicklist_UIType extends Vtiger_Base_UIType { * @return <Object> */ public function getDisplayValue($value) { - if(is_array($value)){ + + $moduleName = $this->get('field')->getModuleName(); + $value = explode(' |##| ', $value); + foreach ($value as $key => $val) { + $value[$key] = vtranslate($val, $moduleName); + } + + if(is_array($value)){ $value = implode(' |##| ', $value); } return str_ireplace(' |##| ', ', ', $value);