/** * get HTML admin subfields parameters (used to enter object parameters values in admin) * * @return string : the html admin * @access public */ function getHTMLSubFieldsParameters($language, $prefixName) { if (!is_a($language, 'CMS_language')) { $this->raiseError("Language must be a CMS_language object : " . print_r($language, true)); return false; } $values = $this->_parameterValues; $html = ''; $parameters = $this->getSubFieldParameters(); foreach ($parameters as $parameterID => $parameter) { $paramValue = $values[$parameterID]; switch ($parameter['type']) { case 'boolean': $yes = $paramValue ? ' selected="selected"' : ''; $input = '<select name="' . $prefixName . $parameter['internalName'] . '" class="admin_input_text"> <option value="0">' . $language->getMessage(self::MESSAGE_FIELD_NO) . '</option> <option value="1"' . $yes . '>' . $language->getMessage(self::MESSAGE_FIELD_YES) . '</option> </select>'; break; case 'integer': case 'date': case 'string': $input = '<input type="text" size="30" name="' . $prefixName . $parameter['internalName'] . '" class="admin_input_text" value="' . io::htmlspecialchars($paramValue) . '" />'; break; case 'text': $input = '<textarea cols="70" rows="4" name="' . $prefixName . $parameter['internalName'] . '" class="admin_input_text">' . io::htmlspecialchars($paramValue) . '</textarea>'; break; case 'fields': //get all fields for current object $fields = CMS_poly_object_catalog::getFieldsDefinition($this->_field->getValue('objectID')); $selectValues = array(); foreach ($fields as $field) { $label = new CMS_object_i18nm($field->getValue("labelID")); $selectValues[$field->getID()] = $label->getValue($language->getCode()); } $selectedValues = explode(';', $paramValue); $listboxesParameters = array('field_name' => $prefixName . $parameter['internalName'], 'items_possible' => $selectValues, 'items_selected' => $selectedValues, 'select_width' => '300px', 'select_height' => '200px', 'form_name' => 'frm'); $input = CMS_dialog_listboxes::getListBoxes($listboxesParameters); break; default: if ($parameter['type'] && method_exists($this, "getHTMLSubFieldsParameters" . $parameter['type'])) { $method = "getHTMLSubFieldsParameters" . $parameter['type']; $input = $this->{$method}($language, $prefixName, $parameter); } else { $this->raiseError("Can't get parameter HTML for type : " . $parameter['type']); return false; } break; } if ($input) { $paramLabel = sensitiveIO::isPositiveInteger($parameter['externalName']) ? $language->getMessage($parameter['externalName'], false, $this->_messagesModule) : 'Undefined'; $paramDescription = isset($parameter['description']) && sensitiveIO::isPositiveInteger($parameter['description']) ? '<br /><small>' . $language->getMessage($parameter['description'], false, $this->_messagesModule) . '</small>' : ''; $required = $parameter['required'] ? '<span class="admin_text_alert">*</span>' : ''; $html .= ' <tr> <td class="admin" align="right" valign="top">' . $required . $paramLabel . '</td> <td class="admin" valign="top">' . $input . $paramDescription . '</td> </tr>'; } } $html = $html ? '<table border="0" cellpadding="3" cellspacing="0" style="border-left:1px solid #4d4d4d;">' . $html . '</table>' : ''; return $html; }
/** * Return the needed form field tag for current object field * * @param array $values : parameters values array(parameterName => parameterValue) in : * id : the form field id to set * @param multidimentionnal array $tags : xml2Array content of atm-function tag * @return string : the form field HTML tag * @access public */ function getInput($fieldID, $language, $inputParams) { $params = $this->getParamsValues(); if (isset($inputParams['prefix'])) { $prefixName = $inputParams['prefix']; } else { $prefixName = ''; } $html = ''; //get searched objects conditions $searchedObjects = is_array($params['searchedObjects']) ? $params['searchedObjects'] : array(); $objectsNames = CMS_poly_object_catalog::getListOfNamesForObject($this->_objectID, false, $searchedObjects); $searchedObjectsIDs = array_keys($objectsNames); if (is_array($objectsNames) && $objectsNames) { $associated_items = array(); foreach (array_keys($this->_subfieldValues) as $subFieldID) { //if object is not in the objectsNames array then it is certainly deleted or excluded so remove it from list if (is_object($this->_subfieldValues[$subFieldID]) && in_array($this->_subfieldValues[$subFieldID]->getValue(), $searchedObjectsIDs)) { $associated_items[] = $this->_subfieldValues[$subFieldID]->getValue(); } } //set some default parameters if (!isset($inputParams['no_admin'])) { $inputParams['no_admin'] = true; } if (!isset($inputParams['position'])) { $inputParams['position'] = 'horizontal'; } if (isset($inputParams['width']) && !isset($inputParams['select_width'])) { $inputParams['select_width'] = $inputParams['width']; } if (isset($inputParams['height']) && !isset($inputParams['select_height'])) { $inputParams['select_height'] = $inputParams['height']; } $listboxesParameters = array('field_name' => 'list' . $prefixName . $this->_field->getID() . '_0', 'items_possible' => $objectsNames, 'items_selected' => $associated_items, 'select_width' => '300px', 'select_height' => '100px', 'form_name' => $inputParams['form']); //append optional attributes foreach ($inputParams as $k => $v) { if (in_array($k, array('select_width', 'select_height', 'no_admin', 'leftTitle', 'rightTitle', 'position', 'description', 'selectIDFrom', 'selectIDTo', 'disableIDs', 'items_possible', 'items_selected', 'keepOrder'))) { $listboxesParameters[$k] = $v; } } $html = CMS_dialog_listboxes::getListBoxes($listboxesParameters); if (POLYMOD_DEBUG) { $html .= '<span class="admin_text_alert"> (Field : ' . $fieldID . ' - Multi of : ' . $this->_objectID . ' - Values : ' . implode(';', $associated_items) . ')</span>'; } } else { $html .= $language->getMessage(self::MESSAGE_EMPTY_OBJECTS_SET); } //append html hidden field which store field name if ($html) { $html .= '<input type="hidden" name="polymodFields[' . $this->_field->getID() . ']" value="' . $this->_field->getID() . '" />'; } return $html; }
/** * get HTML admin subfields parameters (used to enter object categories parameters values in admin) * * @return string : the html admin * @access public */ function getHTMLSubFieldsParametersDisableGroups($language, $prefixName) { $params = $this->getParamsValues(); $values = $this->_parameterValues; $input = ''; $parameters = $this->getSubFieldParameters(); foreach ($parameters as $parameterID => $parameter) { $paramValue = $values[$parameterID]; if ($parameter["type"] == "disableGroups") { $userGroupSorted = CMS_profile_usersGroupsCatalog::getGroupsLabels(); //sort objects by name case insensitive natcasesort($userGroupSorted); $allIDs = $userGroupSorted; // Search all selected users/groups $associated_items = array(); if ($params[$parameter["internalName"]]) { $associated_items = explode(";", $params[$parameter["internalName"]]); } // Create usersListboxes $s_items_listboxes = CMS_dialog_listboxes::getListBoxes(array('field_name' => $prefixName . $parameter['internalName'], 'items_possible' => $allIDs, 'items_selected' => $associated_items, 'select_width' => '250px', 'select_height' => '200px', 'form_name' => 'frm', 'leftTitle' => $language->getMessage(self::MESSAGE_OBJECT_EMAIL_PARAMETER_GROUPS_LEFT_TITLE, false, MOD_POLYMOD_CODENAME), 'rightTitle' => $language->getMessage(self::MESSAGE_OBJECT_EMAIL_PARAMETER_GROUPS_RIGHT_TITLE, false, MOD_POLYMOD_CODENAME))); $input .= $s_items_listboxes; } } return $input; }
/** * Return the needed form field tag for current object field * * @param array $values : parameters values array(parameterName => parameterValue) in : * id : the form field id to set * @param multidimentionnal array $tags : xml2Array content of atm-function tag * @return string : the form field HTML tag * @access public */ function getInput($fieldID, $language, $inputParams) { 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); $associated_items = array(); if (is_array($a_all_categories) && $a_all_categories) { foreach (array_keys($this->_subfieldValues) as $subFieldID) { if (is_object($this->_subfieldValues[$subFieldID])) { $associated_items[] = $this->_subfieldValues[$subFieldID]->getValue(); } } if (isset($inputParams['hidden']) && ($inputParams['hidden'] == 'true' || $inputParams['hidden'] == 1)) { $value = isset($inputParams['value']) ? $inputParams['value'] : implode(',', $associated_items); $html = '<input type="hidden"' . $htmlParameters . ' name="list' . $prefixName . $this->_field->getID() . '_0" value="' . $value . '" />' . "\n"; } else { //set some default parameters if (!isset($inputParams['no_admin'])) { $inputParams['no_admin'] = true; } if (!isset($inputParams['position'])) { $inputParams['position'] = 'horizontal'; } if (isset($inputParams['width']) && !isset($inputParams['select_width'])) { $inputParams['select_width'] = $inputParams['width']; } if (isset($inputParams['height']) && !isset($inputParams['select_height'])) { $inputParams['select_height'] = $inputParams['height']; } $params['selectWidth'] = SensitiveIO::isPositiveInteger($params['selectWidth']) ? $params['selectWidth'] : '300'; $params['selectHeight'] = SensitiveIO::isPositiveInteger($params['selectHeight']) ? $params['selectHeight'] : '200'; $listboxesParameters = array('field_name' => 'list' . $prefixName . $this->_field->getID() . '_0', 'items_possible' => $a_all_categories, 'items_selected' => $associated_items, 'select_width' => $params['selectWidth'] . 'px', 'select_height' => $params['selectHeight'] . 'px', 'form_name' => $inputParams['form']); //append optional attributes foreach ($inputParams as $k => $v) { if (in_array($k, array('select_width', 'select_height', 'no_admin', 'leftTitle', 'rightTitle', 'position', 'description', 'selectIDFrom', 'selectIDTo'))) { $listboxesParameters[$k] = $v; } } $html = CMS_dialog_listboxes::getListBoxes($listboxesParameters); } } else { $html = $language->getMessage(self::MESSAGE_EMPTY_OBJECTS_SET); } if (POLYMOD_DEBUG) { $html .= '<span class="admin_text_alert"> (Field : ' . $fieldID . ' - Values : ' . implode(';', $associated_items) . ')</span>'; } } else { //serialize all htmlparameters $htmlParameters = $this->serializeHTMLParameters($inputParams); if (isset($inputParams['hidden']) && ($inputParams['hidden'] == 'true' || $inputParams['hidden'] == 1)) { if (isset($inputParams['value'])) { $value = $inputParams['value']; } elseif (isset($this->_subfieldValues[0]) && is_object($this->_subfieldValues[0]) && !is_null($this->_subfieldValues[0]->getValue())) { $value = $this->_subfieldValues[0]->getValue(); } else { $value = ''; } $html = '<input type="hidden"' . $htmlParameters . ' name="list' . $prefixName . $this->_field->getID() . '_0" value="' . $value . '" />' . "\n"; } else { // Get categories $a_all_categories = $this->getAllCategoriesAsArray($language, false, $moduleCodename, CLEARANCE_MODULE_EDIT, $rootCategory, true); if (is_array($a_all_categories) && $a_all_categories) { $html = ' <select name="list' . $prefixName . $this->_field->getID() . '_0"' . $htmlParameters . '>'; //selected value if (!sensitiveIO::isPositiveInteger($params['defaultValue'])) { $html .= '<option value="0">' . $language->getMessage(self::MESSAGE_CHOOSE_OBJECT) . '</option>'; } if (isset($inputParams['value'])) { $selectedValue = $inputParams['value']; } elseif (isset($this->_subfieldValues[0]) && is_object($this->_subfieldValues[0]) && !is_null($this->_subfieldValues[0]->getValue())) { $selectedValue = $this->_subfieldValues[0]->getValue(); } elseif (sensitiveIO::isPositiveInteger($params['defaultValue'])) { $selectedValue = $params['defaultValue']; } else { $selectedValue = ''; } //natsort objects by name case insensitive if (isset($inputParams['sort']) && (io::strtolower($inputParams['sort']) == 'asc' || io::strtolower($inputParams['sort']) == 'desc')) { uasort($a_all_categories, array('CMS_object_categories', '_natecasecomp')); if (io::strtolower($inputParams['sort']) == 'desc') { $a_all_categories = array_reverse($a_all_categories, true); } } foreach ($a_all_categories as $catID => $aCategory) { $selected = $selectedValue == $catID ? ' selected="selected"' : ''; $html .= '<option value="' . $catID . '"' . $selected . '>' . $aCategory . '</option>'; } $html .= '</select>'; } else { $html = $language->getMessage(self::MESSAGE_EMPTY_OBJECTS_SET); } } if (POLYMOD_DEBUG) { $html .= '<span class="admin_text_alert"> (Field : ' . $fieldID . ' - Value : ' . (isset($this->_subfieldValues[0]) && is_object($this->_subfieldValues[0]) ? $this->_subfieldValues[0]->getValue() : '') . ')</span>'; } } //append html hidden field which store field name if ($html) { $html .= '<input type="hidden" name="polymodFields[' . $this->_field->getID() . ']" value="' . $this->_field->getID() . '" />'; } return $html; }
/** * Create 2 listboxes XHTML exchanging their values through javascript * View CMS_dialog_listboxes::getListBoxes for detail * @param mixed array() $args, This array contains all parameters. * @return string, XHTML formated */ static function getListBoxes($args) { return CMS_dialog_listboxes::getListBoxes($args); }
<input id="toolbarAction" type="hidden" name="cms_action" value="validate" /> <input type="hidden" name="toolbar" value="' . $toolbar->getID() . '" /> <table border="0" cellpadding="2" cellspacing="2"> <tr> <td class="admin" align="right"><span class="admin_text_alert">*</span> ' . $cms_language->getMessage(MESSAGE_PAGE_FIELD_LABEL) . '</td> <td class="admin"><input type="text" class="admin_input_text" name="label" value="' . $toolbar->getLabel() . '" /></td> </tr> <tr> <td class="admin" align="right"><span class="admin_text_alert">*</span> ' . $cms_language->getMessage(MESSAGE_PAGE_FIELD_CODENAME) . '</td> <td class="admin">'; $content .= sensitiveIO::isPositiveInteger($toolbar->getID()) ? $toolbar->getCode() : '<input type="text" class="admin_input_text" name="code" value="' . $toolbar->getCode() . '" /> <small>(' . $cms_language->getMessage(MESSAGE_PAGE_FIELD_CODENAME_ALPHANUM) . ')</small>'; $content .= ' </td> </tr> <tr> <td class="admin" align="right" valign="top"><span class="admin_text_alert">*</span> ' . $cms_language->getMessage(MESSAGE_PAGE_FIELD_ELEMENTS) . '</td> <td class="admin"> '; $allElements = CMS_wysiwyg_toolbar::getAllElements($cms_user); //pr($toolbar->getElements()); //pr($allElements); $args = array('field_name' => 'elements', 'items_possible' => $allElements, 'items_selected' => $toolbar->getElements(), 'select_width' => '300px', 'select_height' => '200px', 'form_name' => 'frmitem'); $content .= CMS_dialog_listboxes::getListBoxes($args) . ' </td> </tr> </table> <input type="submit" class="admin_input_submit" value="' . $cms_language->getMessage(MESSAGE_BUTTON_VALIDATE) . '" /> </form>'; } $dialog->setContent($content); $dialog->show();