コード例 #1
0
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     //get module
     $module = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID());
     // Get languages
     $a_all_languages = CMS_languagesCatalog::getAllLanguages($module);
     $languagesDatas = array();
     if (is_array($a_all_languages) && $a_all_languages) {
         $languagesDatas[] = array('', $language->getMessage(self::MESSAGE_OBJECT_LANGUAGE_CHOOSE_OBJECT));
         foreach ($a_all_languages as $aLanguage) {
             $languagesDatas[] = array($aLanguage->getCode(), $aLanguage->getLabel());
         }
     } else {
         $languagesDatas[] = array('', $language->getMessage(self::MESSAGE_OBJECT_LANGUAGE_EMPTY_OBJECTS_SET));
         $return['disabled'] = true;
     }
     $return['hiddenName'] = $return['name'];
     /*unset($return['id']);*/
     $return['xtype'] = 'atmCombo';
     $return['forceSelection'] = true;
     $return['mode'] = 'local';
     $return['valueField'] = 'id';
     $return['displayField'] = 'name';
     $return['value'] = $this->_subfieldValues[0]->getValue();
     $return['triggerAction'] = 'all';
     $return['store'] = array('xtype' => 'arraystore', 'fields' => array('id', 'name'), 'data' => $languagesDatas);
     $return['selectOnFocus'] = true;
     $return['editable'] = false;
     $return['anchor'] = false;
     return $return;
 }
コード例 #2
0
ファイル: object_href.php プロジェクト: davidmottet/automne
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     //$params = $this->getParamsValues();
     //get module codename
     $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID());
     //create field value
     $maxFileSize = CMS_file::getMaxUploadFileSize('K');
     $value = $this->_subfieldValues[0]->getValue();
     $return['name'] = 'polymodFieldsValue[href' . $prefixName . $this->_field->getID() . '_0]';
     $return['xtype'] = 'atmLinkField';
     $return['value'] = (string) $value;
     $return['uploadCfg'] = array('file_size_limit' => $maxFileSize, 'file_types' => '*.*', 'file_types_description' => $language->getMessage(self::MESSAGE_OBJECT_HREF_ALL_FILES) . ' ...');
     $return['fileinfos'] = array('module' => $moduleCodename, 'visualisation' => RESOURCE_DATA_LOCATION_EDITED);
     $return['linkConfig'] = array();
     return $return;
 }
コード例 #3
0
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     $return['xtype'] = 'checkbox';
     $return['checked'] = !!$this->_subfieldValues[0]->getValue();
     $return['anchor'] = '';
     $return['inputValue'] = 1;
     $return['boxLabel'] = ' ';
     //needed to avoid checkbox to be centered
     return $return;
 }
コード例 #4
0
ファイル: object_email.php プロジェクト: davidmottet/automne
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     $params = $this->getParamsValues();
     //instanciate sending date object
     $sendingDate = new CMS_date();
     $sendingDate->setFromDBValue($this->_subfieldValues[1]->getValue());
     if ($sendingDate->isNull()) {
         $lastSendingDate = $language->getMessage(self::MESSAGE_OBJECT_EMAIL_NEVER, false, MOD_POLYMOD_CODENAME);
     } else {
         $lastSendingDate = $sendingDate->getLocalizedDate($language->getDateFormat()) . ' ' . date('H:i:s', $sendingDate->getTimestamp());
     }
     $label = $return['title'];
     $return = array('layout' => 'column', 'xtype' => 'panel', 'border' => false, 'items' => array($params['chooseSendEmail'] ? array('width' => '100%', 'layout' => 'form', 'border' => false, 'items' => array(array('id' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]', 'xtype' => 'checkbox', 'fieldLabel' => '&nbsp;', 'labelSeparator' => '', 'inputValue' => 1, 'anchor' => false, 'checked' => $params['defaultValue'] ? 1 : !!$this->_subfieldValues[0]->getValue(), 'boxLabel' => $label . '&nbsp;<small>(' . $language->getMessage(self::MESSAGE_OBJECT_EMAIL_LAST_SENDING, false, MOD_POLYMOD_CODENAME) . ' : ' . $lastSendingDate . ')</small>'))) : array('width' => '100%', 'layout' => 'fit', 'border' => true, 'padding' => '5', 'bodyStyle' => 'margin:10px 0 15px 0', 'html' => $label . ' : ' . $language->getMessage(self::MESSAGE_OBJECT_EMAIL_LAST_SENDING, false, MOD_POLYMOD_CODENAME) . ' : ' . $lastSendingDate), array('columnWidth' => 1, 'layout' => 'form', 'border' => false, 'hideLabels' => true, 'items' => array(array('xtype' => 'hidden', 'value' => $this->_subfieldValues[1]->getValue(), 'id' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_1]', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_1]'), array('xtype' => 'hidden', 'value' => $this->_subfieldValues[2]->getValue(), 'id' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_2]', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_2]')))));
     if (!$params['chooseSendEmail']) {
         $return['items'][1]['items'][] = array('xtype' => 'hidden', 'value' => 1, 'id' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]', 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_0]');
     }
     return $return;
 }
コード例 #5
0
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     global $cms_user;
     $params = $this->getParamsValues();
     $return['name'] = 'polymodFieldsValue[list' . $prefixName . $this->_field->getID() . '_0]';
     if ($params['multiUserGroup']) {
         // Get all users or groups
         $a_all_users = $this->getListOfNamesForObject();
         $associatedItems = $availableItems = array();
         if (is_array($a_all_users) && $a_all_users) {
             foreach (array_keys($this->_subfieldValues) as $subFieldID) {
                 if (is_object($this->_subfieldValues[$subFieldID])) {
                     $associatedItems[$this->_subfieldValues[$subFieldID]->getValue()] = $this->_subfieldValues[$subFieldID]->getValue();
                 }
             }
             foreach ($a_all_users as $id => $user) {
                 $availableItems[] = array($id, $user);
             }
         } else {
             $availableItems[] = array('', $language->getMessage(self::MESSAGE_EMPTY_OBJECTS_SET));
             $return['disabled'] = true;
             $return['value'] = '';
         }
         /*$return['xtype'] 			= 'multiselect';
         		$return['dataFields'] 		= array('id', 'label');
         		$return['data'] 			= $availableItems;
         		$return['value'] 			= implode(',',$associatedItems);
         		$return['valueField'] 		= "id";
         		$return['displayField'] 	= "label";
         		$return['width'] 			= '97%';*/
         $return['xtype'] = 'superboxselect';
         $return['dataFields'] = array('id', 'label');
         $return['store'] = $availableItems;
         $return['mode'] = 'local';
         $return['value'] = implode(',', $associatedItems);
         $return['valueField'] = "id";
         $return['displayField'] = "label";
         $return['width'] = '100%';
         $return['stackItems'] = true;
     } else {
         $usersDatas = array();
         if ($params['isCurrentUser']) {
             $usersDatas[] = array($cms_user->getUserId(), $cms_user->getFullName());
             $return['disabled'] = true;
             $return['value'] = $cms_user->getUserId();
         } elseif ($params['creationUser']) {
             if (sensitiveIO::isPositiveInteger($this->_subfieldValues[0]->getValue())) {
                 $user = CMS_profile_usersCatalog::getByID($this->_subfieldValues[0]->getValue());
             } else {
                 $user = $cms_user;
             }
             $usersDatas[] = array($user->getUserId(), $user->getFullName());
             $return['disabled'] = true;
             $return['value'] = $user->getUserId();
         } else {
             // Get all users or groups
             $a_all_users = $this->getListOfNamesForObject();
             if (is_array($a_all_users) && $a_all_users) {
                 $usersDatas[] = array('', $language->getMessage(self::MESSAGE_CHOOSE_OBJECT));
                 foreach ($a_all_users as $userGroupID => $aUserGroupLabel) {
                     $usersDatas[] = array($userGroupID, io::decodeEntities($aUserGroupLabel));
                 }
                 $return['value'] = $this->_subfieldValues[0]->getValue();
             } else {
                 $usersDatas[] = array('', $language->getMessage(self::MESSAGE_EMPTY_OBJECTS_SET));
                 $return['disabled'] = true;
                 $return['value'] = '';
             }
         }
         $return['hiddenName'] = $return['name'];
         /*unset($return['id']);*/
         $return['xtype'] = 'atmCombo';
         $return['forceSelection'] = true;
         $return['mode'] = 'local';
         $return['valueField'] = 'id';
         $return['displayField'] = 'name';
         $return['triggerAction'] = 'all';
         $return['store'] = array('xtype' => 'arraystore', 'fields' => array('id', 'name'), 'data' => $usersDatas);
         $return['selectOnFocus'] = true;
         $return['editable'] = true;
     }
     return $return;
 }
コード例 #6
0
ファイル: object_text.php プロジェクト: davidmottet/automne
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     $params = $this->getParamsValues();
     if ($params['html']) {
         global $cms_user;
         // Insert prefered text editor for textarea field
         $module = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID());
         $toolbarset = !$params['toolbar'] ? $module : $params['toolbar'];
         //create field value
         $value = $this->_subfieldValues[0]->getValue();
         if (class_exists('CMS_wysiwyg_toolbar')) {
             $toolbar = CMS_wysiwyg_toolbar::getByCode($toolbarset, $cms_user);
             $value = $toolbar->hasModulePlugins() ? CMS_textEditor::parseInnerContent($value, $module) : $value;
         }
         $return['xtype'] = 'ckeditor';
         $return['id'] = 'ckeditor' . md5(mt_rand() . microtime());
         $return['value'] = (string) $value;
         $return['editor'] = array('scayt_sLang' => $language->getCode(), 'language' => $language->getCode(), 'customConfig' => PATH_MAIN_WR . '/ckeditor/config.php', 'atmToolbar' => $toolbarset);
     } else {
         $return['xtype'] = 'textarea';
         $return['value'] = str_replace('<br />', "\n", str_replace(array("\n", "\r"), "", sensitiveIO::decodeEntities($return['value'])));
     }
     if (sensitiveIO::isPositiveInteger($params['toolbarHeight'])) {
         $return['height'] = $params['toolbarHeight'];
     }
     if (sensitiveIO::isPositiveInteger($params['toolbarWidth'])) {
         $return['width'] = $params['toolbarWidth'];
     }
     return $return;
 }
コード例 #7
0
    /**
     * get HTML admin (used to enter object values in admin)
     *
     * @param integer $fieldID, the current field id (only for poly object compatibility)
     * @param CMS_language $language, the current admin language
     * @param string prefixname : the prefix to use for post names
     * @return string : the html admin
     * @access public
     */
    function getHTMLAdmin($fieldID, $language, $prefixName)
    {
        $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
        global $cms_user;
        $params = $this->getParamsValues();
        $prefixName = isset($inputParams['prefix']) ? $inputParams['prefix'] : '';
        $rootCategory = isset($inputParams['root']) && SensitiveIO::isPositiveInteger($inputParams['root']) ? $inputParams['root'] : false;
        //get module codename
        $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID());
        if ($params['multiCategories']) {
            // Get categories
            $a_all_categories = $this->getAllCategoriesAsArray($language, false, $moduleCodename, CLEARANCE_MODULE_EDIT, $rootCategory, true);
            $checkedValues = array();
            if (isset($this->_subfieldValues[0]) && is_object($this->_subfieldValues[0]) && !is_null($this->_subfieldValues[0]->getValue()) && $this->_subfieldValues[0]->getID()) {
                foreach (array_keys($this->_subfieldValues) as $subFieldID) {
                    if (is_object($this->_subfieldValues[$subFieldID])) {
                        $checkedValues[$this->_subfieldValues[$subFieldID]->getValue()] = $this->_subfieldValues[$subFieldID]->getValue();
                    }
                }
            } elseif (sensitiveIO::isPositiveInteger($params['defaultValue'])) {
                $checkedValues[$params['defaultValue']] = $params['defaultValue'];
            }
            $valueString = implode(',', $checkedValues);
            if (is_array($a_all_categories) && $a_all_categories) {
                $fathers = array(0 => false);
                foreach ($a_all_categories as $id => $category) {
                    $level = substr_count($category, '-&nbsp;');
                    $father = false;
                    if ($level && isset($fathers[$level - 1])) {
                        $father = $fathers[$level - 1];
                    }
                    $cat = new stdClass();
                    $cat->id = $id;
                    $cat->checked = isset($checkedValues[$id]);
                    $cat->cls = isset($checkedValues[$id]) ? 'x-tree-checked' : '';
                    $cat->level = $level;
                    $cat->text = str_replace('-&nbsp;', '', $category);
                    if (strtolower(APPLICATION_DEFAULT_ENCODING) != 'utf-8') {
                        $cat->text = io::utf8Encode($cat->text);
                    }
                    $cat->leaf = true;
                    $fathers[$level] = $cat;
                    if ($father) {
                        $father->children[] = $cat;
                        $father->leaf = false;
                        $father->expanded = true;
                    } else {
                        $availableCategories[] = $cat;
                    }
                }
            } else {
                $availableCategories[] = array('id' => '', 'text' => $language->getMessage(self::MESSAGE_EMPTY_OBJECTS_SET), 'leaf' => true);
            }
            $fieldId = md5(mt_rand() . microtime());
            $field = array();
            $field['id'] = 'tree-' . $fieldId;
            $field['xtype'] = 'treepanel';
            $field['height'] = io::isPositiveInteger($params['selectHeight']) ? (int) $params['selectHeight'] : 150;
            $field['width'] = io::isPositiveInteger($params['selectWidth']) ? (int) $params['selectWidth'] : '100%';
            $field['autoScroll'] = true;
            $field['animate'] = true;
            $field['containerScroll'] = true;
            $field['rootVisible'] = false;
            $field['root'] = array('expanded' => true, 'children' => $availableCategories);
            $field['listeners'] = array('checkchange' => array('fn' => sensitiveIO::sanitizeJSString('function(node, checked){
						var tree = Ext.getCmp(\'tree-' . $fieldId . '\');
						var input = Ext.getCmp(\'cat-' . $fieldId . '\');
						if (tree && input) {
							input.setValue(tree.getChecked(\'id\').toString());
						}
						if(checked){
		                    node.getUI().addClass(\'x-tree-checked\');
		                }else{
		                    node.getUI().removeClass(\'x-tree-checked\');
		                }
					}', false, false)));
            $return['xtype'] = 'compositefield';
            $return['labelWidth'] = 120;
            $return['items'] = array($field, array('id' => 'cat-' . $fieldId, 'xtype' => 'hidden', 'name' => 'polymodFieldsValue[list' . $prefixName . $this->_field->getID() . '_0]', 'value' => $valueString));
        } else {
            if (isset($this->_subfieldValues[0]) && is_object($this->_subfieldValues[0]) && !is_null($this->_subfieldValues[0]->getValue()) && $this->_subfieldValues[0]->getID()) {
                $selectedValue = $this->_subfieldValues[0]->getValue() ? $this->_subfieldValues[0]->getValue() : '';
            } elseif (sensitiveIO::isPositiveInteger($params['defaultValue'])) {
                $selectedValue = $params['defaultValue'];
            } else {
                $selectedValue = '';
            }
            $return['xtype'] = 'atmCombo';
            $return['name'] = 'polymodFieldsValue[list' . $prefixName . $this->_field->getID() . '_0]';
            $return['hiddenName'] = $return['name'];
            $return['forceSelection'] = true;
            $return['mode'] = 'remote';
            $return['valueField'] = 'id';
            $return['displayField'] = 'label';
            $return['triggerAction'] = 'all';
            $return['allowBlank'] = true;
            $return['selectOnFocus'] = true;
            $return['editable'] = true;
            $return['typeAhead'] = true;
            $return['value'] = $selectedValue;
            $return['store'] = array('url' => PATH_ADMIN_MODULES_WR . '/' . MOD_POLYMOD_CODENAME . '/list-categories.php', 'baseParams' => array('fieldId' => $this->_field->getID(), 'module' => $moduleCodename, 'query' => ''), 'root' => 'objects', 'fields' => array('id', 'label'));
        }
        return $return;
    }
コード例 #8
0
ファイル: object_image.php プロジェクト: davidmottet/automne
    /**
     * get HTML admin (used to enter object values in admin)
     *
     * @param integer $fieldID, the current field id (only for poly object compatibility)
     * @param CMS_language $language, the current admin language
     * @param string prefixname : the prefix to use for post names
     * @return string : the html admin
     * @access public
     */
    function getHTMLAdmin($fieldID, $language, $prefixName)
    {
        $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
        $params = $this->getParamsValues();
        $maxFileSize = CMS_file::getMaxUploadFileSize('K');
        //get module codename
        $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID());
        //Image datas
        if ($this->_subfieldValues[0]->getValue() && file_exists(PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . RESOURCE_DATA_LOCATION_EDITED . '/' . $this->_subfieldValues[0]->getValue())) {
            $file = new CMS_file(PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . RESOURCE_DATA_LOCATION_EDITED . '/' . $this->_subfieldValues[0]->getValue());
            $imageDatas = array('filename' => $file->getName(false), 'filepath' => $file->getFilePath(CMS_file::WEBROOT), 'filesize' => $file->getFileSize(), 'fileicon' => $file->getFileIcon(CMS_file::WEBROOT), 'extension' => $file->getExtension());
        } else {
            $imageDatas = array('filename' => '', 'filepath' => '', 'filesize' => '', 'fileicon' => '', 'extension' => '');
        }
        //move title from offset 1 to offset 0
        $titleField = $return['items'][1];
        $return['items'][1] = $return['items'][0];
        $return['items'][0] = $titleField;
        //Title
        unset($return['items'][0]['hideLabel']);
        if (isset($params['legendMandatory']) && $params['legendMandatory']) {
            $return['items'][0]['fieldLabel'] = '<span class="atm-red">*</span> ' . $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_LABEL, false, MOD_POLYMOD_CODENAME);
        } else {
            $return['items'][0]['fieldLabel'] = $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_LABEL, false, MOD_POLYMOD_CODENAME);
        }
        $return['items'][0]['allowBlank'] = $this->_field->getValue('required') && isset($params['legendMandatory']) && $params['legendMandatory'] ? false : true;
        //Thumbnail
        unset($return['items'][1]['hideLabel']);
        $return['items'][1]['xtype'] = 'atmImageUploadField';
        $return['items'][1]['emptyText'] = $language->getMessage(self::MESSAGE_SELECT_PICTURE);
        $return['items'][1]['fieldLabel'] = $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_THUMBNAIL, false, MOD_POLYMOD_CODENAME);
        if (!$params['makeZoom']) {
            if ($params['maxWidth']) {
                $return['items'][1]['maxWidth'] = $params['maxWidth'];
            }
            if ($params['maxHeight']) {
                $return['items'][1]['maxHeight'] = $params['maxHeight'];
            }
        }
        $return['items'][1]['uploadCfg'] = array('file_size_limit' => $maxFileSize, 'file_types' => '*.jpg;*.jpeg;*.png;*.gif', 'file_types_description' => $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_THUMBNAIL, false, MOD_POLYMOD_CODENAME) . ' ...');
        $return['items'][1]['fileinfos'] = $imageDatas;
        $return['items'][1]['fileinfos']['module'] = $moduleCodename;
        $return['items'][1]['fileinfos']['visualisation'] = RESOURCE_DATA_LOCATION_EDITED;
        $checkBoxId = 'check' . md5(mt_rand() . microtime());
        //Image datas
        if ($params['useDistinctZoom'] || $params['makeZoom']) {
            $zoomId = 'zoom' . md5(mt_rand() . microtime());
            if ($this->_subfieldValues[2]->getValue() && file_exists(PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . RESOURCE_DATA_LOCATION_EDITED . '/' . $this->_subfieldValues[2]->getValue())) {
                $file = new CMS_file(PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . RESOURCE_DATA_LOCATION_EDITED . '/' . $this->_subfieldValues[2]->getValue());
                $zoomDatas = array('filename' => $file->getName(false), 'filepath' => $file->getFilePath(CMS_file::WEBROOT), 'filesize' => $file->getFileSize(), 'fileicon' => $file->getFileIcon(CMS_file::WEBROOT), 'extension' => $file->getExtension());
            } else {
                $zoomDatas = array('filename' => '', 'filepath' => '', 'filesize' => '', 'fileicon' => '', 'extension' => '');
            }
            unset($return['items'][2]['hideLabel']);
            $return['items'][2]['id'] = $zoomId;
            $return['items'][2]['allowBlank'] = true;
            $return['items'][2]['xtype'] = 'atmImageUploadField';
            $return['items'][2]['emptyText'] = $language->getMessage(self::MESSAGE_SELECT_PICTURE);
            $return['items'][2]['fieldLabel'] = $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_ZOOM, false, MOD_POLYMOD_CODENAME);
            $return['items'][2]['uploadCfg'] = array('file_size_limit' => $maxFileSize, 'file_types' => '*.jpg;*.jpeg;*.png;*.gif', 'file_types_description' => $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_THUMBNAIL, false, MOD_POLYMOD_CODENAME) . ' ...');
            $return['items'][2]['fileinfos'] = $zoomDatas;
            $return['items'][2]['fileinfos']['module'] = $moduleCodename;
            $return['items'][2]['fileinfos']['visualisation'] = RESOURCE_DATA_LOCATION_EDITED;
            if ($params['maxZoomWidth']) {
                $return['items'][2]['maxWidth'] = $params['maxZoomWidth'];
            }
            if ($params['maxZoomHeight']) {
                $return['items'][2]['maxHeight'] = $params['maxZoomHeight'];
            }
            if (!$this->_subfieldValues[2]->getValue() && $params['makeZoom']) {
                $return['items'][2]['listeners'] = array('render' => sensitiveIO::sanitizeJSString('function(el){
					var fieldCt = el.label.parent();
					if (fieldCt) {
						fieldCt.setVisibilityMode(Ext.Element.DISPLAY);
						fieldCt.hide();
					}
				}', false, false));
            }
        } else {
            $return['items'][2]['xtype'] = 'hidden';
        }
        if ($params['makeZoom']) {
            $boxLabel = $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_USE_ORIGINAL_AS_ZOOM, false, MOD_POLYMOD_CODENAME);
            if ($params['maxWidth'] > 0 && !$params['maxHeight']) {
                $boxLabel .= '&nbsp;<small>' . $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_DESC, array($params['maxWidth']), MOD_POLYMOD_CODENAME) . '</small>';
            } elseif ($params['maxHeight'] && !$params['maxWidth']) {
                $boxLabel .= '&nbsp;<small>' . $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_DESC_HEIGHT, array($params['maxHeight']), MOD_POLYMOD_CODENAME) . '</small>';
            } elseif ($params['maxWidth'] && $params['maxHeight']) {
                $boxLabel .= '&nbsp;<small>' . $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_DESC_HEIGHT_AND_WIDTH, array($params['maxWidth'], $params['maxHeight']), MOD_POLYMOD_CODENAME) . '</small>';
            }
            $checkField = array('allowBlank' => true, 'xtype' => 'checkbox', 'id' => $checkBoxId, 'checked' => !$params['useDistinctZoom'] && !$this->_subfieldValues[2]->getValue(), 'inputValue' => 1, 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_makeZoom]', 'boxLabel' => $boxLabel, 'height' => 'auto', 'labelSeparator' => '');
            if (isset($zoomId)) {
                $checkField['listeners'] = array('check' => sensitiveIO::sanitizeJSString('function(el, checked){
					var fieldCt = Ext.getCmp(\'' . $zoomId . '\').label.parent();
					if (fieldCt) {
						fieldCt.setVisibilityMode(Ext.Element.DISPLAY);
						if (checked) {
							fieldCt.hide(true);
						} else {
							fieldCt.show(true);
							Ext.getCmp(\'' . $zoomId . '\').syncSize();
						}
					}
				}', false, false));
            }
            //set checkbox to offset 2
            $return['items'][3] = $return['items'][2];
            $return['items'][2] = $checkField;
        }
        //reset key numbers
        $return['items'] = array_values($return['items']);
        return $return;
    }
コード例 #9
0
    /**
     * get HTML admin (used to enter object values in admin)
     *
     * @param integer $fieldID, the current field id (only for poly object compatibility)
     * @param CMS_language $language, the current admin language
     * @param string prefixname : the prefix to use for post names
     * @return string : the html admin
     * @access public
     */
    function getHTMLAdmin($fieldID, $language, $prefixName)
    {
        $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
        $params = $this->getParamsValues();
        unset($return['items'][0]['hideLabel']);
        unset($return['items'][1]['hideLabel']);
        $return['items'][0]['fieldLabel'] = $language->getMessage(self::MESSAGE_OBJECT_COORDINATES_LONGITUDE_DESCRIPTION, false, $this->_messagesModule);
        $return['items'][1]['fieldLabel'] = $language->getMessage(self::MESSAGE_OBJECT_COORDINATES_LATITUDE_DESCRIPTION, false, $this->_messagesModule);
        $ids = 'coord-' . md5(mt_rand() . microtime());
        $return['items'][0]['id'] = $ids . '-long';
        $return['items'][1]['id'] = $ids . '-lat';
        //Move the first two fields
        $return['items'][2] = $return['items'][1];
        $return['items'][1] = $return['items'][0];
        //Add on change listeners to update image
        $return['items'][1]['listeners'] = $return['items'][2]['listeners'] = array('change' => sensitiveIO::sanitizeJSString('function(el){
			Ext.get(\'' . $ids . '-view\').update(\'<img style="border:1px solid #C0C7CB;" src="http://maps.google.com/maps/api/staticmap?center=\'+Ext.getCmp(\'' . $ids . '-lat\').getValue()+\',\'+Ext.getCmp(\'' . $ids . '-long\').getValue()+\'&zoom=15&size=600x200&markers=\'+Ext.getCmp(\'' . $ids . '-lat\').getValue()+\',\'+Ext.getCmp(\'' . $ids . '-long\').getValue()+\'&sensor=false" />\');
		}', false, false));
        //Create toolbar
        $return['items'][0] = array('xtype' => 'toolbar', 'items' => array());
        if ($params['useFieldsAsAddress']) {
            $return['items'][0]['items'][] = array('xtype' => 'button', 'text' => $language->getMessage(self::MESSAGE_OBJECT_COORDINATES_FIELD_UPDATE_FROM_ADDRESS, false, $this->_messagesModule), 'handler' => sensitiveIO::sanitizeJSString('function(button){
					var addrFields = \'' . $params['fieldsForAddress'] . '\'.split(\';\');
					var form = button.findParentByType(\'atmForm\').form;
					var addr = \'\';
					for(var i = 0; i < addrFields.length; i++) {
						var field = form.findField(\'polymodFieldsValue[\' + addrFields[i] + \'_0]\');
						var listfield = form.findField(\'polymodFieldsValue[list\' + addrFields[i] + \'_0]\');
						if (field) {
							addr += \' \' + Ext.util.Format.stripTags(field.getValue());
						} else if (listfield) {
							addr += \' \' + Ext.util.Format.stripTags(listfield.lastSelectionText);
						}
					}
					addr = Ext.util.Format.stripLines(addr);
					var geocoder = new google.maps.Geocoder();
					geocoder.geocode({address:addr}, function(results, status) {
						if (status == \'OK\') {
							Ext.getCmp(\'' . $ids . '-long\').setValue(results[0].geometry.location.lng());
							Ext.getCmp(\'' . $ids . '-lat\').setValue(results[0].geometry.location.lat());
							Ext.get(\'' . $ids . '-view\').update(\'<img style="border:1px solid #C0C7CB;" src="http://maps.google.com/maps/api/staticmap?center=\'+results[0].geometry.location.lat()+\',\'+results[0].geometry.location.lng()+\'&zoom=15&size=600x200&markers=\'+results[0].geometry.location.lat()+\',\'+results[0].geometry.location.lng()+\'&sensor=false" />\');
						} else {
							Automne.message.popup({
								msg: 				String.format(\'' . $language->getJsMessage(self::MESSAGE_OBJECT_COORDINATES_FIELD_UNKOWN_ADDRESS, false, $this->_messagesModule) . '\', addr),
								buttons: 			Ext.MessageBox.OK,
								closable: 			false,
								icon: 				Ext.MessageBox.ERROR
							});
						}
					});
				}', false, false), 'scope' => 'this');
        }
        $return['items'][0]['items'][] = '->';
        $return['items'][0]['items'][] = array('xtype' => 'button', 'text' => $language->getMessage(self::MESSAGE_OBJECT_COORDINATES_FIELD_PUT_ON_MAP, false, $this->_messagesModule), 'handler' => sensitiveIO::sanitizeJSString('function(button){
				var lat = Ext.getCmp(\'' . $ids . '-lat\').getValue();
				var long = Ext.getCmp(\'' . $ids . '-long\').getValue();
				if (lat && long) {
					var mapwin = new Automne.Window({
		                layout: \'fit\',
		                title: \'' . $language->getJSMessage(self::MESSAGE_OBJECT_COORDINATES_FIELD_MAP_WINDOW, false, $this->_messagesModule) . '\',
		                modal:true,
						width:600,
		                height:600,
		                items: {
		                    xtype: \'gmappanel\',
		                    zoomLevel: 13,
		                    gmapType: \'map\',
		                    id: \'map-' . $ids . '\',
		                    mapConfOpts: [\'enableScrollWheelZoom\',\'enableDoubleClickZoom\',\'enableDragging\'],
		                    mapControls: [\'GSmallMapControl\',\'GMapTypeControl\',\'NonExistantControl\'],
							setCenter: {
		                        lat: lat,
								lng: long,
								marker: {draggable: true}
		                    }
		                },
						listeners:{\'beforeclose\':function(window){
							var map = Ext.getCmp(\'map-' . $ids . '\');
							if (map.gmarks && map.gmarks[0]) {
								Ext.getCmp(\'' . $ids . '-long\').setValue(map.gmarks[0].getPosition().lng());
								Ext.getCmp(\'' . $ids . '-lat\').setValue(map.gmarks[0].getPosition().lat());
								Ext.get(\'' . $ids . '-view\').update(\'<img style="border:1px solid #C0C7CB;" src="http://maps.google.com/maps/api/staticmap?center=\'+map.gmarks[0].getPosition().lat()+\',\'+map.gmarks[0].getPosition().lng()+\'&zoom=15&size=600x200&markers=\'+map.gmarks[0].getPosition().lat()+\',\'+map.gmarks[0].getPosition().lng()+\'&sensor=false" />\');
							}
						}}
		            });
					mapwin.show(button);
				} else {
					var gmapWindow = function(button, value) {
					   	if (button == \'ok\') {
							var mapwin = new Automne.Window({
				                layout: \'fit\',
				                title: \'' . $language->getJSMessage(self::MESSAGE_OBJECT_COORDINATES_FIELD_MAP_WINDOW, false, $this->_messagesModule) . '\',
				                modal:true,
								width:600,
				                height:600,
				                items: {
				                    xtype: \'gmappanel\',
				                    zoomLevel: 13,
				                    gmapType: \'map\',
				                    id: \'map-' . $ids . '\',
				                    mapConfOpts: [\'enableScrollWheelZoom\',\'enableDoubleClickZoom\',\'enableDragging\'],
				                    mapControls: [\'GSmallMapControl\',\'GMapTypeControl\',\'NonExistantControl\'],
									setCenter: {
				                        geoCodeAddr: value,
										marker: {draggable: true}
				                    }
				                },
								listeners:{\'beforeclose\':function(window){
									var map = Ext.getCmp(\'map-' . $ids . '\');
									if (map.gmarks && map.gmarks[0]) {
										Ext.getCmp(\'' . $ids . '-long\').setValue(map.gmarks[0].getPosition().lng());
										Ext.getCmp(\'' . $ids . '-lat\').setValue(map.gmarks[0].getPosition().lat());
										Ext.get(\'' . $ids . '-view\').update(\'<img style="border:1px solid #C0C7CB;" src="http://maps.google.com/maps/api/staticmap?center=\'+map.gmarks[0].getPosition().lat()+\',\'+map.gmarks[0].getPosition().lng()+\'&zoom=15&size=600x200&markers=\'+map.gmarks[0].getPosition().lat()+\',\'+map.gmarks[0].getPosition().lng()+\'&sensor=false" />\');
									}
								}}
				          	});
							mapwin.show();
						}
					};
					Ext.MessageBox.prompt(\'' . $language->getJSMessage(self::MESSAGE_OBJECT_COORDINATES_FIELD_ADDRESS, false, $this->_messagesModule) . '\', \'' . $language->getJSMessage(self::MESSAGE_OBJECT_COORDINATES_FIELD_ENTER_ADDRESS, false, $this->_messagesModule) . '\', gmapWindow);
				}
			}', false, false), 'listeners' => array('render' => sensitiveIO::sanitizeJSString('function(){
				if (typeof google == \'undefined\' || typeof google.maps == \'undefined\' || typeof google.maps.Map == \'undefined\') {
					var script = document.createElement("script");
				    script.type = "text/javascript";
				    script.src = "http://maps.google.com/maps/api/js?sensor=false&callback=isNaN";
				    document.body.appendChild(script);
				}
			}', false, false)), 'scope' => 'this');
        $return['items'][3] = array('xtype' => 'panel', 'border' => false, 'html' => '<div id="' . $ids . '-view" style="overflow:auto;text-align:center;">' . ($this->_subfieldValues[0]->getValue() && $this->_subfieldValues[1]->getValue() ? '<img style="border:1px solid #C0C7CB;" src="http://maps.google.com/maps/api/staticmap?center=' . $this->_subfieldValues[1]->getValue() . ',' . $this->_subfieldValues[0]->getValue() . '&zoom=15&size=600x200&markers=' . $this->_subfieldValues[1]->getValue() . ',' . $this->_subfieldValues[0]->getValue() . '&sensor=false" />' : '') . '</div>');
        return $return;
    }
コード例 #10
0
ファイル: object_string.php プロジェクト: davidmottet/automne
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     $params = $this->getParamsValues();
     if (isset($params['maxLength']) && sensitiveIO::isPositiveInteger($params['maxLength'])) {
         $return['maxLength'] = (int) $params['maxLength'];
         if ($params['maxLength'] < 255) {
             $return['labelSeparator'] = '';
             $return['fieldLabel'] .= ' :<br /><small>' . $language->getMessage(self::MESSAGE_OBJECT_STRING_PARAMETER_MAXLENGHT_DESC, array($params['maxLength']), MOD_POLYMOD_CODENAME) . '</small>';
         }
     }
     return $return;
 }
コード例 #11
0
ファイル: object_file.php プロジェクト: davidmottet/automne
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     $params = $this->getParamsValues();
     $maxFileSize = CMS_file::getMaxUploadFileSize('K');
     //get module codename
     $moduleCodename = CMS_poly_object_catalog::getModuleCodenameForField($this->_field->getID());
     //Title
     unset($return['items'][0]['hideLabel']);
     $return['items'][0]['fieldLabel'] = $language->getMessage(self::MESSAGE_OBJECT_FILE_FIELD_LABEL, false, MOD_POLYMOD_CODENAME);
     $return['items'][0]['allowBlank'] = true;
     //File
     unset($return['items'][4]['hideLabel']);
     $return['items'][4]['fieldLabel'] = $language->getMessage(self::MESSAGE_OBJECT_FILE_FIELD_SOURCEFILE, false, MOD_POLYMOD_CODENAME);
     $return['items'][4]['xtype'] = 'atmFileUploadField';
     $return['items'][4]['emptyText'] = $language->getMessage(self::MESSAGE_SELECT_FILE);
     $return['items'][4]['uploadCfg'] = array('file_size_limit' => $maxFileSize, 'file_types_description' => $language->getMessage(self::MESSAGE_ALL_FILE) . ' ...');
     $return['items'][4]['uploadCfg']['file_types'] = $params['allowedType'] ? '*.' . str_replace(',', ';*.', $params['allowedType']) : '*.*';
     if ($params['disallowedType']) {
         $return['items'][4]['uploadCfg']['disallowed_file_types'] = '*.' . str_replace(',', ';*.', $params['disallowedType']);
     }
     //File datas
     if ($this->_subfieldValues[4]->getValue() && file_exists(PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . RESOURCE_DATA_LOCATION_EDITED . '/' . $this->_subfieldValues[4]->getValue())) {
         $file = new CMS_file(PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . RESOURCE_DATA_LOCATION_EDITED . '/' . $this->_subfieldValues[4]->getValue());
         $fileDatas = array('filename' => $file->getName(false), 'filepath' => $file->getFilePath(CMS_file::WEBROOT), 'filesize' => $file->getFileSize(), 'fileicon' => $file->getFileIcon(CMS_file::WEBROOT), 'extension' => $file->getExtension());
     } else {
         $fileDatas = array('filename' => '', 'filepath' => '', 'filesize' => '', 'fileicon' => '', 'extension' => '');
     }
     $return['items'][4]['fileinfos'] = $fileDatas;
     $return['items'][4]['fileinfos']['module'] = $moduleCodename;
     $return['items'][4]['fileinfos']['visualisation'] = RESOURCE_DATA_LOCATION_EDITED;
     if ($params['useThumbnail']) {
         //Thumbnail
         unset($return['items'][1]['hideLabel']);
         $return['items'][1]['xtype'] = 'atmImageUploadField';
         $return['items'][1]['emptyText'] = $language->getMessage(self::MESSAGE_SELECT_PICTURE);
         $return['items'][1]['fieldLabel'] = $language->getMessage(self::MESSAGE_OBJECT_FILE_FIELD_THUMBNAIL, false, MOD_POLYMOD_CODENAME);
         $return['items'][1]['allowBlank'] = true;
         if ($params['thumbMaxWidth']) {
             $return['items'][1]['maxWidth'] = $params['thumbMaxWidth'];
         }
         if ($params['thumbMaxHeight']) {
             $return['items'][1]['maxHeight'] = $params['thumbMaxHeight'];
         }
         $return['items'][1]['uploadCfg'] = array('file_size_limit' => $maxFileSize, 'file_types' => '*.jpg;*.png;*.gif', 'file_types_description' => $language->getMessage(self::MESSAGE_OBJECT_FILE_FIELD_THUMBNAIL, false, MOD_POLYMOD_CODENAME) . ' ...');
         if ($params['disallowedType']) {
             $return['items'][1]['uploadCfg']['disallowed_file_types'] = '*.' . str_replace(',', ';*.', $params['disallowedType']);
         }
         if ($this->_subfieldValues[1]->getValue() && file_exists(PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . RESOURCE_DATA_LOCATION_EDITED . '/' . $this->_subfieldValues[1]->getValue())) {
             $file = new CMS_file(PATH_MODULES_FILES_FS . '/' . $moduleCodename . '/' . RESOURCE_DATA_LOCATION_EDITED . '/' . $this->_subfieldValues[1]->getValue());
             $imageDatas = array('filename' => $file->getName(false), 'filepath' => $file->getFilePath(CMS_file::WEBROOT), 'filesize' => $file->getFileSize(), 'fileicon' => $file->getFileIcon(CMS_file::WEBROOT), 'extension' => $file->getExtension());
         } else {
             $imageDatas = array('filename' => '', 'filepath' => '', 'filesize' => '', 'fileicon' => '', 'extension' => '');
         }
         $return['items'][1]['fileinfos'] = $imageDatas;
         $return['items'][1]['fileinfos']['module'] = $moduleCodename;
         $return['items'][1]['fileinfos']['visualisation'] = RESOURCE_DATA_LOCATION_EDITED;
     } else {
         unset($return['items'][1]);
     }
     $return['items'][2]['xtype'] = 'hidden';
     $return['items'][3]['xtype'] = 'hidden';
     if ($params['allowFtp'] && is_dir(PATH_REALROOT_FS . $params['ftpDir'])) {
         $return['items'][] = array('xtype' => 'textfield', 'allowBlank' => true, 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_externalfile]', 'fieldLabel' => '<span ext:qtip="' . $language->getMessage(self::MESSAGE_OBJECT_FILE_FIELD_EXTERNALSOURCEFILE_FTP, array($params['ftpDir']), MOD_POLYMOD_CODENAME) . '" class="atm-help">' . $language->getMessage(self::MESSAGE_OBJECT_FILE_FIELD_EXTERNALSOURCEFILE, false, MOD_POLYMOD_CODENAME) . '</span>');
         $return['items'][4]['allowBlank'] = true;
     }
     //reset key numbers
     $return['items'] = array_values($return['items']);
     return $return;
 }
コード例 #12
0
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     $params = $this->getParamsValues();
     $return['xtype'] = 'numberfield';
     $return['allowDecimals'] = false;
     if (isset($params['canBeNegative'])) {
         $return['allowNegative'] = $params['canBeNegative'];
     }
     if (isset($params['canBeNull'])) {
         $return['minValue'] = $params['canBeNull'] ? 0 : 1;
         $return['value'] = !$params['canBeNull'] && !$return['value'] ? false : $return['value'];
         $return['value'] = $params['canBeNull'] && !$return['value'] ? '0' : $return['value'];
     }
     $return['anchor'] = false;
     $return['width'] = 200;
     if (isset($params['unit']) && $params['unit']) {
         $return['labelSeparator'] = '';
         $return['fieldLabel'] .= ' :<br /><small>' . $language->getMessage(self::MESSAGE_OBJECT_INTEGER_PARAMETER_UNIT, false, MOD_POLYMOD_CODENAME) . ' : ' . $params['unit'] . '</small>';
     }
     return $return;
 }
コード例 #13
0
ファイル: object_date.php プロジェクト: davidmottet/automne
 /**
  * get HTML admin (used to enter object values in admin)
  *
  * @param integer $fieldID, the current field id (only for poly object compatibility)
  * @param CMS_language $language, the current admin language
  * @param string prefixname : the prefix to use for post names
  * @return string : the html admin
  * @access public
  */
 function getHTMLAdmin($fieldID, $language, $prefixName)
 {
     $return = parent::getHTMLAdmin($fieldID, $language, $prefixName);
     $params = $this->getParamsValues();
     //is this field mandatory ?
     $mandatory = $this->_field->getValue('required') ? '<span class="atm-red">*</span> ' : '';
     $desc = $this->getFieldDescription($language);
     //create object CMS_date
     $date = new CMS_date();
     $date->setFromDBValue($this->_subfieldValues[0]->getValue());
     $dateFormat = $language->getDateFormat();
     $dateMask = $language->getDateFormatMask();
     $wasNull = $date->isNull() ? true : false;
     if ($date->isNull() && ($params['setNow'] || $params['creationDate'])) {
         $date->setNow();
     }
     if ($params['updateDate']) {
         $date->setNow();
     }
     if ($params['moveDate'] && ($params['setNow'] && $wasNull || $params['creationDate'] && $wasNull || $params['updateDate'])) {
         $date->moveDate($params['moveDate']);
     }
     if (!$params['creationDate'] && !$params['updateDate']) {
         $desc .= ($desc ? ' - ' : '') . $language->getMessage(self::MESSAGE_OBJECT_DATE_DATE_COMMENT, array($dateMask));
     }
     if (POLYMOD_DEBUG) {
         $values = array();
         foreach (array_keys($this->_subfieldValues) as $subFieldID) {
             if (is_object($this->_subfieldValues[$subFieldID])) {
                 $values[$subFieldID] = sensitiveIO::ellipsis(strip_tags($this->_subfieldValues[$subFieldID]->getValue()), 50);
             }
         }
         $desc .= $desc ? '<br />' : '';
         $desc .= '<span class="atm-red">Field : ' . $fieldID . ' - Value(s) : <ul>';
         foreach ($values as $subFieldID => $value) {
             $desc .= '<li>' . $subFieldID . '&nbsp;:&nbsp;' . $value . '</li>';
         }
         $desc .= '</ul></span>';
     }
     $label = $desc ? '<span class="atm-help" ext:qtip="' . io::htmlspecialchars($desc) . '">' . $mandatory . $this->getFieldLabel($language) . '</span>' : $mandatory . $this->getFieldLabel($language);
     if ($params['withHMS']) {
         $hms = !$date->isNull() ? $date->getHour() . ':' . $date->getMinute() . ':' . $date->getSecond() : '';
         $return = array('layout' => 'column', 'xtype' => 'panel', 'border' => false, 'items' => array(array('width' => 230, 'layout' => 'form', 'border' => false, 'items' => array(array('allowBlank' => !$this->_field->getValue('required'), 'name' => $return['name'], 'xtype' => 'datefield', 'fieldLabel' => $label, 'value' => !$date->isNull() ? $date->getLocalizedDate($dateFormat) : '', 'format' => $dateFormat, 'disabled' => $params['creationDate'] || $params['updateDate']))), array('columnWidth' => 1, 'layout' => 'form', 'border' => false, 'labelWidth' => 55, 'items' => array(array('xtype' => 'textfield', 'fieldLabel' => '<span class="atm-help" ext:qtip="' . io::htmlspecialchars($language->getMessage(self::MESSAGE_OBJECT_DATE_DATE_COMMENT, array($language->getMessage(self::MESSAGE_OBJECT_DATE_HMS_FORMAT, false, MOD_POLYMOD_CODENAME)))) . '">' . $language->getMessage(self::MESSAGE_OBJECT_DATE_HOURS, false, MOD_POLYMOD_CODENAME) . '</span>', 'value' => $hms, 'name' => 'polymodFieldsValue[' . $prefixName . $this->_field->getID() . '_1]', 'disabled' => $params['creationDate'] || $params['updateDate'])))));
     } else {
         $return['fieldLabel'] = $label;
         $return['xtype'] = 'datefield';
         $return['value'] = !$date->isNull() ? $date->getLocalizedDate($dateFormat) : '';
         $return['format'] = $dateFormat;
         $return['width'] = 100;
         $return['anchor'] = false;
         $return['disabled'] = $params['creationDate'] || $params['updateDate'];
     }
     return $return;
 }