public function asXML($filename = NULL, $human = TRUE) { #clean fields that not has to be in svg unset($this->maxY); unset($this->maxX); unset($this->startX); unset($this->startY); unset($this->data); return parent::asXML($filename, $human); }
public function create_image_from_svg() { if (!isset($_POST['order_id']) || !isset($_POST['item_id']) || !isset($_POST['svg']) || !isset($_POST['title'])) { exit; } check_ajax_referer('fpd_ajax_nonce', '_ajax_nonce'); require_once FPD_PLUGIN_ADMIN_DIR . '/inc/svglib/svglib.php'; $order_id = trim($_POST['order_id']); $item_id = trim($_POST['item_id']); $svg = stripslashes(trim($_POST['svg'])); $width = trim($_POST['width']); $height = trim($_POST['height']); $title = sanitize_title(trim($_POST['title'])); //create fancy product orders directory if (!file_exists(FPD_ORDER_DIR)) { wp_mkdir_p(FPD_ORDER_DIR); } //create uploads dir $images_dir = FPD_ORDER_DIR . 'images/'; if (!file_exists($images_dir)) { wp_mkdir_p($images_dir); } //shortcode order if (empty($item_id)) { $shortcode_dir = FPD_ORDER_DIR . 'images/_shortcode/'; if (!file_exists($shortcode_dir)) { wp_mkdir_p($shortcode_dir); } $item_dir = $shortcode_dir . $order_id . '/'; if (!file_exists($item_dir)) { wp_mkdir_p($item_dir); } } else { //create order dir $order_dir = $images_dir . $order_id . '/'; if (!file_exists($order_dir)) { wp_mkdir_p($order_dir); } //create item dir $item_dir = $order_dir . $item_id . '/'; if (!file_exists($item_dir)) { wp_mkdir_p($item_dir); } } $image_path = $item_dir . $title . '.svg'; $image_exist = file_exists($image_path); header('Content-Type: application/json'); try { $svg = '<?xml version="1.0" encoding="UTF-8" standalone="no" ?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="' . $width . '" height="' . $height . '" xml:space="preserve">' . $svg . '</svg>'; $svg_doc = new SVGDocument($svg); $svg_doc->asXML($image_path); $image_url = content_url(substr($image_path, strrpos($image_path, '/fancy_products_orders/'))); echo json_encode(array('code' => $image_exist ? 302 : 201, 'url' => $image_url, 'title' => $title)); } catch (Exception $e) { echo json_encode(array('code' => 500)); } die; }
public function createImageFromSvg() { if (!isset($this->request->post['order_id']) || !isset($this->request->post['item_id']) || !isset($this->request->post['svg']) || !isset($this->request->post['title'])) { exit; } require_once DIR_SYSTEM . 'library/svglib/svglib.php'; $order_id = trim($this->request->post['order_id']); $item_id = trim($this->request->post['item_id']); $svg = stripslashes(trim($this->request->post['svg'])); $width = trim($this->request->post['width']); $height = trim($this->request->post['height']); $title = trim($this->request->post['title']); //create fancy product orders directory if (!file_exists(DIR_IMAGE)) { mkdir(DIR_IMAGE); } //create uploads dir $images_dir = DIR_IMAGE . 'design_products_orders/'; if (!file_exists($images_dir)) { mkdir($images_dir); } $images_dir = DIR_IMAGE . 'design_products_orders/images/'; if (!file_exists($images_dir)) { mkdir($images_dir); } //create order dir $order_dir = $images_dir . $order_id . '/'; if (!file_exists($order_dir)) { mkdir($order_dir); } //create item dir $item_dir = $order_dir . $item_id . '/'; if (!file_exists($item_dir)) { mkdir($item_dir); } $image_path = $item_dir . $title . '.svg'; $image_exist = file_exists($image_path); header('Content-Type: application/json'); try { $svg = '<?xml version="1.0" encoding="UTF-8" standalone="no" ?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="' . $width . '" height="' . $height . '" xml:space="preserve">' . $svg . '</svg>'; $svg_doc = new SVGDocument(html_entity_decode($svg, ENT_QUOTES, 'UTF-8')); $svg_doc->asXML($image_path); $image_url = str_replace(DIR_IMAGE, HTTP_CATALOG . 'image/', $image_path); $this->response->setOutput(json_encode(array('code' => $image_exist ? 302 : 201, 'url' => $image_url, 'title' => $title))); } catch (Exception $e) { $this->response->setOutput(json_encode(array('code' => 500))); } }