Example #1
0
 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;
 }
Example #2
0
 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);
 }
Example #3
0
 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();
     }
 }