/** * Return an instance of the renderer class based on the type of the slide. * * @since 4.0.0 * * @param array $data The data of the slide. * @return object An instance of the appropriate renderer class. */ public static function create_slide($data) { if (is_null(self::$default_type)) { $default_settings = BQW_SliderPro_Settings::getSlideSettings(); self::$default_type = $default_settings['content_type']['default_value']; } $type = isset($data['settings']['content_type']) ? $data['settings']['content_type'] : self::$default_type; foreach (self::$registered_types as $registered_type_name => $registered_type_class) { if ($type === $registered_type_name) { return new $registered_type_class(); } } }
/** * Create a slide. * * @since 4.0.0 * * @param array $data The data of the slide. * @param int $slide_counter The index of the slide. * @return string The HTML markup of the slide. */ protected function create_slide($data, $slide_counter) { $lazy_loading = isset($this->settings['lazy_loading']) ? $this->settings['lazy_loading'] : $this->default_settings['lazy_loading']['default_value']; $lightbox = isset($this->settings['lightbox']) ? $this->settings['lightbox'] : $this->default_settings['lightbox']['default_value']; $hide_image_title = isset($this->settings['hide_image_title']) ? $this->settings['hide_image_title'] : $this->default_settings['hide_image_title']['default_value']; $link_target = isset($this->settings['link_target']) ? $this->settings['link_target'] : $this->default_settings['link_target']['default_value']; $auto_thumbnail_images = isset($this->settings['auto_thumbnail_images']) ? $this->settings['auto_thumbnail_images'] : $this->default_settings['auto_thumbnail_images']['default_value']; $thumbnail_image_size = isset($this->settings['thumbnail_image_size']) ? $this->settings['thumbnail_image_size'] : $this->default_settings['thumbnail_image_size']['default_value']; $extra_data = new stdClass(); $extra_data->lazy_loading = $lazy_loading; $extra_data->lightbox = $lightbox; $extra_data->hide_image_title = $hide_image_title; $extra_data->link_target = $link_target; $extra_data->auto_thumbnail_images = $auto_thumbnail_images; $extra_data->thumbnail_image_size = $thumbnail_image_size; $slide = BQW_SP_Slide_Renderer_Factory::create_slide($data); $slide->set_data($data, $this->id, $slide_counter, $extra_data); return $slide->render(); }