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 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 save($ref) { global $sql; $res = $sql->query(settings_tool::set_query($this->oid, $this->long_name, $_SESSION['uid'], 0, serialize($ref))); }
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); }
function set_setting($id, $val) { global $sql; $s = new settings_tool(); $sql->query($s->set_query(-1, $id, 0, 0, $val)); }
function handle_event($ev) { global $sql, $ddc_tables; $val = $_POST['val']; $vale = $sql->esc($val); $id = intval($_GET['id']); $r = $sql->fetch1($sql->query("SELECT count(1) FROM `" . TABLE_META_TREE_TMP . "`")); if ($r > 0) { $t = TABLE_META_TREE_TMP; } else { //working on real !! $t = TABLE_META_TREE; } $left_reload = false; /*if(preg_match('/right.e0.pr-/',$ev->rem_name)) { } else*/ switch ($ev->rem_name) { //handle root object events here /* case 'right.e0.id': if($sql->fetch1($sql->query("SELECT COUNT(1) FROM `".$t."` WHERE id='".$vale."'"))>0) { $ev->failure='Dupplicate id:'.$val; }; break; case 'right.e0.parentid': if($this->child_check($t,$id,$val)) { $left_reload=true; $sql->query("UPDATE `".$t."` SET parentid=".$vale." WHERE id=".$id); $ev->updated=true; }else{ $ev->failure='Loop detected:'.$val; }; break;*/ case 'right.e0.pr': if ($val == 'id') { break; } if ($val == 'verstamp') { break; } $left_reload = true; $sql->query("SET @v:=(SELECT `" . $sql->esc($val) . "` FROM `" . $t . "` WHERE id=" . $id . ")"); $sql->query("UPDATE `" . $t . "` AS u SET u.`" . $sql->esc($val) . "`=@v WHERE id IN (SELECT s.id FROM `" . TABLE_META_TREE_SELECTIONS . "` AS s WHERE s.selected=1 AND s.uid='" . $sql->esc($_SESSION['uid']) . "')"); $ev->updated = true; break; case 'right.e0.mmark': if ($val == 'id') { break; } if ($val == 'verstamp') { break; } $left_reload = true; $sql->query("SET @v:=(SELECT `" . $sql->esc($val) . "` FROM `" . $t . "` WHERE id=" . $id . ")"); $res = $sql->query("SELECT s.id FROM `" . $t . "` AS s WHERE s.`" . $sql->esc($val) . "`=@v"); while ($row = $sql->fetcha($res)) { $q = "INSERT INTO `" . TABLE_META_TREE_SELECTIONS . "` SET selected=1 ,uid='" . $sql->esc($_SESSION['uid']) . "' ,id='" . $row['id'] . "' ON DUPLICATE KEY UPDATE selected=1"; print "/*" . $q . "*/\n"; if (!$sql->query($q)) { print "/*" . $sql->err() . "*/\n"; } } $ev->updated = true; $ev->reload_state = true; break; case 'right.e0.mumark': if ($val == 'id') { break; } if ($val == 'verstamp') { break; } $left_reload = true; $sql->query("SET @v:=(SELECT `" . $sql->esc($val) . "` FROM `" . $t . "` WHERE id=" . $id . ")"); $res = $sql->query("SELECT s.id FROM `" . $t . "` AS s WHERE s.`" . $sql->esc($val) . "`=@v"); while ($row = $sql->fetcha($res)) { $q = "INSERT INTO `" . TABLE_META_TREE_SELECTIONS . "` SET selected=0 ,uid='" . $sql->esc($_SESSION['uid']) . "' ,id='" . $row['id'] . "' ON DUPLICATE KEY UPDATE selected=0"; print "/*" . $q . "*/\n"; if (!$sql->query($q)) { print "/*" . $sql->err() . "*/\n"; } } $ev->updated = true; $ev->reload_state = true; break; case 'right.e0.invs': if ($val == 'id') { break; } if ($val == 'verstamp') { break; } $left_reload = true; $sql->query("SET @v:=(SELECT `" . $sql->esc($val) . "` FROM `" . $t . "` WHERE id=" . $id . ")"); $res = $sql->query("SELECT s.id FROM `" . $t . "` AS s WHERE s.`" . $sql->esc($val) . "`=@v"); while ($row = $sql->fetcha($res)) { $q = "INSERT INTO `" . TABLE_META_TREE_SELECTIONS . "` SET selected= ! selected ,uid='" . $sql->esc($_SESSION['uid']) . "' ,id='" . $row['id'] . "' ON DUPLICATE KEY UPDATE selected= ! selected"; print "/*" . $q . "*/\n"; if (!$sql->query($q)) { print "/*" . $sql->err() . "*/\n"; } } $ev->updated = true; $ev->reload_state = true; break; case 'fields': break; $st = new settings_tool(); $sq = $st->set_query($ev->context[$ev->parent_name]['oid'], $ev->parent_name . '.right._mode', $_SESSION['uid'], 0, 0); $sql->query($sq); //print 'window.location.reload(true);'; //exit; $right_reload = true; break; case 'setfromsql': $ddc = new ddc_key(); $ddc->attach($t, $sql); $ddc->meta_from_sql_0($_GET['id']); //print 'window.location.reload(true);'; //exit; $right_reload = true; $ev->updated = true; break; case 'inheritance_update': $ddc = new ddc_key(); $ddc->attach($t, $sql); $ddc->inheritance_update(false); print 'window.location.reload(true);'; exit; //$right_reload=true; //$ev->updated=true; break; case 'discard': $sql->query("DELETE FROM `" . TABLE_META_TREE_TMP . "`"); $go_id = $sql->fetch1($sql->query("SELECT id FROM `" . TABLE_META_TREE_SELECTIONS . "` WHERE id=" . $sql->esc($_GET['id']))); $this->go($go_id); //print 'window.location.reload(true);'; exit; break; case 'load': $sql->query("DELETE FROM `" . TABLE_META_TREE_TMP . "`"); $wh = ""; foreach ($ddc_tables[TABLE_META_TREE_TMP]->cols as $o) { if ($wh != '') { $wh .= ", "; } $wh .= "`" . $sql->esc($o['name']) . "`"; } $sql->query("INSERT INTO `" . TABLE_META_TREE_TMP . "` (" . $wh . ") SELECT " . $wh . " FROM `" . TABLE_META_TREE . "`"); $go_id = $sql->fetch1($sql->query("SELECT id FROM `" . TABLE_META_TREE_TMP . "` WHERE id=" . $sql->esc($_GET['id']))); $this->go($go_id); //print 'window.location.reload(true);'; exit; break; case 'saveuncond': $sql->query("DELETE FROM `" . TABLE_META_TREE . "`"); $wh = ''; foreach ($ddc_tables[TABLE_META_TREE]->cols as $o) { if ($wh != '') { $wh .= ", "; } $wh .= "`" . $sql->esc($o['name']) . "`"; } $sql->query("INSERT INTO `" . TABLE_META_TREE . "` (" . $wh . ") SELECT " . $wh . " FROM `" . TABLE_META_TREE_TMP . "`"); $go_id = $sql->fetch1($sql->query("SELECT id FROM `" . TABLE_META_TREE . "` WHERE id=" . $sql->esc($_GET['id']))); $this->go($go_id); //print 'window.location.reload(true);'; exit; break; case 'apply_nonint_single': if ($t == TABLE_META_TREE) { print "alert('Open and make some changes first');"; break; } $new = new ddc_key(); $new->attach(TABLE_META_TREE_TMP, $sql); $old = new ddc_key(); $old->attach(TABLE_META_TREE, $sql); $diff = $new->gen_changes($old); if (!is_array($diff) || count($diff) == 0) { print "alert('Open and make some changes first');"; break; } reset($diff); foreach ($diff as $e) { $sql->query($e->query); } $sql->query("DELETE FROM `" . TABLE_META_TREE . "`"); $wh = ''; foreach ($ddc_tables[TABLE_META_TREE]->cols as $o) { if ($wh != '') { $wh .= ", "; } $wh .= "`" . $sql->esc($o['name']) . "`"; } $sql->query("INSERT INTO `" . TABLE_META_TREE . "` (" . $wh . ") SELECT " . $wh . " FROM `" . TABLE_META_TREE_TMP . "`"); $go_id = $sql->fetch1($sql->query("SELECT id FROM `" . TABLE_META_TREE . "` WHERE id=" . $sql->esc($_GET['id']))); $this->go($go_id); //print 'window.location.reload(true);'; exit; break; case 'del': $res = $sql->query("SELECT id FROM `" . TABLE_META_TREE_SELECTIONS . "` WHERE selected=1 AND uid='" . $_SESSION['uid'] . "'"); while ($row = $sql->fetcha($res)) { $q = "DELETE FROM `" . TABLE_META_TREE_TMP . "` WHERE id=" . $row['id']; $rr = $sql->query($q); $q = "DELETE FROM `" . TABLE_META_TREE_SELECTIONS . "` WHERE id=" . $row['id'] . " AND uid='" . $_SESSION['uid'] . "'"; $rr = $sql->query($q); } $sql->free($res); $k = 0; while (true) { $res = $sql->query("SELECT b.id from `" . TABLE_META_TREE_TMP . "` as b LEFT OUTER JOIN `" . TABLE_META_TREE_TMP . "` as c ON b.parentid=c.id WHERE c.id IS NULL AND b.parentid != 0"); $f = 0; if ($res) { while ($row = $sql->fetchn($res)) { $sql->query("DELETE FROM `" . TABLE_META_TREE_TMP . "` WHERE id=" . $row[0]); $f = 1; } $sql->free($res); } $res = $sql->query("SELECT b.id from `" . TABLE_META_TREE_SELECTIONS . "` as b LEFT OUTER JOIN `" . TABLE_META_TREE_TMP . "` as c ON b.id=c.id WHERE c.id IS NULL AND c.uid ='" . $_SESSION['uid'] . "'"); $d = 0; if ($res) { while ($row = $sql->fetchn($res)) { $sql->query("DELETE FROM `" . TABLE_META_TREE_SELECTIONS . "` WHERE id=" . $row[0] . " AND uid ='" . $_SESSION['uid'] . "'"); $d = 1; } $sql->free($res); } if ($f == 0) { break; } $k++; if ($k == 10) { break; } //10 iterations??????????????? Maybe do more, or do delete twice. } $go_id = $sql->fetch1($sql->query("SELECT id FROM `" . TABLE_META_TREE_TMP . "` WHERE id=" . $sql->esc($_GET['id']))); $this->go($go_id); //print 'window.location.reload(true);'; exit; break; case 'add': $parent = intval($_GET['id']); if ($t != TABLE_META_TREE_TMP) { $parent = 0; } $sql->query("INSERT INTO `" . TABLE_META_TREE_TMP . "` SET id=0,parentid=" . $parent); $id = $sql->fetch1($sql->query("SELECT LAST_INSERT_ID()")); $this->go($id); exit; break; case 'clone': if (isset($_GET['id'])) { $id = $this->clone_recursive($_GET['id']); $this->go($id); } exit; break; case 'copy': if (isset($_GET['id'])) { $_SESSION['clipboard']['format'] = 'ddc_meta_node'; $_SESSION['clipboard']['data'] = $_GET['id']; } break; case 'paste': if (isset($_SESSION['clipboard']['data']) && $_SESSION['clipboard']['format'] == 'ddc_meta_node') { $id = $this->clone_recursive($_SESSION['clipboard']['data']); $sql->query("UPDATE `" . $t . "` SET parentid=" . $_GET['id'] . " WHERE id=" . $id); $ev->updated = true; } break; case 'desel': $sql->query("UPDATE `" . TABLE_META_TREE_SELECTIONS . "` SET selected=0 WHERE uid='" . $_SESSION['uid'] . "'"); $ev->updated = true; $ev->reload_state = true; break; case 'selchildren': if (!isset($_GET['id'])) { exit; } $f_q = "SELECT id FROM `" . $t . "` WHERE parentid=" . intval($_GET['id']); $ev->updated = true; $ev->reload_state = true; case 'selnear': if (!isset($_GET['id'])) { exit; } $p_id = $sql->fetch1($sql->query("SELECT parentid FROM `" . $t . "` WHERE id=" . intval($_GET['id']))); if (!isset($f_q)) { $f_q = "SELECT id FROM `" . $t . "` WHERE parentid=" . $p_id; } $ev->reload_state = true; case 'foldall': case 'unfoldall': $v = new sql_immed(editor_meta_tree_node::FOLDING_MODE); if ($ev->rem_name == 'unfoldall') { $v->val = $v->val == 1 ? 0 : 1; } $m_Col = 'folded'; if (!isset($f_q)) { $f_q = "SELECT id FROM `" . $t . "`"; } if ($ev->rem_name == 'selnear' || $ev->rem_name == 'selchildren') { $m_Col = 'selected'; $v->val = 1; } $q = new query_gen_ext('INSERT UPDATE'); $i_id = new sql_immed(); $q->into->exprs[] = new sql_column(NULL, TABLE_META_TREE_SELECTIONS); $q->set->exprs[] = new sql_expression('=', array(new sql_column(NULL, NULL, $m_Col), $v)); $q->set->exprs[] = new sql_expression('=', array(new sql_column(NULL, NULL, 'id'), $i_id)); $q->set->exprs[] = new sql_expression('=', array(new sql_column(NULL, NULL, 'uid'), new sql_immed($_SESSION['uid']))); $res = $sql->query($f_q); while ($row = $sql->fetcha($res)) { $i_id->val = $row['id']; $sql->query($q->result()); } $ev->updated = true; break; default: } if ($right_reload) { $right_id = $ev->context[$ev->parent_name]['right_id']; $e = $this->editors['right']; unset($e->com_parent); $e->context =& $ev->context; $e->name = $ev->parent_name . '.right'; $e->etype = $ev->parent_type . '.' . $e->etype; $e->oid = -1; $e->keys = array(); print "\$i('" . js_escape($right_id) . "').innerHTML="; reload_object($e, true); } $left_id = $ev->context[$ev->parent_name]['left_id']; $state_view_id = $ev->context[$ev->parent_name]['state_view_id']; $e = $this->editors['node']; unset($e->com_parent); $e->context =& $ev->context; $e->name = $ev->parent_name . '.node'; $e->etype = $ev->parent_type . '.' . $e->etype; $e->oid = -1; $e->keys = array(); $e->keys['id'] = 0; $e->args['folded'] = editor_meta_tree_node::FOLDING_MODE == 1 ? 0 : 1; editor_generic::handle_event($ev); if ($ev->updated) { print "\$i('" . js_escape($left_id) . "').innerHTML="; reload_object($e); } if ($ev->reload_state) { $this->editors['state_view']->id_alloc(); print "\$i('" . js_escape($state_view_id) . "').innerHTML="; reload_object($this->editors['state_view'], true); } }
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 store($obj, $new) { global $sql; if (!isset($new->rev)) { $new->rev = 0; } else { $new->rev++; } $st = new settings_tool(); $r = $sql->query($st->set_query($this->oid, 'mq', $_SESSION['uid'], 0, serialize($new))); }
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);