/**
  * 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 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;
    }
Exemple #3
0
 /**
  * get HTML admin subfields parameters
  *
  * @return string : the html admin
  * @access public
  */
 function getHTMLSubFieldsParametersUsersGroupsField($language, $prefixName)
 {
     $params = $this->getParamsValues();
     $values = $this->_parameterValues;
     $input = '';
     $parameters = $this->getSubFieldParameters();
     foreach ($parameters as $parameterID => $parameter) {
         $paramValue = $values[$parameterID];
         if ($parameter["type"] == "usersGroupsField") {
             //get usersGroups fields for current object
             $fields = CMS_poly_object_catalog::getFieldsDefinition($this->_field->getValue('objectID'));
             $usersGroupsfields = array();
             foreach ($fields as $field) {
                 if ($field->getValue('type') == 'CMS_object_usergroup') {
                     //get label of current field
                     $label = new CMS_object_i18nm($field->getValue('labelID'));
                     if (is_a($language, "CMS_language")) {
                         $label = $label->getValue($language->getCode());
                     } else {
                         $label = $label->getValue($language);
                     }
                     $usersGroupsfields[$field->getID()] = $label;
                 }
             }
             $s_items_listbox = CMS_dialog_listboxes::getListBox(array('field_name' => $prefixName . $parameter['internalName'], 'items_possible' => $usersGroupsfields, 'default_value' => $params[$parameter["internalName"]], 'attributes' => 'class="admin_input_text" style="width:250px;"'));
             $input .= $s_items_listbox;
         }
     }
     return $input;
 }
 /**
  * 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") {
             // Search all users/groups
             $usersGroups = CMS_profile_usersGroupsCatalog::getGroupsLabels();
             //sort and index table
             $userGroupSorted = array();
             foreach ($usersGroups as $groupId => $aGroupLabel) {
                 $userGroupSorted[$groupId] = $aGroupLabel;
             }
             //sort objects by name case insensitive
             natcasesort($userGroupSorted);
             // Search all selected users/groups
             $associated_items = array();
             if ($params[$parameter["internalName"]]) {
                 $associated_items = explode(";", $params[$parameter["internalName"]]);
             }
             //remove deleted groups from selected list
             foreach ($associated_items as $key => $groupId) {
                 if (!isset($userGroupSorted[$groupId])) {
                     unset($associated_items[$key]);
                 }
             }
             // Create usersListboxes
             $s_items_listboxes = CMS_dialog_listboxes::getListBoxes(array('field_name' => $prefixName . $parameter['internalName'], 'items_possible' => $userGroupSorted, 'items_selected' => $associated_items, 'select_width' => '250px', 'select_height' => '200px', 'form_name' => 'frm', 'leftTitle' => $language->getMessage(self::MESSAGE_OBJECT_USERGROUP_PARAMETER_GROUPS_LEFT_TITLE, false, MOD_POLYMOD_CODENAME), 'rightTitle' => $language->getMessage(self::MESSAGE_OBJECT_USERGROUP_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);
 }
Exemple #7
0
	<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();