@@ -13,159 +13,159 @@ discard block |
||
| 13 | 13 | * @return string |
| 14 | 14 | */ |
| 15 | 15 | function renderFormElement($field_type, $field_id, $default_text = '', $field_elements = '', $field_value = '', $field_style = '', $row = array(), $tvsArray = array()) { |
| 16 | - global $modx; |
|
| 17 | - global $_style; |
|
| 18 | - global $_lang; |
|
| 19 | - global $content; |
|
| 20 | - global $which_browser; |
|
| 16 | + global $modx; |
|
| 17 | + global $_style; |
|
| 18 | + global $_lang; |
|
| 19 | + global $content; |
|
| 20 | + global $which_browser; |
|
| 21 | 21 | |
| 22 | - if(substr($default_text, 0, 6) === '@@EVAL' && $field_value === $default_text) { |
|
| 23 | - $eval_str = trim(substr($default_text, 7)); |
|
| 24 | - $default_text = eval($eval_str); |
|
| 25 | - $field_value = $default_text; |
|
| 26 | - } |
|
| 22 | + if(substr($default_text, 0, 6) === '@@EVAL' && $field_value === $default_text) { |
|
| 23 | + $eval_str = trim(substr($default_text, 7)); |
|
| 24 | + $default_text = eval($eval_str); |
|
| 25 | + $field_value = $default_text; |
|
| 26 | + } |
|
| 27 | 27 | |
| 28 | - $field_html = ''; |
|
| 29 | - $cimode = strpos($field_type, ':'); |
|
| 30 | - if($cimode === false) { |
|
| 31 | - switch($field_type) { |
|
| 28 | + $field_html = ''; |
|
| 29 | + $cimode = strpos($field_type, ':'); |
|
| 30 | + if($cimode === false) { |
|
| 31 | + switch($field_type) { |
|
| 32 | 32 | |
| 33 | - case "text": // handler for regular text boxes |
|
| 34 | - case "rawtext"; // non-htmlentity converted text boxes |
|
| 35 | - $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" ' . $field_style . ' tvtype="' . $field_type . '" onchange="documentDirty=true;" style="width:100%" />'; |
|
| 36 | - break; |
|
| 37 | - case "email": // handles email input fields |
|
| 38 | - $field_html .= '<input type="email" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" ' . $field_style . ' tvtype="' . $field_type . '" onchange="documentDirty=true;" style="width:100%"/>'; |
|
| 39 | - break; |
|
| 40 | - case "number": // handles the input of numbers |
|
| 41 | - $field_html .= '<input type="number" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" ' . $field_style . ' tvtype="' . $field_type . '" onchange="documentDirty=true;" style="width:100%" onkeyup="this.value=this.value.replace(/[^\d-,.+]/,\'\')"/>'; |
|
| 42 | - break; |
|
| 43 | - case "textareamini": // handler for textarea mini boxes |
|
| 44 | - $field_html .= '<textarea id="tv' . $field_id . '" name="tv' . $field_id . '" cols="40" rows="5" onchange="documentDirty=true;" style="width:100%">' . $modx->htmlspecialchars($field_value) . '</textarea>'; |
|
| 45 | - break; |
|
| 46 | - case "textarea": // handler for textarea boxes |
|
| 47 | - case "rawtextarea": // non-htmlentity convertex textarea boxes |
|
| 48 | - case "htmlarea": // handler for textarea boxes (deprecated) |
|
| 49 | - case "richtext": // handler for textarea boxes |
|
| 50 | - $field_html .= '<textarea id="tv' . $field_id . '" name="tv' . $field_id . '" cols="40" rows="15" onchange="documentDirty=true;" style="width:100%">' . $modx->htmlspecialchars($field_value) . '</textarea>'; |
|
| 51 | - break; |
|
| 52 | - case "date": |
|
| 53 | - $field_id = str_replace(array( |
|
| 54 | - '-', |
|
| 55 | - '.' |
|
| 56 | - ), '_', urldecode($field_id)); |
|
| 57 | - if($field_value == '') { |
|
| 58 | - $field_value = 0; |
|
| 59 | - } |
|
| 60 | - $field_html .= '<input id="tv' . $field_id . '" name="tv' . $field_id . '" class="DatePicker" type="text" value="' . ($field_value == 0 || !isset($field_value) ? "" : $field_value) . '" onblur="documentDirty=true;" />'; |
|
| 61 | - $field_html .= ' <a onclick="document.forms[\'mutate\'].elements[\'tv' . $field_id . '\'].value=\'\';document.forms[\'mutate\'].elements[\'tv' . $field_id . '\'].onblur(); return true;" onmouseover="window.status=\'clear the date\'; return true;" onmouseout="window.status=\'\'; return true;" style="cursor:pointer; cursor:hand"><i class="' . $_style["actions_calendar_delete"] . '"></i></a>'; |
|
| 33 | + case "text": // handler for regular text boxes |
|
| 34 | + case "rawtext"; // non-htmlentity converted text boxes |
|
| 35 | + $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" ' . $field_style . ' tvtype="' . $field_type . '" onchange="documentDirty=true;" style="width:100%" />'; |
|
| 36 | + break; |
|
| 37 | + case "email": // handles email input fields |
|
| 38 | + $field_html .= '<input type="email" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" ' . $field_style . ' tvtype="' . $field_type . '" onchange="documentDirty=true;" style="width:100%"/>'; |
|
| 39 | + break; |
|
| 40 | + case "number": // handles the input of numbers |
|
| 41 | + $field_html .= '<input type="number" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" ' . $field_style . ' tvtype="' . $field_type . '" onchange="documentDirty=true;" style="width:100%" onkeyup="this.value=this.value.replace(/[^\d-,.+]/,\'\')"/>'; |
|
| 42 | + break; |
|
| 43 | + case "textareamini": // handler for textarea mini boxes |
|
| 44 | + $field_html .= '<textarea id="tv' . $field_id . '" name="tv' . $field_id . '" cols="40" rows="5" onchange="documentDirty=true;" style="width:100%">' . $modx->htmlspecialchars($field_value) . '</textarea>'; |
|
| 45 | + break; |
|
| 46 | + case "textarea": // handler for textarea boxes |
|
| 47 | + case "rawtextarea": // non-htmlentity convertex textarea boxes |
|
| 48 | + case "htmlarea": // handler for textarea boxes (deprecated) |
|
| 49 | + case "richtext": // handler for textarea boxes |
|
| 50 | + $field_html .= '<textarea id="tv' . $field_id . '" name="tv' . $field_id . '" cols="40" rows="15" onchange="documentDirty=true;" style="width:100%">' . $modx->htmlspecialchars($field_value) . '</textarea>'; |
|
| 51 | + break; |
|
| 52 | + case "date": |
|
| 53 | + $field_id = str_replace(array( |
|
| 54 | + '-', |
|
| 55 | + '.' |
|
| 56 | + ), '_', urldecode($field_id)); |
|
| 57 | + if($field_value == '') { |
|
| 58 | + $field_value = 0; |
|
| 59 | + } |
|
| 60 | + $field_html .= '<input id="tv' . $field_id . '" name="tv' . $field_id . '" class="DatePicker" type="text" value="' . ($field_value == 0 || !isset($field_value) ? "" : $field_value) . '" onblur="documentDirty=true;" />'; |
|
| 61 | + $field_html .= ' <a onclick="document.forms[\'mutate\'].elements[\'tv' . $field_id . '\'].value=\'\';document.forms[\'mutate\'].elements[\'tv' . $field_id . '\'].onblur(); return true;" onmouseover="window.status=\'clear the date\'; return true;" onmouseout="window.status=\'\'; return true;" style="cursor:pointer; cursor:hand"><i class="' . $_style["actions_calendar_delete"] . '"></i></a>'; |
|
| 62 | 62 | |
| 63 | - break; |
|
| 64 | - case "dropdown": // handler for select boxes |
|
| 65 | - $field_html .= '<select id="tv' . $field_id . '" name="tv' . $field_id . '" size="1" onchange="documentDirty=true;">'; |
|
| 66 | - $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 67 | - while(list($item, $itemvalue) = each($index_list)) { |
|
| 68 | - list($item, $itemvalue) = (is_array($itemvalue)) ? $itemvalue : explode("==", $itemvalue); |
|
| 69 | - if(strlen($itemvalue) == 0) { |
|
| 70 | - $itemvalue = $item; |
|
| 71 | - } |
|
| 72 | - $field_html .= '<option value="' . $modx->htmlspecialchars($itemvalue) . '"' . ($itemvalue == $field_value ? ' selected="selected"' : '') . '>' . $modx->htmlspecialchars($item) . '</option>'; |
|
| 73 | - } |
|
| 74 | - $field_html .= "</select>"; |
|
| 75 | - break; |
|
| 76 | - case "listbox": // handler for select boxes |
|
| 77 | - $field_html .= '<select id="tv' . $field_id . '" name="tv' . $field_id . '" onchange="documentDirty=true;" size="8">'; |
|
| 78 | - $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 79 | - while(list($item, $itemvalue) = each($index_list)) { |
|
| 80 | - list($item, $itemvalue) = (is_array($itemvalue)) ? $itemvalue : explode("==", $itemvalue); |
|
| 81 | - if(strlen($itemvalue) == 0) { |
|
| 82 | - $itemvalue = $item; |
|
| 83 | - } |
|
| 84 | - $field_html .= '<option value="' . $modx->htmlspecialchars($itemvalue) . '"' . ($itemvalue == $field_value ? ' selected="selected"' : '') . '>' . $modx->htmlspecialchars($item) . '</option>'; |
|
| 85 | - } |
|
| 86 | - $field_html .= "</select>"; |
|
| 87 | - break; |
|
| 88 | - case "listbox-multiple": // handler for select boxes where you can choose multiple items |
|
| 89 | - $field_value = explode("||", $field_value); |
|
| 90 | - $field_html .= '<select id="tv' . $field_id . '" name="tv' . $field_id . '[]" multiple="multiple" onchange="documentDirty=true;" size="8">'; |
|
| 91 | - $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 92 | - while(list($item, $itemvalue) = each($index_list)) { |
|
| 93 | - list($item, $itemvalue) = (is_array($itemvalue)) ? $itemvalue : explode("==", $itemvalue); |
|
| 94 | - if(strlen($itemvalue) == 0) { |
|
| 95 | - $itemvalue = $item; |
|
| 96 | - } |
|
| 97 | - $field_html .= '<option value="' . $modx->htmlspecialchars($itemvalue) . '"' . (in_array($itemvalue, $field_value) ? ' selected="selected"' : '') . '>' . $modx->htmlspecialchars($item) . '</option>'; |
|
| 98 | - } |
|
| 99 | - $field_html .= "</select>"; |
|
| 100 | - break; |
|
| 101 | - case "url": // handles url input fields |
|
| 102 | - $urls = array( |
|
| 103 | - '' => '--', |
|
| 104 | - 'http://' => 'http://', |
|
| 105 | - 'https://' => 'https://', |
|
| 106 | - 'ftp://' => 'ftp://', |
|
| 107 | - 'mailto:' => 'mailto:' |
|
| 108 | - ); |
|
| 109 | - $field_html = '<table border="0" cellspacing="0" cellpadding="0"><tr><td><select id="tv' . $field_id . '_prefix" name="tv' . $field_id . '_prefix" onchange="documentDirty=true;">'; |
|
| 110 | - foreach($urls as $k => $v) { |
|
| 111 | - if(strpos($field_value, $v) === false) { |
|
| 112 | - $field_html .= '<option value="' . $v . '">' . $k . '</option>'; |
|
| 113 | - } else { |
|
| 114 | - $field_value = str_replace($v, '', $field_value); |
|
| 115 | - $field_html .= '<option value="' . $v . '" selected="selected">' . $k . '</option>'; |
|
| 116 | - } |
|
| 117 | - } |
|
| 118 | - $field_html .= '</select></td><td>'; |
|
| 119 | - $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" width="100" ' . $field_style . ' onchange="documentDirty=true;" /></td></tr></table>'; |
|
| 120 | - break; |
|
| 121 | - case 'checkbox': // handles check boxes |
|
| 122 | - $values = !is_array($field_value) ? explode('||', $field_value) : $field_value; |
|
| 123 | - $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 124 | - $tpl = '<label class="checkbox"><input type="checkbox" value="%s" id="tv_%s" name="tv%s[]" %s onchange="documentDirty=true;" />%s</label><br />'; |
|
| 125 | - static $i = 0; |
|
| 126 | - $_ = array(); |
|
| 127 | - foreach($index_list as $c => $item) { |
|
| 128 | - if(is_array($item)) { |
|
| 129 | - $name = trim($item[0]); |
|
| 130 | - $value = isset($item[1]) ? $item[1] : $name; |
|
| 131 | - } else { |
|
| 132 | - $item = trim($item); |
|
| 133 | - list($name, $value) = (strpos($item, '==') !== false) ? explode('==', $item, 2) : array( |
|
| 134 | - $item, |
|
| 135 | - $item |
|
| 136 | - ); |
|
| 137 | - } |
|
| 138 | - $checked = in_array($value, $values) ? ' checked="checked"' : ''; |
|
| 139 | - $param = array( |
|
| 140 | - $modx->htmlspecialchars($value), |
|
| 141 | - $i, |
|
| 142 | - $field_id, |
|
| 143 | - $checked, |
|
| 144 | - $name |
|
| 145 | - ); |
|
| 146 | - $_[] = vsprintf($tpl, $param); |
|
| 147 | - $i++; |
|
| 148 | - } |
|
| 149 | - $field_html = implode("\n", $_); |
|
| 150 | - break; |
|
| 151 | - case "option": // handles radio buttons |
|
| 152 | - $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 153 | - static $i = 0; |
|
| 154 | - while(list($item, $itemvalue) = each($index_list)) { |
|
| 155 | - list($item, $itemvalue) = (is_array($itemvalue)) ? $itemvalue : explode("==", $itemvalue); |
|
| 156 | - if(strlen($itemvalue) == 0) { |
|
| 157 | - $itemvalue = $item; |
|
| 158 | - } |
|
| 159 | - $field_html .= '<input type="radio" value="' . $modx->htmlspecialchars($itemvalue) . '" id="tv_' . $i . '" name="tv' . $field_id . '" ' . ($itemvalue == $field_value ? 'checked="checked"' : '') . ' onchange="documentDirty=true;" /><label for="tv_' . $i . '" class="radio">' . $item . '</label><br />'; |
|
| 160 | - $i++; |
|
| 161 | - } |
|
| 162 | - break; |
|
| 163 | - case "image": // handles image fields using htmlarea image manager |
|
| 164 | - global $_lang; |
|
| 165 | - global $ResourceManagerLoaded; |
|
| 166 | - global $content, $use_editor, $which_editor; |
|
| 167 | - if(!$ResourceManagerLoaded && !(($content['richtext'] == 1 || $modx->manager->action == 4) && $use_editor == 1 && $which_editor == 3)) { |
|
| 168 | - $field_html .= " |
|
| 63 | + break; |
|
| 64 | + case "dropdown": // handler for select boxes |
|
| 65 | + $field_html .= '<select id="tv' . $field_id . '" name="tv' . $field_id . '" size="1" onchange="documentDirty=true;">'; |
|
| 66 | + $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 67 | + while(list($item, $itemvalue) = each($index_list)) { |
|
| 68 | + list($item, $itemvalue) = (is_array($itemvalue)) ? $itemvalue : explode("==", $itemvalue); |
|
| 69 | + if(strlen($itemvalue) == 0) { |
|
| 70 | + $itemvalue = $item; |
|
| 71 | + } |
|
| 72 | + $field_html .= '<option value="' . $modx->htmlspecialchars($itemvalue) . '"' . ($itemvalue == $field_value ? ' selected="selected"' : '') . '>' . $modx->htmlspecialchars($item) . '</option>'; |
|
| 73 | + } |
|
| 74 | + $field_html .= "</select>"; |
|
| 75 | + break; |
|
| 76 | + case "listbox": // handler for select boxes |
|
| 77 | + $field_html .= '<select id="tv' . $field_id . '" name="tv' . $field_id . '" onchange="documentDirty=true;" size="8">'; |
|
| 78 | + $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 79 | + while(list($item, $itemvalue) = each($index_list)) { |
|
| 80 | + list($item, $itemvalue) = (is_array($itemvalue)) ? $itemvalue : explode("==", $itemvalue); |
|
| 81 | + if(strlen($itemvalue) == 0) { |
|
| 82 | + $itemvalue = $item; |
|
| 83 | + } |
|
| 84 | + $field_html .= '<option value="' . $modx->htmlspecialchars($itemvalue) . '"' . ($itemvalue == $field_value ? ' selected="selected"' : '') . '>' . $modx->htmlspecialchars($item) . '</option>'; |
|
| 85 | + } |
|
| 86 | + $field_html .= "</select>"; |
|
| 87 | + break; |
|
| 88 | + case "listbox-multiple": // handler for select boxes where you can choose multiple items |
|
| 89 | + $field_value = explode("||", $field_value); |
|
| 90 | + $field_html .= '<select id="tv' . $field_id . '" name="tv' . $field_id . '[]" multiple="multiple" onchange="documentDirty=true;" size="8">'; |
|
| 91 | + $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 92 | + while(list($item, $itemvalue) = each($index_list)) { |
|
| 93 | + list($item, $itemvalue) = (is_array($itemvalue)) ? $itemvalue : explode("==", $itemvalue); |
|
| 94 | + if(strlen($itemvalue) == 0) { |
|
| 95 | + $itemvalue = $item; |
|
| 96 | + } |
|
| 97 | + $field_html .= '<option value="' . $modx->htmlspecialchars($itemvalue) . '"' . (in_array($itemvalue, $field_value) ? ' selected="selected"' : '') . '>' . $modx->htmlspecialchars($item) . '</option>'; |
|
| 98 | + } |
|
| 99 | + $field_html .= "</select>"; |
|
| 100 | + break; |
|
| 101 | + case "url": // handles url input fields |
|
| 102 | + $urls = array( |
|
| 103 | + '' => '--', |
|
| 104 | + 'http://' => 'http://', |
|
| 105 | + 'https://' => 'https://', |
|
| 106 | + 'ftp://' => 'ftp://', |
|
| 107 | + 'mailto:' => 'mailto:' |
|
| 108 | + ); |
|
| 109 | + $field_html = '<table border="0" cellspacing="0" cellpadding="0"><tr><td><select id="tv' . $field_id . '_prefix" name="tv' . $field_id . '_prefix" onchange="documentDirty=true;">'; |
|
| 110 | + foreach($urls as $k => $v) { |
|
| 111 | + if(strpos($field_value, $v) === false) { |
|
| 112 | + $field_html .= '<option value="' . $v . '">' . $k . '</option>'; |
|
| 113 | + } else { |
|
| 114 | + $field_value = str_replace($v, '', $field_value); |
|
| 115 | + $field_html .= '<option value="' . $v . '" selected="selected">' . $k . '</option>'; |
|
| 116 | + } |
|
| 117 | + } |
|
| 118 | + $field_html .= '</select></td><td>'; |
|
| 119 | + $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" width="100" ' . $field_style . ' onchange="documentDirty=true;" /></td></tr></table>'; |
|
| 120 | + break; |
|
| 121 | + case 'checkbox': // handles check boxes |
|
| 122 | + $values = !is_array($field_value) ? explode('||', $field_value) : $field_value; |
|
| 123 | + $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 124 | + $tpl = '<label class="checkbox"><input type="checkbox" value="%s" id="tv_%s" name="tv%s[]" %s onchange="documentDirty=true;" />%s</label><br />'; |
|
| 125 | + static $i = 0; |
|
| 126 | + $_ = array(); |
|
| 127 | + foreach($index_list as $c => $item) { |
|
| 128 | + if(is_array($item)) { |
|
| 129 | + $name = trim($item[0]); |
|
| 130 | + $value = isset($item[1]) ? $item[1] : $name; |
|
| 131 | + } else { |
|
| 132 | + $item = trim($item); |
|
| 133 | + list($name, $value) = (strpos($item, '==') !== false) ? explode('==', $item, 2) : array( |
|
| 134 | + $item, |
|
| 135 | + $item |
|
| 136 | + ); |
|
| 137 | + } |
|
| 138 | + $checked = in_array($value, $values) ? ' checked="checked"' : ''; |
|
| 139 | + $param = array( |
|
| 140 | + $modx->htmlspecialchars($value), |
|
| 141 | + $i, |
|
| 142 | + $field_id, |
|
| 143 | + $checked, |
|
| 144 | + $name |
|
| 145 | + ); |
|
| 146 | + $_[] = vsprintf($tpl, $param); |
|
| 147 | + $i++; |
|
| 148 | + } |
|
| 149 | + $field_html = implode("\n", $_); |
|
| 150 | + break; |
|
| 151 | + case "option": // handles radio buttons |
|
| 152 | + $index_list = ParseIntputOptions(ProcessTVCommand($field_elements, $field_id, '', 'tvform', $tvsArray)); |
|
| 153 | + static $i = 0; |
|
| 154 | + while(list($item, $itemvalue) = each($index_list)) { |
|
| 155 | + list($item, $itemvalue) = (is_array($itemvalue)) ? $itemvalue : explode("==", $itemvalue); |
|
| 156 | + if(strlen($itemvalue) == 0) { |
|
| 157 | + $itemvalue = $item; |
|
| 158 | + } |
|
| 159 | + $field_html .= '<input type="radio" value="' . $modx->htmlspecialchars($itemvalue) . '" id="tv_' . $i . '" name="tv' . $field_id . '" ' . ($itemvalue == $field_value ? 'checked="checked"' : '') . ' onchange="documentDirty=true;" /><label for="tv_' . $i . '" class="radio">' . $item . '</label><br />'; |
|
| 160 | + $i++; |
|
| 161 | + } |
|
| 162 | + break; |
|
| 163 | + case "image": // handles image fields using htmlarea image manager |
|
| 164 | + global $_lang; |
|
| 165 | + global $ResourceManagerLoaded; |
|
| 166 | + global $content, $use_editor, $which_editor; |
|
| 167 | + if(!$ResourceManagerLoaded && !(($content['richtext'] == 1 || $modx->manager->action == 4) && $use_editor == 1 && $which_editor == 3)) { |
|
| 168 | + $field_html .= " |
|
| 169 | 169 | <script type=\"text/javascript\"> |
| 170 | 170 | /* <![CDATA[ */ |
| 171 | 171 | var lastImageCtrl; |
@@ -224,18 +224,18 @@ discard block |
||
| 224 | 224 | } |
| 225 | 225 | /* ]]> */ |
| 226 | 226 | </script>"; |
| 227 | - $ResourceManagerLoaded = true; |
|
| 228 | - } |
|
| 229 | - $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $field_value . '" ' . $field_style . ' onchange="documentDirty=true;" /><input type="button" value="' . $_lang['insert'] . '" onclick="BrowseServer(\'tv' . $field_id . '\')" />'; |
|
| 230 | - break; |
|
| 231 | - case "file": // handles the input of file uploads |
|
| 232 | - /* Modified by Timon for use with resource browser */ |
|
| 233 | - global $_lang; |
|
| 234 | - global $ResourceManagerLoaded; |
|
| 235 | - global $content, $use_editor, $which_editor; |
|
| 236 | - if(!$ResourceManagerLoaded && !(($content['richtext'] == 1 || $modx->manager->action == 4) && $use_editor == 1 && $which_editor == 3)) { |
|
| 237 | - /* I didn't understand the meaning of the condition above, so I left it untouched ;-) */ |
|
| 238 | - $field_html .= " |
|
| 227 | + $ResourceManagerLoaded = true; |
|
| 228 | + } |
|
| 229 | + $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $field_value . '" ' . $field_style . ' onchange="documentDirty=true;" /><input type="button" value="' . $_lang['insert'] . '" onclick="BrowseServer(\'tv' . $field_id . '\')" />'; |
|
| 230 | + break; |
|
| 231 | + case "file": // handles the input of file uploads |
|
| 232 | + /* Modified by Timon for use with resource browser */ |
|
| 233 | + global $_lang; |
|
| 234 | + global $ResourceManagerLoaded; |
|
| 235 | + global $content, $use_editor, $which_editor; |
|
| 236 | + if(!$ResourceManagerLoaded && !(($content['richtext'] == 1 || $modx->manager->action == 4) && $use_editor == 1 && $which_editor == 3)) { |
|
| 237 | + /* I didn't understand the meaning of the condition above, so I left it untouched ;-) */ |
|
| 238 | + $field_html .= " |
|
| 239 | 239 | <script type=\"text/javascript\"> |
| 240 | 240 | /* <![CDATA[ */ |
| 241 | 241 | var lastImageCtrl; |
@@ -294,90 +294,90 @@ discard block |
||
| 294 | 294 | } |
| 295 | 295 | /* ]]> */ |
| 296 | 296 | </script>"; |
| 297 | - $ResourceManagerLoaded = true; |
|
| 298 | - } |
|
| 299 | - $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $field_value . '" ' . $field_style . ' onchange="documentDirty=true;" /><input type="button" value="' . $_lang['insert'] . '" onclick="BrowseFileServer(\'tv' . $field_id . '\')" />'; |
|
| 297 | + $ResourceManagerLoaded = true; |
|
| 298 | + } |
|
| 299 | + $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $field_value . '" ' . $field_style . ' onchange="documentDirty=true;" /><input type="button" value="' . $_lang['insert'] . '" onclick="BrowseFileServer(\'tv' . $field_id . '\')" />'; |
|
| 300 | 300 | |
| 301 | - break; |
|
| 301 | + break; |
|
| 302 | 302 | |
| 303 | - case 'custom_tv': |
|
| 304 | - $custom_output = ''; |
|
| 305 | - /* If we are loading a file */ |
|
| 306 | - if(substr($field_elements, 0, 5) == "@FILE") { |
|
| 307 | - $file_name = MODX_BASE_PATH . trim(substr($field_elements, 6)); |
|
| 308 | - if(!file_exists($file_name)) { |
|
| 309 | - $custom_output = $file_name . ' does not exist'; |
|
| 310 | - } else { |
|
| 311 | - $custom_output = file_get_contents($file_name); |
|
| 312 | - } |
|
| 313 | - } elseif(substr($field_elements, 0, 8) == '@INCLUDE') { |
|
| 314 | - $file_name = MODX_BASE_PATH . trim(substr($field_elements, 9)); |
|
| 315 | - if(!file_exists($file_name)) { |
|
| 316 | - $custom_output = $file_name . ' does not exist'; |
|
| 317 | - } else { |
|
| 318 | - ob_start(); |
|
| 319 | - include $file_name; |
|
| 320 | - $custom_output = ob_get_contents(); |
|
| 321 | - ob_end_clean(); |
|
| 322 | - } |
|
| 323 | - } elseif(substr($field_elements, 0, 6) == "@CHUNK") { |
|
| 324 | - $chunk_name = trim(substr($field_elements, 7)); |
|
| 325 | - $chunk_body = $modx->getChunk($chunk_name); |
|
| 326 | - if($chunk_body == false) { |
|
| 327 | - $custom_output = $_lang['chunk_no_exist'] . '(' . $_lang['htmlsnippet_name'] . ':' . $chunk_name . ')'; |
|
| 328 | - } else { |
|
| 329 | - $custom_output = $chunk_body; |
|
| 330 | - } |
|
| 331 | - } elseif(substr($field_elements, 0, 5) == "@EVAL") { |
|
| 332 | - $eval_str = trim(substr($field_elements, 6)); |
|
| 333 | - $custom_output = eval($eval_str); |
|
| 334 | - } else { |
|
| 335 | - $custom_output = $field_elements; |
|
| 336 | - } |
|
| 337 | - $replacements = array( |
|
| 338 | - '[+field_type+]' => $field_type, |
|
| 339 | - '[+field_id+]' => $field_id, |
|
| 340 | - '[+default_text+]' => $default_text, |
|
| 341 | - '[+field_value+]' => $modx->htmlspecialchars($field_value), |
|
| 342 | - '[+field_style+]' => $field_style, |
|
| 343 | - ); |
|
| 344 | - $custom_output = str_replace(array_keys($replacements), $replacements, $custom_output); |
|
| 345 | - $modx->documentObject = $content; |
|
| 346 | - $modx->documentIdentifier = $content['id']; |
|
| 347 | - $custom_output = $modx->parseDocumentSource($custom_output); |
|
| 348 | - $field_html .= $custom_output; |
|
| 349 | - break; |
|
| 303 | + case 'custom_tv': |
|
| 304 | + $custom_output = ''; |
|
| 305 | + /* If we are loading a file */ |
|
| 306 | + if(substr($field_elements, 0, 5) == "@FILE") { |
|
| 307 | + $file_name = MODX_BASE_PATH . trim(substr($field_elements, 6)); |
|
| 308 | + if(!file_exists($file_name)) { |
|
| 309 | + $custom_output = $file_name . ' does not exist'; |
|
| 310 | + } else { |
|
| 311 | + $custom_output = file_get_contents($file_name); |
|
| 312 | + } |
|
| 313 | + } elseif(substr($field_elements, 0, 8) == '@INCLUDE') { |
|
| 314 | + $file_name = MODX_BASE_PATH . trim(substr($field_elements, 9)); |
|
| 315 | + if(!file_exists($file_name)) { |
|
| 316 | + $custom_output = $file_name . ' does not exist'; |
|
| 317 | + } else { |
|
| 318 | + ob_start(); |
|
| 319 | + include $file_name; |
|
| 320 | + $custom_output = ob_get_contents(); |
|
| 321 | + ob_end_clean(); |
|
| 322 | + } |
|
| 323 | + } elseif(substr($field_elements, 0, 6) == "@CHUNK") { |
|
| 324 | + $chunk_name = trim(substr($field_elements, 7)); |
|
| 325 | + $chunk_body = $modx->getChunk($chunk_name); |
|
| 326 | + if($chunk_body == false) { |
|
| 327 | + $custom_output = $_lang['chunk_no_exist'] . '(' . $_lang['htmlsnippet_name'] . ':' . $chunk_name . ')'; |
|
| 328 | + } else { |
|
| 329 | + $custom_output = $chunk_body; |
|
| 330 | + } |
|
| 331 | + } elseif(substr($field_elements, 0, 5) == "@EVAL") { |
|
| 332 | + $eval_str = trim(substr($field_elements, 6)); |
|
| 333 | + $custom_output = eval($eval_str); |
|
| 334 | + } else { |
|
| 335 | + $custom_output = $field_elements; |
|
| 336 | + } |
|
| 337 | + $replacements = array( |
|
| 338 | + '[+field_type+]' => $field_type, |
|
| 339 | + '[+field_id+]' => $field_id, |
|
| 340 | + '[+default_text+]' => $default_text, |
|
| 341 | + '[+field_value+]' => $modx->htmlspecialchars($field_value), |
|
| 342 | + '[+field_style+]' => $field_style, |
|
| 343 | + ); |
|
| 344 | + $custom_output = str_replace(array_keys($replacements), $replacements, $custom_output); |
|
| 345 | + $modx->documentObject = $content; |
|
| 346 | + $modx->documentIdentifier = $content['id']; |
|
| 347 | + $custom_output = $modx->parseDocumentSource($custom_output); |
|
| 348 | + $field_html .= $custom_output; |
|
| 349 | + break; |
|
| 350 | 350 | |
| 351 | - default: // the default handler -- for errors, mostly |
|
| 352 | - $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" ' . $field_style . ' onchange="documentDirty=true;" />'; |
|
| 351 | + default: // the default handler -- for errors, mostly |
|
| 352 | + $field_html .= '<input type="text" id="tv' . $field_id . '" name="tv' . $field_id . '" value="' . $modx->htmlspecialchars($field_value) . '" ' . $field_style . ' onchange="documentDirty=true;" />'; |
|
| 353 | 353 | |
| 354 | - } // end switch statement |
|
| 355 | - } else { |
|
| 356 | - $custom = explode(":", $field_type); |
|
| 357 | - $custom_output = ''; |
|
| 358 | - $file_name = MODX_BASE_PATH . 'assets/tvs/' . $custom['1'] . '/' . $custom['1'] . '.customtv.php'; |
|
| 359 | - if(!file_exists($file_name)) { |
|
| 360 | - $custom_output = $file_name . ' does not exist'; |
|
| 361 | - } else { |
|
| 362 | - ob_start(); |
|
| 363 | - include $file_name; |
|
| 364 | - $custom_output = ob_get_contents(); |
|
| 365 | - ob_end_clean(); |
|
| 366 | - } |
|
| 367 | - $replacements = array( |
|
| 368 | - '[+field_type+]' => $field_type, |
|
| 369 | - '[+field_id+]' => $field_id, |
|
| 370 | - '[+default_text+]' => $default_text, |
|
| 371 | - '[+field_value+]' => $modx->htmlspecialchars($field_value), |
|
| 372 | - '[+field_style+]' => $field_style, |
|
| 373 | - ); |
|
| 374 | - $custom_output = str_replace(array_keys($replacements), $replacements, $custom_output); |
|
| 375 | - $modx->documentObject = $content; |
|
| 376 | - $custom_output = $modx->parseDocumentSource($custom_output); |
|
| 377 | - $field_html .= $custom_output; |
|
| 378 | - } |
|
| 354 | + } // end switch statement |
|
| 355 | + } else { |
|
| 356 | + $custom = explode(":", $field_type); |
|
| 357 | + $custom_output = ''; |
|
| 358 | + $file_name = MODX_BASE_PATH . 'assets/tvs/' . $custom['1'] . '/' . $custom['1'] . '.customtv.php'; |
|
| 359 | + if(!file_exists($file_name)) { |
|
| 360 | + $custom_output = $file_name . ' does not exist'; |
|
| 361 | + } else { |
|
| 362 | + ob_start(); |
|
| 363 | + include $file_name; |
|
| 364 | + $custom_output = ob_get_contents(); |
|
| 365 | + ob_end_clean(); |
|
| 366 | + } |
|
| 367 | + $replacements = array( |
|
| 368 | + '[+field_type+]' => $field_type, |
|
| 369 | + '[+field_id+]' => $field_id, |
|
| 370 | + '[+default_text+]' => $default_text, |
|
| 371 | + '[+field_value+]' => $modx->htmlspecialchars($field_value), |
|
| 372 | + '[+field_style+]' => $field_style, |
|
| 373 | + ); |
|
| 374 | + $custom_output = str_replace(array_keys($replacements), $replacements, $custom_output); |
|
| 375 | + $modx->documentObject = $content; |
|
| 376 | + $custom_output = $modx->parseDocumentSource($custom_output); |
|
| 377 | + $field_html .= $custom_output; |
|
| 378 | + } |
|
| 379 | 379 | |
| 380 | - return $field_html; |
|
| 380 | + return $field_html; |
|
| 381 | 381 | } // end renderFormElement function |
| 382 | 382 | |
| 383 | 383 | /** |
@@ -385,14 +385,14 @@ discard block |
||
| 385 | 385 | * @return array |
| 386 | 386 | */ |
| 387 | 387 | function ParseIntputOptions($v) { |
| 388 | - global $modx; |
|
| 389 | - $a = array(); |
|
| 390 | - if(is_array($v)) { |
|
| 391 | - return $v; |
|
| 392 | - } else if($modx->db->isResult($v)) { |
|
| 393 | - while($cols = $modx->db->getRow($v, 'num')) $a[] = $cols; |
|
| 394 | - } else { |
|
| 395 | - $a = explode("||", $v); |
|
| 396 | - } |
|
| 397 | - return $a; |
|
| 388 | + global $modx; |
|
| 389 | + $a = array(); |
|
| 390 | + if(is_array($v)) { |
|
| 391 | + return $v; |
|
| 392 | + } else if($modx->db->isResult($v)) { |
|
| 393 | + while($cols = $modx->db->getRow($v, 'num')) $a[] = $cols; |
|
| 394 | + } else { |
|
| 395 | + $a = explode("||", $v); |
|
| 396 | + } |
|
| 397 | + return $a; |
|
| 398 | 398 | } |