/** * 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; }
/** * 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; }
/** * 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; }
/** * 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' => ' ', 'labelSeparator' => '', 'inputValue' => 1, 'anchor' => false, 'checked' => $params['defaultValue'] ? 1 : !!$this->_subfieldValues[0]->getValue(), 'boxLabel' => $label . ' <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; }
/** * 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; }
/** * 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; }
/** * 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, '- '); $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('- ', '', $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; }
/** * 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 .= ' <small>' . $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_DESC, array($params['maxWidth']), MOD_POLYMOD_CODENAME) . '</small>'; } elseif ($params['maxHeight'] && !$params['maxWidth']) { $boxLabel .= ' <small>' . $language->getMessage(self::MESSAGE_OBJECT_IMAGE_FIELD_DESC_HEIGHT, array($params['maxHeight']), MOD_POLYMOD_CODENAME) . '</small>'; } elseif ($params['maxWidth'] && $params['maxHeight']) { $boxLabel .= ' <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; }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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 . ' : ' . $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; }