function flowplayer_add in Flowplayer API 6
Same name and namespace in other branches
- 5 flowplayer.module \flowplayer_add()
- 7.2 flowplayer.module \flowplayer_add()
- 7 flowplayer.module \flowplayer_add()
Adds a FlowPlayer element to the page.
Parameters
$selector: (optional) The jQuery selector to apply the FlowPlayer to. If not given, will just add the FlowPlayer JavaScript plugin.
$config: (optional) Can either be a string representing the media to load, or an array of arguments containing the options provided on this page: http://flowplayer.org/documentation/configuration.html
2 calls to flowplayer_add()
- flowplayer_help in ./
flowplayer.module - Implementation of hook_help().
- theme_flowplayer in ./
flowplayer.module - Creates the markup and adds the JavaScript to display a media file in
1 string reference to 'flowplayer_add'
- flowplayer_jq in ./
flowplayer.jq.inc - @file Adds support for the jQ module.
File
- ./
flowplayer.module, line 78 - Provides integration with FlowPlayer.
Code
function flowplayer_add($selector = NULL, $config = NULL) {
// Maintain kill switches for both Flowplayer and the Drupal behaviors.
static $flowplayer_added = FALSE;
static $flowplayer_selectors = array();
// Add Flowplayer to the page if it hasn't been added yet.
if ($flowplayer_added === FALSE) {
// Add the FlowPlayer JavaScript and CSS to the page.
drupal_add_js(drupal_get_path('module', 'flowplayer') . '/flowplayer/flowplayer.min.js');
drupal_add_css(drupal_get_path('module', 'flowplayer') . '/flowplayer.css');
// Tell the JavaScript where flowplayer.swf is.
$settings = array(
'flowplayerSwf' => drupal_get_path('module', 'flowplayer') . '/flowplayer/flowplayer.swf',
);
drupal_add_js($settings, 'setting');
$flowplayer_added = TRUE;
}
// Add the settings if they haven't been added for the selector yet.
if (isset($selector) && !isset($flowplayer_selectors[$selector])) {
// Register the FlowPlayer Drupal behavior so that the elements are processed.
if (empty($flowplayer_selectors)) {
// Note that this is only added for the first one added because we only need
// it if we are processing through Drupal.settings.flowplayer.
drupal_add_js(drupal_get_path('module', 'flowplayer') . '/flowplayer.js');
}
// Convert any strings to an array so that we can merge in the defaults.
if (is_string($config)) {
$config = array(
'clip' => array(
'url' => $config,
),
);
}
// Merge in the defaults, starting with the license key.
if (!isset($config['key'])) {
$key = variable_get('flowplayer_key', NULL);
if (!empty($key)) {
$config['key'] = $key;
}
}
// Merge scaling option in the defaults.
if (!isset($config['clip']['scaling'])) {
$config['clip']['scaling'] = variable_get('flowplayer_scaling', 'fit');
}
// The player colors.
$colors = array(
'backgroundColor',
'sliderColor',
'buttonColor',
'buttonOverColor',
'durationColor',
'timeColor',
'progressColor',
'bufferColor',
);
foreach ($colors as $color) {
if (!isset($config['plugins']['controls'][$color])) {
$color_value = variable_get('flowplayer_color_' . $color, NULL);
if (!empty($color_value)) {
$config['plugins']['controls'][$color] = $color_value;
}
}
}
// The controlbar styling.
$buttons = variable_get('flowplayer_buttons', array());
foreach ($buttons as $button => $enabled) {
if (!isset($config['plugins']['controls'][$button])) {
$config['plugins']['controls'][$button] = $enabled ? TRUE : FALSE;
}
}
// Gradient.
if (!isset($config['plugins']['controls']['backgroundGradient'])) {
$gradient = variable_get('flowplayer_background_gradient', NULL);
if (!empty($gradient)) {
$config['plugins']['controls']['backgroundGradient'] = $gradient;
}
}
// Border radius.
if (!isset($config['plugins']['controls']['borderRadius'])) {
$radius = variable_get('flowplayer_border_radius', NULL);
if (!empty($radius)) {
$config['plugins']['controls']['borderRadius'] = $radius;
}
}
// Add the flowplayer element to the settings so that it's processed by the behaviours.
drupal_add_js(array(
'flowplayer' => array(
$selector => $config,
),
), 'setting');
$flowplayer_selectors[$selector] = TRUE;
}
}