$f) { if ($f[1]==1) { $tmp=getpar("f$n"); if (PM("/^\s*$/",$tmp)) $MAND["f$n"]="class='mand'"; } } if (count($MAND)>0) $mode='reedit'; } if (PM("/^submit$/i",$submit) && ($mode==='savenew' || $mode==='saveedit' || $mode==='saveclone')) { if ($mode==='savenew' || $mode==='saveclone') { mysqli_query($DB,"BEGIN"); $sql="SELECT max(typeid)+1 as nexttid FROM cat WHERE type='$otype'"; $res=mydo($DB,$sql,1); $row = mysqli_fetch_assoc($res); $nexttid=$row['nexttid']; if (strlen($nexttid)==0) $nexttid=0; $xid=$TCHR[$otype].$nexttid; $sql="INSERT INTO cat SET id='$xid',catid=0,typeid=$nexttid,tent=now(),user='$USER',"; } if ($mode==='saveedit') $sql="UPDATE cat SET "; $J=json_decode($STDEF[$osctype]); $I=array(); if ($STDEF[$osctype]) { $I['type']=$osctype; foreach($J as $k => $v) { $esc["sc_$k"]=getpar("sc_$k"); $I['values'][$k]=HSC(getpar("sc_$k")); } $jsonmeta=json_encode($I); } $sql.="type='$otype',rm=0,ts=now(),tcha=now(),project=$prj,jsondata='$jsondata',jsonmeta='$jsonmeta'"; foreach(array('access') as $tmp) { $sql.=",$tmp='". mysqli_escape_string($DB,$_POST[$tmp]) ."'"; } if ($_POST["oa"]) $sql.=",oa=1"; else $sql.=",oa=0"; for ($i=0;$i<$FMAX;$i++) { if (is_array($FMAP[$otype][$i][2])) { $sql.=",f$i='". mysqli_escape_string($DB,$_POST["fl$i"]) ."'"; } else { $tmp=$_POST["f$i"]; if ($FMAP[$otype][$i][2]==2) $tmp=DF($tmp); $sql.=",f$i='". mysqli_escape_string($DB,$tmp) ."'"; } } if ($mode==='saveedit') { $sql.=" WHERE catid=$catid"; if ($_POST["oa"]) alog($xid,0,'saveedit'); else alog($xid,0,'saveedit'); } $res=mydo($DB,$sql); if ($mode=='savenew' || $mode==='saveclone') { // return to input form after new saved cat $catid=mysqli_insert_id($DB); if (PM("/^\d+$/",$catid)) $xid=idfromcatid($catid); } mydo($DB,"DELETE FROM tags WHERE id='$xid'"); for ($i=0;$i<$FMAX;$i++) { if ($FMAP[$otype][$i][2]==0 || $FMAP[$otype][$i][2]==1) { $tmp=$_POST["f$i"]; if (!PM("/^\s*$/",$tmp)) { if (preg_match_all("/\#[A-Za-z]+\w+\b/",$tmp,$M)) { if (is_array($M[0])) { foreach ($M[0] as $tag) { $tag=SL(PR("/^\s*#\s*/","",$tag)); mydo($DB,"INSERT INTO tags SET id='$xid',tag='$tag',user='$USER'"); } } } } } } if ($mode=='savenew' || $mode==='saveclone') { // return to input form after new saved cat alog($xid,0,'savenew'); if (PM("/[A-Z]\d+/i",$parent)) $parent=catidfromid($parent); if (PM("/^\d+$/i",$parent)) { $sql="INSERT INTO gen VALUES "; $res=mydo($DB,"SELECT * FROM gen WHERE catid=$parent AND rm=0 ORDER BY gen",1); $gen=""; while($row = mysqli_fetch_assoc($res)) { $gen=$row['gen']; $sql.="($catid,".$row['parent'].",$gen,0,now(),'$USER'),"; } $gen++;$sql.="($catid,$parent,$gen,0,now(),'$USER')"; $res= mydo($DB,$sql); } if ($mode==='saveclone' && PM("/^\d+$/i",$cloneid)) { // copy documents to clone $sql="SELECT * FROM docs WHERE catid=$cloneid AND rm=0"; $cres=mydo($DB,$sql,1); while($crow = mysqli_fetch_assoc($cres)) { $md5=$crow['md5']; $fn=$crow['filename']; $mime=$crow['mime']; $size=$crow['size']; $dir=$crow['dir']; $comment=$crow['comment']; $fcatid=$crow['catid']; $fdocid=$crow['docid']; if (!is_null($crow['fcatid']) && !is_null($crow['fdocid'])) { $fcatid=$crow['fcatid']; $fdocid=$crow['fdocid']; } $sql="INSERT INTO docs SET docid=0,catid=$catid,fcatid=$fcatid,fdocid=$fdocid,ts=now(),rm=0,". "md5='$md5',filename='$fn',mime='$mime',size=$size,dir='$dir',comment='$comment'"; $res= mydo($DB,$sql); } $sql="select * from cat,links where links.catid=$cloneid and cat.catid=links.link and $ACCESSQL"; $lres=mydo($DB,$sql,1); $lnumrows =mysqli_num_rows($lres); if ($lnumrows>0) { while($lrow = mysqli_fetch_assoc($lres)) { $link=$lrow['link']; $sql="INSERT INTO links SET lid=0,ts=now(),catid=$catid,link=$link"; $res= mydo($DB,$sql); } } } mysqli_query($DB,"COMMIT"); header("Location: /$xid/edit");exit; } if ($mode==='saveedit') { // save document comments foreach( $_POST as $k => $v ) { if (preg_match("/docom(\d+)/",$k,$m)) { if (!PM("/^\s*$/",$_POST[$k])) { $res=mydo($DB,"UPDATE docs SET comment='".mysqli_escape_string($DB,$v)."' WHERE docid=".$m[1]); } } } } header("Location: /$xid");exit; } if ($mode==='clrcopy') { // clear copy list unset ($_SESSION["copylist"]); header("Location: /home");exit; } if ($mode==='delbookmark') { // delete bookmark mydo($DB,"DELETE FROM bookmarks WHERE bid=$bid AND user='$USER'"); header("Location: /more");exit; } if ($mode==='delsearch') { // delete search mydo($DB,"DELETE FROM prefs WHERE pid=$pid AND user='$USER' AND type='search'"); header("Location: /more");exit; } if (PM("/^\d+$/",$catid) && $mode==='bookmark') { // bookmark id to list if (chkeditaccess($catid)) { mydo($DB,"INSERT INTO bookmarks SET ts=now(),catid=$catid,user='$USER'"); header("Location: /home");exit; } } if (PM("/^\d+$/",$catid) && $mode==='copy') { // copy id to list if (chkeditaccess($catid)) { $_SESSION['copylist'][$catid]=$catid; header("Location: /home");exit; } } if (PM("/^\d+$/",$catid) && $mode==='link') { // add links if (chkeditaccess($catid)) { $hcom=""; foreach ($_SESSION['copylist'] as $id) { mydo($DB,"INSERT INTO links SET lid=0,ts=now(),catid=$catid,link=$id"); $hcom.=idfromcatid($id).", "; } $hcom=PR("/,\s*$/","",$hcom); alog($xid,0,'link',$hcom); header("Location: /$xid");exit; } } if (PM("/^\d+$/",$catid) && $mode==='dellink') { // delete link if (chkeditaccess($catid)) { mydo($DB,"DELETE FROM links WHERE lid=$lid AND catid=$catid"); alog($xid,0,'dellink',"$lid"); header("Location: /$xid");exit; } } if (PM("/^\d+$/",$catid) && $mode==='delete') { // delete entry (cat and docs) if (chkeditaccess($catid)) { $mysqlts=date('Y-m-d H:i:s'); mydo($DB,"UPDATE cat SET rm=1 WHERE catid=$catid"); mydo($DB,"UPDATE docs SET rm=1 WHERE catid=$catid"); mydo($DB,"UPDATE gen SET rm=1 WHERE catid=$catid"); mydo($DB,"UPDATE gen SET rm=1 WHERE parent=$catid"); mydo($DB,"UPDATE cat SET tcha='$mysqlts' WHERE catid=$catid;"); alog($xid,0,'delete'); header("Location: /home");exit; } } if (PM("/^\d+$/",$catid) && PM("/^\d+$/",$docid) && $mode==='deldoc') { // delete document if (chkeditaccess($catid)) { $mysqlts=date('Y-m-d H:i:s'); mydo($DB,"UPDATE docs SET ts='$mysqlts',rm=1 WHERE docid=$docid"); mydo($DB,"UPDATE cat SET tcha='$mysqlts' WHERE catid=$catid;"); alog($xid,$docid,'deldoc'); header("Location: /$xid/edit");exit; } } if (PM("/^\d+$/",$catid) && $mode==='fix') { // fix document if (chkeditaccess($catid)) { mydo($DB,"UPDATE cat SET fixed=1 WHERE catid=$catid"); alog($xid,0,'fix'); header("Location: /$xid");exit; } } if ($mode==='reedit') { $ctype=$otype; $sctype=$osctype; $eproject=$prj; $eaccess=$access; $eparent=$parent; $ejsondata=$jsondata; $mode='new'; } if (PM("/^\d+$/",$catid) && ($mode==='edit' || $mode==='clone')) { $sql="SELECT * FROM cat WHERE catid=$catid AND $ACCESSQL"; $res=mydo($DB,$sql,1); $numrows =mysqli_num_rows($res); if ($numrows==1) { $row = mysqli_fetch_assoc($res); $etypeid=$row['id']; $eproject=$row['project']; $eaccess=$row['access']; $ejsondata=$row['jsondata']; $eoa=$row['oa']; for ($i=0;$i<$FMAX;$i++) $ef[$i]=$efl[$i]=$row["f$i"]; $J=json_decode($row['jsonmeta'],true); $sctype=$J['type']; $J=json_decode($row['jsonmeta'],true); $J=$J['values']; if ($STDEF[$sctype]) foreach($J as $k => $v) { $esc["sc_$k"]=$v; } $ctype=$row['type']; } } else { //new if (PM("/^\s*$/",$otype)) $ctype=$otype; if (PM("/^\s*$/",$ctype)) $ctype='data'; // ToDo: change to feault type if (!preg_match("/^\s*$/",$ctype)) { for ($i=0;$i<$FMAX;$i++) { if (is_array($FMAP[$ctype][$i][2])) { $efl[$i]=getpar("fl$i"); } else { $ef[$i]=getpar("f$i"); } } } $J=json_decode($STDEF[$sctype]); if ($STDEF[$sctype]) foreach($J as $k => $v) { $esc["sc_$k"]=getpar("sc_$k"); } if ($submit==='submit') $ctype=$otype; $mode='new'; } ?>
0) { if ($numrows>150) { if ($docoff>$numrows) $docoff=0; if ($docoff<0) $docoff=0; $don=$docoff+100;if ($don>$numrows) $don=0; $dop=$docoff-100;if ($dop<0) $dop=0; $prevlink=""; if ($docoff>0) $prevlink="PREV"; $nextlink=""; if ($docoff+100<$numrows) $nextlink="NEXT"; echo ""; $sql="SELECT * FROM docs WHERE catid=$catid AND rm=0 LIMIT $docoff,100"; } else { $sql="SELECT * FROM docs WHERE catid=$catid AND rm=0"; } $res=mydo($DB,$sql); if (!PM("/^\s*$/",$prevlink) || !PM("/^\s*$/",$nextlink)) echo ""; ?>
IdFileCommentSize
value="" type=text size=64 WIDTH=100%>
> >