%PDF- %PDF-
Direktori : /home/opti/www/stlc/wp-content/plugins/shortpixel-image-optimiser/class/external/ |
Current File : /home/opti/www/stlc/wp-content/plugins/shortpixel-image-optimiser/class/external/formidable.php |
<?php namespace ShortPixel; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly. } use ShortPixel\ShortPixelLogger\ShortPixelLogger as Log; use ShortPixel\Controller\AdminController as AdminController; class Formidable { public function __construct() { if (true === \wpSPIO()->env()->is_autoprocess ) { $this->addHooks(); } } protected function addHooks() { add_filter('shortpixel/media/uploadhook', array($this, 'checkFormUpload'), 10, 4); add_action('frm_after_update_entry', array($this, 'formUpload'), 10, 2); add_action('frm_after_create_entry', array($this, 'formUpload'), 30, 2); } // Check if this is a formadible form upload and then not add this file in the initial stage to the queue. public function checkFormUpload($bool, $mediaItem, $meta, $id) { $value = get_post_meta($id, '_frm_temporary', true); // Seems form submit temporary. if (is_numeric($value)) { return false; } return $bool; } public function formUpload($id, $new_values) { $form_id = isset($_POST['form_id']) ? intval($_POST['form_id']) : null; if (is_null($form_id)) { Log::addError('Form ID not set, aborting', $_POST); return; } if (false === isset($_POST['item_meta']) || false === is_array($_POST['item_meta'])) { return; } $fields = $this->getFileUploadFields($form_id); if (false === $fields) { return; } //$item_meta = array_filter($_POST['item_meta']); foreach($fields as $index => $field_id) { $meta = isset($_POST['item_meta'][$field_id]) ? $_POST['item_meta'][$field_id] : ''; // array can contain non numeric or empty values. if (! is_numeric($meta) && ! is_array($meta)) { continue; } elseif (is_array($meta)) // can be nested. { $meta = array_filter($meta); foreach($meta as $index => $meta_id) { $this->checkMediaLibrary(intval($meta_id)); } } else { $this->checkMediaLibrary(intval($meta)); } } } private function getFileUploadFields($form_id) { global $wpdb; $sql = 'SELECT id FROM ' . $wpdb->prefix . 'frm_fields where form_id = %d and type = %s '; $sql = $wpdb->prepare($sql, $form_id, 'file'); $row = $wpdb->get_col($sql); if (count($row) === 0) { return false; } return $row; } private function checkMediaLibrary($item_id) { $fs = \wpSPIO()->filesystem(); $mediaItem = $fs->getMediaImage($item_id); if (is_object($mediaItem) && $mediaItem->isProcessable()) { $adminController = AdminController::getInstance(); $adminController->handleImageUploadHook(null, $item_id); } } } $f = new Formidable();