From f74385d8f3279316872605874f9170da8ae1e04f Mon Sep 17 00:00:00 2001 From: Rod Wright Date: Thu, 12 Feb 2026 21:56:45 -0500 Subject: [PATCH] flag fixes in work --- distfiles/search.php | 80 ++++++++++++++++++++++++++++---------------- 1 file changed, 51 insertions(+), 29 deletions(-) diff --git a/distfiles/search.php b/distfiles/search.php index 0b9e9cb..d179cbe 100644 --- a/distfiles/search.php +++ b/distfiles/search.php @@ -34,7 +34,7 @@ $srchpname=$_REQUEST['srchpname'] ?? NULL; $srchploc=$_REQUEST['srchploc'] ?? NULL; $srchnha=$_REQUEST['srchnha'] ?? NULL; $srchrepord=$_REQUEST['srchrepord'] ?? NULL; -$srchflags=$_REQUEST['srchflags'] ?? NULL; +$srchflags=$_POST['srchflags'] ?? []; $target=$_REQUEST['target'] ?? NULL; $doparts=PARTS_FUNCTIONS; @@ -57,6 +57,15 @@ framework("begin","$logname Search","Search",$print); //var_dump($_REQUEST); // ******** begin database manipulation ******** + +// define the arrays +$logfromtables=[]; +$mffromtables=[]; +$pfromtables=[]; +$logconstraints=[]; +$mfconstraints=[]; +$pconstraints=[]; + // get the date range of lognotes $logdateqry=mysqli_query($db,"select min(date), max(date) from lognotes"); $logdateresults=mysqli_fetch_row($logdateqry); @@ -75,8 +84,6 @@ if ($mfmaxdate == "") $mfmaxdate = $today; $mindate=min($logmindate, $mfmindate); $maxdate=max($logmaxdate, $mfmaxdate); - - if ($search) { // strip whitespace from beginning and end of text fields $srchtext=trim($srchtext); @@ -122,8 +129,9 @@ if ($search) { $logfromtables[]="lognotes"; $logconstraints[]="lognotes.lognote like \"%$srchtext%\""; } + // fixme // flags - if ($srchflags != NULL) { + if (!empty($srchflags)) { foreach ($srchflags as $flagtblnum) { $flagtblname="flag_{$flagtblnum}"; $logfromtables[]="lognotes"; @@ -231,6 +239,7 @@ if ($search) { $mffromtables[]="maintactions"; $mfconstraints[]="maintforms.mfmalfunction like \"%$srchtext%\" or (maintactions.action like \"%$srchtext%\" and maintforms.maintformid=maintactions.maintformnum)"; } + // fixme // flags foreach ($srchflags as $flagtblnum) { $flagtblname="flag_{$flagtblnum}"; @@ -463,27 +472,37 @@ if (!$print) {

Flags: "; - $flagslist=mysqli_query($db,"select * from flags"); - $flagsperline=8; - $flagcount=1; - while ($flagcheckbox=mysqli_fetch_assoc($flagslist)) { - if ($srchflags[0]=="") $srchflags=[]; - if (in_array($flagcheckbox["flagid"],$srchflags)) { - printf("%s", - $flagcheckbox["flagid"],$flagcheckbox["flagcolor"],$flagcheckbox["flagname"],$flagcheckbox["flagsym"]); + $flagslist = mysqli_query($db, "select * from flags"); + $flagsperline = 8; + $flagcount = 1; + while ($flagcheckbox = mysqli_fetch_assoc($flagslist)) { + if ($srchflags[0] == "") $srchflags = []; + if (in_array($flagcheckbox["flagid"], $srchflags)) { + printf( + "%s", + $flagcheckbox["flagid"], + $flagcheckbox["flagcolor"], + $flagcheckbox["flagname"], + $flagcheckbox["flagsym"] + ); } else { - $flagid=$flagcheckbox["flagid"]; - if (mysqli_num_rows(mysqli_query($db,"select flagid from flags where flagid=\"$flagid\" and status=1"))) { - printf("%s", - $flagcheckbox["flagid"],$flagcheckbox["flagcolor"],$flagcheckbox["flagname"],$flagcheckbox["flagsym"]); + $flagid = $flagcheckbox["flagid"]; + if (mysqli_num_rows(mysqli_query($db, "select flagid from flags where flagid=\"$flagid\" and status=1"))) { + printf( + "%s", + $flagcheckbox["flagid"], + $flagcheckbox["flagcolor"], + $flagcheckbox["flagname"], + $flagcheckbox["flagsym"] + ); } } - if ($flagcount<$flagsperline) { + if ($flagcount < $flagsperline) { echo "   "; $flagcount++; } else { echo "
"; - $flagcount=1; + $flagcount = 1; } } echo " @@ -656,20 +675,23 @@ if ($search) { $logsubjname=dblookup($db,"subjects","subjectid","subjectname",$logtablerow['subject']); // create links of urls in note $logfmtnote=convertweblinks($logtablerow['lognote']); + // generate the flags string $flagstring=""; - $allflagqry=mysqli_query($db,"select flagid from flags"); - while ($allflagids=mysqli_fetch_row($allflagqry)) { - $flagid=$allflagids[0]; - $flag_tbl="flag_".$flagid; - if (mysqli_num_rows(mysqli_query($db,"select id from $flag_tbl where target=\"lognotes\" and id=\"$logtablerow[lognoteid]\""))) { - $flagparam=mysqli_fetch_assoc(mysqli_query($db,"select * from flags where flagid=\"$flagid\"")); - $flagcolor=$flagparam["flagcolor"]; - $flagsym=$flagparam["flagsym"]; - $flagstring=$flagstring."$flagsym  "; - } + $flagqry=mysqli_query($db,"select flagid from flagmap where lognoteid=$logtablerow[lognoteid]"); + while ($flagid=mysqli_fetch_row($flagqry)) { + $flagparams=mysqli_fetch_assoc(mysqli_query($db,"select * from flags where flagid=\"$flagid[0]\"")); + $flagcolor=$flagparams["flagcolor"]; + $flagsym=$flagparams["flagsym"]; + $flagname=$flagparams["flagname"]; + $flagstring=$flagstring."$flagsym  "; } - if ($flagstring) $logfmtnote=$logfmtnote."
".$flagstring; + if ($flagstring) { + $logfmtnote=$logfmtnote."
".$flagstring."     "; + } else { + $logfmtnote=$logfmtnote."
"; + } + printf(" %s %s / %s