Beispiel #1
0
 static function process_session_request()
 {
     $t = $GLOBALS["t"];
     $tname = $t["title"];
     $tfolder = $t["folder"];
     if (!empty($_REQUEST["today"])) {
         if (!is_numeric($_REQUEST["today"])) {
             $_REQUEST["today"] = modify::datetime_to_int($_REQUEST["today"]);
         }
         $today = sys_getdate($_REQUEST["today"]);
     } else {
         $today = sys_getdate();
     }
     if (empty($_SESSION[$tname]["_" . $tfolder]["today"]) or !is_numeric($_SESSION[$tname]["_" . $tfolder]["today"]) or !empty($_REQUEST["today"]) or $_SESSION[$tname]["_" . $tfolder]["today"] < 1) {
         $_SESSION[$tname]["_" . $tfolder]["today"] = mktime(0, 0, 0, $today["mon"], $today["mday"], $today["year"]);
     }
     if (!isset($_SESSION[$tname]["_" . $tfolder]["weekstart"])) {
         $_SESSION[$tname]["_" . $tfolder]["weekstart"] = WEEKSTART;
     }
     if (isset($_REQUEST["weekstart"]) and is_numeric($_REQUEST["weekstart"]) and $_REQUEST["weekstart"] >= 0 and $_REQUEST["weekstart"] <= 6) {
         $_SESSION[$tname]["_" . $tfolder]["weekstart"] = $_REQUEST["weekstart"];
     }
     if (!isset($_SESSION[$tname]["_" . $tfolder]["markdate"])) {
         if (!empty($GLOBALS["current_view"]["MARKDATE"])) {
             $_SESSION[$tname]["_" . $tfolder]["markdate"] = $GLOBALS["current_view"]["MARKDATE"];
         } else {
             $_SESSION[$tname]["_" . $tfolder]["markdate"] = "week";
         }
     }
     if (isset($_REQUEST["markdate"]) and in_array($_REQUEST["markdate"], array("day", "week", "month", "year", "gantt", "all"))) {
         $_SESSION[$tname]["_" . $tfolder]["markdate"] = $_REQUEST["markdate"];
     }
 }
 static function select($path, $fields, $where, $order, $limit, $vars, $mfolder)
 {
     $path = rtrim($path, "/");
     $datas = sys_parse_csv($path);
     $rows = array();
     $index = array_shift($datas);
     $i = 0;
     $map = array("subject" => "Subject", "description" => "Description", "location" => "Location", "category" => "Categories", "organizer" => "Meeting Organizer");
     foreach ($datas as $data) {
         $i++;
         $row = array();
         foreach ($fields as $field) {
             switch ($field) {
                 case "id":
                     $row[$field] = $path . "/?" . $i;
                     break;
                 case "folder":
                     $row[$field] = $path;
                     break;
                 case "created":
                     $row[$field] = 0;
                     break;
                 case "createdby":
                     $row[$field] = "";
                     break;
                 case "lastmodified":
                     $row[$field] = 0;
                     break;
                 case "lastmodifiedby":
                     $row[$field] = "";
                     break;
                 case "searchcontent":
                     $row[$field] = implode(" ", $data);
                     break;
                 case "begin":
                     $key1 = array_search("Start Date", $index);
                     $key2 = array_search("Start Time", $index);
                     $row[$field] = modify::datetime_to_int($data[$key1] . " " . $data[$key2]);
                     break;
                 case "ending":
                     $key1 = array_search("End Date", $index);
                     $key2 = array_search("End Time", $index);
                     $row[$field] = modify::datetime_to_int($data[$key1] . " " . $data[$key2]);
                     $row["until"] = $row[$field];
                     break;
                 case "duration":
                     $row[$field] = $row["ending"] - $row["begin"];
                     break;
                 case "priority":
                     $key = array_search("Priority", $index);
                     $row[$field] = strtolower($data[$key]);
                     break;
                 case "allday":
                     $key = array_search("All day event", $index);
                     $row[$field] = $data[$key] == "False" ? 0 : 1;
                     break;
                 case "participants_ext":
                     $key = array_search("Required Attendees", $index);
                     $row[$field] = $data[$key];
                     $key = array_search("Optional Attendees", $index);
                     if ($row[$field] != "" and $data[$key] != "") {
                         $row[$field] .= ", ";
                     }
                     $row[$field] .= $data[$key];
                     break;
                 default:
                     $row[$field] = "";
                     if (!isset($row[$field]) and in_array($field, $index)) {
                         $key = array_search($field, $index);
                         $row[$field] = $data[$key];
                     } else {
                         if (isset($map[$field])) {
                             $key = array_search($map[$field], $index);
                             $row[$field] = $data[$key];
                         }
                     }
                     break;
             }
         }
         if (sys_select_where($row, $where, $vars)) {
             $rows[] = $row;
         }
     }
     $rows = sys_select($rows, $order, $limit, $fields);
     return $rows;
 }
 static function select($path, $fields, $where, $order, $limit, $vars, $mfolder)
 {
     $path = rtrim($path, "/");
     $csv_data = sys_parse_csv($path);
     $rows = array();
     $index = array_shift($csv_data);
     $i = 0;
     $ids = array();
     $datas = array();
     foreach ($csv_data as $row) {
         $n_row = array();
         foreach ($row as $key => $val) {
             if (!empty($index[$key])) {
                 $key = strtolower($index[$key]);
             }
             $n_row[$key] = $val;
         }
         $datas[] = $n_row;
     }
     /*  
     "Middle Name","Suffix","Business Street 2","Business Street 3",
     "Home Street","Home Street 2","Home Street 3","Home City","Home State","Home Postal Code",
     "Home Country/Region","Other Street","Other Street 2","Other Street 3","Other City",
     "Other State","Other Postal Code","Other Country/Region",
     "Assistant's Phone","Business Phone 2","Callback","Car Phone",
     "Company Main Phone","Home Fax","Home Phone 2","ISDN",
     "Other Fax","Other Phone","Primary Phone","Radio Phone","TTY/TDD Phone","Telex",
     "Account","Anniversary","Assistant's Name","Billing Information",
     "Business Address PO Box","Categories","Children","Directory Server"
     "E-mail Type","E-mail Display Name","E-mail 2 Address","E-mail 2 Type",
     "E-mail 2 Display Name","E-mail 3 Address","E-mail 3 Type","E-mail 3 Display Name",
     "Gender","Government ID Number","Hobby","Home Address PO Box","Initials",
     "Internet Free Busy","Keywords","Language","Location","Manager's Name","Mileage",
     "Office Location","Organizational ID Number","Other Address PO Box","Priority",
     "Private","Profession","Referred By","Sensitivity","Spouse","Web Page"  
     */
     $mapping = array("e-mail address" => "email", "company" => "company", "first name" => "firstname", "last name" => "lastname", "title" => "title", "mobile phone" => "mobile", "pager" => "pager", "business phone" => "phone", "business fax" => "fax", "notes" => "description", "job title" => "position", "e-mail 2" => "emailprivate", "home phone" => "phoneprivate", "business address" => "street", "business street" => "street", "business city" => "city", "business postal code" => "zipcode", "business state" => "state", "business country/region" => "country", "department" => "department", "birthday" => "birthday");
     foreach ($datas as $data) {
         $i++;
         $row = array();
         foreach ($fields as $field) {
             $row[$field] = "";
             switch ($field) {
                 case "id":
                     $row[$field] = $path . "/?" . $i;
                     break;
                 case "folder":
                     $row[$field] = $path;
                     break;
                 case "created":
                     $row[$field] = 0;
                     break;
                 case "lastmodified":
                     $row[$field] = 0;
                     break;
                 case "lastmodifiedby":
                     $row[$field] = "";
                     break;
                 case "searchcontent":
                     $row[$field] = implode(" ", $data);
                     break;
                 case "contactid":
                     if (empty($data["name"])) {
                         if (!empty($data["last name"])) {
                             $row[$field] = $data["last name"];
                         }
                         if (!empty($data["first name"])) {
                             $row[$field] .= " " . $data["first name"];
                         }
                         if ($row[$field] == "" and !empty($data["e-mail address"])) {
                             $row[$field] = $data["e-mail address"];
                         }
                     } else {
                         $row[$field] = $data["name"];
                     }
                     $row[$field] = str_replace(array(" ", ".", ",", "@", "\"", "'"), array("_", "_", "", "_", "", ""), $row[$field]);
                     $row[$field] = substr(trim($row[$field], " _-."), 0, 15);
                     while (isset($ids[$row[$field]])) {
                         $row[$field] .= "_2";
                     }
                     $ids[$row[$field]] = "";
                     break;
                 case "lastname":
                     if (!empty($data["last name"])) {
                         $row[$field] = $data["last name"];
                     }
                     if ($row[$field] == "" and !empty($data["name"])) {
                         if ($pos = strpos($data["name"], " ")) {
                             $row[$field] = substr($data["name"], $pos + 1);
                         } else {
                             $row[$field] = $data["name"];
                         }
                     }
                     if ($row[$field] == "" and !empty($data["e-mail address"])) {
                         preg_match("/[-._]?([^-._@]+)@/i", $data["e-mail address"], $match);
                         if (!empty($match[1])) {
                             $row[$field] = ucfirst(strtolower($match[1]));
                         }
                     }
                     $row[$field] = trim($row[$field], " ,");
                     break;
                 case "firstname":
                     if (!empty($data["first name"])) {
                         $row[$field] = $data["first name"];
                     }
                     if ($row[$field] == "" and !empty($data["name"]) and $pos = strpos($data["name"], " ")) {
                         $row[$field] = substr($data["name"], 0, $pos);
                     }
                     if ($row[$field] == "" and !empty($data["e-mail address"])) {
                         preg_match("/([^-._@]+)[-._][^-._@]*@/i", $data["e-mail address"], $match);
                         if (!empty($match[1])) {
                             $row[$field] = ucfirst(strtolower($match[1]));
                         }
                     }
                     $row[$field] = trim($row[$field], " ,");
                     break;
                 default:
                     if ($field_key = array_search($field, $mapping) and !empty($data[$field_key])) {
                         $row[$field] = str_replace(array("\"", "'"), "", $data[$field_key]);
                     }
                     if ($field == "birthday" and $row[$field] != "0/0/00") {
                         $row[$field] = modify::datetime_to_int($row[$field]);
                     }
                     break;
             }
         }
         if (sys_select_where($row, $where, $vars)) {
             $rows[] = $row;
         }
     }
     $rows = sys_select($rows, $order, $limit, $fields);
     return $rows;
 }
Beispiel #4
0
function asset_process_session_request()
{
    $t =& $GLOBALS["t"];
    $tname = $t["title"];
    $tview = $t["view"];
    $tfolder = $t["folder"];
    if (SYNC4J and !empty($GLOBALS["sel_folder"]["anchor"])) {
        _asset_process_syncml_requests();
    }
    if ($tview == "search") {
        if (empty($_SESSION["_" . $tfolder]["request"]["search"])) {
            $_SESSION["_" . $tfolder]["request"]["search"] = array("query" => "*", "module" => "", "subfolders" => 1);
        }
        if (isset($_REQUEST["search"])) {
            if (empty($_REQUEST["module"])) {
                $_REQUEST["module"] = "";
            }
            if (empty($_REQUEST["similar"])) {
                $_REQUEST["similar"] = "";
            }
            if (!isset($_REQUEST["subfolders"])) {
                $_REQUEST["subfolders"] = 1;
            }
            $_SESSION["_" . $tfolder]["request"]["search"] = array("query" => $_REQUEST["search"], "module" => $_REQUEST["module"], "similar" => $_REQUEST["similar"], "subfolders" => $_REQUEST["subfolders"]);
        }
        $t["search"] = $_SESSION["_" . $tfolder]["request"]["search"];
        $value = modify::searchindex($t["search"]["query"]);
        $search_snd = "";
        if (!empty($t["search"]["similar"])) {
            $search_arr = explode(" ", $value);
            foreach ($search_arr as $key => $value) {
                $val = soundex($value);
                if ($val != "0000") {
                    $search_arr[$key] = $val;
                } else {
                    unset($search_arr[$key]);
                }
            }
            $search_snd = implode(" ", $search_arr);
        }
        if ($search_snd != "") {
            $search_snd = "%" . $search_snd . "%";
        }
        if ($value != "") {
            $term_two = "%" . $value . "%";
        } else {
            $term_two = "";
        }
        $search_rights = str_replace("r@right@_", "t.rread_", $_SESSION["permission_sql"]) . " and " . str_replace("r@right@_", "s.rread_", $_SESSION["permission_sql"]);
        if (!isset($GLOBALS["sel_folder"]["lft"])) {
            $folder = array("lft" => 0, "rgt" => 0);
        } else {
            $folder = $GLOBALS["sel_folder"];
        }
        $vars = array("lft" => $folder["lft"], "rgt" => $folder["rgt"], "search" => $value, "search2" => $term_two, "search_snd" => $search_snd, "module" => $t["search"]["module"], "subfolders" => $t["search"]["subfolders"]);
        $t["sqlvars"] = array_merge($t["sqlvars"], $vars);
        $t["sqlvarsnoquote"] = array_merge($t["sqlvarsnoquote"], array("search_rights" => $search_rights));
    }
    if ($t["default_sql"] != "" and $t["default_sql"] != "no_select") {
        $matches = "";
        if (preg_match_all("|@(.*?)@|i", $t["default_sql"], $matches, PREG_SET_ORDER)) {
            foreach ($matches as $match) {
                if (count($match) != 2) {
                    continue;
                }
                $req_key = $match[1];
                if (isset($_SESSION[$req_key])) {
                    $t["default_sql"] = str_replace("@" . $req_key . "@", sys_correct_quote($_SESSION[$req_key]), $t["default_sql"]);
                }
            }
        }
    }
    if (isset($_REQUEST["session_remove_request"])) {
        $_SESSION["_" . $tfolder]["request"] = array();
        $_SESSION["_" . $tfolder][$tview] = array();
    }
    if (isset($_REQUEST["subitem"])) {
        $_SESSION["_" . $tfolder][$tview]["subitem"] = $_REQUEST["subitem"];
    }
    if (isset($_SESSION["_" . $tfolder][$tview]["subitem"])) {
        $t["subitem"] = $_SESSION["_" . $tfolder][$tview]["subitem"];
    }
    if (isset($_REQUEST["filters"])) {
        $_SESSION["_" . $tfolder][$tview]["filters"] = $_REQUEST["filters"];
    }
    if (isset($_SESSION["_" . $tfolder][$tview]["filters"])) {
        $t["filter"] = $_SESSION["_" . $tfolder][$tview]["filters"];
    }
    if ($t["filter"] != "") {
        $t["sqlfilters"] = array();
        $ops = array("eq", "neq", "lt", "gt", "like", "nlike", "starts", "oneof");
        foreach (explode("||", $t["filter"]) as $key => $filter) {
            $filter = explode("|", $filter);
            if (count($filter) == 3 and isset($t["fields"][$filter[0]]) and in_array($filter[1], $ops)) {
                if (trim($filter[2]) == "") {
                    continue;
                }
                if (!empty($t["search"])) {
                    if ($filter[0] == "lastmodifiedby") {
                        $t["search"]["user"] = $filter[2];
                    }
                    if ($filter[0] == "lastmodified") {
                        $t["search"]["modified"] = array("type" => $filter[1], "value" => $filter[2]);
                    }
                }
                $t["sqlfilters"][] = array("field" => $filter[0], "type" => $filter[1], "value" => $filter[2]);
                if ($t["fields"][$filter[0]]["SIMPLE_TYPE"] == "checkbox") {
                    $filter[2] = $filter[2] == "{t}yes{/t}" ? "1" : "0";
                }
                if ($filter[1] == "oneof") {
                    $filter[2] = explode(",", $filter[2]);
                }
                if (in_array($t["fields"][$filter[0]]["SIMPLE_TYPE"], array("date", "dateselect", "time", "datetime"))) {
                    $filter[2] = modify::datetime_to_int($filter[2]);
                }
                $op = "=";
                $key_var = "@filter_value_" . $key . "@";
                switch ($filter[1]) {
                    case "neq":
                        $op = "!=";
                        break;
                    case "oneof":
                        $op = "in";
                        $key_var = "(" . $key_var . ")";
                        break;
                    case "lt":
                        $op = "<";
                        break;
                    case "gt":
                        $op = ">";
                        break;
                    case "like":
                        $op = "like";
                        $filter[2] = "%" . $filter[2] . "%";
                        break;
                    case "nlike":
                        $op = "not like";
                        $filter[2] = "%" . $filter[2] . "%";
                        break;
                    case "starts":
                        $op = "like";
                        $filter[2] = $filter[2] . "%";
                        break;
                }
                $t["sqlvars"]["filter_value_" . $key] = $filter[2];
                $t["sqlwhere"][] = $filter[0] . " " . $op . " " . $key_var;
                $t["sqlwhere_default"][] = $filter[0] . " " . $op . " " . $key_var;
            }
        }
    }
    if (!empty($t["att"]["ENABLE_ASSET_RIGHTS"])) {
        $t["sqlvarsnoquote"]["permission_sql_read_nq"] = $_SESSION["permission_sql_read"];
        $t["sqlvarsnoquote"]["permission_sql_write_nq"] = $_SESSION["permission_sql_write"];
    }
    foreach ($t["sqlwhere_default"] as $key => $value) {
        if (!preg_match_all("|@(.*?)@|i", $value, $matches, PREG_SET_ORDER)) {
            continue;
        }
        foreach ($matches as $match) {
            if (count($match) != 2) {
                continue;
            }
            $req_key = $match[1];
            if (isset($_SESSION[$req_key])) {
                $t["sqlvars"][$req_key] = $_SESSION[$req_key];
            }
        }
    }
    if ($t["default_sql"] == "" or $t["default_sql"] != "no_select") {
        $vars = array("handler" => $t["handler"], "sqlvarsnoquote" => $t["sqlvarsnoquote"], "default_sql" => $t["default_sql"], "custom_name" => $t["custom_name"]);
        $fcount = $GLOBALS["sel_folder"]["fcount"];
        if (!empty($vars["handler"]) or !empty($vars["default_sql"]) or count($t["sqlvars"]["folders"]) > 1 or !empty($t["custom_name"])) {
            $t["maxdatasets"] = db_count($tname, $t["sqlwhere_default"], $t["sqlvars"], $vars);
        } else {
            if (!sys_strbegins($tname, "simple_sys_") and ($t["sqlwhere_default"] == array("folder in (@folders@)") or $fcount == 0)) {
                $t["maxdatasets"] = $fcount;
            } else {
                if ($fcount > 100) {
                    $cid = "dbcount_" . sha1(serialize(array($t["sqlvars"], $t["sqlwhere_default"], $fcount)));
                    $t["maxdatasets"] = sys_cache_get($cid);
                    if ($t["maxdatasets"] === false) {
                        $t["maxdatasets"] = db_count($tname, $t["sqlwhere_default"], $t["sqlvars"], $vars);
                        sys_cache_set($cid, $t["maxdatasets"], OUTPUT_CACHE);
                    }
                } else {
                    $t["maxdatasets"] = db_count($tname, $t["sqlwhere_default"], $t["sqlvars"], $vars);
                }
            }
        }
    } else {
        $t["maxdatasets"] = 0;
    }
    if (isset($_REQUEST["orderby"]) and isset($_REQUEST["order"])) {
        $_SESSION[$tname][$tview]["orderby"] = $_REQUEST["orderby"];
        $_SESSION[$tname][$tview]["order"] = $_REQUEST["order"];
    }
    $t["hidden_fields"] = array();
    if (isset($_REQUEST["hide_fields"])) {
        $_SESSION[$tname][$tview]["hidden"] = explode(",", $_REQUEST["hide_fields"]);
    }
    if (!empty($_SESSION[$tname][$tview]["hidden"]) and empty($t["views"][$tview]["SCHEMA_MODE"])) {
        $t["hidden_fields"] = $_SESSION[$tname][$tview]["hidden"];
        foreach ($t["hidden_fields"] as $field) {
            unset($t["fields"][$field]);
        }
    }
    if (isset($_SESSION[$tname][$tview]["order"]) and isset($_SESSION[$tname][$tview]["orderby"]) and in_array($_SESSION[$tname][$tview]["order"], array("asc", "desc")) and isset($t["fields"][$_SESSION[$tname][$tview]["orderby"]])) {
        $t["orderby"] = $_SESSION[$tname][$tview]["orderby"];
        $t["order"] = $_SESSION[$tname][$tview]["order"];
    }
    foreach ($t["sqlwhere"] as $key => $value) {
        if (!preg_match_all("|@(.*?)@|i", $value, $matches, PREG_SET_ORDER)) {
            continue;
        }
        foreach ($matches as $match) {
            if (count($match) != 2) {
                continue;
            }
            $req_key = $match[1];
            if ($req_key == "folders") {
                continue;
            }
            if ($req_key == "item") {
                $skey = $tview;
            } else {
                $skey = "request";
            }
            if (isset($_SESSION["_" . $tfolder][$skey][$req_key])) {
                $t["sqlvars"][$req_key] = $_SESSION["_" . $tfolder][$skey][$req_key];
            }
            if (isset($_SESSION[$req_key])) {
                $t["sqlvars"][$req_key] = $_SESSION[$req_key];
            }
            if (isset($_REQUEST[$req_key])) {
                $t["sqlvars"][$req_key] = $_REQUEST[$req_key];
                $_SESSION["_" . $tfolder][$skey][$req_key] = $_REQUEST[$req_key];
            }
            if (!isset($t["sqlvars"][$req_key]) and empty($t["sqlvarsnoquote"][$req_key])) {
                $t["sqlwhere"][$key] = "1=1";
            }
        }
    }
    if (!isset($_SESSION[$tname][$tview]["group"])) {
        $_SESSION[$tname][$tview]["group"] = $t["group"];
    }
    if (!isset($_SESSION[$tname][$tview]["groupby"])) {
        $_SESSION[$tname][$tview]["groupby"] = $t["groupby"];
    }
    if (isset($_REQUEST["group"])) {
        if ($_SESSION[$tname][$tview]["groupby"] == "") {
            $_SESSION[$tname][$tview]["groupby"] = $t["orderby"];
            $_SESSION[$tname][$tview]["group"] = $t["order"];
        } else {
            $_SESSION[$tname][$tview]["groupby"] = "";
            $_SESSION[$tname][$tview]["group"] = "";
        }
    }
    if (!isset($_REQUEST["plain"])) {
        $t["groupby"] = $_SESSION[$tname][$tview]["groupby"];
        $t["group"] = $_SESSION[$tname][$tview]["group"];
    } else {
        $t["groupby"] = "";
        $t["group"] = "";
    }
    if ($t["groupby"] != "" and isset($t["fields"][$t["groupby"]])) {
        $field = $t["fields"][$t["groupby"]];
        $field["WIDTH"] = 0;
        unset($t["fields"][$t["groupby"]]);
        unset($t["fields_query"][$t["groupby"]]);
        $t["fields"] = array_merge(array($t["groupby"] => $field), $t["fields"]);
        $t["fields_query"] = array_unique(array_merge(array($t["groupby"]), $t["fields_query"]));
    }
    _asset_process_pages($t["maxdatasets"]);
    if (!isset($t["views"][$tview]["NOSQLORDER"])) {
        $t["sqlorder"] = ($t["groupby"] != "" ? $t["groupby"] . " " . $t["group"] . "," : "") . $t["orderby"] . " " . $t["order"];
    }
    if (!isset($t["views"][$tview]["NOSQLLIMIT"]) and empty($_REQUEST["print_all"]) and (empty($_REQUEST["export"]) or !empty($_REQUEST["limit"]))) {
        $t["sqllimit"] = array(($t["page"] - 1) * $t["limit"], $t["limit"]);
    }
    if (!empty($_REQUEST["iframe"]) and isset($_REQUEST["session_remove_request"])) {
        $t["sqllimit"] = array();
    }
    // offline reading
    if (!empty($t["sqlvars"]["item"]) and $t["views"][$tview]["SCHEMA_MODE"] == "edit" and $t["maxdatasets"] == 0) {
        sys_warning("{t}Item(s) not found or access denied.{/t}");
    }
    if ($t["maxdatasets"] != 0) {
        _asset_get_rows();
    }
    if ((!empty($_REQUEST["form_submit_create"]) or !empty($_REQUEST["form_submit_edit"])) and $t["rights"]["write"] and $t["schema_mode"] != "") {
        $mode = $t["schema_mode"] == "edit" ? "edit" : "create";
        list($t["errors"], $defaults, $form_ids, $saved_ids) = asset::create_edit($tfolder, $tview, $mode);
        foreach ($t["limits"] as $key => $val) {
            if (in_array($val, $form_ids)) {
                unset($t["limits"][$key]);
            }
        }
        if (count($t["errors"]) == 0) {
            $t["limits"] = range(0, $t["limit"] - 1);
            if (!empty($_REQUEST["form_submit_return"])) {
                $arr = array_pop(array_slice($_SESSION["history"], -2, 1));
                if (empty($arr[2])) {
                    $arr[2] = "default";
                }
                sys_redirect("index.php?view=" . $arr[2] . "&" . sys::$urladdon);
            }
            if (!empty($_REQUEST["form_submit_go_edit"])) {
                $items = "";
                foreach ($saved_ids as $id) {
                    $items .= "&item[]=" . rawurlencode($id);
                }
                sys_redirect("index.php?view=edit" . $items . "&" . sys::$urladdon);
            }
        }
        foreach ($defaults as $id => $field) {
            foreach ($field as $field_name => $value) {
                $t["fields"][$field_name]["SIMPLE_DEFAULTS"][$id] = $value;
                $t["fields"][$field_name]["SIMPLE_DEFAULT"] = "";
            }
        }
    }
    sys::$smarty->assign_by_ref("t", $t);
}
Beispiel #5
0
 function set_filter($filters)
 {
     if ($filters == "") {
         return;
     }
     $ops = array("eq", "neq", "lt", "gt", "like", "nlike", "starts", "oneof");
     foreach (explode("||", $filters) as $key => $filter) {
         $filter = explode("|", $filter);
         if (count($filter) != 3 or !isset($this->current_fields[$filter[0]])) {
             continue;
         }
         if (!in_array($filter[1], $ops) or trim($filter[2]) == "") {
             continue;
         }
         if ($this->current_fields[$filter[0]]["SIMPLE_TYPE"] == "checkbox") {
             $filter[2] = $filter[2] == "{t}yes{/t}" ? "1" : "0";
         }
         if ($filter[1] == "oneof") {
             $filter[2] = explode(",", $filter[2]);
         }
         if (in_array($this->current_fields[$filter[0]]["SIMPLE_TYPE"], array("date", "dateselect", "time", "datetime"))) {
             $filter[2] = modify::datetime_to_int($filter[2]);
         }
         $op = "=";
         switch ($filter[1]) {
             case "neq":
                 $op = "!=";
                 break;
             case "oneof":
                 $op = "in";
                 break;
             case "lt":
                 $op = "<";
                 break;
             case "gt":
                 $op = ">";
                 break;
             case "like":
                 $op = "like";
                 $filter[2] = "%" . $filter[2] . "%";
                 break;
             case "nlike":
                 $op = "not like";
                 $filter[2] = "%" . $filter[2] . "%";
                 break;
             case "starts":
                 $op = "like";
                 $filter[2] = $filter[2] . "%";
                 break;
         }
         $this->vars["filter_value_" . $key] = $filter[2];
         $this->where[] = $filter[0] . " " . $op . " (@filter_value_" . $key . "@)";
     }
 }