public function __construct($dict = array()) { $this->model = Functions::nz($dict['model'], false); $test = debug_backtrace(); $classtraceindex = 1; if (strpos($this->model, '\\') === false) { $orgmodel = $this->model; $pos = strrpos($test[1][self::STR_CLASS], '\\'); $this->model = substr($test[1][self::STR_CLASS], 0, $pos + 1) . $this->model; if (substr($this->model, 0, 13) == 'penguin\\model') { $classtraceindex = 2; $pos = strrpos($test[2][self::STR_CLASS], '\\'); $this->model = substr($test[2][self::STR_CLASS], 0, $pos + 1) . $orgmodel; } } $model = $this->model; /* @var $model BaseModel */ if (!class_exists($model)) { throw new ModelException("Class: {$model} doesn't exist"); } $mymodel = $test[$classtraceindex][self::STR_CLASS]; $this->related_name = Functions::nz($dict['related_name'], $mymodel::getName()); $model::init(); $model::addHas($test[$classtraceindex][self::STR_CLASS], $this); parent::__construct($dict); }
public function index($args) { $t = Registry::getInstance()->twig->loadTemplate('form/filepicker.tpl'); $c = array(); $localpath = Functions::nz($args['path'], ''); $mediapath = SITE_PATH . '/media/'; $dir = new \DirectoryIterator($mediapath . $localpath); $picformats = array('png', 'jpg', 'gif'); $files = array(); foreach ($dir as $file) { if (!$dir->isDot()) { $path = URL_PATH . '/media/' . $localpath . $file; $f = new \stdClass(); if (strlen($file) > 4 && in_array(substr($file, -3), $picformats)) { $picture = $path; } elseif ($dir->isDir()) { $picture = TEMPLATE_PATH . 'form/pics/folder.png'; } else { $picture = TEMPLATE_PATH . 'form/pics/file.png'; } $f->path = $localpath; $f->picture = $picture; $f->name = (string) $file; $f->type = $dir->isDir() ? 'dir' : 'file'; $files[] = $f; } } $c['files'] = $files; $t->display($c); }
public function __construct($dict = array()) { $this->primary = Functions::nz($dict['primary'], false); $this->default = Functions::nz($dict['default'], null); $this->extra = Functions::nz($dict['extra'], null); $this->allownull = Functions::nz($dict['allownull'], false); }
public function __construct($dict = array()) { $this->size = Functions::nz($dict['size'], 10); if (!isset($dict['default'])) { $dict['default'] = 0; } parent::__construct($dict); }
public function __construct($dict = array()) { $this->maxlength = Functions::nz($dict['maxlength'], 255); if (!isset($dict['default'])) { $dict['default'] = ''; } parent::__construct($dict); }
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 formDict($dict = array()) { $showfields = Functions::nz($dict['fields'], false); $dict['table'] = static::getName(); $fields = array(); foreach (static::getFields() as $f) { if ($showfields && (array_key_exists($f->name, $showfields) || in_array($f->name, $showfields)) || !$showfields) { $field = Functions::nz($showfields[$f->name], array()); $field['name'] = $f->dbname; if (!isset($field['type'])) { $field['type'] = $f->getFormType(); } if ($f instanceof ForeignKeyField) { $m = $f->model; $field['dict'] = array('model' => $m::all()); } elseif ($f instanceof EnumField) { $foptions = array(); foreach ($f->options as $option) { $foptions[] = array('name' => $option); } $field['dict'] = array('array' => $foptions, 'hidden' => 'name'); } $fields[] = $field; } } $dict['fields'] = $fields; return $dict; }
public function __construct($dict = array()) { $this->size = Functions::nz($dict['size'], 5); parent::__construct($dict); }
public function __construct($dict = array()) { $this->options = Functions::nz($dict['options'], array()); parent::__construct($dict); }
private static function displayField($formid, $f, $allFields, $line = false, $row = false) { $out = array(); $hidden = false; if ($line !== false) { $inputname = "{$formid}_{$f['name']}_{$line}"; $onchange = "Form.makedirty('{$formid}',{$line})"; } else { $inputname = "{$formid}_{$f['name']}_new"; $onchange = false; } $type = isset($f['type']) ? $f['type'] : $allFields[$f['name']]['type']; $default = Functions::nz($f['default'], ''); if ($row) { $default = $row[$f['name']]; } if ($type == 'combobox') { $dict = Functions::nz($f['dict'], false); if (!$dict) { throw new FormException('No dict'); } $dict['default'] = $default; $dict['name'] = $inputname; $dict['onchange'] = $onchange; $dict['class'] = 'form-control'; $out[] = ComboBox::display($dict); } elseif ($type == 'hidden') { $hidden = true; $out[] = "<input type=\"hidden\" name=\"{$inputname}\" value=\"{$default}\" />"; } elseif ($type == 'date') { if ($default != '') { $d = new Date(); $d->fromUS($default); $default = $d->toEU(); } $dict = array('name' => $inputname, 'default' => $default, 'eu' => true, 'onchange' => $onchange); $out[] = DateBox::display($dict); } elseif ($type == 'image' || $type == 'file') { $txt = ''; if ($default != '') { if ($type == 'image') { $txt .= '<input class="btn btn-default" type="button" onclick="$.fancybox({href:$(this.nextSibling).val()});" value="Show">'; } else { $txt .= "<input class=\"btn btn-default\" type=\"button\" onclick=\"window.open(\$(this.nextSibling).val(),'_blank');\" value=\"Open\">"; } } $txt .= "<input type=\"hidden\" name=\"{$inputname}\" value=\"{$default}\" " . ($onchange ? " onchange=\"{$onchange}\"" : '') . ' /><input type="button" onclick="Form.pickfile(this.previousSibling)" value="Pick">'; $out[] = $txt; } elseif ($type == 'checkbox') { $out[] = '<input class="form-control" type="checkbox"' . ($onchange ? " onchange=\"{$onchange}\"" : '') . " name=\"{$inputname}\"" . ($default == 'true' ? 'checked="checked"' : '') . '/>'; } elseif ($type == 'int') { $out[] = '<input class="form-control"' . ($onchange ? " onchange=\"{$onchange}\"" : '') . ' style="width: ' . Functions::nz($f['width'], 100) . "px;text-align:right;\" type=\"text\" value=\"{$default}\" name=\"{$inputname}\" />"; } elseif ($type == 'real') { $out[] = '<input class="form-control"' . ($onchange ? " onchange=\"{$onchange}\"" : '') . ' style="width: ' . Functions::nz($f['width'], 100) . 'px;text-align:right;" type="text" value="' . str_replace('.', ',', $default) . "\" name=\"{$inputname}\" />"; } else { $out[] = '<input class="form-control"' . ($onchange ? " onchange=\"{$onchange}\"" : '') . ' style="width: ' . Functions::nz($f['width'], 100) . "px;\" type=\"text\" value=\"{$default}\" name=\"{$inputname}\" />"; } return array($hidden, implode("\n", $out)); }
/** * @param $dict * * @return string */ public static function display($dict) { $rs = Functions::nz($dict['rs'], false); $array = Functions::nz($dict['array'], false); $model = Functions::nz($dict['model'], false); if ($rs === false && $array === false && $model === false) { throw new FormException('ComboBox: no rs,model or array supplied!'); } $hidden = Functions::nz($dict['hidden'], 'id'); $shown = Functions::nz($dict['shown'], 'name'); $default = Functions::nz($dict['default'], false); $firstoption = Functions::nz($dict['firstoption'], false); $governs = Functions::nz($dict['governs'], false); $out = static::displayElementStart($dict); if ($firstoption) { if (!is_array($firstoption)) { throw new FormException('Fix firstoption!'); } $val = Functions::nz($firstoption['value'], '.'); $out[] = "<option value=\"{$val}\">" . $firstoption['option'] . '</option>'; } if ($rs) { $rs->moveFirst(); while ($row = $rs->next()) { $out[] = self::option($row, $governs, $hidden, $shown, $default); } } elseif ($array) { foreach ($array as $row) { $out[] = self::option($row, $governs, $hidden, $shown, $default); } } elseif ($model) { foreach ($model as $m) { $out[] = self::option($m->row(), $governs, $hidden, $shown, $default); } } $out[] = '</select>'; return implode("\n", $out); }