/** * Fetch the slide collection for a given slideset * * @uses $_POST['slideset'] Identifies presentation based on slideset ID. */ public function get_slides() { $slideset_id = intval($_POST['slideset']); // $response = array( // 'success' => true/false, // 'data' => array( // $child_array_1, // $child_array_2 // ... // ) // } $response = array(); if (0 === $slideset_id) { $response['success'] = false; } else { /** @var SEOSlides_Slideset $slideset */ $slideset = SEOSlides_Module_Provider::get('SEOSlides Core')->get_slideset($slideset_id); $child_data = array(); // Build an array containing each slide in a separate associative array /** @var SEOSlides_Slide $slide */ foreach ($slideset->slides as $slide) { $bg_image = $slide->get_bg_image(); $bg_id = SEOSlides_Util::get_attachment_id_from_url($bg_image); if (false !== $bg_id) { $bg_arr = wp_get_attachment_image_src($bg_id, 'seoslides-thumb'); $bg_image = $bg_arr[0]; } $data = array('id' => $slide->ID, 'title' => stripslashes($slide->title), 'content' => $slide->content, 'image' => stripslashes($slide->image), 'bg_image' => $bg_image, 'style' => $slide->style, 'position' => $slide->position, 'preview' => $slide->preview, 'fill_color' => $slide->fill_color, 'seo_title' => $slide->seo_title, 'seo_description' => $slide->seo_description, 'seo_keywords' => $slide->seo_keywords, 'presenter_notes' => wp_trim_words($slide->presenter_notes, 50, ' […]'), 'status' => $slide->status); if (isset($data['bg_image']) && function_exists('jetpack_photon_url')) { $data['bg_image'] = jetpack_photon_url($data['bg_image'], array(), '//'); } $oembed = SEOSlides_Slide::get_embed_url($slide->oembed); $oembed_thumb = SEOSlides_Slide::get_embed_thumbnail($slide->oembed); if (!is_wp_error($oembed) && !is_wp_error($oembed_thumb)) { $data['oembed'] = $oembed; $data['oembed_thumb'] = $oembed_thumb; } // Build out canvas objects $data['objects'] = array_map(array($this, 'sanitize_slide_object'), $slide->objects); // Add the object $child_data[] = $data; } $response['success'] = true; $response['data'] = $child_data; } wp_send_json($response); }
/** * Build out old-style static content * * @return void */ protected function legacy_content() { $slide_content = unserialize($this->post->post_content); $this->title = isset($slide_content['title']) ? $slide_content['title'] : ''; $this->content = isset($slide_content['text']) ? $slide_content['text'] : ''; $this->image = isset($slide_content['image']) ? $slide_content['image'] : ''; $this->bg_image = isset($slide_content['bg-image']) ? $slide_content['bg-image'] : null; $image_id = SEOSlides_Util::get_attachment_id_from_url($this->bg_image); if (false !== $image_id) { $image_arr = wp_get_attachment_image_src($image_id, 'seoslides-thumb'); $this->bg_thumb = $image_arr[0]; } }
/** * Filter the display of the custom Presentation columns. * * @param string $column * @param int $slideset_id * * @return void */ public function filter_custom_columns($column, $slideset_id) { switch ($column) { case 'thumbnail': $slideset = new SEOSlides_Slideset($slideset_id); $title = $slideset->title; $slides = array_filter($slideset->slides, array('SEOSlides_Slide', 'slide_is_published')); if (count($slides) > 0) { $cover = $slideset->first_slide(); if (current_user_can('edit_post', $slideset_id)) { echo '<a href="' . get_edit_post_link($slideset_id) . '">'; } echo '<div class="list thumbnail">'; if (false === $cover->preview || 'false' === $cover->preview) { // There is no preview thumbnail for this image, so we'll try to create one instead // First, build out the inline style, using auto-generated thumbnail images // Build out inline style $style = ' style="'; if ('' !== $cover->bg_image) { $image = $cover->bg_image; $image_id = SEOSlides_Util::get_attachment_id_from_url($cover->bg_image); if (false === $image_id) { if (function_exists('jetpack_photon_url')) { $image = jetpack_photon_url($cover->bg_image, array(), '//'); } } else { $image_arr = wp_get_attachment_image_src($image_id, 'seoslides-thumb'); $image = $image_arr[0]; } $style .= 'background-image:url(' . $image . ');'; } $style .= 'background-color:' . $cover->fill_color . ';"'; echo "<section class='slide'><div class='slide-body' {$style}>"; if (!empty($cover->oembed)) { $embed_url = SEOSlides_Slide::get_embed_url($cover->oembed); $thumb_url = SEOSlides_Slide::get_embed_thumbnail($cover->oembed); if (!is_wp_error($embed_url) && !is_wp_error($thumb_url)) { echo '<img class="seoslides_iframe_thumb" src="' . $thumb_url . '" />'; echo '<iframe class="seoslides_iframe" src="' . $embed_url . '" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'; } } foreach ($cover->objects as $object) { echo '<div '; echo "data-element='{$object->element_id}' "; echo "data-plugin='{$object->plugin_id}' "; echo "data-width='{$object->settings->size->w}' "; echo "data-height='{$object->settings->size->h}' "; echo "data-top='{$object->settings->position->top}' "; echo "data-left='{$object->settings->position->left}' "; $style = 'position:absolute; '; $style .= 'top:' . $object->settings->position->top . 'px; '; $style .= 'left:' . $object->settings->position->left . 'px; '; $style .= 'width:' . $object->settings->size->w . 'px; '; $style .= 'height:' . $object->settings->size->h . 'px;'; echo "style='{$style}'"; echo '>'; if (isset($object->settings->content)) { echo $object->settings->content; } echo '</div>'; } echo '</div></section>'; } else { echo "<img src=\"{$cover->preview}\" title=\"{$cover->title}\" />"; } echo '</div>'; if (current_user_can('edit_post', $slideset_id)) { echo '</a>'; } } break; case 'description': $slideset = $this->get_slideset($slideset_id); echo $slideset->excerpt; break; case 'slide_count': echo self::get_slide_count($slideset_id); break; case 'updated': $slideset = $this->get_slideset($slideset_id); $updated = mysql2date('G', $slideset->last_updated_gmt, false); $diff = time() - $updated; if ($diff > 0 && $diff < DAY_IN_SECONDS) { $time = sprintf(__('%s ago'), human_time_diff($updated)); } else { $time = mysql2date(__('Y/m/d'), $slideset->last_updated); } echo $time; break; } }