id"; $other_id=db_item("select id from $tb_tree $where limit 1"); db_query("update $tb_tree set family_id=\"".mysql_escape_string($other_id)."\" $where"); } // PASSTHRU redirect } if (isset($move)) { $order=db_item("select max(family_order) from $tb_tree where family_id=\"".mysql_escape_string($move_dst)."\""); foreach(preg_split('/[ ,]/',$move_src,-1,PREG_SPLIT_NO_EMPTY) as $src) { // UGLY but how to do sequential setting of increasing family_order? $result=db_query("select id from $tb_tree where family_id=\"".mysql_escape_string($src)."\" order by family_order"); while (($row=mysql_fetch_array($result))) db_query("update $tb_tree set family_order=\"".(++$order)."\",family_id=\"".mysql_escape_string($move_dst)."\"" ." where id=\"".mysql_escape_string($row["id"])."\""); } // PASSTHRU redirect } if (isset($reorder)) { $row=db_array("select family_id,family_order from $tb_tree where id=\"".mysql_escape_string($id)."\""); $other_order=db_item("select family_order from $tb_tree where family_id=\"".mysql_escape_string($row["family_id"])."\"" ." and family_order".($reorder_by<0 ? "<" : ">").$row["family_order"] ." order by family_order ".($reorder_by<0 ? "desc" : "asc")." limit 1"); db_query("update $tb_tree set family_order=family_order".($reorder_by>=0 ? "+" : "").$reorder_by ." where family_id=\"".mysql_escape_string($row["family_id"])."\"" ." and family_order".($reorder_by<0 ? "<" : ">").$other_order); db_query("update $tb_tree set family_order=".($other_order+$reorder_by)." where id=\"".mysql_escape_string($id)."\""); // PASSTHRU redirect } function hiddens($array,$doinputs) { global $permanents_array; $r=""; foreach ($permanents_array as $key) if (!isset($key,$array) && isset($GLOBALS[$key])) $array[$key]=$GLOBALS[$key]; foreach ($array as $key=>$val) { if ($doinputs) $r.="\n"; else $r.=($r==""?"?":"&").addpercents($key)."=".addpercents($val); } if (!$doinputs && $r=="") $r="?_dummy=1"; return($r); } if (isset($delete) || isset($update) || isset($move) || isset($isolate) || isset($reorder)) { if (isset($winclose)) { header("Content-type: text/html"); ?>
Window close
"); } function formconvert($id,$name,$text,$readonly,$anchor,$hiddens=array()) { global $tb_tree,$row,$winclose; $readonly=(!$readonly ? "" : " readonly=\"readonly\""); if ($winclose) $text.=" (closes window)"; $row=db_array("select name,PublAuthor,Publication,html from $tb_tree" ." where id=\"".mysql_escape_string($id)."\""); $hiddens["id"]=$id; print("" .""); footer(true /* delimit */); } if (isset($edit)) formconvert($id,"update","Update entry",false/*readonly*/,"#id_$id"); if (isset($confirm) && $confirming=="delete") formconvert($id,$confirming,"Really delete entry?",true/*readonly*/, "#family_".db_item("select family_id from $tb_tree where id=\"".mysql_escape_string($id)."\"")); if (isset($confirm) && $confirming=="isolate") formconvert($id,$confirming,"Really isolate entry?",true/*readonly*/,"#id_$id"); $reset_from_script="this.form.elements['limit_from'].value=0;"; print(''."\n"); if (!isset($find)) footer(true /* delimit */); print("".formbutton($name,$text,$method,$hidden,false/*newwin*/)." | "; $hidden["winclose"]=1; } $r.="" .""; if ($newwin) $r.=" |
\n"
."
|
" ."\n" ." |
"; print(""; print "\n"; $order++; } mysql_free_result($result); if ($order>=2) print "\n"; print "\n"; // = $limit_max) break; } mysql_free_result($families); print ""); print("
\n" ); if ($order>=1) print "
"); if ($order>=1) { print " "); print(fieldquote("• "; $tabpfx=""; } else $tabpfx=""; print(" ".fieldquote("","name","\n") .fieldquote("","PublAuthor")." $tabpfx ")); if (isset($row["html"])) { $import="import: [".$row["id"]."]"; $html=$row["html"]; $html=eregi_replace("< *"."/? *a( [^>]*)?>","",$html); print("","Publication"," $tabpfx "); } print(" \n".$html."\n"); $l="
"; print("" .($order <= 0 ? "" : $l.formbutton("reorder","^^^ up ^^^","POST", array("id"=>$row["id"],"reorder_by"=>-1),false/*newwin*/,"family_$family_id").$r) .$l.formbutton("confirm","Delete entry","GET", array("id"=>$row["id"],"confirming"=>"delete"),true/*newwin*/).$r .$l.formbutton("edit" ,"Edit entry" ,"GET", array("id"=>$row["id"]),true/*newwin*/).$r .(mysql_num_rows($result)<=1 ? "" : $l.formbutton("confirm","Isolate entry","GET", array("id"=>$row["id"],"confirming"=>"isolate"),true/*newwin*/).$r) .($order+1 >= mysql_num_rows($result) ? "" : $l.formbutton("reorder","vvv down vvv" ,"POST", array("id"=>$row["id"],"reorder_by"=>+1),false/*newwin*/,"family_$family_id").$r) ." "; $r="