/** Will return an array of the following form: type=>function_name, args=>array(args) */ function prc_function_spec($function_spec, $require_legal_func_name = FALSE) { $start = strpos($function_spec, '('); if ($start !== FALSE) { // Now we have something to parse. $type = trim(substr($function_spec, 0, $start)); // Now ensure the function name is valid. if ($require_legal_func_name == FALSE || is_legal_function_name($type)) { $end = strrpos($function_spec, ')'); if ($end > $start) { // Now we have the args, lets tokenise them. $args = trim(substr($function_spec, $start + 1, $end - ($start + 1))); $arr = prc_args($args); } return array(type => strtolower($type), args => $arr); } else { return NULL; } } else { if ($require_legal_func_name == FALSE) { // No (), so arg[0] is the whole thing. $type = trim($function_spec); // Empty argument list. return array(type => strtolower($type), args => array()); } else { return NULL; } } }
/** @param $item_r where provided will give the item_id / instance_no, where not provided is safe to assume that this is a new item insert field and this information is not relevant. */ function url($name, $item_r, $item_attribute_type_r, $prompt, $length, $maxlength, $content_groups, $value, $onchange_event, $disabled = FALSE, $multi_value = FALSE) { // Default size. $size = $length; if (!is_numeric($size) || $size <= 0) { $size = 50; } if (get_opendb_config_var('widgets', 'enable_javascript_validation') !== FALSE) { if (strlen(trim($content_groups)) > 0) { // might be an array of content groups $content_group_r = prc_args($content_groups); $extensions_r = fetch_file_type_extensions_r($content_group_r); if (is_not_empty_array($extensions_r)) { $extensions = implode(', ', $extensions_r); } else { // else just list of extensions otherwise $extensions = $content_groups; $extensions_r = $content_group_r; } $url_is_not_valid_message = addslashes(get_opendb_lang_var('url_is_not_valid', array('prompt' => $prompt, 'extensions' => $extensions))); $onchange = "onchange=\"if(!isValidExtension(this.value, " . encode_javascript_array($extensions_r) . ")){alert('" . $url_is_not_valid_message . "'); this.focus(); return false;} {$onchange_event} return true;\""; } } else { $onchange = "onchange=\"{$onchange_event}\""; } if ($item_attribute_type_r['file_attribute_ind'] == 'Y') { $field .= "\n<ul class=\"urlOptionsMenu\" id=\"{$name}-tab-menu\" class=\"file-upload-menu\">"; $field .= "<li id=\"menu-{$name}_saveurl\" class=\"activeTab\" onclick=\"return activateTab('{$name}_saveurl', '{$name}-tab-menu', '{$name}-tab-content', 'activeTab', 'fieldContent');\">URL</li>"; if (is_file_upload_enabled()) { $field .= "<li id=\"menu-{$name}_upload\" onclick=\"return activateTab('{$name}_upload', '{$name}-tab-menu', '{$name}-tab-content', 'activeTab', 'fieldContent');\">Upload File</li>"; } $field .= "</ul>"; $field .= "<div class=\"urlOptionsContainer\" id=\"{$name}-tab-content\">"; $field .= "\n<div class=\"fieldContent\" id=\"{$name}_saveurl\">"; $field .= "<input type=\"text\" class=\"text\" name=\"{$name}\" value=\"{$value}\" {$onchange} size=\"" . $length . "\" " . (is_numeric($maxlength) ? "maxlength=\"" . $maxlength . "\"" : "") . ">"; $field .= "<input type=\"button\" class=\"button\" onclick=\"if(this.form['{$name}'].value.length>0){popup(this.form['{$name}'].value,'400','300');}else{alert('" . get_opendb_lang_var('prompt_must_be_specified', 'prompt', $prompt) . "');}\" value=\"" . get_opendb_lang_var('view') . "\"" . ($disabled ? ' DISABLED' : '') . ">"; $field .= "</div>"; if (is_file_upload_enabled()) { $field .= "<div class=\"fieldContentHidden\" id=\"{$name}_upload\">"; $field .= "<input type=\"file\" class=\"file\" name=\"{$name}_upload\" {$onchange} size=\"" . $size . "\"" . ($disabled ? ' DISABLED' : '') . ">"; $field .= "</div>"; } $field .= '</div>'; } else { if ($multi_value) { return multivalue_text_field('text', $name, $size, $maxlength, $onchange, $value); } else { return singlevalue_text_field('text', $name, $size, $maxlength, $onchange, $value, $disabled); } } return $field; }