protected function load($id) { global $wpdb; $result = $wpdb->get_row(sprintf('SELECT * FROM %s WHERE id = %d', $wpdb->prefix . parent::SLIDES_TABLE, (int) $id), ARRAY_A); if (is_null($result)) { return false; } $this->id = (int) $id; $this->sliderId = (int) $result['slider_id']; $this->sliderAlias = MPSLSliderOptions::getAliasById($this->sliderId); $this->slideOrder = (int) $result['slide_order']; // $this->options = json_decode($result['options'], true); $this->overrideOptions(json_decode($result['options'], true), false); $this->overrideLayers(json_decode($result['layers'], true)); return true; }
function exportSliders() { global $mpsl_settings; if (isset($_POST['ids']) && !empty($_POST['ids'])) { if (check_admin_referer('export-mpsl-sliders')) { $uploads = wp_upload_dir(); $exportData = array('info' => array('mpsl-ver' => $mpsl_settings['plugin_version'], 'base-upload' => $uploads['baseurl'])); $internalResources = array(); foreach ($_POST['ids'] as $id) { require_once $this->pluginDir . 'SliderOptions.php'; $slider = new MPSLSliderOptions($id); $error = null; $slider_data = $slider->getExportSliderData($internalResources); $exportData['sliders'][$id] = $slider_data; } $exportData['uploads'] = $internalResources; $siteTitle = str_replace(' ', '', get_bloginfo('name')); $date = date("m-d-Y"); if (count($exportData['sliders']) > 1) { $sliderAlias = 'sliders'; } else { $firstSlider = reset($exportData['sliders']); $sliderAlias = $firstSlider['options']['alias']; } $exportFileName = $siteTitle . "-" . $sliderAlias . "-data-" . $date; $exportData = json_encode($exportData); header("Content-Type: application/force-download; charset=" . get_bloginfo('charset')); header("Content-Disposition: attachment; filename={$exportFileName}.json"); exit($exportData); } } exit; }
private function importData($data) { if (empty($data)) { return false; } $import_data = json_decode($data, true); if (!is_array($import_data)) { if ($this->isVerbose) { _e('Import data is not valid.', MPSL_TEXTDOMAIN) . "<br/>"; } return false; } if (isset($import_data['sliders'])) { $importedMedia = $this->importUploads($import_data['uploads']); if (!empty($importedMedia)) { if ($this->isVerbose) { echo '<br/>' . __('Uploads imported', MPSL_TEXTDOMAIN) . '<br/><hr/><br/>'; } } // replace placeholders in data with new attachment ids $this->updateAttachmentIds($import_data, $importedMedia); foreach ($import_data['sliders'] as $slider_data) { global $mpslAdmin; $slider = new MPSLSliderOptions(); $slider->overrideOptions($slider_data['options'], false); $slider->makeAliasUnique(); $sliderId = $slider->create(); if (false !== $sliderId) { if ($this->isVerbose) { printf(__('Slider "%s" options imported.', MPSL_TEXTDOMAIN), $slider->getAlias()); echo '<br/>'; } foreach ($slider_data['slides'] as $slide_data) { $slide = new MPSLSlideOptions(); $slide->overrideOptions($slide_data['options'], false); $slide->setLayers($slide_data['layers']); $result = $slide->import($sliderId); if (false !== $result) { if ($this->isVerbose) { printf(__('Slide "%s" of slider "%s" imported.', MPSL_TEXTDOMAIN), $slide->getTitle(), $slider->getAlias()); echo '<br/>'; } } else { if ($this->isVerbose) { global $wpdb; printf(__('Slide "%s" of slider "%s" is not imported. Error: %s', MPSL_TEXTDOMAIN), $slide->getTitle(), $slider->getAlias(), $wpdb->last_error); echo '<br/>'; } } } } else { if ($this->isVerbose) { global $wpdb; printf(__('Slider "%s" is not imported. Error: %s', MPSL_TEXTDOMAIN), $slider->getAlias(), $wpdb->last_error); echo '<br/>'; } } } } return true; }