function getHTMLSubFieldsParametersEmailBody($language, $prefixName) { global $cms_language, $moduleCodename, $object; $module = CMS_modulesCatalog::getByCodename($moduleCodename); $params = $this->getParamsValues(); $values = $this->_parameterValues; $parameters = $this->getSubFieldParameters(); $htmlSelected = !isset($params['emailBody']['type']) || $params['emailBody']['type'] == 1 ? ' checked="checked"' : ''; $input = ' <fieldset> <legend><label for="' . $prefixName . 'message_body_html"><input' . $htmlSelected . ' id="' . $prefixName . 'message_body_html" type="radio" name="' . $prefixName . 'emailBody" value="1" />' . $cms_language->getMessage(self::MESSAGE_OBJECT_EMAIL_PARAMETER_BODY_HTML, false, MOD_POLYMOD_CODENAME) . '</label></legend>'; foreach ($parameters as $parameterID => $parameter) { $paramValue = $values[$parameterID]; if ($parameter["type"] == "emailbody") { $html = isset($params['emailBody']['html']) ? $params['emailBody']['html'] : ''; $input .= '<textarea class="admin_textarea" cols="100" rows="15" name="' . $prefixName . 'emailBody_html">' . $module->convertDefinitionString($html, true) . '</textarea>'; } } $pageSelected = isset($params['emailBody']['type']) && $params['emailBody']['type'] == 2 ? ' checked="checked"' : ''; $pageID = isset($params['emailBody']['pageID']) ? $params['emailBody']['pageID'] : ''; $pageURL = isset($params['emailBody']['pageURL']) ? $params['emailBody']['pageURL'] : ''; $input .= ' </fieldset> <fieldset> <legend><label for="' . $prefixName . 'message_body_page"><input' . $pageSelected . ' id="' . $prefixName . 'message_body_page" type="radio" name="' . $prefixName . 'emailBody" value="2" />' . $cms_language->getMessage(self::MESSAGE_OBJECT_EMAIL_PARAMETER_BODY_PAGE, false, MOD_POLYMOD_CODENAME) . '</label></legend> <input type="text" class="admin_input_text" id="' . $prefixName . 'emailBody_pageID" name="' . $prefixName . 'emailBody_pageID" value="' . io::htmlspecialchars($pageID) . '" size="6" />'; //build tree link $grand_root = CMS_tree::getRoot(); $href = PATH_ADMIN_SPECIAL_TREE_WR; $href .= '?root=' . $grand_root->getID(); $href .= '&heading=' . $cms_language->getMessage(MESSAGE_PAGE_TREEH1); $href .= '&encodedOnClick=' . base64_encode("window.opener.document.getElementById('" . $prefixName . "emailBody_pageID').value = '%s';self.close();"); $href .= '&encodedPageLink=' . base64_encode('false'); $input .= ' <a href="' . $href . '" class="admin" target="_blank"><img src="' . PATH_ADMIN_IMAGES_WR . '/picto-arbo.gif" border="0" align="absmiddle" /></a> ?<input type="text" size="80" name="' . $prefixName . 'emailBody_pageURL" value="' . io::htmlspecialchars($module->convertDefinitionString($pageURL, true)) . '" class="admin_input_text" /> </fieldset>'; //object Explanation $input .= ' <fieldset> <legend>' . $cms_language->getMessage(self::MESSAGE_OBJECT_EMAIL_PARAMETER_EXPLANATION, false, MOD_POLYMOD_CODENAME) . '</legend> <br />'; if (!isset($_POST['objectexplanation'])) { $_POST['objectexplanation'] = ''; } //selected value $selected['working'] = $_POST['objectexplanation'] == 'working' ? ' selected="selected"' : ''; $selected['working-polymod'] = $_POST['objectexplanation'] == 'working-polymod' ? ' selected="selected"' : ''; $selected['vars'] = $_POST['objectexplanation'] == 'vars' ? ' selected="selected"' : ''; $selected['search'] = $_POST['objectexplanation'] == 'search' ? ' selected="selected"' : ''; $input .= ' <select name="objectexplanation" class="admin_input_text" onchange="document.getElementById(\'cms_action\').value=\'switchexplanation\';document.frm.submit();"> <option value="">' . $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_CHOOSE) . '</option> <optgroup label="' . $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_ROW_TAGS_EXPLANATION, false, MOD_POLYMOD_CODENAME) . '"> <option value="search"' . $selected['search'] . '>' . $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_SEARCH_TAGS, false, MOD_POLYMOD_CODENAME) . '</option> <option value="working"' . $selected['working'] . '>' . $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_WORKING_TAGS) . '</option> <option value="working-polymod"' . $selected['working-polymod'] . '>' . $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_WORKING_POLYMOD_TAGS, false, MOD_POLYMOD_CODENAME) . '</option> <option value="vars"' . $selected['vars'] . '>' . $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_BLOCK_GENERAL_VARS) . '</option> </optgroup> <optgroup label="' . $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_ROW_OBJECTS_VARS_EXPLANATION, false, MOD_POLYMOD_CODENAME) . '">'; $input .= CMS_poly_module_structure::viewObjectInfosList($moduleCodename, $cms_language, $_POST['objectexplanation'], $object->getID()); $input .= ' </optgroup>'; $input .= ' </select><br /><br />'; //then display chosen object infos if ($_POST['objectexplanation']) { switch ($_POST['objectexplanation']) { case 'search': $input .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_SEARCH_TAGS_EXPLANATION, false, MOD_POLYMOD_CODENAME); break; case 'working': $content .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_WORKING_TAGS_EXPLANATION); break; case 'working-polymod': $content .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_WORKING_POLYMOD_TAGS_EXPLANATION, false, MOD_POLYMOD_CODENAME); break; case 'vars': $content .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_BLOCK_GENERAL_VARS_EXPLANATION); break; default: //object info $input .= CMS_poly_module_structure::viewObjectRowInfos($moduleCodename, $cms_language, $_POST['objectexplanation']); break; } } $input .= '</fieldset>'; return $input; }
/** * Convert variables of a given definition string (usually a row definition) * * @param string $definition the definition string to convert * @param boolean $toHumanReadableFormat if true, convert found variables to a human readable format, else to a machine readable format * @param boolean $reset if true, reset convertion table if already loaded * * @return string : the module definition string converted * @access public */ function convertDefinitionString($definition, $toHumanReadableFormat, $reset = false) { global $cms_language; static $modulesConversionTable; $count = 1; //loop on text for vars to replace if any while (preg_match_all("#\\{[^{}]+[|}]{1}#U", $definition, $matches) && $count) { $matches = array_unique($matches[0]); //get module variables conversion table if (!isset($modulesConversionTable[$cms_language->getCode()][$this->getCodename()]) || $reset) { $modulesConversionTable[$cms_language->getCode()][$this->getCodename()] = CMS_poly_module_structure::getModuleTranslationTable($this->getCodename(), $cms_language); } $convertionTable = $toHumanReadableFormat ? array_flip($modulesConversionTable[$cms_language->getCode()][$this->getCodename()]) : $modulesConversionTable[$cms_language->getCode()][$this->getCodename()]; //create definition conversion table $replace = array(); $count = 0; foreach ($matches as $variable) { $strippedVar = io::substr($variable, 1, io::strlen($variable) - 2); if (isset($convertionTable[$strippedVar])) { $replace[$variable] = '{' . $convertionTable[$strippedVar] . io::substr($variable, -1); $count++; } } //then replace variables in definition $definition = str_replace(array_keys($replace), $replace, $definition); } return $definition; }
if ($subObjectsParam == true && $level == 2) { $level--; } $style = _getColorsForLevel($level); $html .= ' <li style="' . $style['multiobject'] . '"><strong>' . $objectsStructure['objectInfos'][$objectFieldID]->getObjectLabel($cms_language) . '</strong> <small>(' . $cms_language->getMessage(MESSAGE_PAGE_FIELD_MULTI, array($objectsStructure['objectInfos'][substr($object, 5)]->getLabel($cms_language)), MOD_POLYMOD_CODENAME) . ')</small> ' . createHTMLStructure(substr($object, 11), $objectsStructure) . ' </li>'; if ($subObjectsParam == true && $level == 1) { $level++; } } } } $html .= '</ul>'; } $level--; return $html; } function _getColorsForLevel($level) { if ($level <= 2) { $style = array('field' => 'color:#000000;font-size:11px;', 'object' => 'color:#FF7D36;font-size:11px;', 'multiobject' => 'color:#8FC020;font-size:11px;'); } else { $style = array('field' => 'color:#cccccc;font-size:10px;', 'object' => 'color:#ffb992;font-size:10px;', 'multiobject' => 'color:#bfdd7b;font-size:10px;'); } return $style; } $detailledObjectsStructure = CMS_poly_module_structure::getModuleDetailledStructure($moduleCodename, $cms_language); $dialog->setContent($content); $dialog->show();
$moduleLanguages = CMS_languagesCatalog::getAllLanguages($moduleCodename); foreach ($moduleLanguages as $moduleLanguage) { $moduleLanguagesCodes[] = $moduleLanguage->getCode(); } $helpContent .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_RSS_TAG_EXPLANATION, array(implode(', ', $moduleLanguagesCodes)), MOD_POLYMOD_CODENAME); break; case 'search': $helpContent .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_SEARCH_TAGS_EXPLANATION, false, MOD_POLYMOD_CODENAME); break; case 'working': $helpContent .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_WORKING_TAGS_EXPLANATION); break; case 'working-polymod': $helpContent .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_WORKING_POLYMOD_TAGS_EXPLANATION, false, MOD_POLYMOD_CODENAME); break; case 'vars': $helpContent .= $cms_language->getMessage(CMS_polymod::MESSAGE_PAGE_BLOCK_GENERAL_VARS_EXPLANATION); break; default: //object info $helpContent .= CMS_poly_module_structure::viewObjectRowInfos($moduleCodename, $cms_language, $_POST['objectexplanation']); break; } } $content .= '<div class="well">' . $helpContent . '</div>'; $content .= '</form>'; $content .= ' </div><!-- end container --> '; $dialog->setContent($content); $dialog->show();
/** * Return all infos for selected object * * @param string $codename the module codename * @param CMS_language $language : current language * @param string $selectedValue : the current select value of the list * @param integer $objectID : the module object ID to restrict the list (default false : all objects of the module) * @return string : the options tag list * @access public * @static */ function viewObjectRowInfos($codename, &$language, $selectedValue) { $return = '<div class="rowComment">'; //first, need to convert the $selectedValue which is a moduleStructurePath format into a moduleDetailledStructurePath format $convertedSelectedValue = CMS_poly_module_structure::moduleStructure2moduleDetailledStructure($selectedValue); //then get module detailledStructure $objectsDetailledStructure = CMS_poly_module_structure::getModuleDetailledStructure($codename, $language); //get seleted detailledInfos $detailledInfos = @eval(sensitiveIO::sanitizeExecCommand('return $objectsDetailledStructure' . $convertedSelectedValue . ';')); //get object for this detailled structure path $object = CMS_poly_module_structure::getObjectForDetailledStructurePath($convertedSelectedValue); //then create corresponding object Infos if (is_array($detailledInfos) && $detailledInfos) { //pr(get_class($object)); $objectLabels = $object->getLabelsStructure($language, $detailledInfos['translatedpath']); $return .= ' <h2>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_NAME, false, MOD_POLYMOD_CODENAME) . ' : {' . $detailledInfos['translatedpath'] . '}</h2> <div class="retrait">'; if (isset($objectLabels['structure']) && is_array($objectLabels['structure']) && $objectLabels['structure']) { $return .= '<h3>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_VARS, false, MOD_POLYMOD_CODENAME) . ' :</h3><ul>'; foreach ($objectLabels['structure'] as $name => $label) { $return .= '<li><span class="vertclair">{' . $detailledInfos['translatedpath'] . ':' . $name . '}</span> : ' . $label . '</li>'; } $return .= '</ul>'; } if (isset($objectLabels['function']) && is_array($objectLabels['function']) && $objectLabels['function']) { $return .= '<h3>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_FUNCTIONS, false, MOD_POLYMOD_CODENAME) . ' :</h3><ul>'; foreach ($objectLabels['function'] as $name => $label) { $return .= '<li><span class="keyword">' . $name . '</span> : ' . $label . '</li>'; } $return .= '</ul>'; } if (isset($objectLabels['operator']) && is_array($objectLabels['operator']) && $objectLabels['operator']) { $return .= '<h3>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_OPERATORS, false, MOD_POLYMOD_CODENAME) . ' :</h3>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_OPERATORS_DESCRIPTION, false, MOD_POLYMOD_CODENAME) . '<ul>'; foreach ($objectLabels['operator'] as $name => $label) { $return .= '<li><span class="keyword">' . $name . '</span> : ' . $label . '</li>'; } $return .= '</ul>'; } if (isset($objectLabels['orderOperator']) && is_array($objectLabels['orderOperator']) && $objectLabels['orderOperator']) { $return .= '<h3>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_ORDER_OPERATORS, false, MOD_POLYMOD_CODENAME) . ' :</h3>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_ORDER_OPERATORS_DESCRIPTION, false, MOD_POLYMOD_CODENAME) . '<ul>'; foreach ($objectLabels['orderOperator'] as $name => $label) { $return .= '<li><span class="keyword">' . $name . '</span> : ' . $label . '</li>'; } $return .= '</ul>'; } if (isset($objectLabels['atmInputOperator']) && is_array($objectLabels['atmInputOperator']) && $objectLabels['atmInputOperator']) { $return .= '<h3>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_ATM_INPUT_OPERATORS, false, MOD_POLYMOD_CODENAME) . ' :</h3>' . $language->getMessage(self::MESSAGE_PAGE_OBJECT_ATM_INPUT_OPERATORS_DESCRIPTION, false, MOD_POLYMOD_CODENAME) . '<ul>'; foreach ($objectLabels['atmInputOperator'] as $name => $label) { $return .= '<li><span class="keyword">' . $name . '</span> : ' . $label . '</li>'; } $return .= '</ul>'; } $return .= '</div></div>'; } return $return; }