function handle_event($ev) { global $sql; $oid = $ev->context[$ev->long_name]['oid']; $customid = $ev->context[$ev->parent_name]['htmlid']; $io_class = $ev->context[$ev->parent_name]['io_class']; $setting_tool = new settings_tool(); $filter_val = $sql->fetch1($sql->query($setting_tool->single_query($oid, $ev->parent_name . '!filter', $_SESSION['uid'], 0))); //function single_query($oid,$setting,$uid,$preset,$flags='') //$oid=$ev->context[$io_name]['oid']; //print 'oid='.$oid; //print $ev->parent_name.','.$ev->name.','.$ev->rem_name.':'; $this->io = new $io_class(); $pl = new editor_search_pick_list(); $pl->io =& $this->io; $pl->name = $ev->parent_name; $pl->long_name = $ev->parent_name; $pl->context =& $ev->context; $pl->keys =& $ev->keys; $pl->text_inp = $ev->context[$ev->parent_name]['rval_id']; $pl->cont_inp = $ev->context[$ev->parent_name]['filter_id']; switch ($ev->rem_name) { case $ev->name: $v = $_POST['val']; $hr = $this->io->to_hr($pl, $v); print "var mm=\$i('" . js_escape($ev->context[$ev->parent_name]['vval_id']) . "');mm.textContent='" . js_escape($hr . '>') . "';"; print "mm.setAttribute('title','" . js_escape($hr) . "');"; print "\$i('" . js_escape($ev->context[$ev->parent_name]['rval_id']) . "').style.backgroundColor='white';"; return; break; case 'filter': $pl->filter_val = $_POST['val']; $sql->query($setting_tool->set_query($oid, $ev->parent_name . '!filter', $_SESSION['uid'], 0, $pl->filter_val)); $pl->bootstrap(); print "var sugg=\$i('" . js_escape($ev->context[$ev->parent_name]['suggestions_id']) . "');sugg.innerHTML="; reload_object($pl); $js = ''; foreach ($pl->result_array as $v) { if ($js != '') { $js .= ','; } $js .= '{id:\'' . js_escape($v->id) . '\',val:\'' . js_escape($v->val) . '\'}'; } print 'var filter=$i(\'' . js_escape($ev->context[$ev->parent_name]['filter_id']) . '\');'; print 'filter.as_objects=[' . $js . '];'; print 'filter.as_id = null;'; print 'filter.page_offset = 0;'; //print "alert((findPosY(sugg)+sugg.offsetHeight)+' '+(window.pageYOffset+window.innerHeight));"; print "if((findPosY(sugg)+sugg.offsetHeight) > (window.pageYOffset+window.innerHeight))window.scroll(0,findPosY(sugg)+sugg.offsetHeight-window.innerHeight);"; //print 'filter.scrollIntoView();'; break; case 'next_page': case 'prev_page': case 'first_page': $pl->filter_val = $filter_val; $pl->io->page_offset = $_POST['val']; //print "alert('".$_POST['val']."');"; $pl->bootstrap(); print "\$i('" . js_escape($ev->context[$ev->parent_name]['suggestions_id']) . "').innerHTML="; reload_object($pl); $js = ''; foreach ($pl->result_array as $v) { if ($js != '') { $js .= ','; } $js .= '{id:\'' . js_escape($v->id) . '\',val:\'' . js_escape($v->val) . '\'}'; } print '$i(\'' . js_escape($ev->context[$ev->parent_name]['filter_id']) . '\').as_objects=[' . $js . '];'; print '$i(\'' . js_escape($ev->context[$ev->parent_name]['filter_id']) . '\').as_id = null;'; break; } editor_generic::handle_event($ev); }
function handle_event($ev) { global $sql; $ev->reload_list = false; $this->oid = $ev->context[$ev->parent_name]['oid']; $this->long_name = $ev->parent_name; $st = new settings_tool(); $this->args['fltr'] = $sql->qv1($st->single_query($this->oid, $this->long_name . ".fltr", $_SESSION['uid'], "")); switch ($ev->rem_name) { case 'fltr': $sql->query($st->set_query($this->oid, $this->long_name . '.fltr', $_SESSION['uid'], 0, $_POST['val'])); $this->args['fltr'] = $_POST['val']; $ev->reload_list = true; break; } if ($ev->reload_list) { $customid = $ev->context[$ev->parent_name]['list_id']; //$htmlid=$ev->context[$ev->long_name]['htmlid']; $r = new codes_match_list(); $r->context =& $ev->context; $r->keys =& $ev->keys; $r->oid = $this->oid; $r->args = $this->args; $r->name = $ev->parent_name . ".list"; $r->etype = $ev->parent_type . "." . get_class($r); $r->bootstrap(); print "var nya=\$i('" . js_escape($customid) . "');"; print "try{nya.innerHTML="; reload_object($r, true); print "nya.scrollTop=0;}catch(e){ window.location.reload(true);};"; //common part } editor_generic::handle_event($ev); }
print "setTimeout(\"if(\$i('" . $_POST['htmlid'] . "'))\$i('" . $_POST['htmlid'] . "').style.backgroundColor='';\",500);"; print "last_generated_id=" . $idcounter . ";"; if (isset($_POST['refresh_list'])) { foreach ($_POST['refresh_list'] as $a) { $l = explode('/', $a); $res = $sql->fetch1($sql->query("SELECT " . $l[1] . " FROM `" . $sql->esc($workingtable) . "` WHERE id=" . $sql->esc($_POST['keys']['id']))); print "\$i('" . $l[0] . "').value='" . js_escape($res) . "';"; } } // print "alert('".$_POST['keys']['id']."');"; // print "alert('".js_escape($q.':'.$sql->err())."');"; exit; } ///////////////////reloading tests if ($_GET['push'] != '') { $settings_tool = new settings_tool(); $q = $settings_tool->set_query(-1, 'tree_active', 0, '', $_GET['push']); $sql->query($q); print 'chse.safe_alert(111,\'' . js_escape($q) . "');"; /* $tr=new dom_root_reload; if(isset($_POST['last_generated_id']))$idcounter=$_POST['last_generated_id']; $l=new dom_meta_att_view; $tr->append_child($l); $tr->for_each_set('oid',-1); $tr->collect_oids($settings_tool); $tr->settings_array=$settings_tool->read_oids($sql); $tr->after_build(); print "\$i('rdiv').innerHTML=".$tr->html(); */ if (isset($_POST['last_generated_id'])) { $idcounter = $_POST['last_generated_id'];
function save($ref) { global $sql; $res = $sql->query(settings_tool::set_query($this->oid, $this->long_name, $_SESSION['uid'], 0, serialize($ref))); }
function setting_val($oid, $setting, $defval) { global $sql; if (!is_array($this->settings_array)) { $qod = true; } elseif (!is_array($this->settings_array[$oid])) { $qod = true; } elseif (!isset($this->settings_array[$oid][$setting])) { $qod = true; } else { return $this->settings_array[$oid][$setting]; } $settings_tool = new settings_tool(); $res = $sql->q1($settings_tool->single_query($oid, $setting, $_SESSION['uid'], 0)); if (!isset($res)) { return $defval; } else { return $res; } }
function set_setting($id, $val) { global $sql; $s = new settings_tool(); $sql->query($s->set_query(-1, $id, 0, 0, $val)); }
function bootstrap() { global $sql; $this->long_name = editor_generic::long_name(); $st = new settings_tool(); $sq = $st->single_query($this->oid, $this->long_name . '._mode', $_SESSION['uid'], 0); $this->mode = $sql->fetch1($sql->query($sq)); if (!isset($this->mode)) { $this->mode = 0; } //if(is_array($this->editors))foreach($this->editors as $i => $e) //{ $i = 'e' . $this->mode; $e = $this->editors[$i]; $this->context[$this->long_name . '.' . $i]['var'] = $i; $e->context =& $this->context; $e->keys =& $this->keys; $e->args =& $this->args; $e->oid = $this->oid; //} //if(is_array($this->editors))foreach($this->editors as $e)$e->bootstrap(); $e->bootstrap(); }
function handle_event($ev) { global $sql, $ddc_tables; $ev->do_reload = false; $this->long_name = $ev->parent_name; $this->oid = $ev->context[$ev->parent_name]['oid']; $st = new settings_tool(); $this->u_sq($ev, 'filters', '_filters'); $this->u_sq($ev, 'order', '_order'); $this->u_sq($ev, 'insert', '_insert'); $this->i_sq($ev, 'offset', '_offset'); $this->i_sq($ev, 'count', '_count'); $this->i_sq($ev, 'table', '_table'); $this->i_sq($ev, 'db', '_db'); if (intval($ev->settings->count) <= 0) { $ev->settings->count = 20; } if (intval($ev->settings->offset) <= 0) { $ev->settings->offset = 0; } if ($ev->settings->db == '') { unset($ev->settings->db); } /* $filters=$sql->qv($st->single_query($this->oid,$this->long_name."._filters",$_SESSION['uid'],0)); $ev->settings->filters=unserialize($filters[0]); $order=$sql->qv($st->single_query($this->oid,$this->long_name."._order",$_SESSION['uid'],0)); $ev->settings->order=unserialize($order[0]);*/ $this->fetch_struct($ev); switch ($ev->rem_name) { case 'ed_insert.insert': $qg = new query_gen_ext("INSERT"); $qg->into->exprs[] = new sql_column($ev->settings->db, $ev->settings->table); foreach ($this->t_keys as $kn => $kv) { $qg->set->exprs[] = new sql_expression('=', array(new sql_column(NULL, NULL, $kn), new sql_immed($ev->settings->insert['+' . $kn]))); } if ($sql->query($qg->result()) !== false) { $ev->do_reload = true; $ev->reload_rowcount = true; } else { print "alert('Не удалось добавить запись.');"; } break; case 'ed_list.del': // $this->cascade_delete($ev->keys['id']); $qg = new query_gen_ext('DELETE'); foreach ($this->t_keys as $kn => $kv) { $qg->where->exprs[] = new sql_expression('=', array(new sql_column(NULL, NULL, $kn), new sql_immed($ev->keys['-' . $kn]))); } $qg->from->exprs[] = new sql_column($ev->settings->db, $ev->settings->table); $sql->query($qg->result()); $ev->do_reload = true; $ev->reload_rowcount = true; break; case 'ed_list.clone': $qg = new query_gen_ext('INSERT SELECT'); $qg->into->exprs[] = new sql_column($ev->settings->db, $ev->settings->table); $qg->from->exprs[] = new sql_column($ev->settings->db, $ev->settings->table); foreach ($this->t_cols as $col) { if ($this->t_keys[$col['name']] != true) { $qg->what->exprs[] = new sql_column(NULL, NULL, $col['name'], $col['name']); } else { $qg->what->exprs[] = new sql_immed($ev->settings->insert['+' . $col['name']], $col['name']); $qg->where->exprs[] = new sql_expression('=', array(new sql_column(NULL, NULL, $col['name']), new sql_immed($ev->keys['-' . $col['name']]))); } } if ($sql->query($qg->result()) !== false) { $ev->do_reload = true; $ev->reload_rowcount = true; } else { print "alert('Не удалось добавить запись.');"; } break; case 'ed_list.edit': print "alert('Not supported yet');"; return; break; case 'ed_pager.ed_offset': $d = intval($_POST['val']); $sql->query($st->set_query($this->oid, $this->long_name . '._offset', $_SESSION['uid'], 0, $d)); $ev->settings->offset = $d; $ev->do_reload = true; break; case 'ed_pager.ed_count': $d = intval($_POST['val']); $sql->query($st->set_query($this->oid, $this->long_name . '._count', $_SESSION['uid'], 0, $d)); $ev->settings->count = $d; $ev->do_reload = true; break; case 'ed_table': $sql->query($st->set_query($this->oid, $this->long_name . '._table', $_SESSION['uid'], 0, $_POST['val'])); $ev->settings->table = $_POST['val']; $ev->do_reload = true; $ev->reload_insert = true; case 'ed_table.fo': $ev->ed_table = 1; break; case 'ed_db': $sql->query($st->set_query($this->oid, $this->long_name . '._db', $_SESSION['uid'], 0, $_POST['val'])); $ev->settings->db = $_POST['val']; $ev->do_reload = true; $ev->reload_insert = true; case 'ed_db.fo': $ev->ed_db = 1; break; } if (is_array($this->t_cols)) { foreach ($this->t_cols as $col) { if ($ev->rem_name === 'ed_list.-' . $col['name']) { $qg = new query_gen_ext('UPDATE'); foreach ($this->t_keys as $key => $kv) { $qg->where->exprs[] = new sql_expression('=', array(new sql_column(NULL, NULL, $key), new sql_immed($ev->keys['-' . $key]))); } $qg->into->exprs = array(new sql_column($ev->settings->db, $ev->settings->table)); $qg->set->exprs = array(new sql_expression('=', array(new sql_column(NULL, NULL, $col['name']), new sql_immed($_POST['val'])))); $res = $sql->query($qg->result()); } } } editor_generic::handle_event($ev); if ($ev->filters_changed) { $sql->query($st->set_query($this->oid, $this->long_name . "._filters", $_SESSION['uid'], 0, serialize($ev->settings->filters))); } if ($ev->order_changed) { $sql->query($st->set_query($this->oid, $this->long_name . "._order", $_SESSION['uid'], 0, serialize($ev->settings->order))); } if ($ev->reload_insert) { $sql->query($st->set_query($this->oid, $this->long_name . "._insert", $_SESSION['uid'], 0, serialize(array()))); $ev->settings->insert = array(); } if ($ev->insert_changed) { $sql->query($st->set_query($this->oid, $this->long_name . "._insert", $_SESSION['uid'], 0, serialize($ev->settings->insert))); } if ($ev->changed) { $ev->do_reload = true; } if ($ev->do_reload) { $this->args['ed_offset'] = $ev->settings->offset; $this->args['ed_count'] = $ev->settings->count; $this->args['ed_filters'] = $ev->settings->filters; $this->args['ed_order'] = $ev->settings->order; $this->args['ed_table'] = $ev->settings->table; $this->args['ed_db'] = $ev->settings->db; $this->args['ed_insert'] = $ev->settings->insert; $r = new QRVA_QR(); $r->context =& $ev->context; $r->keys =& $ev->keys; $r->oid = $oid; $r->args =& $this->args; $r->name = $ev->parent_name . ".ed_list"; $r->etype = $ev->parent_type . "." . $r->etype; print "(function(){var nya=\$i('" . js_escape($ev->context[$this->long_name]['ed_list_id']) . "');"; print "try{nya.innerHTML="; reload_object($r, true); print "}catch(e){/* window.location.reload(true);*/};"; print "\$i('" . js_escape($ev->context[$this->long_name]['link_save_xml_id']) . "').setAttribute('href','" . js_escape("/ext/table_xml_dump.php?table=" . urlencode($this->args['ed_table']) . "&db=" . urlencode($this->args['ed_db'])) . "');"; print "\$i('" . js_escape($ev->context[$this->long_name]['link_save_csv_id']) . "').setAttribute('href','" . js_escape("/ext/table_csv_dump.php?table=" . urlencode($this->args['ed_table']) . "&db=" . urlencode($this->args['ed_db'])) . "');"; if ($ev->reload_insert) { $r = new QRVA_insert(); $r->context =& $ev->context; $r->keys =& $ev->keys; $r->oid = $oid; $r->args =& $this->args; $r->name = $ev->parent_name . ".ed_insert"; $r->etype = $ev->parent_type . ".QRVA_insert"; print "nya=\$i('" . js_escape($ev->context[$this->long_name]['ed_insert_id']) . "');"; print "try{nya.innerHTML="; reload_object($r, true); print "}catch(e){/* window.location.reload(true);*/};"; $ev->reload_rowcount = true; } if ($ev->reload_rowcount) { $rq = new QRVA_rc(); $rq->context =& $ev->context; $rq->keys =& $ev->keys; $rq->oid = $oid; $rq->args =& $this->args; $rq->name = $ev->parent_name . ".ed_rowcount"; $rq->etype = $ev->parent_type . "." . $rq->etype; print "nya=\$i('" . js_escape($ev->context[$this->long_name]['ed_rowcount_id']) . "');"; print "try{nya.innerHTML="; reload_object($rq, true); print "}catch(e){/* window.location.reload(true);*/};"; } print "})();"; } }
function handle_event($ev) { global $sql; $oid = $ev->context[$ev->parent_name]['oid']; switch ($ev->rem_name) { case 'default_map': case 'reset_map': case 'direct_map': $parent_name = preg_replace('/\\.[^.]+$/', '', $ev->parent_name); $setting_tool = new settings_tool(); $mapping = unserialize($sql->fetch1($sql->query($setting_tool->single_query($oid, $parent_name . '!txlumapping', $_SESSION['uid'], 0)))); $collist = $ev->context[$ev->long_name]['collist']; $self_id = $ev->context[$ev->long_name]['self_id']; $src_rows = $ev->context[$ev->long_name]['src_rows']; $cnt = 0; foreach ($collist as $r => $v) { $c_i[$cnt++] = $r; } $c2 = 0; foreach ($src_rows as $r) { switch ($ev->rem_name) { case 'default_map': $mapping[$c_i[$c2++]] = $r; break; case 'reset_map': unset($mapping[$c_i[$c2++]]); break; case 'direct_map': if (isset($src_rows[$c_i[$c2]])) { $mapping[$c_i[$c2]] = $c_i[$c2]; } else { unset($mapping[$c_i[$c2]]); } $c2++; break; } } unset($mapping['']); $sql->query($setting_tool->set_query($oid, $parent_name . '!txlumapping', $_SESSION['uid'], 0, serialize($mapping))); break; } editor_generic::handle_event($ev); }
function prepare() { global $sql; $st = new settings_tool(); $r = $sql->q1($st->single_query($this->oid, 'mq', $_SESSION['uid'], 0)); if ($r != '') { $res = unserialize($r); } else { $res = new meta_query_gen(); } $this->meta_query = $res; $r = $sql->q1($st->single_query($this->oid, 'ed_count', $_SESSION['uid'], 0)); if ($r != '') { $res = intval($r); } else { $res = 10; } $ed_count = $res; $r = $sql->q1($st->single_query($this->oid, 'ed_offset', $_SESSION['uid'], 0)); if ($r != '') { $res = intval($r); } else { $res = 0; } $ed_offset = $res; $colidx = 0; if (is_array($this->meta_query->result_def->children)) { foreach ($this->meta_query->result_def->children as $r) { if (get_class($r) == 'fm_meta_object') { $hrarr = $sql->qkv("SELECT a.id,coalesce(b.val,a.name) as hr_name FROM `" . TABLE_META_TREE . "` as a LEFT OUTER JOIN `" . TABLE_META_I18N . "` as b ON a.id=b.object AND b.var='name' AND b.loc='" . $_SESSION['lang'] . "' WHERE a.id IN (" . str_replace('.', ',', $r->path) . ")"); $hrt = ''; $hrm = ''; foreach ($hrarr as $kk => $e) { if ($hrt != '') { $hrt .= '.'; } $hrt .= $e; if ($hrm != '') { $hrm .= '.'; } $hrm .= $kk; } } else { $hrt = 'expression ' . $colidx; $hrm = ''; } $td = new dom_td(); unset($td->id); $td->append_child(new dom_statictext($hrt)); $td->attributes['title'] = $hrm; $this->c_c->append_child($td); editor_generic::addeditor('cd' . $colidx, new editor_statictext()); $td = new dom_td(); unset($td->id); $td->append_child($this->editors['cd' . $colidx]); $this->c_d->append_child($td); $colidx++; } } $this->meta_query->oid = $this->oid; $this->sql_obj = $this->meta_query->to_show(); $this->sql_obj->lim_count = $ed_count; $this->sql_obj->lim_offset = $ed_offset; $colidx1 = 0; if (is_array($this->sql_obj->what->exprs)) { foreach ($this->sql_obj->what->exprs as $e) { $e->alias = 'cd' . $colidx1; $colidx1++; } } }
function handle_event($ev) { global $sql; $reload_list = false; $oid = $ev->context[$ev->parent_name]['oid']; $dbg = $ev->context[$ev->parent_name]['dbg']; #$customid=$ev->context[$ev->parent_name]['htmlid']; $setting_tool = new settings_tool(); $file_val = $sql->fetch1($sql->query($setting_tool->single_query($oid, $ev->parent_name . '!file', $_SESSION['uid'], 0))); $this->task = $sql->fetch1($sql->query($setting_tool->single_query($oid, $ev->parent_name . '!task', $_SESSION['uid'], 0))); switch ($ev->rem_name) { case 'task': $val = $_POST['val']; $sql->query($setting_tool->set_query($oid, $ev->parent_name . '!task', $_SESSION['uid'], 0, intval($val))); break; case 'file_picker': $file_val = $_POST['val']; $sql->query($setting_tool->set_query($oid, $ev->parent_name . '!file', $_SESSION['uid'], 0, $file_val)); #print #'$i(\''.$dbg."').innerHTML='".js_escape(htmlspecialchars($setting_tool->set_query($oid,$ev->parent_name.'!file',$_SESSION['uid'],0,$file_val)))."';"; $reload_list = true; break; case 'accept': $this->do_accept($file_val, false); $reload_list = true; break; case 'add': $this->do_accept($file_val, true); $reload_list = true; break; case 'unmatch': $c = $this->dump_unmatch($file_val, preg_replace('/\\.([^.]+)$/', '_u.$1', $file_val)); print "alert('" . js_escape($c) . "');"; break; } if ($reload_list) { $this->args['file_picker'] = $file_val; $this->args['task'] = $this->task; $customid = $ev->context[$ev->parent_name]['file_contents_id']; $oid = $ev->context[$ev->parent_name]['oid']; //$htmlid=$ev->context[$ev->long_name]['htmlid']; $r = new codes_import_xdiv(); $r->context =& $ev->context; $r->keys =& $ev->keys; $r->oid = $oid; $r->args = $this->args; $r->name = $ev->parent_name . ".file_contents"; $r->etype = $ev->parent_type . ".codes_import_xdiv"; $r->bootstrap(); print "var nya=\$i('" . js_escape($customid) . "');"; print "try{nya.innerHTML="; reload_object($r, true); print "nya.scrollTop=0;}catch(e){ window.location.reload(true);};"; //common part } editor_generic::handle_event($ev); }
<?php set_include_path($_SERVER['DOCUMENT_ROOT']); session_start(); require_once 'lib/settings.php'; $tool = new settings_tool(); $set->oid = $_POST['oid']; $set->setting = $_POST['setting']; $set->uid = $_SESSION['uid']; if (!isset($_SESSION['uid'])) { print 'uid unset:'; print $set->uid; exit; } $set->preset = isset($_POST['preset']) ? $_POST['preset'] : 0; $set->val = $_POST['val']; $sql->query($tool->set_query($set->oid, $set->setting, $set->uid, $set->preset, $set->val)); #print $tool->set_query($set->oid,$set->setting,$set->uid,$set->preset,$set->val);