private static function _message($id, $data, $fields, $table) { $sgsml = new sgsml($data["folder"], "display", array($id), false); $message = $sgsml->att["MODULENAME"] . "\n"; $message .= str_repeat("-", strlen($message) - 1) . "\n\n"; foreach ($data as $key => $value) { if (strlen($value) == 0 or !in_array($key, $fields)) { continue; } $value = trim(asset::build_history($sgsml->fields[$key]["SIMPLE_TYPE"], $value, "")); if ($value != "") { $message .= $sgsml->fields[$key]["DISPLAYNAME"] . ": " . $value . "\n"; } } $url = "http" . (sys_https() ? "s" : "") . "://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER["SCRIPT_NAME"]) . "/index.php?view=details&find=" . $table . "|" . $id; return $message . "\n{t}Details{/t}: " . $url; }
function build_history($new_data, $old_data) { $cdata = ""; $cfields = array(); $no_history = array("created", "createdby", "lastmodified", "lastmodifiedby", "history", "notification_summary", "dsize", "id"); foreach ($new_data as $data_key => $data_value) { $field = $this->fields[$data_key]; if (isset($old_data[$data_key]) and strcmp(trim($old_data[$data_key], "|"), trim($data_value, "|")) == 0) { unset($new_data[$data_key]); continue; } if (in_array($data_key, $no_history)) { continue; } if (isset($field["SIMPLE_TYPE"]) and (strlen($data_value) > 0 or !empty($old_data[$data_key]))) { $data_value = asset::build_history($field["SIMPLE_TYPE"], $data_value, @$old_data[$data_key]); } if (!empty($field["NO_SEARCH_INDEX"])) { $data_value = ""; } if (!empty($field["DISPLAYNAME"])) { $key = $field["DISPLAYNAME"]; } else { $key = $data_key; } if (trim($data_value) != "") { $cdata .= $key . ": " . $data_value . "\n"; } $cfields[] = $key; } $new_data["history"] = str_replace("@fields@", implode(", ", $cfields), $new_data["history"]) . $cdata . "\n"; return $new_data; }