OCS Inventory NG Forums

OCS Inventory NG, an OpenSource computer inventory and package deployement system for Windows and Unix

You are not logged in.

#1 2009-04-29 19:03:36

hudsona
New member
From: New Jersey, United States
Registered: 2009-04-29
Posts: 2

No search parameter for printers in OCS Search

While using the search options in OCS I noticed that the Printers parameter was not available.  Is there a reason why I can't search by this value?  Is there any way to make it an option?


-Abe

Offline

#2 2009-05-01 11:54:57

dliroulet
OCS Team
From: Toulouse, France
Registered: 2007-03-12
Posts: 1,616
Website

Re: No search parameter for printers in OCS Search

Yes, ask a feature request wink

Or take a look at multicriteres.php code. It's in this page...

Cheers


IRC Channel #ocsinventory-ng on FreeNode

Offline

#3 2009-05-05 14:50:13

hudsona
New member
From: New Jersey, United States
Registered: 2009-04-29
Posts: 2

Re: No search parameter for printers in OCS Search

Cool, thanks for the advice; I'll take a look.

Offline

#4 2009-10-05 14:01:25

Stonedge
New member
Registered: 2009-10-05
Posts: 4

Re: No search parameter for printers in OCS Search

Here is What I Done to enable it... Simple multicriteres.php modification

its and Diff -u result so it can be use as a patch...

Stonedge

--- multicritere.php.old    2009-05-30 03:52:24.000000000 -0400
+++ multicritere.php    2009-10-15 15:09:41.236994379 -0400
@@ -186,6 +186,13 @@
                 $monitorTable = true;
             }
 
+            //Mod By Vince
+            if( ($_POST["chm_".$i]=="printer") && ! $PrinterTable ) {
+                $fromPrelim.=" printers p,";
+                $PrinterTable = true;
+            }
+            // End of Vince Mod
+
             if($_POST["chm_".$i]=="free") {
                 $fromPrelim.=" drives dr,";
             }
@@ -435,6 +442,9 @@
                     case "smonitor": $reqCondition.="m.hardware_id=h.id AND m.serial";break;
                     case "fmonitor": $reqCondition.="m.hardware_id=h.id AND m.manufacturer";break;
                     case "lmonitor": $reqCondition.="m.hardware_id=h.id AND m.caption";break;
+                    // MOD by Vince
+                    case "printer": $reqCondition.="p.hardware_id=h.id AND p.name";break;
+                    // End Of Vince Mod
                     case "sversion": $reqCondition.="s1.hardware_id=h.id AND s1.version";break;
                     default: $reqCondition.="a.".$_POST["chm_".$i]; break;
                 }
@@ -631,10 +641,17 @@
 <form name='optionss' action='index.php?multi=1' method='post'><b><?php echo $l->g(31);?>:   </b> 
 <select name=selOpt OnChange="optionss.submit();"><?php 
 
-$optArray = array($l->g(34), $l->g(33), $l->g(557), $l->g(20), $l->g(26), $l->g(35),
+//Mod By Vince
+//$optArray = array($l->g(34), $l->g(33), $l->g(557), $l->g(20), $l->g(26), $l->g(35),
+//$l->g(36), $l->g(207), $l->g(25), $l->g(24), $l->g(377), $l->g(65), $l->g(284), $l->g(64), $l->g(554), 
+//TAG_LBL, $l->g(357), $l->g(46),$l->g(257),$l->g(331),$l->g(209),$l->g(53),$l->g(45), $l->g(312), $l->g(286), $l->g(429), $l->g(512),$l->g(95),$l->g(555),$l->g(556));
+
+$optArray = array($l->g(34), $l->g(33), $l->g(557), $l->g(20), $l->g(26), $l->g(35), $l->g(79),
 $l->g(36), $l->g(207), $l->g(25), $l->g(24), $l->g(377), $l->g(65), $l->g(284), $l->g(64), $l->g(554), 
 TAG_LBL, $l->g(357), $l->g(46),$l->g(257),$l->g(331),$l->g(209),$l->g(53),$l->g(45), $l->g(312), $l->g(286), $l->g(429), $l->g(512),$l->g(95),$l->g(555),$l->g(556));
 
+// End of Vince Mod
+
 //If software is selected, then software version is available
 if(is_array($_SESSION["OPT"]) && in_array($l->g(20),$_SESSION["OPT"]))
     $optArray = array_merge( $optArray , array($l->g(19)) );
@@ -698,6 +715,11 @@
     $ligne[] = array( $l->g(554),"smonitor","hardware","",2,1,"",false,true);
     $ligne[] = array( $l->g(555),"fmonitor","hardware","",2,1,"",false,true);
     $ligne[] = array( $l->g(556),"lmonitor","hardware","",2,1,"",false,true);
+
+    //add by Vince
+    $ligne[] = array( $l->g(79),"printer","hardware","",2,1,"",false,true);
+    // end of Vince Mod
+
     $ligne[] = array( $l->g(209),"bversion","bios","",2,1,"",false,true);
     $ligne[] = array( TAG_LBL,"cu","accountinfo","",2,1);

Last edited by Stonedge (2009-10-15 20:25:48)

Offline

#5 2009-10-13 19:36:29

Southerner
Member
From: Ellensburg, WA
Registered: 2008-12-09
Posts: 75

Re: No search parameter for printers in OCS Search

How do you run it or incorporate it?

Offline

#6 2009-10-15 20:23:42

Stonedge
New member
Registered: 2009-10-05
Posts: 4

Re: No search parameter for printers in OCS Search

Assuming that your using ocs 1.02.1 (normally would work with 1.02)

First of all make a backup copy your  existing multicritere.php (eg:multicritere.php.old)

Linux: copy the diff -u that I've post previously in a file (eg: multicritere.php.patch) and put it in your ocsreports folder

and in the terminal run: patch multicritere.php < multicritere.php.patch

Windows: you can get the patch function from gnuwin32.sourceforge.net/packages/patch.htm

But since using a patch under windows is a bit tricky... here is the complete modified multicritere.php file:

<?php 
//====================================================================================
// OCS INVENTORY REPORTS
// Copyleft Pierre LEMMET 2005
// Web: http://ocsinventory.sourceforge.net
//
// This code is open source and may be copied and modified as long as the source
// code is always made freely available.
// Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
//====================================================================================
//Modified on $Date: 2008-02-27 12:34:12 $$Author: hunal $($Revision: 1.17 $)

require_once('require/function_server.php');

//cas of add new server's diff
if (isset($_POST['action_server']) and $_POST['action_server'] != '0')
{

    $i=1;
    foreach ($_POST as $key=>$value){
        if (substr($key, 0, 9) == "checkmass"){
            $mach[$i]=$value;
            $i++;
        }
    }
    if ($mach == "")
    {
        $sql="select h.id ".$_SESSION['groupReq'];
        $res = mysql_query( $sql, $_SESSION["readServer"]);
        while( $valallid = mysql_fetch_array( $res ) ){
            $mach[$i] = $valallid['id'];
            $i++;
        }

    }
    if ($_POST['name_server_new'] != "")
    $name=$_POST['name_server_new'];
    elseif ($_POST['name_server_add'] != "")
    $name=$_POST['name_server_add'];
    elseif ($_POST['name_server_replace'] != "")
    $name=$_POST['name_server_replace'];
    $msg=admin_serveur($_POST['action_server'],$name,$_POST['descr_server'],$mach) ;
    echo "<script>alert('".$msg."');</script>";
}

    if( isset( $_GET["nme"] ) && isset( $_GET["stat"] ) ) {
        $_POST["act_0"] = "on";
        $_POST["chm_0"] = "tele";
        $_POST["lbl_0"] = $l->g(512);
        $_POST["ega_0"] = "ayant";
        $_POST["val_0"] = urldecode( $_GET["nme"] );
        $_POST["val2_0"] = urldecode( $_GET["stat"] );
        $_POST["sub"] = $l->g(30);
        $_POST["max"] = 1;
        if( $_POST["val2_0"] == $l->g(482) ) {
            $_POST["val2_0"] = "stats";
        }
        $_SESSION["OPT"][] = $l->g(512);
    }

    if($_POST["sub"]==$l->g(30)) {
        unset($_SESSION["selectSofts"]);
        unset($_SESSION["selectRegistry"]);
        unset($_SESSION["storedRequest"], $_SESSION["c"],$_SESSION["reqs"],$_SESSION["softs"]);
    }

    printEnTete($l->g(9));
    $req = NULL;

    if( !isset($_SESSION["optCol"]) ) {
        $reqCol = "SHOW COLUMNS FROM accountinfo";
        $resCol = mysql_query($reqCol, $_SESSION["readServer"]) or die(mysql_error($_SESSION["readServer"]));
        while($colname=mysql_fetch_array($resCol)) {
            if( strcasecmp($colname["Field"], TAG_NAME) != 0 )
                $_SESSION["optCol"][] = $colname["Field"] ;
        }
    }

    require("req.class.php");
    $indLigne=0;
    $softPresent = false;
    $cuPresent = -1;
    $leSelect = array_merge( array("h.id"=>"h.id", "deviceid"=>"deviceid"), $_SESSION["currentFieldList"] );

    if( is_array($_SESSION["selectSofts"]) && $_POST["sub"]!=$l->g(30))
        $leSelect = array_merge( $leSelect, $_SESSION["selectSofts"] );

    if( is_array($_SESSION["selectRegistry"]) )
        $leSelect = array_merge( $leSelect, $_SESSION["selectRegistry"] );

    $selFinal ="";

    if($_POST["reset"]==$l->g(41))
    {
        unset($_SESSION["OPT"]);
        unset($_SESSION["reqs"]);
        unset($_SESSION["softs"]);
    }
    else if($_POST["selOpt"])
    {
        $_POST["selOpt"] = urldecode( $_POST["selOpt"] );
        if( $_POST["selOpt"]==$l->g(20) ||  ((! is_array($_SESSION["OPT"]))  ||   ( !in_array($_POST["selOpt"],$_SESSION["OPT"])))) {
            $_SESSION["OPT"][]=stripslashes($_POST["selOpt"]);
        }
    }
    else if($_POST["sub"]==$l->g(30))
    {
        /* Creates a description of the generated query in $_SESSION["queryDescription"]
        $totSofts = 0;
        $totRegs = 0;

        $logName = "";
        $firstLog = true;
        for($cpLog=0;$cpLog<$_POST["max"];$cpLog++)    {
            if( $_POST["val_".$cpLog] != "" && $_POST["act_".$cpLog] == "on" ) {                
                if( ! $firstLog )
                    $logName .= " &\n";
                $logName .= addslashes( $_POST["chm_".$cpLog]." ".$_POST["ega_".$cpLog]." ".$_POST["val_".$cpLog] );
                if( $_POST["ega_".$cpLog] == $l->g(203) )
                    $logName .= $l->g(582).$_POST["val2_".$cpLog];

                $firstLog = false;
            }
        }
        $_SESSION["queryDescription"] = $logName ;
        */
        $i=0; $nb=0; 
        $laRequete="";                

        for($i=0;$i<$_POST["max"];$i++)    {

            if( urldecode($_POST["lbl_".$i]) == $l->g(20))
                $_SESSION["softs"][] = array( $_POST["act_".$i], urldecode($_POST["chm_".$i]), $_POST["ega_".$i],
                strtr($_POST["val_".$i],"\"","'"), strtr($_POST["val2_".$i],"\"","'"), $_POST["valreg_".$i] );

            $_SESSION["reqs"][ urldecode($_POST["lbl_".$i]) ] = array( $_POST["act_".$i], urldecode($_POST["chm_".$i]), $_POST["ega_".$i],
            strtr($_POST["val_".$i],"\"","'"), strtr($_POST["val2_".$i],"\"","'"), $_POST["valreg_".$i] );

            if(!isset($_POST["act_".$i]))
                continue;
            $nb++;            
        }

        $from = " hardware h LEFT JOIN accountinfo a ON a.hardware_id=h.id LEFT JOIN bios b ON b.hardware_id=h.id,";
        //$laRequete.=" FROM hardware h,accountinfo a, bios b, ";

        $softTable = false ;
        $logIndex = 1;
        $fromPrelim  ="";
        for($i=0;$i<$_POST["max"];$i++)
        {

            if(!isset($_POST["act_".$i]))
            continue;

            //jokers
            if( $_POST["ega_".$i] != $l->g(410) )
                $_POST["val_".$i] = strtr($_POST["val_".$i], "?*", "_%");

            if( isFieldDate($_POST["chm_".$i]) ) {
                $_POST["val_".$i] = dateToMysql($_POST["val_".$i]);
            }

            if( ($_POST["chm_".$i]=="name") && ($_POST["ega_".$i]==$l->g(129) || $_POST["ega_".$i]==$l->g(410))) {
                $leSelect["s".$logIndex.".name"] = $l->g(20)." $logIndex";
                $_SESSION["selectSofts"]["s".$logIndex.".name"] = $l->g(20)." $logIndex";
            }

            if( ($_POST["chm_".$i]=="regval" || $_POST["chm_".$i]=="regname")&&
                ($_POST["ega_".$i]==$l->g(129) || $_POST["ega_".$i]==$l->g(410))) {
                $leSelect["r.regvalue"] = $_POST["val_".$i];
                $from = substr ( $from, 0 , strlen( $from)-1 );
                $from .= " LEFT JOIN registry r ON r.hardware_id=h.id AND r.name='".$_POST["val_".$i]."',";
                $_SESSION["selectRegistry"]["r.regvalue"] = $_POST["val_".$i];
            }

            $regRes = null;
            if( ($_POST["ega_".$i]==$l->g(129)||$_POST["ega_".$i]==$l->g(410)) && $_POST["chm_".$i]=="name" ) {
                //$fromPrelim.=" softwares s".$logIndex.",";
                $from .= " softwares s".$logIndex.",";
                $logIndex++;
            }

            if( ($_POST["chm_".$i]=="smonitor" || $_POST["chm_".$i]=="fmonitor" || $_POST["chm_".$i]=="lmonitor") && ! $monitorTable ) {
                $fromPrelim.=" monitors m,";
                $monitorTable = true;
            }

            //Mod By Vince
            if( ($_POST["chm_".$i]=="printer") && ! $PrinterTable ) {
                $fromPrelim.=" printers p,";
                $PrinterTable = true;
            }
            // End of Vince Mod

            if($_POST["chm_".$i]=="free") {
                $fromPrelim.=" drives dr,";
            }

            if(($_POST["chm_".$i]=="ipmask"||$_POST["chm_".$i]=="ipgateway"||$_POST["chm_".$i]=="ipaddr"||$_POST["chm_".$i]=="ipsubnet"||$_POST["chm_".$i]=="macaddr") && !$netTable) {
                $fromPrelim.=" networks n,";
                $netTable=true;
            }
        }

        if($fromPrelim[strlen($fromPrelim)-1]==",")
            $fromPrelim[strlen($fromPrelim)-1]=" ";
        if($from[strlen($from)-1]==",")
            $from[strlen($from)-1]=" ";
        $groupReqBegin = "FROM ".$from;
        if( $fromPrelim != "" )
            $groupReqBegin .= ",".$fromPrelim;

        $groupReqBegin .= " WHERE ";
        for($i=0;$i<$_POST["max"];$i++)
        {                
            if(!isset($_POST["act_".$i]))
                continue;
                                
            if( $_POST["act_".$i]="checked" && $_POST["chm_".$i] == "ipdisc" ) {
                            
                if( ! empty($laRequete) ) $laRequete .= " AND ";
                if( ! empty($groupReq) ) $groupReq .= " AND ";

                $laRequete.= " h.id ";
                $groupReq.= " h.id ";
                switch( $_POST["val_".$i] ) {
                    case "elu":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE ivalue=1 AND name='IPDISCOVER') "; 
                        $laRequete.= "IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=1 AND name='IPDISCOVER'"; 
                    break;
                    case "for":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE ivalue=2 AND name='IPDISCOVER') "; 
                        $laRequete.= "IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=2 AND name='IPDISCOVER'"; 
                    break;
                    case "nelu":
                        $groupReq.= "NOT IN (SELECT hardware_id FROM devices WHERE ivalue=1 AND name='IPDISCOVER') "; 
                        $laRequete.= "NOT IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=1 AND name='IPDISCOVER'"; 
                    break;
                    case "eli":
                        $groupReq.= "NOT IN (SELECT hardware_id FROM devices WHERE ivalue=0 AND name='IPDISCOVER') ";
                        $laRequete.= "NOT IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=0 AND name='IPDISCOVER'";
                    break;
                    case "neli":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE ivalue=0 AND name='IPDISCOVER') ";
                        $laRequete.= "IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=0 AND name='IPDISCOVER'";
                    break;
                }
                $laRequete .= "('".getGluedIds($reqIdIpd)."')";
                continue;
            }
            
            if( $_POST["act_".$i]="checked" && $_POST["chm_".$i] == "freq" ) {
                            
                if( ! empty($laRequete) ) $laRequete .= " AND ";
                if( ! empty($groupReq) ) $groupReq .= " AND ";

                $laRequete.= " h.id ";
                $groupReq .= " h.id ";
                switch( $_POST["val_".$i] ) {
                    case "std":
                        $groupReq.= "NOT IN (SELECT hardware_id FROM devices WHERE name='FREQUENCY') "; 
                        $laRequete.= "NOT IN ";
                        $reqIdFre = " (SELECT DISTINCT hardware_id FROM devices WHERE name='FREQUENCY') "; 
                    break;
                    case "always":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue=0) "; 
                        $laRequete.= "IN ";
                        $reqIdFre = "  (SELECT DISTINCT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue=0) "; 
                    break;
                    case "never":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue=-1) "; 
                        $laRequete.= "IN ";
                        $reqIdFre = "  (SELECT DISTINCT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue=-1) "; 
                    break;
                    case "custom":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue>0)  ";
                        $laRequete.= "IN ";
                        $reqIdFre = "  (SELECT DISTINCT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue>0)  ";
                    break;                    
                }
                $laRequete .= "('".getGluedIds($reqIdFre)."')";
                continue;
            }
            
            if( $_POST["act_".$i]="checked" && $_POST["chm_".$i] == "tele" ) {
                            
                if( ! empty($laRequete) ) $laRequete .= " AND ";
                if( ! empty($groupReq) ) $groupReq .= " AND ";                    
                $laRequete.= " h.id ";
                $groupReq .= " h.id ";
                
                if( $_POST["ega_".$i] == "ayant" ) {
                    $laRequete.= " IN ";
                    $groupReq .= " IN ";
                }
                else if( $_POST["ega_".$i] == "nayant" ) {
                    $laRequete.= " NOT IN ";
                    $groupReq .= " NOT IN ";
                }
                $reqIdDownload = "";
                switch( $_POST["val2_".$i] ) {
                    case "suc":
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND d.tvalue like 'SUCCESS%' AND e.fileid=a.fileid AND e.id=d.ivalue UNION 
                         SELECT dh.hardware_id FROM download_history dh, download_available da WHERE dh.pkg_id=da.fileid AND da.name='".$_POST["val_".$i].
                         "')"; 
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND d.tvalue like 'SUCCESS%' AND e.fileid=a.fileid AND e.id=d.ivalue UNION 
                         SELECT dh.hardware_id FROM download_history dh, download_available da WHERE dh.pkg_id=da.fileid AND da.name='".$_POST["val_".$i].
                         "'"; 
                    break;
                    case "nsuc":
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND (d.tvalue not like 'SUCCESS%' OR d.tvalue IS NULL) AND e.fileid=a.fileid AND e.id=d.ivalue) "; 
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND (d.tvalue not like 'SUCCESS%' OR d.tvalue IS NULL) AND e.fileid=a.fileid AND e.id=d.ivalue"; 
                    break;
                    case "ind":
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND e.fileid=a.fileid AND e.id=d.ivalue UNION SELECT dh.hardware_id FROM download_history dh, download_available da WHERE dh.pkg_id=da.fileid AND da.name='".$_POST["val_".$i].
                         "')";
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND e.fileid=a.fileid AND e.id=d.ivalue UNION SELECT dh.hardware_id FROM download_history dh, download_available da WHERE dh.pkg_id=da.fileid AND da.name='".$_POST["val_".$i].
                         "'";
                    break;
                    case "stats":
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND e.fileid=a.fileid AND e.id=d.ivalue AND d.tvalue IS NULL ) ";  
                    
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND e.fileid=a.fileid AND e.id=d.ivalue AND d.tvalue IS NULL";  
                    break;
                    default: //standard case
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND d.tvalue='".$_POST["val2_".$i]."' AND e.fileid=a.fileid AND e.id=d.ivalue) ";  
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND d.tvalue='".$_POST["val2_".$i]."' AND e.fileid=a.fileid AND e.id=d.ivalue";  
                    break;                                    
                }
                $laRequete .= "('".getGluedIds($reqIdDownload)."')";                
                continue;
            }
            
            if( $_POST["act_".$i]="checked" && ! (  ($cuPresent != -1 ) && $_POST["chm_".$i] == "cu") )
            {                
                // cas particulier avec LOGICIEL
                if( ($_POST["chm_".$i] == "name" ) ) {
                    if( $_POST["ega_".$i] == $l->g(129)||$_POST["ega_".$i]==$l->g(410) )
                        $softsEg[] = Array( $_POST["val_".$i], urldecode($_POST["lbl_".$i]), $_POST["ega_".$i] );
                    else
                        $softsDi[] = Array( $_POST["val_".$i], urldecode($_POST["lbl_".$i]), "" );
                    continue ;
                }
                
                // cas particulier avec registry DIFFERENT DE
                if( $_POST["chm_".$i] == "regname" && $_POST["ega_".$i] == $l->g(130) ) {
                    $regDiff=Array($_POST["val_".$i],$_POST["valreg_".$i]);
                    continue ;
                }
                
                $forceEgal=false;
                                                
                if($_POST["chm_".$i]=="regname") {
                    if( ! empty($laRequete) ) $laRequete .= " AND ";
                    if( ! empty($groupReq) ) $groupReq .= " AND ";    
                    $laRequete.= "r.hardware_id=h.id ";
                    $groupReq .= "r.hardware_id=h.id ";
                }
                $tblIneq = "h";    
                $reqCondition = "";                
                switch($_POST["chm_".$i])
                {
                    case "ssn": $reqCondition.="b.ssn";break;
                    case "bmanufacturer": $reqCondition.="b.bmanufacturer";break;
                    case "bversion": $reqCondition.="b.bversion";break;
                    case "smanufacturer": $reqCondition.="b.smanufacturer";break;
                    case "smodel": $reqCondition.="b.smodel";break;
                    case "ipmask": $reqCondition.="n.hardware_id=h.id AND n.ipmask";break;
                    case "ipgateway": $reqCondition.="n.hardware_id=h.id AND n.ipgateway";break;
                    case "free": $reqCondition.="dr.hardware_id=h.id AND dr.free";$tblIneq="dr";break;
                    case "ipsubnet": $reqCondition.="n.hardware_id=h.id AND n.ipsubnet";break;
                    case "regname": 
                            if( $_POST["valreg_".$i] != $l->g(265) ) {
                                if( $_POST["ega_".$i] != $l->g(410) )
                                    $_POST["valreg_".$i] = strtr($_POST["valreg_".$i], "?*", "_%");
                                
                                if( $_SESSION["usecache"] == true && $_POST["ega_".$i] == $l->g(129) ) {
                                    $glued = getCache( "registry", "regvalue", $_POST["valreg_".$i], $totRegs );
                                    $reqCondition.="r.regvalue IN('".$glued."') AND ";
                                }
                                else {
                                    $comp = $_POST["ega_".$i] == $l->g(129) ? " like '%" : " = '";                               
                                    $compFin = $_POST["ega_".$i] == $l->g(129) ? "%' " : "' ";
                                    $reqCondition.="r.regvalue$comp".$_POST["valreg_".$i]."{$compFin}AND ";
                                }
                            }
                            $reqCondition.="r.name";
                            $forceEgal=true;
                            break;                    
                    
                    case "name":                             
                            $reqCondition.="s.hardware_id=h.id AND s.name";
                            $softPresent = true;
                            if( $_POST["ega_".$i] == $l->g(129)||$_POST["ega_".$i]==$l->g(410) )
                                $unSoftnEgal = true ;
                            break;            
                            
                    case "ORDEROWNER": $reqCondition.="a.orderowner";break;
                    case "ORDERID": $reqCondition.="a.orderid";break;
                    case "PRODUCTID": $reqCondition.="a.productid";break;
                    case "BILLDATE": $reqCondition.="a.billnbr";break;
                    case "cu": $reqCondition.="a.".TAG_NAME;break;
                    case "processors": $reqCondition.="h.processors";break;
                    case "memory": $reqCondition.="h.memory";break;
                    case "osname": $reqCondition.="h.osname";$forceEgal=false;break;
                    case "oscomments": $reqCondition.="h.oscomments";$forceEgal=false;break;
                    case "userid": $reqCondition.="h.userid";break;
                    case "ipaddr": $reqCondition.="n.hardware_id=h.id AND n.ipaddress";break;
                    case "macaddr": $reqCondition.="n.hardware_id=h.id AND n.macaddr";break;
                    case "useragent": $reqCondition.="h.useragent";$forceEgal=true;break;
                    case "workgroup": $reqCondition.="h.workgroup";$forceEgal=true;break;
                    case "userdomain": $reqCondition.="h.userdomain";$forceEgal=true;break;
                    case "hname": $reqCondition.="h.name";break;
                    case "description": $reqCondition.="h.description";break;
                    case "lastdate": $reqCondition.="h.lastdate";break;
                    case "smonitor": $reqCondition.="m.hardware_id=h.id AND m.serial";break;
                    case "fmonitor": $reqCondition.="m.hardware_id=h.id AND m.manufacturer";break;
                    case "lmonitor": $reqCondition.="m.hardware_id=h.id AND m.caption";break;
                    // MOD by Vince
                    case "printer": $reqCondition.="p.hardware_id=h.id AND p.name";break;
                    // End Of Vince Mod
                    case "sversion": $reqCondition.="s1.hardware_id=h.id AND s1.version";break;
                    default: $reqCondition.="a.".$_POST["chm_".$i]; break;
                }
                
                if( $_POST["val_".$i] == "" ) {
                        switch($_POST["ega_".$i]) {
                            case $l->g(410):    
                            case $l->g(129): $reqCondition.=" IS NULL "; break;                        
                            case $l->g(130):                     
                            case $l->g(346):
                            case $l->g(201): 
                            case $l->g(347):
                            case $l->g(202): 
                            case $l->g(203): 
                            default: $reqCondition .=" IS NOT NULL "; break;        
                        }
                }
                else {
                    if( ! $forceEgal ) {
                        switch($_POST["ega_".$i]) {
                            case $l->g(410): $reqCondition.=" = ";$forceEgal=true; break;    
                            case $l->g(129): $reqCondition.=" LIKE ";$forceLike=true; break;                        
                            case $l->g(130): $reqCondition.=" NOT LIKE ";$forceLike=true; break;                    
                            case $l->g(346):
                            case $l->g(201): $reqCondition.="<"; $forceEgal=true; break;
                            case $l->g(347):
                            case $l->g(202): $reqCondition.=">"; $forceEgal=true; break;
                            case $l->g(203): $reqCondition.="<'".$_POST["val2_".$i]."' AND $tblIneq.".$_POST["chm_".$i].">"; $forceEgal=true; break;
                            //case $l->g(204): $reqCondition.=">'".$_POST["val2_".$i]."' OR h.".$_POST["chm_".$i]."<";break;
                            default: $reqCondition.=" LIKE "; $forceLike=true;break;
                        }
                    }
                    else {
                        switch($_POST["ega_".$i]) {
                            case $l->g(410):    
                            case $l->g(129): $reqCondition.=" = ";break;                        
                            case $l->g(130):                     
                            case $l->g(346):
                            case $l->g(201): 
                            case $l->g(347):
                            case $l->g(202): 
                            case $l->g(203): 
                            default: $reqCondition.=" <> ";break;        
                        }
                    }
                    
                    if( $forceEgal || !$forceLike )
                        $reqCondition.="'".$_POST["val_".$i]."'";    
                    else
                        $reqCondition.="'%".$_POST["val_".$i]."%'";                    
                }

                if( ! empty($laRequete) ) $laRequete .= " AND ";
                if( ! empty($groupReq) ) $groupReq .= " AND ";    
                $laRequete .= $reqCondition;
                $groupReq .= $reqCondition;
            }            
        }
        
        if( $nb > 0 ) {        
            $laRequeteF=$laRequete;                
            $logIndexEg = 1;
    
            for($ii=0;$ii<sizeof($softsEg);$ii++) {            
                $selFinal .= " AND ";
                if( ! empty($laRequeteF) ) $laRequeteF .= " AND ";
                if( ! empty($groupReq) )   $groupReq   .= " AND ";    
                
                $comp = $softsEg[$ii][2] == $l->g(129) ? " like '%" : " = '";
                $compFin = $softsEg[$ii][2] == $l->g(129) ? "%' " : "' ";
                $groupReq .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name$comp".$softsEg[$ii][0]."$compFin";
                // If cache is used AND 'like' search is used
                if( $_SESSION["usecache"] == true && $softsEg[$ii][2]==$l->g(129) ) {        
                    $gluedSofts = getCache( "softwares", "name", $softsEg[$ii][0], $totSofts );
                    if ($gluedSofts != ''){
                    $laRequeteF .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name IN('$gluedSofts')";
                    $selFinal   .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name IN('$gluedSofts')";
                    }
                    else{
                    $laRequeteF .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name IN('SOFT NOT EXIST')";
                    $selFinal   .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name IN('SOFT NOT EXIST')";
                    }
                }
                else {
                    $laRequeteF .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name$comp".$softsEg[$ii][0]."$compFin";
                    $selFinal   .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name$comp".$softsEg[$ii][0]."$compFin";
                }
                $logIndexEg++;
            }
            
            if( $_SESSION["usecache"] == true ) {
                            
                for($ii=0;$ii<sizeof($softsDi);$ii++) {
                    $gluedSofts = "";
                    $softsDi[$ii][0] = strtr($softsDi[$ii][0], "?*", "_%");
                    $gluedSofts = getCache( "softwares", "name", $softsDi[$ii][0], $totSofts );
                    
                    if( $gluedSofts != "" ) {
                        $reqSid = "SELECT DISTINCT hardware_id FROM softwares WHERE name IN('$gluedSofts')";
                        $resSid = mysql_query( $reqSid, $_SESSION["readServer"] );
                        while( $valSid = mysql_fetch_array($resSid) ) {
                            $idNotIn[] = $valSid["hardware_id"];
                        }
                    }                    
                }                
            }
            else {                
                for($ii=0;$ii<sizeof($softsDi);$ii++) {
                    if( ! empty($laRequeteF) ) $laRequeteF .= " AND ";                        
                    $laRequeteF .= " h.id NOT IN(SELECT DISTINCT(ss.hardware_id) FROM softwares ss WHERE ss.name like '%".$softsDi[$ii][0]."%')";
                }
            }
            
            for($ii=0;$ii<sizeof($softsDi);$ii++) {
                if( ! empty($groupReq) ) $groupReq .=" AND";
                $groupReq .= " h.id NOT IN(SELECT DISTINCT(ss.hardware_id) FROM softwares ss WHERE ss.name like '%".$softsDi[$ii][0]."%')";
            }

            if( $_SESSION["usecache"] == true ) {
                if(sizeof($regDiff)>=1) {                
                    $regDiff[1] = strtr($regDiff[1], "?*", "_%");
                    $gluedRegs = getCache( "registry", "regvalue", $regDiff[1], $totRegs );
                    $reqSid = "SELECT DISTINCT hardware_id FROM registry WHERE name='".$regDiff[0]."' AND regvalue IN('".$gluedRegs."')";
                    $resSid = mysql_query( $reqSid, $_SESSION["readServer"] );
                    while( $valSid = mysql_fetch_array($resSid) ) {
                        $idNotIn[] = $valSid["hardware_id"];
                    }                    
                }
            }
            else {
                if(sizeof($regDiff)>=1) {
                    $valRegR = "AND rr.regvalue = '".$regDiff[1]."'";
                    if( ! empty($laRequeteF) ) $laRequeteF .= " AND";
                    $laRequeteF .= " h.id NOT IN(SELECT DISTINCT(rr.hardware_id) FROM registry rr WHERE rr.name = '".$regDiff[0]."' $valRegR)";
                }
            }
            
            if(sizeof($regDiff)>=1) {
                $valRegR = " AND rr.regvalue like '%".$regDiff[1]."%'";
                if(  ! empty($groupReq) ) $groupReq .= " AND";
                $groupReq .= " h.id NOT IN(SELECT DISTINCT(rr.hardware_id) FROM registry rr WHERE rr.name = '".$regDiff[0]."' $valRegR)";
            }
            //modif apportées pour résoudre bug des recherches qui renvoient toutes les machines
            if( ! empty($laRequeteF))
            $and=" AND ";

            if( (! empty($laRequeteF) || ! empty($reqSid)) && ! empty($mesMachines) ) {
                $laRequeteF .= $and.$mesMachines;
            }
            //fin des modifs
            if( sizeof( $idNotIn ) > 0 ) {
                if(  ! empty($laRequeteF) ) $laRequeteF .=" AND";
                $idNotIn = @array_unique( $idNotIn );
                $gluedId = @implode( "','", $idNotIn );
                $laRequeteF .= " h.id NOT IN('".$gluedId."')";
            }
                        
            if( ! empty($laRequeteF) ) $laRequeteF .= " AND ";
            $laRequeteF .= " deviceid<>'_SYSTEMGROUP_' AND deviceid <> '_DOWNLOADGROUP_' ";

            if( ! empty($groupReq) ) $groupReq .= " AND ";
            $groupReq .= " deviceid<>'_SYSTEMGROUP_' AND deviceid <> '_DOWNLOADGROUP_' ";

            $group =  " h.id";
            $lbl="Recherche multicritères";
            $lblChmp[0]=NULL;
            $selectPrelim = array("h.id"=>"h.id");
            $linkId = "h.id";
            $whereId = "h.id";
            $countId = "h.id";
            $_SESSION["groupReq"] = $groupReqBegin." " .$groupReq;
            $req=new Req($lbl,$whereId,$linkId,$laRequeteF,$leSelect,$selectPrelim,$from,$fromPrelim,$group,"h.lastdate DESC",$countId,null,true,null,null,null,null,$selFinal);
        }        
    }
    else if($_GET["redo"] || $_GET["c"] || $_GET["av"] || $_GET["page"] || isset($_GET["pcparpage"]) || isset($_GET["newcol"])  )
    {
        $lblChmp[0]=NULL;                
        $req=new Req($_SESSION["storedRequest"]->label,$_SESSION["storedRequest"]->whereId,$_SESSION["storedRequest"]->linkId,$_SESSION["storedRequest"]->where,$leSelect,$_SESSION["storedRequest"]->selectPrelim,
        $_SESSION["storedRequest"]->from,$_SESSION["storedRequest"]->fromPrelim,$_SESSION["storedRequest"]->group,$_SESSION["storedRequest"]->order,$_SESSION["storedRequest"]->countId,null,true,null,null,null,null,$_SESSION["storedRequest"]->selFinal); // Instanciation du nouvel objet de type "Req"        
        //echo $requeteCount[0];
    }
    
    if($_SESSION["debug"]) 
        echo "<br><font color='brown'><b>".$groupReqBegin." " .$groupReq."</b></font><br><br>";
    
    if( $totSofts > MAX_CACHED_SOFTS || $totRegs > MAX_CACHED_REGISTRY )
        echo "<br><center><font color='red'><b>Trop de résultats. Merci d'être plus spécifique.</b></font></center>";
    else if( $req != NULL ) {
        ShowResults($req,true,false,false,true,false,false,false,true,true);
    }
?>
<br>
<table border=0 width=80% align=center><tr align=right><td width=50%>
<form name='optionss' action='index.php?multi=1' method='post'><b><?php echo $l->g(31);?>:   </b> 
<select name=selOpt OnChange="optionss.submit();"><?php 

//Mod By Vince
//$optArray = array($l->g(34), $l->g(33), $l->g(557), $l->g(20), $l->g(26), $l->g(35),
//$l->g(36), $l->g(207), $l->g(25), $l->g(24), $l->g(377), $l->g(65), $l->g(284), $l->g(64), $l->g(554), 
//TAG_LBL, $l->g(357), $l->g(46),$l->g(257),$l->g(331),$l->g(209),$l->g(53),$l->g(45), $l->g(312), $l->g(286), $l->g(429), $l->g(512),$l->g(95),$l->g(555),$l->g(556));

$optArray = array($l->g(34), $l->g(33), $l->g(557), $l->g(20), $l->g(26), $l->g(35), $l->g(79),
$l->g(36), $l->g(207), $l->g(25), $l->g(24), $l->g(377), $l->g(65), $l->g(284), $l->g(64), $l->g(554), 
TAG_LBL, $l->g(357), $l->g(46),$l->g(257),$l->g(331),$l->g(209),$l->g(53),$l->g(45), $l->g(312), $l->g(286), $l->g(429), $l->g(512),$l->g(95),$l->g(555),$l->g(556));

// End of Vince Mod

//If software is selected, then software version is available
if(is_array($_SESSION["OPT"]) && in_array($l->g(20),$_SESSION["OPT"]))
    $optArray = array_merge( $optArray , array($l->g(19)) );

$optArray  = array_merge( $optArray, $_SESSION["optCol"]);
sort($optArray);
$countHl++;
echo "<option".($countHl%2==1?" class='hi'":"").">".$l->g(32)."</option>"; $countHl++;

foreach( $optArray as $val) {
    if( (!is_array($_SESSION["OPT"]) || !in_array($val,$_SESSION["OPT"])) && $val!="DEVICEID"&& $val!="HARDWARE_ID" || $val==$l->g(20)) {
        $countHl++;
        echo "<option".($countHl%2==1?" class='hi'":"").">$val</option>";
    }
}

?>
</select>
</form></td><td align=left>
<form method=post name=res action=index.php?multi=1><input taborder=2 type=submit name=reset value=<?php echo $l->g(41);?>></form></td>
</td></tr></table>

<?php 
$softVersion = false;
if( @in_array($l->g(19),$_SESSION["OPT"]))
    $softVersion = true;

if($_SESSION["OPT"]!=0)
{    
    echo "<form name=machine action=index.php?multi=1 method=post><table border=1 class= 'Fenetre' WIDTH = '75%' ALIGN = 'Center' CELLPADDING='5'>";
    
    $ligne[] = array( $l->g(34),"ipaddr","hardware","",2,5,"",false,true);
    $ligne[] = array( $l->g(33),"workgroup","hardware","SELECT DISTINCT workgroup FROM hardware",1,1,"",false,true);
    $ligne[] = array( $l->g(557),"userdomain","hardware","SELECT DISTINCT userdomain FROM hardware",1,1,"",false,true);
    
    foreach( $_SESSION["OPT"] as $op )
        if( $op == $l->g(20) ) {
            $ligne[] = array( $l->g(20),"name","softwares","",2,7,"",false,true,!$softVersion);
            if( $softVersion )
                break;
        }
    $ligne[] = array( $l->g(19),"sversion","softwares","",2,1,"",false,true);
    $ligne[] = array( $l->g(26),"memory","hardware","",2,3,"MO",false,false);
    $ligne[] = array( $l->g(35),"hname","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(53),"description","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(46),"lastdate","hardware","",2,2,"",true);
    $ligne[] = array( $l->g(357),"useragent","hardware","SELECT DISTINCT useragent FROM hardware",1,1,"",false,false);
    $ligne[] = array( $l->g(36),"ssn","bios","",2,1,"",false,true);    
    $ligne[] = array( $l->g(64),"smanufacturer","bios","",2,1,"",false,true);
    $ligne[] = array( $l->g(65),"smodel","bios","",2,1,"",false,true);
    $ligne[] = array( $l->g(284),"bmanufacturer","bios","",2,1,"",false,true);
    $ligne[] = array( $l->g(207),"ipgateway","networks","",2,5,"",false,true);
    $ligne[] = array( $l->g(331),"ipsubnet","networks","",2,5,"",false,true);
    $ligne[] = array( $l->g(95),"macaddr","networks","",2,5,"",false,true);
    $ligne[] = array( $l->g(25),"osname","hardware","SELECT DISTINCT osname FROM ".($_SESSION["usecache"] == true?"hardware_osname_cache":"hardware"),1,1,"",false,false);
    $ligne[] = array( $l->g(286),"oscomments","hardware","SELECT DISTINCT oscomments FROM hardware",2,1,"",false,true);
    $ligne[] = array( $l->g(24),"userid","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(377),"processors","hardware","",2,3,"MHZ",false,false);
    $ligne[] = array( $l->g(45),"free","drives","",2,3,"MB",false,false);
    $ligne[] = array( $l->g(257),"regname","hardware","SELECT DISTINCT name FROM ".($_SESSION["usecache"] == true?"registry_name_cache":"registry"),1,6,"",false,true);
    $ligne[] = array( $l->g(554),"smonitor","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(555),"fmonitor","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(556),"lmonitor","hardware","",2,1,"",false,true);

    //add by Vince
    $ligne[] = array( $l->g(79),"printer","hardware","",2,1,"",false,true);
    // end of Vince Mod

    $ligne[] = array( $l->g(209),"bversion","bios","",2,1,"",false,true);
    $ligne[] = array( TAG_LBL,"cu","accountinfo","",2,1);

    //HARDCODED OPTIONS
    $ligne[] = array( $l->g(312), "ipdisc");
    $ligne[] = array( $l->g(429), "freq" );
    $ligne[] = array( $l->g(512), "tele" );
    
    foreach($_SESSION["optCol"] AS $col) {
        if($col!="DEVICEID"&&$col!="TAG"&&$col!="HARDWARE_ID") {
            $isDate = isFieldDate($col);
            $ligne[]  =  array( $col,$col,"hardware","accountinfo",2,$isDate ? 2 : 1,"",$isDate,true);
        }
    }
    
    foreach( $ligne as $laLigne) {
        $colATrier[] = $laLigne[0];
    }
    $indLigneSoft = 0;
    sort($colATrier);
    foreach($colATrier as $nomLigne) {
        foreach($ligne as $laLigne) {
            if($laLigne[0] == $nomLigne) {
                afficheLigne($laLigne);
                break;
            }
        }
    }    
    
    $color=$indLigne%2==0?"#F2F2F2":"#FFFFFF";
    echo "<tr bgcolor='$color'><td colspan='3' align='right'><input type='hidden' name='max' value='$indLigne'>";
    
    if($_SESSION["OPT"]!=0)
    {
        echo "<input type=submit taborder=1 name=sub value=".$l->g(30).">";
    }    
    echo "</td></tr></table></form>";
    if($_SESSION["OPT"]!=0)
    {
        echo "<center><i>".$l->g(358)."</i></font></center><br>";
    }    
}

function afficheLigne($ligne)
{    
    global $indLigne,$indLigneSoft,$l,$_POST;    

    $label = $ligne[0];
    $champ = $ligne[1];
    $table = $ligne[2];
    $laRequete = $ligne[3];
    $combo = isset($ligne[4]) ? $ligne[4] : 1 ;
    $type = isset($ligne[5]) ? $ligne[5] : 1 ;
    $leg = isset($ligne[6]) ? $ligne[6] : "" ;
    $isDate = isset($ligne[7]) ? $ligne[7] : false ;
    $allowExact = isset($ligne[8]) ? $ligne[8] : true ;
    $canDisable = isset($ligne[9]) ? $ligne[9] : true ;

    if(is_array($_SESSION["OPT"])) {
        if(!in_array($label,$_SESSION["OPT"]))
            return;
    }
    else
        return;
    
    $color=$indLigne%2==0?"#F2F2F2":"#FFFFFF";
    $suff="_".$indLigne;
    
    if( $type == 7) {// un soft
        echo"<tr bgcolor=$color><td>";
        if( ! $canDisable )
            echo "<input type='hidden' name='act$suff' id='act$suff' value='on'>";
        echo "<input type=checkbox ".($canDisable?"":"disabled checked")." id='act$suff' name='act$suff'".($_SESSION["softs"][$indLigneSoft][0]=="on"||$_POST["selOpt"]==$label?" checked":"")."> ".$l->g(205)."</input>
            <input type=hidden name='chm$suff' value=$champ>
            <input type=hidden name='lbl$suff' value='".urlencode($label)."'>
        </td><td>$label</td><td>";
        echo "<select OnClick='act$suff.checked=true' name='ega$suff'>";        
        echo "<option".($_SESSION["softs"][$indLigneSoft][2]==$l->g(129)?" selected":"").">".$l->g(129)."</option>";
        if( $allowExact ) echo "<option".(($_SESSION["softs"][$indLigneSoft][2]==$l->g(410) or !isset($_SESSION["softs"][$indLigneSoft][2]))?" selected":"").">".$l->g(410)."</option>";
        echo "<option".($_SESSION["softs"][$indLigneSoft][2]==$l->g(130)?" selected":"").">".$l->g(130)."</option>";
        echo "</select>  ";
        echo "<input OnClick='act$suff.checked=true' name='val$suff' value=\"".stripslashes($_SESSION["softs"][$indLigneSoft][3])."\">";
        $indLigne++;
        $indLigneSoft++;
        return;
    }

    echo"        
    <tr bgcolor=$color>
        <td>
            <input type=checkbox id='act$suff' name='act$suff'".($_SESSION["reqs"][$label][0]=="on"||$_POST["selOpt"]==$label?" checked":"")."> ".$l->g(205)."</input>
            <input type=hidden name='chm$suff' value=$champ>
            <input type=hidden name='lbl$suff' value='".urlencode($label)."'>
        </td>
        <td>
            $label
        </td>
        <td>";    
        
    if( $champ == "ipdisc" ) {    
        echo "<select OnClick='act$suff.checked=true' name='val$suff'>
        <option ".($_SESSION["reqs"][$label][3]=="elu"?" selected":"")." value='elu'>".$l->g(502)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="for"?" selected":"")." value='for'>".$l->g(503)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="nelu"?" selected":"")." value='nelu'>".$l->g(504)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="eli"?" selected":"")." value='eli'>".$l->g(505)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="neli"?" selected":"")." value='neli'>".$l->g(506)."</option></select></td></tr>";
        $indLigne++;
        return;    
    }
    else if( $champ == "freq" ) {
        echo "<select OnClick='act$suff.checked=true' name='val$suff'>
        <option ".($_SESSION["reqs"][$label][3]=="std"?" selected":"")." value='std'>".$l->g(488)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="always"?" selected":"")." value='always'>".$l->g(485)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="never"?" selected":"")." value='never'>".$l->g(486)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="custom"?" selected":"")." value='custom'>".$l->g(487)."</option></select></td></tr>";
        $indLigne++;
        return;    
    }
    else if( $champ == "tele" ) {
        
        $resTele = @mysql_query("SELECT distinct NAME FROM download_available ORDER BY NAME", $_SESSION["readServer"]);
        
        if( mysql_num_rows( $resTele ) >0 ) {        
            echo "<select OnClick='act$suff.checked=true' name='ega$suff'>
            <option ".($_SESSION["reqs"][$label][2]=="ayant"?" selected":"")." value='ayant'>".$l->g(507)."</option>
            <option ".($_SESSION["reqs"][$label][2]=="nayant"?" selected":"")." value='nayant'>".$l->g(508)."</option>
            </select>  ".$l->g(498).": <select OnClick='act$suff.checked=true' name='val$suff'>";
            while( $valTele = mysql_fetch_array( $resTele )) {
                echo "<option ".($_SESSION["reqs"][$label][3]==$valTele["NAME"]?" selected":"").">".$valTele["NAME"]."
                </option>";    
            }                
            
            echo "</select> ".$l->g(546).": <select OnClick='act$suff.checked=true' name='val2$suff'>
            <option ".($_SESSION["reqs"][$label][4]=="ind"?" selected":"")." value='ind'>".$l->g(509)."</option>
            <option ".($_SESSION["reqs"][$label][4]=="nsuc"?" selected":"")." value='nsuc'>".$l->g(548)."</option>
            <option ".($_SESSION["reqs"][$label][4]=="suc"?" selected":"")." value='suc'>SUCCESS</option>
            <option ".($_SESSION["reqs"][$label][4]=="stats"?" selected":"")." value='stats'>".$l->g(482)."</option>";
            
            $resState = @mysql_query("SELECT distinct(tvalue) FROM devices WHERE tvalue<>'SUCCESS' AND tvalue IS NOT NULL AND name='DOWNLOAD'", $_SESSION["readServer"]);
            while( $valState = @mysql_fetch_array( $resState )) {
                echo "<option ".($_SESSION["reqs"][$label][4]==$valState["tvalue"]?" selected":"")." value='".$valState["tvalue"]."'>".$valState["tvalue"]."</option>";
            }     
            
            echo "</select>";
            $indLigne++;
        }
        else {
            echo $l->g(510);    
        }
        return;    
    }
        
        if($type != 4 && $type != 6) {
                    echo $_SESSION["reqs"][$label][2];
            echo "<select OnClick='act$suff.checked=true' name='ega$suff'>            
            <option".($_SESSION["reqs"][$label][2]==$l->g(129)?" selected":"").">".$l->g(129)."</option>";
            if( $allowExact ) echo "<option".(($_SESSION["reqs"][$label][2]==$l->g(410) or !isset($_SESSION["reqs"][$label][2]))?" selected":"").">".$l->g(410)."</option>";
            echo "<option".($_SESSION["reqs"][$label][2]==$l->g(130)?" selected":"").">".$l->g(130)."</option>";
    
            if( $isDate) {
                echo "<option".($_SESSION["reqs"][$label][2]==$l->g(346)?" selected":"").">".$l->g(346)."</option><option".($_SESSION["reqs"][$label][2]==$l->g(347)?" selected":"").">".$l->g(347)."</option>"; 
            }
            else if( $type==2||$type==3 )
            {
                echo "<option".($_SESSION["reqs"][$label][2]==$l->g(201)?" selected":"").">".$l->g(201)."</option><option".($_SESSION["reqs"][$label][2]==$l->g(202)?" selected":"").">".$l->g(202)."</option>";
            }
            if ($type==3)
            {
                echo "<option".($_SESSION["reqs"][$label][2]==$l->g(203)?" selected":"").">".$l->g(203)."</option>";//<option".($_POST["ega$suff"]==$l->g(204)?" selected":"").">".$l->g(204)."</option>";        
            }
        }
        else if( $type != 6)
            echo $l->g(129);
        if( $type != 6)
            echo "</select>  ";
            
    if($combo==1)
    {
        echo "<select OnClick='act$suff.checked=true' name='val$suff'>";    
        $res=mysql_query($laRequete, $_SESSION["readServer"]) or die(mysql_error($_SESSION["readServer"]));
        
        $linSel = "LINUX"   == $_SESSION["reqs"][$label][3] ?" selected":"";
        $winSel = "WINDOWS" == $_SESSION["reqs"][$label][3] ?" selected":"";
        $macOSX = "MacOSX"  == $_SESSION["reqs"][$label][3] ?" selected":""; //add by WES Young

        
        if( $champ=="osname")
            echo "<option value='LINUX' $linSel>LINUX (".$l->g(547).")</option>
                  <option value='WINDOWS' $winSel>WINDOWS (".$l->g(547).")</option>

                  <option value='MacOSX' $macOSX>MacOSX (".$l->g(547).")</option>";//add by WES Young

                 

        while($row=mysql_fetch_array($res))
        {
            if($row[0]=="") continue;    
            $selected = $row[0]== $_SESSION["reqs"][$label][3] ?" selected":"";
            echo "<option$selected>".$row[0]."</option>\n";    
        }
        
        echo "</select>";
    }
    else
    {
        if( $isDate ) {
            echo "<input READONLY ".dateOnClick("val$suff","act$suff")." OnClick='act$suff.checked=true' name='val$suff' id='val$suff' value='"./*dateFromMysql(*/$_SESSION["reqs"][$label][3]/*)*/."'>".datePick("val$suff","act$suff");
        }
        else
            echo "<input OnClick='act$suff.checked=true' name='val$suff' value=\"".stripslashes($_SESSION["reqs"][$label][3])."\">";
        
        if ($type==3) // deux inputs pour "entre machin et truc"
        {
            echo "  --  <input OnClick='act$suff.checked=true' name='val2$suff' value='".$_SESSION["reqs"][$label][4]."'>";
        }    
    }
    if( $type == 6) {
            echo "<select OnClick='act$suff.checked=true' name='ega$suff'>            
            <option".($_SESSION["reqs"][$label][2]==$l->g(129)?" selected":"").">".$l->g(129)."</option>";
            if( $allowExact ) echo "<option".(($_SESSION["reqs"][$label][2]==$l->g(410) or !isset($_SESSION["reqs"][$label][2]))?" selected":"").">".$l->g(410)."</option>";
            echo "<option".($_SESSION["reqs"][$label][2]==$l->g(130)?" selected":"").">".$l->g(130)."</option></select>";
            /*$reqRes = mysql_query("SELECT DISTINCT(regvalue) FROM registry", $_SESSION["readServer"]) or die(mysql_error($_SESSION["readServer"])); // mesmachines
            echo "  ".$l->g(224).":  */
            echo "<input OnClick='act$suff.checked=true' name='valreg$suff' value='".($_SESSION["reqs"][$label][5])."'>";
                    
            /*while($row=mysql_fetch_array($reqRes))
            {
                if($row[0]=="") continue;    
                $selected = $row[0]== $_SESSION["reqs"][$label][5] ?" selected":"";
                echo "<option$selected>".$row[0]."</option>\n";    
            }*/
            
            echo "</input>";            
    }    
    
    echo "   $leg</td></tr>";
    $indLigne++;
}

function getCache( $table, $field, $value, &$count ) {
    $reqCache = "SELECT ".$field." FROM ".$table."_".$field."_cache WHERE ".$field." LIKE '%".$value."%' AND ".$field." IS NOT NULL";     
    $resCache = mysql_query( $reqCache, $_SESSION["readServer"] );
    $cached = array();
    while( $valCache = mysql_fetch_array( $resCache ) ) {
        if( $count > 200 )
            return NULL;
        $cached[] = $valCache[$field];
        $count++;                            
    }
    
    $glued = @implode("','", $cached);
    return $glued;
}

function isFieldDate($nom) {
    if( $nom == "lastdate" )
        return true;
        
    $reqType = "SELECT $nom FROM accountinfo";
    if( $resType = @mysql_query($reqType, $_SESSION["readServer"])) {
        $valType = mysql_fetch_field($resType);
        return ($valType->type == "date");
    }
    return false;
}

        
?>

So Simply replace the content of your multicritere.php file by this one and restart apache...

Stonedge

Last edited by Stonedge (2009-10-26 15:21:12)

Offline

#7 2010-07-16 14:15:45

Stonedge
New member
Registered: 2009-10-05
Posts: 4

Re: No search parameter for printers in OCS Search

Here is the complete multicritere.php with Printer name search, updated to the version 1.3.2

<?php 
//====================================================================================
// OCS INVENTORY REPORTS
// Copyleft Pierre LEMMET 2005
// Web: http://ocsinventory.sourceforge.net
//
// This code is open source and may be copied and modified as long as the source
// code is always made freely available.
// Please refer to the General Public Licence http://www.gnu.org/ or Licence.txt
//====================================================================================
//Modified on $Date: 2008-02-27 12:34:12 $$Author: hunal $($Revision: 1.17 $)
include('security.php');
require_once('require/function_server.php');

//cas of add new server's diff
if (isset($_POST['valid_server']) and $_POST['valid_server'] != '0')
{

    $i=1;
    foreach ($_POST as $key=>$value){
        if (substr($key, 0, 9) == "checkmass"){
            $mach[$i]=$value;
            $i++;
        }
    }
    if ($mach == "")
    {
        $sql="select h.id ".$_SESSION['groupReq'];
        $res = mysql_query( $sql, $_SESSION["readServer"]);
        while( $valallid = mysql_fetch_array( $res ) ){
            $mach[$i] = $valallid['id'];
            $i++;
        }

    }
    if ($_POST['name_server_new'] != "")
    $name=$_POST['name_server_new'];
    elseif ($_POST['name_server_add'] != "")
    $name=$_POST['name_server_add'];
    elseif ($_POST['name_server_replace'] != "")
    $name=$_POST['name_server_replace'];
    $msg=admin_serveur($_POST['action_server'],$name,$_POST['descr_server'],$mach) ;
    echo "<script>alert('".$msg."');</script>";
}

    if( isset( $_GET["nme"] ) && isset( $_GET["stat"] ) ) {
        $_POST["act_0"] = "on";
        $_POST["chm_0"] = "tele";
        $_POST["lbl_0"] = $l->g(512);
        $_POST["ega_0"] = "ayant";
        $_POST["val_0"] = urldecode( $_GET["nme"] );
        $_POST["val2_0"] = urldecode( $_GET["stat"] );
        $_POST["sub"] = $l->g(30);
        $_POST["max"] = 1;
        if( $_POST["val2_0"] == $l->g(482) ) {
            $_POST["val2_0"] = "stats";
        }
        $_SESSION["OPT"][] = $l->g(512);
    }

    if($_POST["sub"]==$l->g(30)) {
        unset($_SESSION["selectSofts"]);
        unset($_SESSION["selectRegistry"]);
        unset($_SESSION["storedRequest"], $_SESSION["c"],$_SESSION["reqs"],$_SESSION["softs"]);
    }

    printEnTete($l->g(9));
    $req = NULL;

    if( !isset($_SESSION["optCol"]) ) {
        $reqCol = "SHOW COLUMNS FROM accountinfo";
        $resCol = mysql_query($reqCol, $_SESSION["readServer"]) or die(mysql_error($_SESSION["readServer"]));
        while($colname=mysql_fetch_array($resCol)) {
            if( strcasecmp($colname["Field"], TAG_NAME) != 0 )
                $_SESSION["optCol"][] = $colname["Field"] ;
        }
    }

    require("req.class.php");
    $indLigne=0;
    $softPresent = false;
    $cuPresent = -1;
    $leSelect = array_merge( array("h.id"=>"h.id", "deviceid"=>"deviceid"), $_SESSION["currentFieldList"] );

    if( is_array($_SESSION["selectSofts"]) && $_POST["sub"]!=$l->g(30))
        $leSelect = array_merge( $leSelect, $_SESSION["selectSofts"] );

    if( is_array($_SESSION["selectRegistry"]) )
        $leSelect = array_merge( $leSelect, $_SESSION["selectRegistry"] );

    $selFinal ="";

    if($_POST["reset"]==$l->g(41))
    {
        unset($_SESSION["OPT"]);
        unset($_SESSION["reqs"]);
        unset($_SESSION["softs"]);
    }
    else if($_POST["selOpt"])
    {
        $_POST["selOpt"] = urldecode( $_POST["selOpt"] );
        if( $_POST["selOpt"]==$l->g(20) ||  ((! is_array($_SESSION["OPT"]))  ||   ( !in_array($_POST["selOpt"],$_SESSION["OPT"])))) {
            $_SESSION["OPT"][]=stripslashes($_POST["selOpt"]);
        }
    }
    else if($_POST["sub"]==$l->g(30))
    {
        /* Creates a description of the generated query in $_SESSION["queryDescription"]
        $totSofts = 0;
        $totRegs = 0;

        $logName = "";
        $firstLog = true;
        for($cpLog=0;$cpLog<$_POST["max"];$cpLog++)    {
            if( $_POST["val_".$cpLog] != "" && $_POST["act_".$cpLog] == "on" ) {                
                if( ! $firstLog )
                    $logName .= " &\n";
                $logName .= addslashes( $_POST["chm_".$cpLog]." ".$_POST["ega_".$cpLog]." ".$_POST["val_".$cpLog] );
                if( $_POST["ega_".$cpLog] == $l->g(203) )
                    $logName .= $l->g(582).$_POST["val2_".$cpLog];

                $firstLog = false;
            }
        }
        $_SESSION["queryDescription"] = $logName ;
        */
        $i=0; $nb=0; 
        $laRequete="";                

        for($i=0;$i<$_POST["max"];$i++)    {

            if( urldecode($_POST["lbl_".$i]) == $l->g(20))
                $_SESSION["softs"][] = array( $_POST["act_".$i], urldecode($_POST["chm_".$i]), $_POST["ega_".$i],
                strtr($_POST["val_".$i],"\"","'"), strtr($_POST["val2_".$i],"\"","'"), $_POST["valreg_".$i] );

            $_SESSION["reqs"][ urldecode($_POST["lbl_".$i]) ] = array( $_POST["act_".$i], urldecode($_POST["chm_".$i]), $_POST["ega_".$i],
            strtr($_POST["val_".$i],"\"","'"), strtr($_POST["val2_".$i],"\"","'"), $_POST["valreg_".$i] );

            if(!isset($_POST["act_".$i]))
                continue;
            $nb++;            
        }

        $from = " hardware h LEFT JOIN accountinfo a ON a.hardware_id=h.id LEFT JOIN bios b ON b.hardware_id=h.id,";
        //$laRequete.=" FROM hardware h,accountinfo a, bios b, ";

        $softTable = false ;
        $logIndex = 1;
        $fromPrelim  ="";
        for($i=0;$i<$_POST["max"];$i++)
        {

            if(!isset($_POST["act_".$i]))
            continue;

            //jokers
            if( $_POST["ega_".$i] != $l->g(410) )
                $_POST["val_".$i] = strtr($_POST["val_".$i], "?*", "_%");

            if( isFieldDate($_POST["chm_".$i]) ) {
                $_POST["val_".$i] = dateToMysql($_POST["val_".$i]);
            }

            if( ($_POST["chm_".$i]=="name") && ($_POST["ega_".$i]==$l->g(129) || $_POST["ega_".$i]==$l->g(410))) {
                $leSelect["s".$logIndex.".name"] = $l->g(20)." $logIndex";
                $_SESSION["selectSofts"]["s".$logIndex.".name"] = $l->g(20)." $logIndex";
            }

            if( ($_POST["chm_".$i]=="regval" || $_POST["chm_".$i]=="regname")&&
                ($_POST["ega_".$i]==$l->g(129) || $_POST["ega_".$i]==$l->g(410))) {
                $leSelect["r.regvalue"] = $_POST["val_".$i];
                $from = substr ( $from, 0 , strlen( $from)-1 );
                $from .= " LEFT JOIN registry r ON r.hardware_id=h.id AND r.name='".$_POST["val_".$i]."',";
                $_SESSION["selectRegistry"]["r.regvalue"] = $_POST["val_".$i];
            }

            $regRes = null;
            if( ($_POST["ega_".$i]==$l->g(129)||$_POST["ega_".$i]==$l->g(410)) && $_POST["chm_".$i]=="name" ) {
                //$fromPrelim.=" softwares s".$logIndex.",";
                $from .= " softwares s".$logIndex.",";
                $logIndex++;
            }

            if( ($_POST["chm_".$i]=="smonitor" || $_POST["chm_".$i]=="fmonitor" || $_POST["chm_".$i]=="lmonitor") && ! $monitorTable ) {
                $fromPrelim.=" monitors m,";
                $monitorTable = true;
            }

            //Mod By Vince
            if( ($_POST["chm_".$i]=="printer") && ! $PrinterTable ) {
                $fromPrelim.=" printers p,";
                $PrinterTable = true;
            }
            // End of Vince Mod

            if($_POST["chm_".$i]=="free") {
                $fromPrelim.=" drives dr,";
            }

            if(($_POST["chm_".$i]=="ipmask"||$_POST["chm_".$i]=="ipgateway"||$_POST["chm_".$i]=="ipaddr"||$_POST["chm_".$i]=="ipsubnet"||$_POST["chm_".$i]=="macaddr") && !$netTable) {
                $fromPrelim.=" networks n,";
                $netTable=true;
            }
        }

        if($fromPrelim[strlen($fromPrelim)-1]==",")
            $fromPrelim[strlen($fromPrelim)-1]=" ";
        if($from[strlen($from)-1]==",")
            $from[strlen($from)-1]=" ";
        $groupReqBegin = "FROM ".$from;
        if( $fromPrelim != "" )
            $groupReqBegin .= ",".$fromPrelim;

        $groupReqBegin .= " WHERE ";
        for($i=0;$i<$_POST["max"];$i++)
        {                
            if(!isset($_POST["act_".$i]))
                continue;
                                
            if( $_POST["act_".$i]="checked" && $_POST["chm_".$i] == "ipdisc" ) {
                            
                if( ! empty($laRequete) ) $laRequete .= " AND ";
                if( ! empty($groupReq) ) $groupReq .= " AND ";

                $laRequete.= " h.id ";
                $groupReq.= " h.id ";
                switch( $_POST["val_".$i] ) {
                    case "elu":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE ivalue=1 AND name='IPDISCOVER') "; 
                        $laRequete.= "IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=1 AND name='IPDISCOVER'"; 
                    break;
                    case "for":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE ivalue=2 AND name='IPDISCOVER') "; 
                        $laRequete.= "IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=2 AND name='IPDISCOVER'"; 
                    break;
                    case "nelu":
                        $groupReq.= "NOT IN (SELECT hardware_id FROM devices WHERE ivalue=1 AND name='IPDISCOVER') "; 
                        $laRequete.= "NOT IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=1 AND name='IPDISCOVER'"; 
                    break;
                    case "eli":
                        $groupReq.= "NOT IN (SELECT hardware_id FROM devices WHERE ivalue=0 AND name='IPDISCOVER') ";
                        $laRequete.= "NOT IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=0 AND name='IPDISCOVER'";
                    break;
                    case "neli":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE ivalue=0 AND name='IPDISCOVER') ";
                        $laRequete.= "IN "; 
                        $reqIdIpd = "SELECT DISTINCT hardware_id FROM devices WHERE ivalue=0 AND name='IPDISCOVER'";
                    break;
                }
                $laRequete .= "('".getGluedIds($reqIdIpd)."')";
                continue;
            }
            
            if( $_POST["act_".$i]="checked" && $_POST["chm_".$i] == "freq" ) {
                            
                if( ! empty($laRequete) ) $laRequete .= " AND ";
                if( ! empty($groupReq) ) $groupReq .= " AND ";

                $laRequete.= " h.id ";
                $groupReq .= " h.id ";
                switch( $_POST["val_".$i] ) {
                    case "std":
                        $groupReq.= "NOT IN (SELECT hardware_id FROM devices WHERE name='FREQUENCY') "; 
                        $laRequete.= "NOT IN ";
                        $reqIdFre = " (SELECT DISTINCT hardware_id FROM devices WHERE name='FREQUENCY') "; 
                    break;
                    case "always":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue=0) "; 
                        $laRequete.= "IN ";
                        $reqIdFre = "  (SELECT DISTINCT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue=0) "; 
                    break;
                    case "never":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue=-1) "; 
                        $laRequete.= "IN ";
                        $reqIdFre = "  (SELECT DISTINCT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue=-1) "; 
                    break;
                    case "custom":
                        $groupReq.= "IN (SELECT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue>0)  ";
                        $laRequete.= "IN ";
                        $reqIdFre = "  (SELECT DISTINCT hardware_id FROM devices WHERE name='FREQUENCY' AND ivalue>0)  ";
                    break;                    
                }
                $laRequete .= "('".getGluedIds($reqIdFre)."')";
                continue;
            }
            
            if( $_POST["act_".$i]="checked" && $_POST["chm_".$i] == "tele" ) {
                            
                if( ! empty($laRequete) ) $laRequete .= " AND ";
                if( ! empty($groupReq) ) $groupReq .= " AND ";                    
                $laRequete.= " h.id ";
                $groupReq .= " h.id ";
                
                if( $_POST["ega_".$i] == "ayant" ) {
                    $laRequete.= " IN ";
                    $groupReq .= " IN ";
                }
                else if( $_POST["ega_".$i] == "nayant" ) {
                    $laRequete.= " NOT IN ";
                    $groupReq .= " NOT IN ";
                }
                $reqIdDownload = "";
                switch( $_POST["val2_".$i] ) {
                    case "suc":
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND d.tvalue like 'SUCCESS%' AND e.fileid=a.fileid AND e.id=d.ivalue UNION 
                         SELECT dh.hardware_id FROM download_history dh, download_available da WHERE dh.pkg_id=da.fileid AND da.name='".$_POST["val_".$i].
                         "')"; 
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND d.tvalue like 'SUCCESS%' AND e.fileid=a.fileid AND e.id=d.ivalue UNION 
                         SELECT dh.hardware_id FROM download_history dh, download_available da WHERE dh.pkg_id=da.fileid AND da.name='".$_POST["val_".$i].
                         "'"; 
                    break;
                    case "nsuc":
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND (d.tvalue not like 'SUCCESS%' OR d.tvalue IS NULL) AND e.fileid=a.fileid AND e.id=d.ivalue) "; 
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND (d.tvalue not like 'SUCCESS%' OR d.tvalue IS NULL) AND e.fileid=a.fileid AND e.id=d.ivalue"; 
                    break;
                    case "ind":
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND e.fileid=a.fileid AND e.id=d.ivalue UNION SELECT dh.hardware_id FROM download_history dh, download_available da WHERE dh.pkg_id=da.fileid AND da.name='".$_POST["val_".$i].
                         "')";
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND e.fileid=a.fileid AND e.id=d.ivalue UNION SELECT dh.hardware_id FROM download_history dh, download_available da WHERE dh.pkg_id=da.fileid AND da.name='".$_POST["val_".$i].
                         "'";
                    break;
                    case "stats":
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND e.fileid=a.fileid AND e.id=d.ivalue AND d.tvalue IS NULL ) ";  
                    
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND e.fileid=a.fileid AND e.id=d.ivalue AND d.tvalue IS NULL";  
                    break;
                    default: //standard case
                        $groupReq.= "(SELECT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND d.tvalue='".$_POST["val2_".$i]."' AND e.fileid=a.fileid AND e.id=d.ivalue) ";  
                        $reqIdDownload = "SELECT DISTINCT d.hardware_id FROM devices d, download_available a, download_enable e
                         WHERE d.name='DOWNLOAD' AND a.name='".$_POST["val_".$i].
                         "' AND d.tvalue='".$_POST["val2_".$i]."' AND e.fileid=a.fileid AND e.id=d.ivalue";  
                    break;                                    
                }
                $laRequete .= "('".getGluedIds($reqIdDownload)."')";                
                continue;
            }
            
            if( $_POST["act_".$i]="checked" && ! (  ($cuPresent != -1 ) && $_POST["chm_".$i] == "cu") )
            {                
                // cas particulier avec LOGICIEL
                if( ($_POST["chm_".$i] == "name" ) ) {
                    if( $_POST["ega_".$i] == $l->g(129)||$_POST["ega_".$i]==$l->g(410) )
                        $softsEg[] = Array( $_POST["val_".$i], urldecode($_POST["lbl_".$i]), $_POST["ega_".$i] );
                    else
                        $softsDi[] = Array( $_POST["val_".$i], urldecode($_POST["lbl_".$i]), "" );
                    continue ;
                }
                
                // cas particulier avec registry DIFFERENT DE
                if( $_POST["chm_".$i] == "regname" && $_POST["ega_".$i] == $l->g(130) ) {
                    $regDiff=Array($_POST["val_".$i],$_POST["valreg_".$i]);
                    continue ;
                }
                
                $forceEgal=false;
                                                
                if($_POST["chm_".$i]=="regname") {
                    if( ! empty($laRequete) ) $laRequete .= " AND ";
                    if( ! empty($groupReq) ) $groupReq .= " AND ";    
                    $laRequete.= "r.hardware_id=h.id ";
                    $groupReq .= "r.hardware_id=h.id ";
                }
                $tblIneq = "h";    
                $reqCondition = "";                
                switch($_POST["chm_".$i])
                {
                    case "ssn": $reqCondition.="b.ssn";break;
                    case "bmanufacturer": $reqCondition.="b.bmanufacturer";break;
                    case "bversion": $reqCondition.="b.bversion";break;
                    case "smanufacturer": $reqCondition.="b.smanufacturer";break;
                    case "smodel": $reqCondition.="b.smodel";break;
                    case "ipmask": $reqCondition.="n.hardware_id=h.id AND n.ipmask";break;
                    case "ipgateway": $reqCondition.="n.hardware_id=h.id AND n.ipgateway";break;
                    case "free": $reqCondition.="dr.hardware_id=h.id AND dr.free";$tblIneq="dr";break;
                    case "ipsubnet": $reqCondition.="n.hardware_id=h.id AND n.ipsubnet";break;
                    case "regname": 
                            if( $_POST["valreg_".$i] != $l->g(265) ) {
                                if( $_POST["ega_".$i] != $l->g(410) )
                                    $_POST["valreg_".$i] = strtr($_POST["valreg_".$i], "?*", "_%");
                                
                                if( $_SESSION["usecache"] == true && $_POST["ega_".$i] == $l->g(129) ) {
                                    $glued = getCache( "registry", "regvalue", $_POST["valreg_".$i], $totRegs );
                                    $reqCondition.="r.regvalue IN('".$glued."') AND ";
                                }
                                else {
                                    $comp = $_POST["ega_".$i] == $l->g(129) ? " like '%" : " = '";                               
                                    $compFin = $_POST["ega_".$i] == $l->g(129) ? "%' " : "' ";
                                    $reqCondition.="r.regvalue$comp".$_POST["valreg_".$i]."{$compFin}AND ";
                                }
                            }
                            $reqCondition.="r.name";
                            $forceEgal=true;
                            break;                    
                    
                    case "name":                             
                            $reqCondition.="s.hardware_id=h.id AND s.name";
                            $softPresent = true;
                            if( $_POST["ega_".$i] == $l->g(129)||$_POST["ega_".$i]==$l->g(410) )
                                $unSoftnEgal = true ;
                            break;            
                            
                    case "ORDEROWNER": $reqCondition.="a.orderowner";break;
                    case "ORDERID": $reqCondition.="a.orderid";break;
                    case "PRODUCTID": $reqCondition.="a.productid";break;
                    case "BILLDATE": $reqCondition.="a.billnbr";break;
                    case "cu": $reqCondition.="a.".TAG_NAME;break;
                    case "processors": $reqCondition.="h.processors";break;
                    case "memory": $reqCondition.="h.memory";break;
                    case "osname": $reqCondition.="h.osname";$forceEgal=false;break;
                    case "oscomments": $reqCondition.="h.oscomments";$forceEgal=false;break;
                    case "userid": $reqCondition.="h.userid";break;
                    case "ipaddr": $reqCondition.="n.hardware_id=h.id AND n.ipaddress";break;
                    case "macaddr": $reqCondition.="n.hardware_id=h.id AND n.macaddr";break;
                    case "useragent": $reqCondition.="h.useragent";$forceEgal=true;break;
                    case "workgroup": $reqCondition.="h.workgroup";$forceEgal=true;break;
                    case "userdomain": $reqCondition.="h.userdomain";$forceEgal=true;break;
                    case "hname": $reqCondition.="h.name";break;
                    case "description": $reqCondition.="h.description";break;
                    case "lastdate": $reqCondition.="h.lastdate";break;
                    case "smonitor": $reqCondition.="m.hardware_id=h.id AND m.serial";break;
                    case "fmonitor": $reqCondition.="m.hardware_id=h.id AND m.manufacturer";break;
                    case "lmonitor": $reqCondition.="m.hardware_id=h.id AND m.caption";break;
                    // MOD by Vince
                    case "printer": $reqCondition.="p.hardware_id=h.id AND p.name";break;
                    // End Of Vince Mod
                    case "sversion": $reqCondition.="s1.hardware_id=h.id AND s1.version";break;
                    default: $reqCondition.="a.".$_POST["chm_".$i]; break;
                }
                
                if( $_POST["val_".$i] == "" ) {
                        switch($_POST["ega_".$i]) {
                            case $l->g(410):    
                            case $l->g(129): $reqCondition.=" IS NULL "; break;                        
                            case $l->g(130):                     
                            case $l->g(346):
                            case $l->g(201): 
                            case $l->g(347):
                            case $l->g(202): 
                            case $l->g(203): 
                            default: $reqCondition .=" IS NOT NULL "; break;        
                        }
                }
                else {
                    if( ! $forceEgal ) {
                        switch($_POST["ega_".$i]) {
                            case $l->g(410): $reqCondition.=" = ";$forceEgal=true; break;    
                            case $l->g(129): $reqCondition.=" LIKE ";$forceLike=true; break;                        
                            case $l->g(130): $reqCondition.=" NOT LIKE ";$forceLike=true; break;                    
                            case $l->g(346):
                            case $l->g(201): $reqCondition.="<"; $forceEgal=true; break;
                            case $l->g(347):
                            case $l->g(202): $reqCondition.=">"; $forceEgal=true; break;
                            case $l->g(203): $reqCondition.="<'".$_POST["val2_".$i]."' AND $tblIneq.".$_POST["chm_".$i].">"; $forceEgal=true; break;
                            //case $l->g(204): $reqCondition.=">'".$_POST["val2_".$i]."' OR h.".$_POST["chm_".$i]."<";break;
                            default: $reqCondition.=" LIKE "; $forceLike=true;break;
                        }
                    }
                    else {
                        switch($_POST["ega_".$i]) {
                            case $l->g(410):    
                            case $l->g(129): $reqCondition.=" = ";break;                        
                            case $l->g(130):                     
                            case $l->g(346):
                            case $l->g(201): 
                            case $l->g(347):
                            case $l->g(202): 
                            case $l->g(203): 
                            default: $reqCondition.=" <> ";break;        
                        }
                    }
                    
                    if( $forceEgal || !$forceLike )
                        $reqCondition.="'".$_POST["val_".$i]."'";    
                    else
                        $reqCondition.="'%".$_POST["val_".$i]."%'";                    
                }

                if( ! empty($laRequete) ) $laRequete .= " AND ";
                if( ! empty($groupReq) ) $groupReq .= " AND ";    
                $laRequete .= $reqCondition;
                $groupReq .= $reqCondition;
            }            
        }
        
        if( $nb > 0 ) {        
            $laRequeteF=$laRequete;                
            $logIndexEg = 1;
    
            for($ii=0;$ii<sizeof($softsEg);$ii++) {            
                $selFinal .= " AND ";
                if( ! empty($laRequeteF) ) $laRequeteF .= " AND ";
                if( ! empty($groupReq) )   $groupReq   .= " AND ";    
                
                $comp = $softsEg[$ii][2] == $l->g(129) ? " like '%" : " = '";
                $compFin = $softsEg[$ii][2] == $l->g(129) ? "%' " : "' ";
                $groupReq .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name$comp".$softsEg[$ii][0]."$compFin";
                // If cache is used AND 'like' search is used
                if( $_SESSION["usecache"] == true && $softsEg[$ii][2]==$l->g(129) ) {        
                    $gluedSofts = getCache( "softwares", "name", $softsEg[$ii][0], $totSofts );
                    if ($gluedSofts != ''){
                    $laRequeteF .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name IN('$gluedSofts')";
                    $selFinal   .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name IN('$gluedSofts')";
                    }
                    else{
                    $laRequeteF .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name IN('SOFT NOT EXIST')";
                    $selFinal   .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name IN('SOFT NOT EXIST')";
                    }
                }
                else {
                    $laRequeteF .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name$comp".$softsEg[$ii][0]."$compFin";
                    $selFinal   .= " s$logIndexEg.hardware_id=h.id AND s$logIndexEg.name$comp".$softsEg[$ii][0]."$compFin";
                }
                $logIndexEg++;
            }
            
            if( $_SESSION["usecache"] == true ) {
                            
                for($ii=0;$ii<sizeof($softsDi);$ii++) {
                    $gluedSofts = "";
                    $softsDi[$ii][0] = strtr($softsDi[$ii][0], "?*", "_%");
                    $gluedSofts = getCache( "softwares", "name", $softsDi[$ii][0], $totSofts );
                    
                    if( $gluedSofts != "" ) {
                        $reqSid = "SELECT DISTINCT hardware_id FROM softwares WHERE name IN('$gluedSofts')";
                        $resSid = mysql_query( $reqSid, $_SESSION["readServer"] );
                        while( $valSid = mysql_fetch_array($resSid) ) {
                            $idNotIn[] = $valSid["hardware_id"];
                        }
                    }                    
                }                
            }
            else {                
                for($ii=0;$ii<sizeof($softsDi);$ii++) {
                    if( ! empty($laRequeteF) ) $laRequeteF .= " AND ";                        
                    $laRequeteF .= " h.id NOT IN(SELECT DISTINCT(ss.hardware_id) FROM softwares ss WHERE ss.name like '%".$softsDi[$ii][0]."%')";
                }
            }
            
            for($ii=0;$ii<sizeof($softsDi);$ii++) {
                if( ! empty($groupReq) ) $groupReq .=" AND";
                $groupReq .= " h.id NOT IN(SELECT DISTINCT(ss.hardware_id) FROM softwares ss WHERE ss.name like '%".$softsDi[$ii][0]."%')";
            }

            if( $_SESSION["usecache"] == true ) {
                if(sizeof($regDiff)>=1) {                
                    $regDiff[1] = strtr($regDiff[1], "?*", "_%");
                    $gluedRegs = getCache( "registry", "regvalue", $regDiff[1], $totRegs );
                    $reqSid = "SELECT DISTINCT hardware_id FROM registry WHERE name='".$regDiff[0]."' AND regvalue IN('".$gluedRegs."')";
                    $resSid = mysql_query( $reqSid, $_SESSION["readServer"] );
                    while( $valSid = mysql_fetch_array($resSid) ) {
                        $idNotIn[] = $valSid["hardware_id"];
                    }                    
                }
            }
            else {
                if(sizeof($regDiff)>=1) {
                    $valRegR = "AND rr.regvalue = '".$regDiff[1]."'";
                    if( ! empty($laRequeteF) ) $laRequeteF .= " AND";
                    $laRequeteF .= " h.id NOT IN(SELECT DISTINCT(rr.hardware_id) FROM registry rr WHERE rr.name = '".$regDiff[0]."' $valRegR)";
                }
            }
            
            if(sizeof($regDiff)>=1) {
                $valRegR = " AND rr.regvalue like '%".$regDiff[1]."%'";
                if(  ! empty($groupReq) ) $groupReq .= " AND";
                $groupReq .= " h.id NOT IN(SELECT DISTINCT(rr.hardware_id) FROM registry rr WHERE rr.name = '".$regDiff[0]."' $valRegR)";
            }
            //modif apportées pour résoudre bug des recherches qui renvoient toutes les machines
            if( ! empty($laRequeteF))
            $and=" AND ";

            if( (! empty($laRequeteF) || ! empty($reqSid)) && ! empty($mesMachines) ) {
                $laRequeteF .= $and.$mesMachines;
            }
            //fin des modifs
            if( sizeof( $idNotIn ) > 0 ) {
                if(  ! empty($laRequeteF) ) $laRequeteF .=" AND";
                $idNotIn = @array_unique( $idNotIn );
                $gluedId = @implode( "','", $idNotIn );
                $laRequeteF .= " h.id NOT IN('".$gluedId."')";
            }
                        
            if( ! empty($laRequeteF) ) $laRequeteF .= " AND ";
            $laRequeteF .= " deviceid<>'_SYSTEMGROUP_' AND deviceid <> '_DOWNLOADGROUP_' ";

            if( ! empty($groupReq) ) $groupReq .= " AND ";
            $groupReq .= " deviceid<>'_SYSTEMGROUP_' AND deviceid <> '_DOWNLOADGROUP_' ";

            $group =  " h.id";
            $lbl="Recherche multicritères";
            $lblChmp[0]=NULL;
            $selectPrelim = array("h.id"=>"h.id");
            $linkId = "h.id";
            $whereId = "h.id";
            $countId = "h.id";
            $_SESSION["groupReq"] = $groupReqBegin." " .$groupReq;
            $req=new Req($lbl,$whereId,$linkId,$laRequeteF,$leSelect,$selectPrelim,$from,$fromPrelim,$group,"h.lastdate DESC",$countId,null,true,null,null,null,null,$selFinal);
        }        
    }
    else if($_GET["redo"] || $_GET["c"] || $_GET["av"] || $_GET["page"] || isset($_GET["pcparpage"]) || isset($_GET["newcol"])  )
    {
        $lblChmp[0]=NULL;                
        $req=new Req($_SESSION["storedRequest"]->label,$_SESSION["storedRequest"]->whereId,$_SESSION["storedRequest"]->linkId,$_SESSION["storedRequest"]->where,$leSelect,$_SESSION["storedRequest"]->selectPrelim,
        $_SESSION["storedRequest"]->from,$_SESSION["storedRequest"]->fromPrelim,$_SESSION["storedRequest"]->group,$_SESSION["storedRequest"]->order,$_SESSION["storedRequest"]->countId,null,true,null,null,null,null,$_SESSION["storedRequest"]->selFinal); // Instanciation du nouvel objet de type "Req"        
        //echo $requeteCount[0];
    }
    
    if($_SESSION["debug"]) 
        echo "<br><font color='brown'><b>".$groupReqBegin." " .$groupReq."</b></font><br><br>";
    
    if( $totSofts > MAX_CACHED_SOFTS || $totRegs > MAX_CACHED_REGISTRY )
        echo "<br><center><font color='red'><b>Trop de résultats. Merci d'être plus spécifique.</b></font></center>";
    else if( $req != NULL ) {
        ShowResults($req,true,false,false,true,false,false,false,true,true);
    }
?>
<br>
<table border=0 width=80% align=center><tr align=right><td width=50%>
<form name='optionss' action='index.php?multi=1' method='post'><b><?php echo $l->g(31);?>:   </b> 
<select name=selOpt OnChange="optionss.submit();"><?php 

//Mod By Vince
//$optArray = array($l->g(34), $l->g(33), $l->g(557), $l->g(20), $l->g(26), $l->g(35),
//$l->g(36), $l->g(207), $l->g(25), $l->g(24), $l->g(377), $l->g(65), $l->g(284), $l->g(64), $l->g(554), 
//TAG_LBL, $l->g(357), $l->g(46),$l->g(257),$l->g(331),$l->g(209),$l->g(53),$l->g(45), $l->g(312), $l->g(286), $l->g(429), $l->g(512),$l->g(95),$l->g(555),$l->g(556));

$optArray = array($l->g(34), $l->g(33), $l->g(557), $l->g(20), $l->g(26), $l->g(35), $l->g(79),
$l->g(36), $l->g(207), $l->g(25), $l->g(24), $l->g(377), $l->g(65), $l->g(284), $l->g(64), $l->g(554), 
TAG_LBL, $l->g(357), $l->g(46),$l->g(257),$l->g(331),$l->g(209),$l->g(53),$l->g(45), $l->g(312), $l->g(286), $l->g(429), $l->g(512),$l->g(95),$l->g(555),$l->g(556));

// End of Vince Mod


//If software is selected, then software version is available
if(is_array($_SESSION["OPT"]) && in_array($l->g(20),$_SESSION["OPT"]))
    $optArray = array_merge( $optArray , array($l->g(19)) );

$optArray  = array_merge( $optArray, $_SESSION["optCol"]);
sort($optArray);
$countHl++;
echo "<option".($countHl%2==1?" class='hi'":"").">".$l->g(32)."</option>"; $countHl++;

foreach( $optArray as $val) {
    if( (!is_array($_SESSION["OPT"]) || !in_array($val,$_SESSION["OPT"])) && $val!="DEVICEID"&& $val!="HARDWARE_ID" || $val==$l->g(20)) {
        $countHl++;
        echo "<option".($countHl%2==1?" class='hi'":"").">$val</option>";
    }
}

?>
</select>
</form></td><td align=left>
<form method=post name=res action=index.php?multi=1><input taborder=2 type=submit name=reset value=<?php echo $l->g(41);?>></form></td>
</td></tr></table>

<?php 
$softVersion = false;
if( @in_array($l->g(19),$_SESSION["OPT"]))
    $softVersion = true;

if($_SESSION["OPT"]!=0)
{    
    echo "<form name=machine action=index.php?multi=1 method=post><table border=1 class= 'Fenetre' WIDTH = '75%' ALIGN = 'Center' CELLPADDING='5'>";
    
    $ligne[] = array( $l->g(34),"ipaddr","hardware","",2,5,"",false,true);
    $ligne[] = array( $l->g(33),"workgroup","hardware","SELECT DISTINCT workgroup FROM hardware",1,1,"",false,true);
    $ligne[] = array( $l->g(557),"userdomain","hardware","SELECT DISTINCT userdomain FROM hardware",1,1,"",false,true);
    
    foreach( $_SESSION["OPT"] as $op )
        if( $op == $l->g(20) ) {
            $ligne[] = array( $l->g(20),"name","softwares","",2,7,"",false,true,!$softVersion);
            if( $softVersion )
                break;
        }
    $ligne[] = array( $l->g(19),"sversion","softwares","",2,1,"",false,true);
    $ligne[] = array( $l->g(26),"memory","hardware","",2,3,"MO",false,false);
    $ligne[] = array( $l->g(35),"hname","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(53),"description","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(46),"lastdate","hardware","",2,2,"",true);
    $ligne[] = array( $l->g(357),"useragent","hardware","SELECT DISTINCT useragent FROM hardware",1,1,"",false,false);
    $ligne[] = array( $l->g(36),"ssn","bios","",2,1,"",false,true);    
    $ligne[] = array( $l->g(64),"smanufacturer","bios","",2,1,"",false,true);
    $ligne[] = array( $l->g(65),"smodel","bios","",2,1,"",false,true);
    $ligne[] = array( $l->g(284),"bmanufacturer","bios","",2,1,"",false,true);
    $ligne[] = array( $l->g(207),"ipgateway","networks","",2,5,"",false,true);
    $ligne[] = array( $l->g(331),"ipsubnet","networks","",2,5,"",false,true);
    $ligne[] = array( $l->g(95),"macaddr","networks","",2,5,"",false,true);
    $ligne[] = array( $l->g(25),"osname","hardware","SELECT DISTINCT osname FROM ".($_SESSION["usecache"] == true?"hardware_osname_cache":"hardware"),1,1,"",false,false);
    $ligne[] = array( $l->g(286),"oscomments","hardware","SELECT DISTINCT oscomments FROM hardware",2,1,"",false,true);
    $ligne[] = array( $l->g(24),"userid","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(377),"processors","hardware","",2,3,"MHZ",false,false);
    $ligne[] = array( $l->g(45),"free","drives","",2,3,"MB",false,false);
    $ligne[] = array( $l->g(257),"regname","hardware","SELECT DISTINCT name FROM ".($_SESSION["usecache"] == true?"registry_name_cache":"registry"),1,6,"",false,true);
    $ligne[] = array( $l->g(554),"smonitor","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(555),"fmonitor","hardware","",2,1,"",false,true);
    $ligne[] = array( $l->g(556),"lmonitor","hardware","",2,1,"",false,true);
    // Mod By Vince
    $ligne[] = array( $l->g(79),"printer","hardware","",2,1,"",false,true);
    // End mod By Vince
    $ligne[] = array( $l->g(209),"bversion","bios","",2,1,"",false,true);
    $ligne[] = array( TAG_LBL,"cu","accountinfo","",2,1);

    //HARDCODED OPTIONS
    $ligne[] = array( $l->g(312), "ipdisc");
    $ligne[] = array( $l->g(429), "freq" );
    $ligne[] = array( $l->g(512), "tele" );
    
    foreach($_SESSION["optCol"] AS $col) {
        if($col!="DEVICEID"&&$col!="TAG"&&$col!="HARDWARE_ID") {
            $isDate = isFieldDate($col);
            $ligne[]  =  array( $col,$col,"hardware","accountinfo",2,$isDate ? 2 : 1,"",$isDate,true);
        }
    }
    
    foreach( $ligne as $laLigne) {
        $colATrier[] = $laLigne[0];
    }
    $indLigneSoft = 0;
    sort($colATrier);
    foreach($colATrier as $nomLigne) {
        foreach($ligne as $laLigne) {
            if($laLigne[0] == $nomLigne) {
                afficheLigne($laLigne);
                break;
            }
        }
    }    
    
    $color=$indLigne%2==0?"#F2F2F2":"#FFFFFF";
    echo "<tr bgcolor='$color'><td colspan='3' align='right'><input type='hidden' name='max' value='$indLigne'>";
    
    if($_SESSION["OPT"]!=0)
    {
        echo "<input type=submit taborder=1 name=sub value=".$l->g(30).">";
    }    
    echo "</td></tr></table></form>";
    if($_SESSION["OPT"]!=0)
    {
        echo "<center><i>".$l->g(358)."</i></font></center><br>";
    }    
}

function afficheLigne($ligne)
{    
    global $indLigne,$indLigneSoft,$l,$_POST;    

    $label = $ligne[0];
    $champ = $ligne[1];
    $table = $ligne[2];
    $laRequete = $ligne[3];
    $combo = isset($ligne[4]) ? $ligne[4] : 1 ;
    $type = isset($ligne[5]) ? $ligne[5] : 1 ;
    $leg = isset($ligne[6]) ? $ligne[6] : "" ;
    $isDate = isset($ligne[7]) ? $ligne[7] : false ;
    $allowExact = isset($ligne[8]) ? $ligne[8] : true ;
    $canDisable = isset($ligne[9]) ? $ligne[9] : true ;

    if(is_array($_SESSION["OPT"])) {
        if(!in_array($label,$_SESSION["OPT"]))
            return;
    }
    else
        return;
    
    $color=$indLigne%2==0?"#F2F2F2":"#FFFFFF";
    $suff="_".$indLigne;
    
    if( $type == 7) {// un soft
        echo"<tr bgcolor=$color><td>";
        if( ! $canDisable )
            echo "<input type='hidden' name='act$suff' id='act$suff' value='on'>";
        echo "<input type=checkbox ".($canDisable?"":"disabled checked")." id='act$suff' name='act$suff'".($_SESSION["softs"][$indLigneSoft][0]=="on"||$_POST["selOpt"]==$label?" checked":"")."> ".$l->g(205)."</input>
            <input type=hidden name='chm$suff' value=$champ>
            <input type=hidden name='lbl$suff' value='".urlencode($label)."'>
        </td><td>$label</td><td>";
        echo "<select OnClick='act$suff.checked=true' name='ega$suff'>";        
        echo "<option".($_SESSION["softs"][$indLigneSoft][2]==$l->g(129)?" selected":"").">".$l->g(129)."</option>";
        if( $allowExact ) echo "<option".(($_SESSION["softs"][$indLigneSoft][2]==$l->g(410) or !isset($_SESSION["softs"][$indLigneSoft][2]))?" selected":"").">".$l->g(410)."</option>";
        echo "<option".($_SESSION["softs"][$indLigneSoft][2]==$l->g(130)?" selected":"").">".$l->g(130)."</option>";
        echo "</select>  ";
        echo "<input OnClick='act$suff.checked=true' name='val$suff' value=\"".stripslashes($_SESSION["softs"][$indLigneSoft][3])."\">";
        $indLigne++;
        $indLigneSoft++;
        return;
    }

    echo"        
    <tr bgcolor=$color>
        <td>
            <input type=checkbox id='act$suff' name='act$suff'".($_SESSION["reqs"][$label][0]=="on"||$_POST["selOpt"]==$label?" checked":"")."> ".$l->g(205)."</input>
            <input type=hidden name='chm$suff' value=$champ>
            <input type=hidden name='lbl$suff' value='".urlencode($label)."'>
        </td>
        <td>
            $label
        </td>
        <td>";    
        
    if( $champ == "ipdisc" ) {    
        echo "<select OnClick='act$suff.checked=true' name='val$suff'>
        <option ".($_SESSION["reqs"][$label][3]=="elu"?" selected":"")." value='elu'>".$l->g(502)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="for"?" selected":"")." value='for'>".$l->g(503)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="nelu"?" selected":"")." value='nelu'>".$l->g(504)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="eli"?" selected":"")." value='eli'>".$l->g(505)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="neli"?" selected":"")." value='neli'>".$l->g(506)."</option></select></td></tr>";
        $indLigne++;
        return;    
    }
    else if( $champ == "freq" ) {
        echo "<select OnClick='act$suff.checked=true' name='val$suff'>
        <option ".($_SESSION["reqs"][$label][3]=="std"?" selected":"")." value='std'>".$l->g(488)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="always"?" selected":"")." value='always'>".$l->g(485)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="never"?" selected":"")." value='never'>".$l->g(486)."</option>
        <option ".($_SESSION["reqs"][$label][3]=="custom"?" selected":"")." value='custom'>".$l->g(487)."</option></select></td></tr>";
        $indLigne++;
        return;    
    }
    else if( $champ == "tele" ) {
        
        $resTele = @mysql_query("SELECT distinct NAME FROM download_available ORDER BY NAME", $_SESSION["readServer"]);
        
        if( mysql_num_rows( $resTele ) >0 ) {        
            echo "<select OnClick='act$suff.checked=true' name='ega$suff'>
            <option ".($_SESSION["reqs"][$label][2]=="ayant"?" selected":"")." value='ayant'>".$l->g(507)."</option>
            <option ".($_SESSION["reqs"][$label][2]=="nayant"?" selected":"")." value='nayant'>".$l->g(508)."</option>
            </select>  ".$l->g(498).": <select OnClick='act$suff.checked=true' name='val$suff'>";
            while( $valTele = mysql_fetch_array( $resTele )) {
                echo "<option ".($_SESSION["reqs"][$label][3]==$valTele["NAME"]?" selected":"").">".$valTele["NAME"]."
                </option>";    
            }                
            
            echo "</select> ".$l->g(546).": <select OnClick='act$suff.checked=true' name='val2$suff'>
            <option ".($_SESSION["reqs"][$label][4]=="ind"?" selected":"")." value='ind'>".$l->g(509)."</option>
            <option ".($_SESSION["reqs"][$label][4]=="nsuc"?" selected":"")." value='nsuc'>".$l->g(548)."</option>
            <option ".($_SESSION["reqs"][$label][4]=="suc"?" selected":"")." value='suc'>SUCCESS</option>
            <option ".($_SESSION["reqs"][$label][4]=="stats"?" selected":"")." value='stats'>".$l->g(482)."</option>";
            
            $resState = @mysql_query("SELECT distinct(tvalue) FROM devices WHERE tvalue<>'SUCCESS' AND tvalue IS NOT NULL AND name='DOWNLOAD'", $_SESSION["readServer"]);
            while( $valState = @mysql_fetch_array( $resState )) {
                echo "<option ".($_SESSION["reqs"][$label][4]==$valState["tvalue"]?" selected":"")." value='".$valState["tvalue"]."'>".$valState["tvalue"]."</option>";
            }     
            
            echo "</select>";
            $indLigne++;
        }
        else {
            echo $l->g(510);    
        }
        return;    
    }
        
        if($type != 4 && $type != 6) {
                    echo $_SESSION["reqs"][$label][2];
            echo "<select OnClick='act$suff.checked=true' name='ega$suff'>            
            <option".($_SESSION["reqs"][$label][2]==$l->g(129)?" selected":"").">".$l->g(129)."</option>";
            if( $allowExact ) echo "<option".(($_SESSION["reqs"][$label][2]==$l->g(410) or !isset($_SESSION["reqs"][$label][2]))?" selected":"").">".$l->g(410)."</option>";
            echo "<option".($_SESSION["reqs"][$label][2]==$l->g(130)?" selected":"").">".$l->g(130)."</option>";
    
            if( $isDate) {
                echo "<option".($_SESSION["reqs"][$label][2]==$l->g(346)?" selected":"").">".$l->g(346)."</option><option".($_SESSION["reqs"][$label][2]==$l->g(347)?" selected":"").">".$l->g(347)."</option>"; 
            }
            else if( $type==2||$type==3 )
            {
                echo "<option".($_SESSION["reqs"][$label][2]==$l->g(201)?" selected":"").">".$l->g(201)."</option><option".($_SESSION["reqs"][$label][2]==$l->g(202)?" selected":"").">".$l->g(202)."</option>";
            }
            if ($type==3)
            {
                echo "<option".($_SESSION["reqs"][$label][2]==$l->g(203)?" selected":"").">".$l->g(203)."</option>";//<option".($_POST["ega$suff"]==$l->g(204)?" selected":"").">".$l->g(204)."</option>";        
            }
        }
        else if( $type != 6)
            echo $l->g(129);
        if( $type != 6)
            echo "</select>  ";
            
    if($combo==1)
    {
        echo "<select OnClick='act$suff.checked=true' name='val$suff'>";    
        $res=mysql_query($laRequete, $_SESSION["readServer"]) or die(mysql_error($_SESSION["readServer"]));
        
        $linSel = "LINUX"   == $_SESSION["reqs"][$label][3] ?" selected":"";
        $winSel = "WINDOWS" == $_SESSION["reqs"][$label][3] ?" selected":"";
        $macOSX = "MacOSX"  == $_SESSION["reqs"][$label][3] ?" selected":""; //add by WES Young
        
        if( $champ=="osname")
            echo "<option value='LINUX' $linSel>LINUX (".$l->g(547).")</option>
                  <option value='WINDOWS' $winSel>WINDOWS (".$l->g(547).")</option>
                  <option value='MacOSX' $macOSX>MacOSX (".$l->g(547).")</option>";//add by WES Young
                 
        while($row=mysql_fetch_array($res))
        {
            if($row[0]=="") continue;    
            $selected = $row[0]== $_SESSION["reqs"][$label][3] ?" selected":"";
            echo "<option$selected>".$row[0]."</option>\n";    
        }
        
        echo "</select>";
    }
    else
    {
        if( $isDate ) {
            echo "<input READONLY ".dateOnClick("val$suff","act$suff")." OnClick='act$suff.checked=true' name='val$suff' id='val$suff' value='"./*dateFromMysql(*/$_SESSION["reqs"][$label][3]/*)*/."'>".datePick("val$suff","act$suff");
        }
        else
            echo "<input OnClick='act$suff.checked=true' name='val$suff' value=\"".stripslashes($_SESSION["reqs"][$label][3])."\">";
        
        if ($type==3) // deux inputs pour "entre machin et truc"
        {
            echo "  --  <input OnClick='act$suff.checked=true' name='val2$suff' value='".$_SESSION["reqs"][$label][4]."'>";
        }    
    }
    if( $type == 6) {
            echo "<select OnClick='act$suff.checked=true' name='ega$suff'>            
            <option".($_SESSION["reqs"][$label][2]==$l->g(129)?" selected":"").">".$l->g(129)."</option>";
            if( $allowExact ) echo "<option".(($_SESSION["reqs"][$label][2]==$l->g(410) or !isset($_SESSION["reqs"][$label][2]))?" selected":"").">".$l->g(410)."</option>";
            echo "<option".($_SESSION["reqs"][$label][2]==$l->g(130)?" selected":"").">".$l->g(130)."</option></select>";
            /*$reqRes = mysql_query("SELECT DISTINCT(regvalue) FROM registry", $_SESSION["readServer"]) or die(mysql_error($_SESSION["readServer"])); // mesmachines
            echo "  ".$l->g(224).":  */
            echo "<input OnClick='act$suff.checked=true' name='valreg$suff' value='".($_SESSION["reqs"][$label][5])."'>";
                    
            /*while($row=mysql_fetch_array($reqRes))
            {
                if($row[0]=="") continue;    
                $selected = $row[0]== $_SESSION["reqs"][$label][5] ?" selected":"";
                echo "<option$selected>".$row[0]."</option>\n";    
            }*/
            
            echo "</input>";            
    }    
    
    echo "   $leg</td></tr>";
    $indLigne++;
}

function getCache( $table, $field, $value, &$count ) {
    $reqCache = "SELECT ".$field." FROM ".$table."_".$field."_cache WHERE ".$field." LIKE '%".$value."%' AND ".$field." IS NOT NULL";     
    $resCache = mysql_query( $reqCache, $_SESSION["readServer"] );
    $cached = array();
    while( $valCache = mysql_fetch_array( $resCache ) ) {
        if( $count > 200 )
            return NULL;
        $cached[] = $valCache[$field];
        $count++;                            
    }
    
    $glued = @implode("','", $cached);
    return $glued;
}

function isFieldDate($nom) {
    if( $nom == "lastdate" )
        return true;
        
    $reqType = "SELECT $nom FROM accountinfo";
    if( $resType = @mysql_query($reqType, $_SESSION["readServer"])) {
        $valType = mysql_fetch_field($resType);
        return ($valType->type == "date");
    }
    return false;
}

        
?>

Enjoy smile

Stonedge

Last edited by Stonedge (2010-07-16 14:18:57)

Offline

#8 2010-07-27 06:49:58

twose41
New member
Registered: 2010-07-27
Posts: 1

Re: No search parameter for printers in OCS Search

I have subscribed this thread for further referance.



Regards


twose41

Offline

Board footer

Powered by FluxBB