Autoría | Ultima modificación | Ver Log |
<?php
/**
* Cocoon Form Builder integration for Moodle
*
* @package cocoon_form_builder
* @copyright ©2021 Cocoon, XTRA Enterprises Ltd. createdbycocoon.com
* @author Cocoon
*/
header("Access-Control-Allow-Origin: *");
header('Content-Type: application/json');
require_once('../../config.php');
global $USER, $DB, $CFG;
$PAGE->set_url('/local/cocoon_form_builder/updateinsert.php');
$PAGE->set_context(context_system::instance());
$_RESTREQUEST = file_get_contents("php://input");
$_POST = json_decode($_RESTREQUEST, true);
$attachments = array();
if(isset($_POST['attachments']) && $_POST['attachments'] != '') {
$allowedfileExtensions = array("image/png", "image/jpeg", "image/bmp", "image/vnd.microsoft.icon", "application/pdf", "application/msword",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation",
"text/csv", "application/zip");
foreach ($_POST['attachments'] as $key => $value) {
define('UPLOAD_DIR', $CFG->dataroot);
$image_parts = explode(";base64,", $value);
if(count($image_parts) > 1) {
$file_type_aux = explode(":", $image_parts[0]);
$file_type = $file_type_aux[1];
$image_base64 = base64_decode($image_parts[1]);
$fileExtension = "";
if((strpos($file_type, "image/png")) || ($file_type == "image/png")) {
$fileExtension = "png";
} elseif ((strpos($file_type, "image/jpeg")) || ($file_type == "image/jpeg")) {
$fileExtension = "jpg";
} elseif ((strpos($file_type, "image/bmp")) || ($file_type == "image/bmp")) {
$fileExtension = "bmp";
} elseif ((strpos($file_type, "image/vnd.microsoft.icon")) || ($file_type == "image/vnd.microsoft.icon")) {
$fileExtension = "ico";
} elseif ((strpos($file_type, "application/pdf")) || ($file_type == "application/pdf")) {
$fileExtension = "pdf";
} elseif ((strpos($file_type, "application/msword")) || ($file_type == "application/msword")) {
$fileExtension = "doc";
} elseif ((strpos($file_type, "application/vnd.openxmlformats-officedocument.wordprocessingml.document")) || ($file_type == "application/vnd.openxmlformats-officedocument.wordprocessingml.document")) {
$fileExtension = "docx";
} elseif ((strpos($file_type, "application/vnd.ms-excel")) || ($file_type == "application/vnd.ms-excel")) {
$fileExtension = "xls";
} elseif ((strpos($file_type, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) || ($file_type == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")) {
$fileExtension = "xlsx";
} elseif ((strpos($file_type, "application/vnd.ms-powerpoint")) || ($file_type == "application/vnd.ms-powerpoint")) {
$fileExtension = "ppt";
} elseif ((strpos($file_type, "application/vnd.openxmlformats-officedocument.presentationml.presentation")) || ($file_type == "application/vnd.openxmlformats-officedocument.presentationml.presentation")) {
$fileExtension = "pptx";
} elseif ((strpos($file_type, "text/csv")) || ($file_type == "text/csv")) {
$fileExtension = "csv";
} elseif ((strpos($file_type, "application/zip")) || ($file_type == "application/zip")) {
$fileExtension = "zip";
}
$fileName = uniqid() . '.' . $fileExtension;
$file = UPLOAD_DIR . "/" . $fileName;
file_put_contents($file, $image_base64);
$f = $file;
// Read image path, convert to base64 encoding
$fData = base64_encode(file_get_contents($file));
// Format the image SRC: data:{mime};base64,{data};
$src = 'data: '.mime_content_type($f).';base64,'.$fData;
$attachments[] = $src;
} else {
$attachments[] = $value;
}
}
}
$reply = new stdClass();
$reply->subject = $_POST['email_subject'];
$reply->message = $_POST['email_message'];
$reply->attachments = $attachments;
$obj = new stdClass();
$obj->title = $_POST['title'];
$obj->json = $_POST['json'];
$obj->data = json_encode($reply);
$obj->url = $_POST['url'];
$obj->confirm_message = $_POST['confirm_message'];
$obj->recipients = $_POST['recipients'];
$obj->status = $_POST['status'];
$obj->ajax = $_POST['ajax'];
if(empty(trim($_POST['title']))) {
$sql = "SELECT `auto_increment` FROM INFORMATION_SCHEMA.TABLES WHERE table_name = '{cocoon_form_builder_forms}'";
$form = $DB->get_records_sql($sql);
$value = intval(array_values($form)[0]->auto_increment);
$obj->title = "Form #" . $value;
}
if(isset($_POST['id']) && $_POST['id'] !== '') {
$obj->id = $_POST['id'];
$result = $DB->update_record('cocoon_form_builder_forms', $obj);
echo $result;
} else {
$result = $DB->insert_record('cocoon_form_builder_forms', $obj, true, false);
echo $result;
}