Viewing file: SlideshowPluginSlideshowSlide.php (4.26 KB) -rw-rw-rw- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
* SlideshowPluginSlideshowSlide provides functions for outputting a slide for back-end as well as front-end display.
* It also provides all slide templates.
*
* Every slide needs to pass their slide type in the properties array. A slide type can be one of the following:
* - text
* - attachment
* - video
*
* A text slide can consist of the following properties:
* - title
* - titleElementTag
* - description
* - descriptionElementTag
* - textColor
* - color
* - url
* - urlTarget
* - noFollow
* - type (required)
*
* An attachment slide can consist of the following properties:
* - title
* - titleElementTag
* - description
* - descriptionElementTag
* - url
* - urlTarget
* - noFollow
* - alternativeText
* - type (required)
* - postId (required)
*
* A video slide can consist of the following properties:
* - videoId (required)
* - showRelatedVideos
* - type (required)
*
* @since 2.2.0
* @author Stefan Boonstra
*/
class SlideshowPluginSlideshowSlide
{
/** @var array $properties */
private $properties;
/**
* Creates a slide object with the parsed properties. For information on how to build the properties array, view
* the class' description.
*
* @since 2.2.0
* @param array $properties
*/
function __construct($properties)
{
if (is_array($properties))
{
$this->properties = $properties;
}
}
/**
* Build slide for front-end use.
*
* Returns when $return is true, prints when $return is false.
*
* @since 2.2.0
* @param boolean $return (optional, defaults to true)
* @return String $frontEndHTML
*/
function toFrontEndHTML($return = true)
{
// Exit when no slide type has been set or is empty
if (!isset($this->properties['type']) ||
empty($this->properties['type']))
{
return '';
}
$properties = $this->properties;
// Build file path
$file = SlideshowPluginMain::getPluginPath() . DIRECTORY_SEPARATOR .
'views' . DIRECTORY_SEPARATOR .
__CLASS__ . DIRECTORY_SEPARATOR .
'frontend_' . $this->properties['type'] . '.php';
// Include file path
if (!file_exists($file))
{
return '';
}
// Start output buffering if output needs to be returned
if ($return)
{
ob_start();
}
include $file;
// Return output
if ($return)
{
return ob_get_clean();
}
return '';
}
/**
* Build slide for back-end use.
*
* Returns when $return is true, prints when $return is false.
*
* @since 2.2.0
* @param boolean $return (optional, defaults to true)
* @return String $backEndHTML
*/
function toBackEndHTML($return = true)
{
// Exit when no slide type has been set or is empty
if (!isset($this->properties['type']) ||
empty($this->properties['type']))
{
return '';
}
// Make properties array available to included file
$properties = $this->properties;
// The name is used to prefix a setting name with. Although the ID's are set on load, set a random one to be sure
$name = SlideshowPluginSlideshowSettingsHandler::$slidesKey . '[' . rand() . ']';
// Build file path
$file = SlideshowPluginMain::getPluginPath() . DIRECTORY_SEPARATOR .
'views' . DIRECTORY_SEPARATOR .
__CLASS__ . DIRECTORY_SEPARATOR .
'backend_' . $this->properties['type'] . '.php';
// Include file path
if (!file_exists($file))
{
return '';
}
// Start output buffering if output needs to be returned
if ($return)
{
ob_start();
}
include $file;
// Return output
if ($return)
{
return ob_get_clean();
}
return '';
}
/**
* Build templates for back-end slides.
*
* Returns when $return is true, prints when $return is false.
*
* @since 2.2.0
* @param boolean $return (optional, defaults to true)
* @return String $backEndTemplates
*/
static function getBackEndTemplates($return = true)
{
// Start output buffering if output needs to be returned
if ($return)
{
ob_start();
}
include SlideshowPluginMain::getPluginPath() . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . __CLASS__ . DIRECTORY_SEPARATOR . 'backend_templates.php';
// Return output
if($return)
{
return ob_get_clean();
}
return '';
}
}
|