예제 #1
0
 static function build_notification($module, $fields, $data_full, $data, $id, $data_row = array())
 {
     if (!is_numeric($data_full["folder"])) {
         $folder_title = basename($data_full["folder"]);
     } else {
         $folder_title = db_select_value("simple_sys_tree", "ftitle", array("id=@id@"), array("id" => $data_full["folder"]));
     }
     if (!empty($data_full["folder"])) {
         $details = "http" . (sys_https() ? "s" : "") . "://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER["SCRIPT_NAME"]);
         $details .= "/index.php?view=details&folder=" . $data_full["folder"] . "&item%5B%5D=" . $id;
     } else {
         $details = "";
     }
     $message = substr($data["history"], 0, strpos($data["history"], "\n")) . "\n\n";
     if (!empty($data_full["notification_summary"])) {
         $message .= "{t}Summary{/t}: " . trim($data_full["notification_summary"]) . "\n\n";
     }
     $title = "";
     foreach ($data_full as $key => $value) {
         if (!isset($data[$key]) and !isset($fields[$key]["REQUIRED"])) {
             continue;
         }
         if (!isset($fields[$key]["DISPLAYNAME"]) or !empty($fields[$key]["NO_SEARCH_INDEX"])) {
             continue;
         }
         if (is_array($value)) {
             $value = implode("|", $value);
         }
         if ($key != "notification_summary" and strlen($value) > 0) {
             if (!isset($data_row[$key])) {
                 $data_row[$key] = "";
             }
             $value = trim(self::build_history($fields[$key]["SIMPLE_TYPE"], $value, $data_row[$key]));
             if ($value != "") {
                 $message .= $fields[$key]["DISPLAYNAME"] . ": " . $value . "\n";
                 if ($title == "") {
                     $title = $fields[$key]["DISPLAYNAME"] . ": " . $value;
                 }
             }
         }
     }
     if ($details) {
         $message .= "\n{t}Details{/t}:\n" . $details;
     }
     $attachment = "";
     if ($module == "simple_calendar" and !empty($GLOBALS["t"])) {
         $attachment = implode("", sys_build_filename("invite.ics"));
         $ical_data = array();
         foreach ($data_full as $key => $val) {
             $ical_data[$key] = array("data" => (array) $val, "filter" => (array) $val);
         }
         $ical_data["_id"] = $id;
         file_put_contents($attachment, export::icalendar_data($ical_data), LOCK_EX);
     }
     $smtp_data = array("efrom" => "", "eto" => $data_full["notification"], "subject" => SMTP_NOTIFICATION . " - " . $folder_title . " - " . $title, "message" => $message, "attachment" => $attachment, "folder" => $data_full["folder"]);
     return $smtp_data;
 }