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); }
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); } } }
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; }
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; }