Location: PHPKode > projects > PhpBMS > phpbms/modules/base/include/tabledefs_columns_include.php
<?php
/*
 $Rev: 703 $ | $LastChangedBy: brieb $
 $LastChangedDate: 2010-01-01 17:34:45 -0700 (Fri, 01 Jan 2010) $
 +-------------------------------------------------------------------------+
 | Copyright (c) 2004 - 2010, Kreotek LLC                                  |
 | All rights reserved.                                                    |
 +-------------------------------------------------------------------------+
 |                                                                         |
 | Redistribution and use in source and binary forms, with or without      |
 | modification, are permitted provided that the following conditions are  |
 | met:                                                                    |
 |                                                                         |
 | - Redistributions of source code must retain the above copyright        |
 |   notice, this list of conditions and the following disclaimer.         |
 |                                                                         |
 | - Redistributions in binary form must reproduce the above copyright     |
 |   notice, this list of conditions and the following disclaimer in the   |
 |   documentation and/or other materials provided with the distribution.  |
 |                                                                         |
 | - Neither the name of Kreotek LLC nor the names of its contributore may |
 |   be used to endorse or promote products derived from this software     |
 |   without specific prior written permission.                            |
 |                                                                         |
 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS     |
 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT       |
 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A |
 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT      |
 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,   |
 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT        |
 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,   |
 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY   |
 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT     |
 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE   |
 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.    |
 |                                                                         |
 +-------------------------------------------------------------------------+
*/

class tableColumns{

    var $db;
    var $tabledefuuid;

    function tableColumns($db, $tabledefid){

        $this->db = $db;

        $querystatement = "
            SELECT
                `uuid`
            FROM
                `tabledefs`
            WHERE
                id = '".((int) $tabledefid)."'
            ";

        $queryresult = $this->db->query($querystatement);

        $therecord = $this->db->fetchArray($queryresult);

        $this->tabledefuuid = $therecord["uuid"];

    }//end function init


    function getDefaults(){

        $therecord["id"] = NULL;
        $therecord["displayorder"] = NULL;
        $therecord["wrap"] = 0;
        $therecord["roleid"] = "";

        $therecord["size"] = "";
        $therecord["name"] = "";
        $therecord["column"] = "";
        $therecord["align"] = "left";
        $therecord["footerquery"] = "";
        $therecord["sortorder"] = "";
        $therecord["format"] = "";

        return $therecord;

    }//end function getDefaults


    function get($columnid = 0){

        $querystatement = "
            SELECT
                id,
                name,
                `column`,
                align,
                footerquery,
                sortorder,
                displayorder,
                wrap,
                size,
                format,
                roleid
            FROM
                tablecolumns
            WHERE
                tabledefid = '".$this->tabledefuuid."'";

        if($columnid)
            $querystatement .= "
                AND id = ".$columnid;

        $querystatement .= "
            ORDER BY
                displayorder";

        return $this->db->query($querystatement);

    }//end function get


    function add($variables){

        if($variables["format"])
            $variables["format"] = "'".$variables["format"]."'";
        else
            $variables["format"] = "NULL";

        if(!isset($variables["wrap"]))
            $variables["wrap"] = 0;

        $insertstatement = "
            INSERT INTO
                `tablecolumns`
            (
                tabledefid,
                name,
                `column`,
                align,
                footerquery,
                sortorder,
                displayorder,
                size,
                format,
                wrap,
                roleid
            ) VALUES (
                '".$this->tabledefuuid."',
                '".$variables["name"]."',
                '".$variables["column"]."',
                '".$variables["align"]."',
                '".$variables["footerquery"]."',
                '".$variables["sortorder"]."',
                '".$variables["displayorder"]."',
                '".$variables["size"]."',
                ".$variables["format"].",
                ".$variables["wrap"].",
                '".$variables["roleid"]."'
            )";

            if($this->db->query($insertstatement))
                return "Column Added";
            else
                return false;

    }//end function add


    function update($variables){

        if($variables["format"])
            $variables["format"] = "'".$variables["format"]."'";
        else
            $variables["format"] = "NULL";

        if(!isset($variables["wrap"]))
            $variables["wrap"] = 0;

        $updatestatement = "
            UPDATE
                tablecolumns
            SET
                `name` = '".$variables["name"]."',
                `column` = '".$variables["column"]."',
                `align` = '".$variables["align"]."',
                `sortorder` = '".$variables["sortorder"]."',
                `footerquery` = '".$variables["footerquery"]."',
                `size` = '".$variables["size"]."',
                `format` = ".$variables["format"].",
                `wrap` = ".$variables["wrap"].",
                `roleid` = '".$variables["roleid"]."'
            WHERE
                id = ".((int) $variables["columnid"]);

        if($this->db->query($updatestatement))
            return "Column Updated";
        else
            return false;

    }//end function update


    function delete($id){

        $querystatement = "
            SELECT
                displayorder
            FROM
                tablecolumns
            WHERE
                id = ".((int) $id);

        $queryresult = $this->db->query($querystatement);

        $therecord = $this->db->fetchArray($queryresult);

        $updatestatement = "
            UPDATE
                tablecolumns
            SET
                displayorder = displayorder -1
            WHERE
                tabledefid = '".$this->tabledefuuid."'
                AND displayorder > ".$therecord["displayorder"];

        if($this->db->query($updatestatement)){

            $deletestatement = "
                DELETE FROM
                    tablecolumns
                WHERE
                    id = ".$id;

            if($this->db->query($deletestatement))
                return "Column Deleted";

        }//endif

        return false;

    }//end function delete


    function move($id, $direction = "up"){

        $increment = ($direction == "down")? "1": "-1";

        $querstatement = "
            SELECT
                displayorder
            FROM
                tablecolumns
            WHERE
                id = ".((int) $id);

        $queryresult = $this->db->query($querstatement);

        $therecord = $this->db->fetchArray($queryresult);

        $querstatement = "
            SELECT
                MAX(displayorder) AS themax
            FROM
                tablecolumns
            WHERE
                tabledefid = '".$this->tabledefuuid."'";

        $queryresult = $this->db->query($querstatement);

        $maxrecord = $this->db->fetchArray($queryresult);

        if(!(($direction=="down" && $therecord["displayorder"] == $maxrecord["themax"]) || ($direction == "up" and $therecord["displayorder"] == "0"))){

            $updatestatement = "
                UPDATE
                    tablecolumns
                SET
                    displayorder = ".$therecord["displayorder"]."
                WHERE
                    displayorder = ".($increment+$therecord["displayorder"])."
                    AND tabledefid = '".$this->tabledefuuid."'";

            $this->db->query($updatestatement);

            $updatestatement = "
                UPDATE
                    tablecolumns
                SET
                    displayorder = displayorder + ".$increment."
                WHERE
                    id = ".$id;

            $this->db->query($updatestatement);

            return "Column Moved";

        }//endif

        return false;

    }//end function move

}//end class tableColumns

?>
Return current item: PhpBMS