示例#1
0
 private static function _html_quote($value, $type, $images = true)
 {
     if ($type == "textarea" or is_call_type($type) and call_type($type, "export_as_text")) {
         return modify::nl2br(q($value));
     }
     if (is_call_type($type) and call_type($type, "export_as_html")) {
         if (!$images) {
             return preg_replace("|<img[^>]*?>|si", "", modify::htmlfield($value));
         }
         return modify::htmlfield($value);
     }
     return q($value);
 }
示例#2
0
function _asset_filter_rows()
{
    $t =& $GLOBALS["t"];
    if (!is_array($t["data"])) {
        return;
    }
    foreach ($t["data"] as $row_key => $row) {
        foreach (array_keys($row) as $field) {
            if (!isset($t["fields"][$field])) {
                continue;
            }
            $type = $t["fields"][$field]["SIMPLE_TYPE"];
            if (is_call_type($type)) {
                $t["filters"][$field][$type] = array("FUNCTION" => "type_" . $type . "::render_page");
            }
            if (empty($t["filters"][$field])) {
                continue;
            }
            foreach ($t["filters"][$field] as $filter) {
                list($class, $function, $params) = sys_find_callback("modify", $filter["FUNCTION"]);
                foreach (array_keys($row[$field]["filter"]) as $filter_key) {
                    if (!empty($filter["TYPE"])) {
                        $t["data"][$row_key][$field][$filter["TYPE"]] = call_user_func(array($class, $function), $t["data"][$row_key][$field]["filter"][$filter_key], $params, $row);
                    } else {
                        $t["data"][$row_key][$field]["filter"][$filter_key] = call_user_func(array($class, $function), $t["data"][$row_key][$field]["filter"][$filter_key], $params, $row);
                    }
                }
            }
        }
        if (count($t["rowfilters"]) == 0) {
            continue;
        }
        foreach ($t["rowfilters"] as $filter) {
            list($class, $function, $params) = sys_find_callback("modify", $filter["FUNCTION"]);
            if (!isset($filter["TYPE"])) {
                continue;
            }
            $t["data"][$row_key][$filter["TYPE"]] .= call_user_func(array($class, $function), $row, $params);
        }
    }
}
示例#3
0
 static function build_history($type, $value, $data_old)
 {
     if ($value == "0" and in_array($type, array("folder", "date", "datetime", "time"))) {
         return "";
     }
     switch ($type) {
         case "folder":
             $value = modify::getpathfull($value, false, "/") . " ([/" . $value . "])";
             break;
         case "password":
             $value = "";
             break;
         case "date":
             $value = sys_date("{t}m/d/Y{/t}", $value);
             break;
         case "datetime":
             $value = sys_date("{t}m/d/Y g:i a{/t}", $value);
             break;
         case "time":
             $value = sys_date("{t}g:i a{/t}", $value);
             break;
         case "dateselect":
             $data = array();
             foreach (explode("|", trim($value, "|")) as $date) {
                 $data[] = sys_date("{t}m/d/Y{/t}", $date);
             }
             $value = implode(", ", $data);
             break;
         case "files":
             $new = explode("|", trim($value, "|"));
             $old = explode("|", trim($data_old, "|"));
             $value = array("");
             foreach ($new as $file) {
                 if ($file != "" and !in_array($file, $old)) {
                     $value[] = "+ " . modify::basename($file);
                 }
             }
             foreach ($old as $file) {
                 if ($file != "" and !in_array($file, $new)) {
                     $value[] = "- " . modify::basename($file);
                 }
             }
             $value = rtrim(implode("\n  ", $value));
             break;
         case "select":
             $value = str_replace("|", ", ", trim($value, "|"));
             break;
         case "checkbox":
             $value = $value ? "{t}yes{/t}" : "{t}no{/t}";
             break;
         case "textarea":
             $value = self::build_diff($data_old, $value);
             break;
         default:
             if (is_call_type($type)) {
                 $value = call_type($type, "build_history", $data_old, $value);
             }
             break;
     }
     return $value;
 }
示例#4
0
 function filter_field($field_name, $value, $row)
 {
     if ($field_name == "" or !isset($this->fields[$field_name])) {
         return $value;
     }
     $field = $this->current_fields[$field_name];
     $type = $field["SIMPLE_TYPE"];
     if (!empty($field["NO_CHECKS"])) {
         return $value;
     }
     $filters = array();
     if (isset($this->current_view["filters"][$field_name])) {
         $filters = $this->current_view["filters"][$field_name];
     }
     if (is_call_type($type)) {
         $filters[] = array("FUNCTION" => "modify::nl2br");
         $filters[] = array("FUNCTION" => "quote");
         /* TODO implement
             $filters[] = array("FUNCTION"=>"type_".$type."::render_page");
         	$filters[] = array("FUNCTION"=>"modify::htmlfield");
         	$filters[] = array("FUNCTION"=>"quote");
         	$filters[] = array("FUNCTION"=>"type_".$type."::render_value");
         	$values[$key] = call_user_func(array($class, $function), $val, $value, $params, self::_explode($row));
         */
     } else {
         if ($type == "textarea") {
             $filters[] = array("FUNCTION" => "modify::nl2br");
             $filters[] = array("FUNCTION" => "quote");
         } else {
             $filters[] = array("FUNCTION" => "modify::field");
             $filters[] = array("FUNCTION" => "quote");
         }
     }
     if (empty($filters)) {
         return $value;
     }
     if (sgsml::type_is_multiple($type)) {
         $values = explode("|", trim($value, "|"));
     } else {
         $values = (array) $value;
     }
     foreach ($filters as $filter) {
         list($class, $function, $params) = sys_find_callback("modify", $filter["FUNCTION"]);
         if (isset($filter["TYPE"])) {
             continue;
         }
         // TODO implement
         foreach ($values as $key => $value) {
             $values[$key] = call_user_func(array($class, $function), $value, $params, self::_explode($row));
         }
     }
     return $values;
 }