private static function displayElementStart($dict) { $out = []; $class = Functions::nz($dict['class'], false); $name = Functions::nz($dict['name'], false); $id = Functions::nz($dict['id'], false); $goto = Functions::nz($dict['goto'], false); $disabled = Functions::nz($dict['disabled'], false); $onchange = Functions::nz($dict['onchange'], false); $height = Functions::nz($dict['height'], false); $width = Functions::nz($dict['width'], false); $governs = Functions::nz($dict['governs'], false); $list = Functions::nz($dict['list'], false); $url = Functions::getArgs($governs) . "&{$governs}=%id"; $out[] = '<select'; if ($class) { $out[] = " class=\"{$class}\""; } if ($name) { $out[] = " name=\"{$name}\""; } if ($id) { $out[] = " id=\"{$id}\""; } if ($list) { $out[] = ' multiple="multiple"'; } if ($disabled) { $out[] = ' disabled="disabled"'; } if ($governs) { $out[] = " onchange=\"ComboBox.change(this,'{$url}')\""; } if ($goto) { $out[] = " onchange=\"ComboBox.change(this,'{$goto}')\""; } if ($onchange) { $out[] = " onchange=\"{$onchange}\""; } $out[] = ' style="'; if ($width) { $out[] = "width: {$width}px;"; } if ($height) { $out[] = "height: {$height}px;"; } $out[] = '"'; $out[] = '>'; return $out; }
public static function display($dict) { $name = Functions::nz($dict['name'], ''); $default = Functions::nz($dict['default'], ''); $governs = Functions::nz($dict['governs'], false); $onchange = Functions::nz($dict['onchange'], false); $width = Functions::nz($dict['width'], 80); $eu = Functions::nz($dict['eu'], false); if ($governs) { $onchange = "location = '" . Functions::getArgs($governs) . "&{$governs}='+\$('input[name={$name}]').val()"; } $out = array(); $out[] = '<div style="display:inline; white-space: nowrap;"><input type="text" ' . ($onchange ? "onchange=\"{$onchange}\"" : '') . " style=\"width: {$width}px\" name=\"{$name}\" value=\"{$default}\" /><input type=\"button\" value=\"#\" onclick=\"DateBox.display(this.previousSibling," . ($eu ? 'true' : 'false') . ')" /></div>'; return implode("\n", $out); }
public function redirect($to = '') { if ($to == '') { $to = Functions::getArgs(''); } header('Location: ' . $to); exit(0); }
public static function display($dict, $subforminfo = false) { $table = Functions::nz($dict['table'], false); $tableclass = Functions::nz($dict['tableclass'], false); $where = Functions::nz($dict['where'], array()); $order = Functions::nz($dict['order'], false); $fields = Functions::nz($dict['fields'], false); $method = Functions::nz($dict['method'], 'post'); $deleteable = Functions::nz($dict['deleteable'], true); $action = Functions::nz($dict['action'], Functions::getArgs()); $submitlabel = Functions::nz($dict['submitlabel'], 'Update'); $addlabel = Functions::nz($dict['addlabel'], 'Add new'); $links = Functions::nz($dict['links'], array()); $subform = Functions::nz($dict['subform'], false); $rowanchor = Functions::nz($dict['rowanchor'], false); $displayheader = Functions::nz($dict['displayheader'], false); $onupdate = Functions::nz($dict['onupdate'], false); $ondelete = Functions::nz($dict['ondelete'], false); $safedelete = Functions::nz($dict['safedelete'], false); $addline = Functions::nz($dict['addline'], true); $continous = Functions::nz($dict['type'], 'continous') == 'continous'; $out = array(); if ($table) { $i = 0; while (isset(self::$formids[$formid = ($subforminfo ? $subforminfo['pre'] . '_' : '') . $table . '_' . $i])) { ++$i; } self::$formids[$formid] = true; $rs = self::getRS($table, $where, $order, $subforminfo); $allFields = array(); $qryFields = $rs->fetchFields(); foreach ($qryFields as $f) { $allFields[$f->name] = array('type' => $f->type); } if ($method == 'post' && isset($_POST[$formid . '_submit'])) { self::checkTableForm($formid, $table, $_POST, $fields, $subform, $allFields, $onupdate); } elseif ($method == 'get' && isset($_GET[$formid . '_submit'])) { self::checkTableForm($formid, $table, $_GET, $fields, $subform, $allFields, $onupdate); } if (isset($_GET['delete']) && isset($_GET['formid']) && $_GET['formid'] == $formid) { if ($ondelete) { $ondelete($_GET['delete']); } DB::query("DELETE FROM {$table} WHERE id=" . $_GET['delete']); header('Location: ' . Functions::getArgs('delete;formid')); } if (!$fields) { $fields = array(); foreach ($qryFields as $f) { $fields[] = array('name' => $f->name); } } // generate pretty names foreach ($fields as $k => $f) { if (!Functions::nz($f['prettyname'], false)) { $fields[$k]['prettyname'] = self::makePrettyName($f['name']); } } if (!$subforminfo) { $out[] = "<form name=\"{$formid}\" method=\"{$method}\" action=\"\">"; } else { $out[] = "<input type=\"hidden\" name=\"{$subforminfo['pre']}_subforms[]\" value=\"{$formid}\" />"; } if ($continous) { $out[] = '<table' . ($tableclass ? " class=\"{$tableclass}\"" : '') . '>'; $cols = count($fields) + count($links); if ($deleteable) { $cols++; } if ($displayheader) { $out[] = '<thead>'; $out[] = '<tr>'; foreach ($fields as $f) { $type = isset($f['type']) ? $f['type'] : $allFields[$f['name']]['type']; if ($type != 'hidden') { $out[] = "<th>{$f['prettyname']}</th>"; } } $out[] = '</tr>'; $out[] = '</thead>'; } $line = 0; $out[] = '<tbody>'; while ($row = $rs->next()) { $out[] = "<input type=\"hidden\" name=\"{$formid}_id_{$line}\" value=\"{$row['id']}\" />"; $out[] = "<input type=\"hidden\" name=\"{$formid}_{$line}_dirty\" value=\"0\" />"; $out[] = '<tr>'; $firstfield = true; foreach ($fields as $f) { list($hidden, $str) = self::displayField($formid, $f, $allFields, $line, $row); if (!$hidden) { $out[] = '<td>'; } if ($firstfield && !$hidden) { if ($rowanchor) { $out[] = "<a name=\"id{$row['id']}\"></a>"; } $firstfield = false; } $out[] = $str; if (!$hidden) { $out[] = '</td>'; } } if ($deleteable) { if (!$safedelete) { $out[] = "<td><input class=\"btn btn-default\" type=\"button\" onClick=\"location='" . $action . "&formid={$formid}&delete={$row['id']}'\" value=\"Delete\" /></td>"; } else { $out[] = "<td><input class=\"btn btn-default\" type=\"button\" onClick=\"ConfirmBox.display('Are you sure you want to delete this?','" . $action . "&formid={$formid}&delete={$row['id']}')\" value=\"Delete\" /></td>"; } } foreach ($links as $link) { $url = str_replace('%id', $row['id'], $link['url']); if (Functions::nz($link['fancybox'], false)) { $onclick = "\$.fancybox({href:'{$url}'})"; } else { $onclick = "location='{$url}'"; } $out[] = "<td><input class=\"btn btn-default\" type=\"button\" onClick=\"{$onclick}\" value=\"{$link['label']}\" /></td>"; } $out[] = '</tr>'; if ($subform) { $dict = array('pre' => $formid, 'id' => $row['id']); $subformdict = $subform; foreach ($subformdict['fields'] as $k => $f) { if (isset($f['default'])) { $subformdict['fields'][$k]['default'] = str_replace('%id', $row['id'], $f['default']); } } $out[] = '<tr><td></td><td colspan="' . ($cols - 1) . '">' . self::display($subformdict, $dict) . '</td></tr>'; } ++$line; } if ($addline) { $out[] = "<tr><td colspan=\"{$cols}\"><input type=\"hidden\" name=\"{$formid}_id_new\" value=\"0\" /><input class=\"btn btn-default\" type=\"button\" value=\"{$addlabel}\" onclick=\"Form.addnew('{$formid}',this)\" /></td></tr>"; $out[] = "<tr style=\"display: none\" id=\"{$formid}_addnew\">"; foreach ($fields as $f) { list($hidden, $str) = self::displayField($formid, $f, $allFields); if (!$hidden) { $out[] = '<td>'; } $out[] = $str; if (!$hidden) { $out[] = '</td>'; } } $out[] = '</tr>'; } $out[] = '</tbody>'; $out[] = '</table>'; } else { $row = $rs->next(); if ($row) { $out[] = "<input type=\"hidden\" name=\"{$formid}_id_0\" value=\"{$row['id']}\" />"; $out[] = "<input type=\"hidden\" name=\"{$formid}_0_dirty\" value=\"0\" />"; } else { $out[] = "<input type=\"hidden\" name=\"{$formid}_id_new\" value=\"1\" />"; } $out[] = '<table>'; foreach ($fields as $f) { if ($row) { list($hidden, $str) = self::displayField($formid, $f, $allFields, 0, $row); } else { list($hidden, $str) = self::displayField($formid, $f, $allFields); } if (!$hidden) { $out[] = "<tr><td>{$f['prettyname']}</td><td>"; } $out[] = $str; if (!$hidden) { $out[] = '</td></tr>'; } } $out[] = '</table>'; } if (!$subforminfo) { $out[] = "<input class=\"btn btn-default\" type=\"submit\" name=\"{$formid}_submit\" value=\"{$submitlabel}\" />"; $out[] = '</form>'; } } return implode("\n", $out); }