function result() { if (!isset($this->exprs)) { $this->error = loc_get_val('sql_list', 'unset', 'Expression is not set!'); return NULL; } $res = ' '; if (is_array($this->exprs)) { $exprs =& $this->exprs; } else { $exprs[] =& $this->exprs; } if (count($exprs) == 0) { return ''; } foreach ($exprs as $e) { if ($res != ' ') { $res .= $this->delimiter . ' '; } if (!is_object($e)) { $this->error = loc_get_val('sql_list', 'not_an_object', '$exprs array contains weird data.'); return NULL; } $desc = $e->invert == 1 ? 'DESC ' : 'ASC'; if (is_a($e, 'sql_immed') || is_a($e, 'sql_column') || is_a($e, 'sql_list') || $this->nopar) { //no parenthesis required $res .= $e->result() . ' ' . $desc; } else { $res .= '(' . $e->result() . ') ' . $desc; } } //check for dupplicate alias/ambigous column return $res; }
function __construct() { parent::__construct('div'); $this->etype = 'editor_sql_select'; $this->css_class = $this->etype; $this->args = array(); editor_generic::addeditor('clean', new editor_button()); $this->editors['clean']->attributes['value'] = 'clean'; $this->append_child($this->editors['clean']); $editors_tabs = new container_tab_control(); //$editors_tabs=new container_tab_control_l; editor_generic::addeditor('tabs', $editors_tabs); $this->append_child($editors_tabs); $wrapper = new wrapper_sql_select($this, 'sql_list', 'what'); $editors_tabs->add_tab('what', loc_get_val('editor_sql_select', 'sql_what', 'what')); $editors_tabs->tabs['what']->div->append_child($wrapper); $wrapper = new wrapper_sql_select($this, 'sql_list', 'from'); $editors_tabs->add_tab('from', loc_get_val('editor_sql_select', 'sql_from', 'from')); $editors_tabs->tabs['from']->div->append_child($wrapper); $wrapper = new wrapper_sql_select($this, 'sql_joins', 'joins'); $editors_tabs->add_tab('join', loc_get_val('editor_sql_select', 'sql_joins', 'join')); $editors_tabs->tabs['join']->div->append_child($wrapper); $wrapper = new wrapper_sql_select($this, 'sql_expression', 'where'); $editors_tabs->add_tab('where', loc_get_val('editor_sql_select', 'sql_where', 'where')); $editors_tabs->tabs['where']->div->append_child($wrapper); $wrapper = new wrapper_sql_select($this, 'sql_list', 'group'); $editors_tabs->add_tab('group', loc_get_val('editor_sql_select', 'sql_group', 'group')); $editors_tabs->tabs['group']->div->append_child($wrapper); $wrapper = new wrapper_sql_select($this, 'sql_expression', 'having'); $editors_tabs->add_tab('having', loc_get_val('editor_sql_select', 'sql_having', 'having')); $editors_tabs->tabs['having']->div->append_child($wrapper); $wrapper = new wrapper_sql_select($this, 'sql_list', 'order'); $editors_tabs->add_tab('order', loc_get_val('editor_sql_select', 'sql_order', 'order')); $editors_tabs->tabs['order']->div->append_child($wrapper); $editors_tabs->add_tab('limit', loc_get_val('editor_sql_select', 'sql_limit', 'limit')); $tb = new dom_table(); $tr = new dom_tr(); $tb->append_child($tr); $td = new dom_td(); $tr->append_child($td); $txt = new dom_statictext(); $td->append_child($txt); $txt->text = loc_get_val('editor_sql_select', 'sql_limit_skip', 'skip'); $td = new dom_td(); $tr->append_child($td); editor_generic::addeditor('limit_skip', new editor_text()); $td->append_child($this->editors['limit_skip']); $this->editors['limit_skip']->add_btn = new dom_any_noterm('input'); $td->append_child($this->editors['limit_skip']->add_btn); $this->editors['limit_skip']->add_btn->attributes['value'] = '+'; $this->editors['limit_skip']->add_btn->attributes['type'] = 'submit'; $this->editors['limit_skip']->sub_btn = new dom_any_noterm('input'); $td->append_child($this->editors['limit_skip']->sub_btn); $this->editors['limit_skip']->sub_btn->attributes['value'] = '-'; $this->editors['limit_skip']->sub_btn->attributes['type'] = 'submit'; $tr = new dom_tr(); $tb->append_child($tr); $td = new dom_td(); $tr->append_child($td); $txt = new dom_statictext(); $td->append_child($txt); $txt->text = loc_get_val('editor_sql_select', 'sql_limit_count', 'count'); $td = new dom_td(); $tr->append_child($td); editor_generic::addeditor('limit_count', new editor_text()); $td->append_child($this->editors['limit_count']); $editors_tabs->tabs['limit']->div->append_child($tb); $editors_tabs->add_tab('result', loc_get_val('editor_sql_select', 'result_tab', 'result')); editor_generic::addeditor('result_button', new editor_button()); $editors_tabs->tabs['result']->div->append_child($this->editors['result_button']); //$this->editors['result_button']->css_style['display']='none'; $this->result_div = new dom_div(); $editors_tabs->tabs['result']->div->append_child($this->result_div); }
function html_inner() { global $sql; $year = intval($this->args['year_selector']); if ($year <= 0 || $year == '') { $year = date("Y"); } $this->args['y'] = $year; #$this->year->html(); $res = $sql->fetch1($sql->query("SELECT `id` FROM `" . TABLE_META_TREE . "` WHERE `name`='date' AND `sql_table`='calendar' AND `isstored`=1 AND `parentid`=" . $this->oid)); $this->editors['d']->oid = $res; $res = $sql->query("SELECT `working`,`isshort`,`day`,`month` FROM `calendar` WHERE `year`=" . $year); while ($row = $sql->fetcha($res)) { $dc[$row['month']][$row['day']] = array($row['working'], $row['isshort']); } for ($mm = 1; $mm <= 12; $mm++) { $this->month->html_head(); $this->tr->html_head(); $this->td->attributes['colspan'] = 7; $this->args['d'] = loc_get_val(-1, "month_name." . $mm, date("F", mktime(0, 0, 0, $mm, 1, $year))); $this->td->html(); $this->tr->html_tail(); unset($this->td->attributes['colspan']); $dd = 1; $dd_lim = $mm == 12 ? date("j", mktime(0, 0, 0, 1, 0, $year + 1)) : date("j", mktime(0, 0, 0, $mm + 1, 0, $year)); #while($dd<=$dd_lim) for ($rr = 0; $rr < 6; $rr++) { $this->tr->id_alloc(); $this->tr->html_head(); for ($k = 0; $k < 7; $k++) { $wd = $k + 1; if ($wd == 7) { $wd = 0; } if ($dd == 1) { if (date("w", mktime(0, 0, 0, $mm, $dd, $year)) == $wd) { $valid = true; } else { $valid = false; $this->args['d'] = ''; $this->editors['d']->bootstrap(); $this->td->html(); } } else { if ($dd > $dd_lim) { $valid = false; $this->editors['d']->bootstrap(); $this->args['d'] = ''; $this->td->html(); } else { $valid = true; } } if ($valid) { #$res=$sql->fetchn($sql->query("SELECT `working`,`isshort` FROM `calendar` WHERE `day`=".$dd." AND `month`=".$mm." AND `year`=".$year)); $res = $dc[$mm][$dd]; if ($res[0] === '0') { #$this->td->css_style['background-color']='#FF9999'; $this->editors['d']->css_style['background-color'] = '#FF9999'; } if ($res[1] === '1') { #$this->td->css_style['color']='red'; $this->editors['d']->css_style['color'] = 'red'; } $this->args['d'] = $dd; $this->keys[$this->editors['d']->oid] = $year . "-" . $mm . "-" . $dd; $dd += 1; $this->editors['d']->bootstrap(); $this->td->html(); unset($this->editors['d']->css_style['background-color']); unset($this->editors['d']->css_style['color']); $this->keys[$this->editors['d']->oid] = ''; #unset($this->td->css_style['background-color']); #unset($this->td->css_style['color']); } $this->td->id_alloc(); } $this->tr->html_tail(); } $this->month->html_tail(); $this->month->id_alloc(); } }