\d+)s)?/', $url, $matches);
- //Give it some default data in case there is no #t=...
+ // Give it some default data in case there is no #t=...
$matches += array(
- "min" => 0,
- "sec" => 0,
+ "min" => 0,
+ "sec" => 0,
);
$time = ($matches["min"] * 60) + $matches["sec"];
$settings['start'] = $time;
$id = _video_embed_field_get_youtube_id($url);
if (!$id) {
- // We can't decode the URL - just return the URL as a link
+ // We can't decode the URL - just return the URL as a link.
$output['#markup'] = l($url, $url);
return $output;
}
- // Construct the embed code
+ // Construct the embed code.
$settings['wmode'] = 'opaque';
$settings_str = _video_embed_code_get_settings_str($settings);
- $output['#markup'] = '';
+ $output['#markup'] = '';
return $output;
}
/**
- * Get the thumbnail url for youtube videos
+ * Gets the thumbnail url for youtube videos.
+ *
+ * @param string $url
+ * The video URL.
+ *
+ * @return array
+ * The video thumbnail information.
*/
-function video_embed_field_handle_youtube_thumbnail($video_url){
+function video_embed_field_handle_youtube_thumbnail($url) {
$info = array();
- $id = _video_embed_field_get_youtube_id($video_url);
+ $id = _video_embed_field_get_youtube_id($url);
- //Playlist
- if(stristr($id, '?list=')){
- //Strip out all but the ID, including the PL behind the ID.
+ // Playlist.
+ if (stristr($id, '?list=')) {
+ // Strip out all but the ID, including the PL behind the ID.
$start = strpos($id, '?list=PL') + 8;
$length = strpos($id, '&') - $start;
$id = substr($id, $start, $length);
$info['id'] = $id;
- //Playlist info is stored in XML. The thumbnail is in there.
+ // Playlist info is stored in XML. The thumbnail is in there.
$xml = drupal_http_request('http://gdata.youtube.com/feeds/api/playlists/' . $id);
- if(!isset($xml->error)){
+ if (!isset($xml->error)) {
$xml = new SimpleXMLElement($xml->data);
$media = $xml->children('http://search.yahoo.com/mrss/');
- if($media->group->thumbnail && $media->group->thumbnail[0]->attributes()){
+ if ($media->group->thumbnail && $media->group->thumbnail[0]->attributes()) {
$attrs = $media->group->thumbnail[0]->attributes();
- $info['url'] = (string)$attrs['url'];
+ $info['url'] = (string) $attrs['url'];
}
}
}
- //Regular video
- else if($id) {
+ // Regular video.
+ elseif ($id) {
$info['id'] = $id;
- $info['url'] = 'http://img.youtube.com/vi/'.$id.'/0.jpg';
+ $info['url'] = 'http://img.youtube.com/vi/' . $id . '/0.jpg';
}
return $info;
}
- /**
- * Get video data for a YouTube video URL
+/**
+ * Gets video data for a YouTube video URL.
*
* @param string $url
* A YouTube video URL to get data for
*
- * @return array|false $data
+ * @return array|bool
* An array of video data, or FALSE if unable to fetch data
*/
function video_embed_field_handle_youtube_data($url) {
- $data = array();
-
- // Get YouTube video ID from URL
+ // Get YouTube video ID from URL.
$id = _video_embed_field_get_youtube_id($url);
if ($id) {
$response = drupal_http_request('http://gdata.youtube.com/feeds/api/videos/' . $id . '?v=2&alt=json');
if (!isset($response->error)) {
$data = json_decode($response->data);
- $data = (array) $data->entry;
+ $data = isset($data->entry) ? (array) $data->entry : (array) $data->feed;
return _video_embed_field_clean_up_youtube_data($data);
}
}
@@ -230,30 +255,38 @@ function video_embed_field_handle_youtube_data($url) {
}
/**
- * Flatten out some unnecessary nesting in the youtube data
+ * Flattens out some unnecessary nesting in the youtube data.
+ *
+ * @param array $data
+ * The unflattened data.
+ *
+ * @return array
+ * The flattened data.
*/
function _video_embed_field_clean_up_youtube_data($data) {
- //make things a bit nicer for people trying to use the data
+ // Make things a bit nicer for people trying to use the data.
foreach ($data as $key => $value) {
if (is_object($value)) {
- $temp = (array)$value;
+ $temp = (array) $value;
if (isset($temp['$t'])) {
$data[$key] = $temp['$t'];
- } else {
+ }
+ else {
$data[$key] = _video_embed_field_clean_up_youtube_data($temp);
}
- } else if (is_array($value)) {
+ }
+ elseif (is_array($value)) {
$data[$key] = _video_embed_field_clean_up_youtube_data($value);
}
- if($key === 'category') {
+ if ($key === 'category') {
$terms = array();
foreach ($data[$key] as $value) {
- if(isset($value['scheme']) && $value['scheme'] == 'http://schemas.google.com/g/2005#kind') {
+ if (isset($value['scheme']) && $value['scheme'] == 'http://schemas.google.com/g/2005#kind') {
continue;
}
- if(isset($value['term'])) {
+ if (isset($value['term'])) {
$terms[] = $value['term'];
}
}
@@ -265,6 +298,12 @@ function _video_embed_field_clean_up_youtube_data($data) {
/**
* Defines the form elements for the Youtube configuration form.
+ *
+ * @param array $defaults
+ * The form default values.
+ *
+ * @return array
+ * The provider settings form array.
*/
function video_embed_field_handler_youtube_form($defaults) {
$form = array();
@@ -298,11 +337,18 @@ function video_embed_field_handler_youtube_form($defaults) {
'#description' => t('Play the video immediately.'),
'#default_value' => $defaults['autoplay'],
);
- $form['hd'] = array(
- '#type' => 'checkbox',
- '#title' => t('Use HD'),
- '#description' => t('Attempt to play the video in HD if available.'),
- '#default_value' => $defaults['hd'],
+ $form['vq'] = array(
+ '#type' => 'select',
+ '#title' => t('Video quality'),
+ '#options' => array(
+ 'small' => t('Small (240p)'),
+ 'medium' => t('Medium (360p)'),
+ 'large' => t('Large (480p)'),
+ 'hd720' => t('HD 720p'),
+ 'hd1080' => t('HD 10800p'),
+ ),
+ '#default_value' => $defaults['vq'],
+ '#description' => t('Attempt to play the video in certain quality if available.'),
);
$form['rel'] = array(
'#type' => 'checkbox',
@@ -317,10 +363,10 @@ function video_embed_field_handler_youtube_form($defaults) {
'#default_value' => $defaults['showinfo'],
);
$form['modestbranding'] = array(
- '#type' => 'checkbox',
- '#title' => t('Hide Youtube logo'),
- '#description' => t('Hide the Youtube logo button on the player'),
- '#default_value' => $defaults['modestbranding']
+ '#type' => 'checkbox',
+ '#title' => t('Hide Youtube logo'),
+ '#description' => t('Hide the Youtube logo button on the player'),
+ '#default_value' => $defaults['modestbranding'],
);
$form['iv_load_policy'] = array(
'#type' => 'radios',
@@ -332,6 +378,17 @@ function video_embed_field_handler_youtube_form($defaults) {
'#description' => t('Controls the display of annotations over the video content. Only works when using the flash player.'),
'#default_value' => $defaults['iv_load_policy'],
);
+ $form['controls'] = array(
+ '#type' => 'radios',
+ '#options' => array(
+ 0 => t('Hide video controls.'),
+ 1 => t('Show video controls. Youtube default.'),
+ 2 => t('Show video controls with performance improvement for iframe embeds.'),
+ ),
+ '#title' => t('Display Youtube player controls'),
+ '#description' => t('This parameter indicates whether the video player controls will display.'),
+ '#default_value' => $defaults['controls'],
+ );
$form['autohide'] = array(
'#type' => 'radios',
'#options' => array(
@@ -348,89 +405,134 @@ function video_embed_field_handler_youtube_form($defaults) {
}
/**
- * Helper function to get the Vimeo video's ID
+ * Validates the form elements for the Youtube configuration form.
+ *
+ * @param array $element
+ * The form element to validate.
+ * @param array $form_state
+ * The form to validate state.
+ * @param array $form
+ * The form to validate structure.
+ */
+function video_embed_field_handler_youtube_form_validate($element, &$form_state, $form) {
+ video_embed_field_validate_dimensions($element);
+}
+
+/**
+ * Helper function to get the Vimeo video's data attributes.
*
* @param string $url
- * A Vimeo video URL to get the ID of
+ * A Vimeo video URL to get the data from.
*
- * @return integer|false $id
- * The video ID, or FALSE if unable to get the video ID
+ * @return integer|false
+ * The video's data attributes, or FALSE if unable to get the video ID.
*/
-function _video_embed_field_get_vimeo_id($url){
- $pos = strripos($url, '/');
- if ($pos != FALSE) {
- $pos += 1;
- return (int) substr($url, $pos);
+function _video_embed_field_get_vimeo_data($url) {
+ // Set oembed endpoint
+ $oembed_endpoint = 'http://vimeo.com/api/oembed';
+ // Fetch vimeo data
+ $response = drupal_http_request($oembed_endpoint . '.json?url=' . rawurlencode($url));
+
+ try {
+ return json_decode($response->data, TRUE);
+ } catch (Exception $e) {
+ return FALSE;
}
- return FALSE;
+}
+
+/**
+ * Helper function to get the Vimeo video's data attributes.
+ *
+ * @param string $url
+ * A Vimeo video URL to get the ID of.
+ *
+ * @return integer|false
+ * The video ID, or FALSE if unable to get the video ID.
+ */
+function _video_embed_field_get_vimeo_id($vimeo_data) {
+ try {
+ $video_id = $vimeo_data['video_id'];
+ } catch (Exception $e) {
+ $video_id = FALSE;
+ }
+
+ return $video_id;
}
/**
* Handler for Vimeo videos.
+ *
+ * @param string $url
+ * The video URL.
+ * @param array $settings
+ * The settings array.
+ *
+ * @return string
+ * The video iframe.
*/
function video_embed_field_handle_vimeo($url, $settings) {
- // Get ID of video from URL
- $id = _video_embed_field_get_vimeo_id($url);
- if (!$id) {
+ $vimeo_data = _video_embed_field_get_vimeo_data($url);
+
+ // Get ID of video from URL.
+ $id = _video_embed_field_get_vimeo_id($vimeo_data);
+
+ if (empty($id)) {
return array(
'#markup' => l($url, $url),
);
}
- // Construct the embed code
- $settings['portrait'] = 0;
+ // Construct the embed code.
+ $settings['player_id'] = drupal_html_id('vimeo-' . $id);
+ if (!empty($settings['froogaloop'])) {
+ $settings['api'] = 1;
+ }
+ unset($settings['froogaloop']);
+
$settings_str = _video_embed_code_get_settings_str($settings);
return array(
- '#markup' => '',
+ '#markup' => '',
);
}
/**
- * Get the thumbnail url for youtube videos
+ * Gets the thumbnail url for vimeo videos.
+ *
+ * @param string $url
+ * The video URL.
+ *
+ * @return array
+ * The video thumbnail information.
*/
-function video_embed_field_handle_vimeo_thumbnail($url){
- // Get ID of video from URL
- $id = _video_embed_field_get_vimeo_id($url);
+function video_embed_field_handle_vimeo_thumbnail($url) {
+ $vimeo_data = _video_embed_field_get_vimeo_data($url);
+
+ // Get ID of video from URL.
+ $id = _video_embed_field_get_vimeo_id($vimeo_data);
+
$info = array(
'id' => $id,
);
- $response = drupal_http_request('http://vimeo.com/api/v2/video/' . $id . '.php');
- if (!isset($response->error)) {
- $response = unserialize($response->data);
- $video = current($response);
- $image_url = $video['thumbnail_large'];
- $info['url'] = $image_url;
+ try {
+ $info['url'] = $vimeo_data['thumbnail_url'];
+ } catch (Exception $e) {
+
}
+
return $info;
}
-/**
- * Get video data for a Vimeo video URL
- *
- * @param string $url
- * A Vimeo video URL to get data for
- *
- * @return array|false $data
- * An array of video data, or FALSE if unable to fetch data
- */
-function video_embed_field_handle_vimeo_data($url) {
- // Get ID of video from URL
- $id = _video_embed_field_get_vimeo_id($url);
- if ($id) {
- $response = drupal_http_request('http://vimeo.com/api/v2/video/' . $id . '.php');
- if (!isset($response->error)) {
- $response = unserialize($response->data);
- return (array) current($response);
- }
- }
- return FALSE;
-}
-
/**
* Defines the form elements for the Vimeo configuration form.
+ *
+ * @param array $defaults
+ * The form default values.
+ *
+ * @return array
+ * The provider settings form array.
*/
function video_embed_field_handler_vimeo_form($defaults) {
$form = array();
@@ -442,6 +544,7 @@ function video_embed_field_handler_vimeo_form($defaults) {
'#description' => t('The width of the vimeo player.'),
'#default_value' => $defaults['width'],
);
+
$form['height'] = array(
'#type' => 'textfield',
'#size' => '5',
@@ -449,6 +552,7 @@ function video_embed_field_handler_vimeo_form($defaults) {
'#description' => t('The height of the vimeo player.'),
'#default_value' => $defaults['height'],
);
+
$form['color'] = array(
'#type' => 'select',
'#options' => array(
@@ -456,60 +560,98 @@ function video_embed_field_handler_vimeo_form($defaults) {
'ff9933' => t('Orange'),
'c9ff23' => t('Lime'),
'ff0179' => t('Fuschia'),
- 'ffffff' => t('White')
+ 'ffffff' => t('White'),
),
'#title' => t('Player Color'),
'#description' => t('The color to use on the vimeo player.'),
'#default_value' => $defaults['color'],
);
+
$form['portrait'] = array(
'#type' => 'checkbox',
'#title' => t('Overlay Author Thumbnail'),
- '#description' => t('Overlay the author\'s thumbnail before the video is played.'),
+ '#description' => t("Overlay the author's thumbnail before the video is played."),
'#default_value' => $defaults['portrait'],
);
+
$form['title'] = array(
'#type' => 'checkbox',
- '#title' => t('Overlay Video\'s Title'),
- '#description' => t('Overlay the video\'s title before the video is played.'),
+ '#title' => t("Overlay Video's Title"),
+ '#description' => t("Overlay the video's title before the video is played."),
'#default_value' => $defaults['title'],
);
+
$form['byline'] = array(
'#type' => 'checkbox',
- '#title' => t('Overlay Video\'s Byline'),
- '#description' => t('Overlay the video\'s description before the video is played.'),
+ '#title' => t("Overlay Video's Byline"),
+ '#description' => t("Overlay the video's description before the video is played."),
'#default_value' => $defaults['byline'],
);
- $form['overridable'] = array (
- '#prefix' => ''.t('Note').': ',
+
+ $form['overridable'] = array(
+ '#prefix' => '' . t('Note') . ': ',
'#markup' => t('Color, portrait, title and byline can be restricted by Vimeo Plus videos.
Such videos will ignore these settings.'),
'#suffix' => '
',
);
+
$form['autoplay'] = array(
'#type' => 'checkbox',
'#title' => t('Autoplay'),
'#description' => t('Play the video immediately.'),
'#default_value' => $defaults['autoplay'],
);
+
$form['loop'] = array(
'#type' => 'checkbox',
'#title' => t('Loop'),
- '#description' => t('Loop the video\'s playback'),
+ '#description' => t("Loop the video's playback"),
'#default_value' => $defaults['loop'],
);
+
+ $form['froogaloop'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Enable froogaloop support'),
+ '#description' => t("Enables Froogallop Vimeo's library support"),
+ '#default_value' => $defaults['loop'],
+ );
+
return $form;
}
/**
- * Calculate the min index for use in finding the id of a youtube video
+ * Validates the form elements for the Vimeo configuration form.
+ *
+ * @param array $element
+ * The form element to validate.
+ * @param array $form_state
+ * The form to validate state.
+ * @param array $form
+ * The form to validate structure.
+ */
+function video_embed_field_handler_vimeo_form_validate($element, &$form_state, $form) {
+ video_embed_field_validate_dimensions($element);
+}
+
+/**
+ * Calculates the min index for use in finding the id of a youtube video.
+ *
+ * @param string $pos1
+ * The first index.
+ * @param string $pos2
+ * The second index.
+ *
+ * @return string
+ * The min index.
*/
function _video_embed_get_min($pos1, $pos2) {
- if(!$pos1) {
+ if (!$pos1) {
return $pos2;
- } else if(!$pos2) {
+ }
+ elseif (!$pos2) {
return $pos1;
- } else {
+ }
+ else {
return min($pos1, $pos2);
}
}
diff --git a/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.info b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.info
index 3645ac57..ee487fbb 100644
--- a/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.info
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.info
@@ -4,11 +4,15 @@ core = 7.x
package = Media
configure = admin/config/media/vef_video_styles
+files[] = video_embed_field.migrate.inc
+files[] = views/handlers/views_embed_field_views_handler_field_thumbnail_path.inc
+
dependencies[] = ctools
dependencies[] = image
-; Information added by drupal.org packaging script on 2012-06-21
-version = "7.x-2.0-beta5"
+
+; Information added by Drupal.org packaging script on 2015-04-17
+version = "7.x-2.0-beta8+7-dev"
core = "7.x"
project = "video_embed_field"
-datestamp = "1340317020"
+datestamp = "1429278491"
diff --git a/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.install b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.install
index 0803b80e..7b0d23da 100644
--- a/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.install
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.install
@@ -1,16 +1,21 @@
- array(
'type' => 'varchar',
@@ -39,45 +44,43 @@ function video_embed_field_field_schema($field){
),
);
$indexes = array();
- break;
+ break;
}
return array(
'columns' => $columns,
- 'indexes' => $indexes
+ 'indexes' => $indexes,
);
}
/**
* Implements hook_schema().
*/
-function video_embed_field_schema(){
+function video_embed_field_schema() {
$schema['vef_video_styles'] = array(
'description' => 'Stores video embed styles.',
'export' => array(
'key' => 'name',
- 'primary key' => 'vsid',
- 'identifier' => 'video_embed_style', // Exports will be as $video_style
- 'default hook' => 'default_video_embed_styles', // Function hook name.
+ 'identifier' => 'video_embed_style',
+ 'default hook' => 'default_video_embed_styles',
'api' => array(
'owner' => 'video_embed_field',
- 'api' => 'default_video_embed_styles', // Base name for api include files.
+ 'api' => 'default_video_embed_styles',
'minimum_version' => 1,
'current_version' => 1,
),
),
'fields' => array(
- 'vsid' => array(
- 'description' => 'The primary identifier for a video style.',
- 'type' => 'serial',
- 'unsigned' => TRUE,
- 'not null' => TRUE,
- 'no export' => TRUE,
- ),
'name' => array(
- 'description' => 'The style name.',
+ 'description' => 'The machine-readable option set name.',
'type' => 'varchar',
- 'length' => '255',
+ 'length' => 255,
+ 'not null' => TRUE,
+ ),
+ 'title' => array(
+ 'description' => 'The human-readable title for this option set.',
+ 'type' => 'varchar',
+ 'length' => 255,
'not null' => TRUE,
),
'data' => array(
@@ -88,24 +91,13 @@ function video_embed_field_schema(){
'serialize' => TRUE,
),
),
- 'primary key' => array('vsid'),
- 'unique keys' => array(
- 'name' => array('name')
- ),
+ 'primary key' => array('name'),
);
return $schema;
}
/**
- * Implements hook_uninstall().
- */
-function video_embed_field_uninstall(){
- //do nothing right now - should eventually remove all the variables
-}
-
-/**
- * Update 7000
- * Add an optional description form
+ * Adds an optional description form.
*/
function video_embed_field_update_7000() {
// Get the list of fields of type 'video_embed_field'.
@@ -115,7 +107,7 @@ function video_embed_field_update_7000() {
$video_embed_fields[$field_name] = field_read_field($field_name);
}
}
-
+
foreach ($video_embed_fields as $field) {
if ($field['deleted']) {
$table = "field_deleted_data_{$field['id']}";
@@ -125,29 +117,27 @@ function video_embed_field_update_7000() {
$table = "field_data_{$field['field_name']}";
$revision_table = "field_revision_{$field['field_name']}";
}
- $column = $field['field_name'] . '_' . 'description';
+ $column = $field['field_name'] . '_description';
db_add_field($table, $column, array('type' => 'text', 'not null' => FALSE));
db_add_field($revision_table, $column, array('type' => 'text', 'not null' => FALSE));
}
-
+
return t('Additional columns added.');
}
/**
- * Update 7001
- * Add video style storage table
+ * Adds video style storage table.
*/
function video_embed_field_update_7001() {
if (!db_table_exists('vef_video_styles')) {
$schema = video_embed_field_schema();
db_create_table('vef_video_styles', $schema['vef_video_styles']);
}
-
+
return t('Video styles storage table created.');
}
-/**
- * Update 7002
- * Add field for storing the path to the video thumbnail
+/**
+ * Adds field for storing the path to the video thumbnail.
*/
function video_embed_field_update_7002() {
// Get the list of fields of type 'video_embed_field'.
@@ -157,7 +147,7 @@ function video_embed_field_update_7002() {
$video_embed_fields[$field_name] = field_read_field($field_name);
}
}
-
+
foreach ($video_embed_fields as $field) {
if ($field['deleted']) {
$table = "field_deleted_data_{$field['id']}";
@@ -167,39 +157,39 @@ function video_embed_field_update_7002() {
$table = "field_data_{$field['field_name']}";
$revision_table = "field_revision_{$field['field_name']}";
}
- $column = $field['field_name'] . '_' . 'thumbnail_path';
+ $column = $field['field_name'] . '_thumbnail_path';
db_add_field($table, $column, array(
'type' => 'varchar',
'length' => 512,
- 'default' => ''
+ 'default' => '',
));
db_add_field($revision_table, $column, array(
'type' => 'varchar',
'length' => 512,
- 'default' => ''
+ 'default' => '',
));
}
-
+
return t('Thumbnail column added.');
}
/**
- * Enable inline colorbox support if colorbox is installed [NO LONGER NEEDED - This update hook does nothing]
+ * Enables inline colorbox support if colorbox is installed.
+ *
+ * [NO LONGER NEEDED - This update hook does nothing]
*/
function video_embed_field_update_7003() {
- //this is no longer needed
- //variable_set('colorbox_inline', 1);
}
/**
- * Enable colorbox load support if colorbox is installed, we no longer need inline support
+ * Enables colorbox load support if colorbox is installed.
*/
function video_embed_field_update_7004() {
variable_set('colorbox_load', 1);
}
/**
- * Add data column to field database.
+ * Adds data column to field database.
*/
function video_embed_field_update_7005() {
// Get the list of fields of type 'video_embed_field'.
@@ -219,20 +209,157 @@ function video_embed_field_update_7005() {
$table = "field_data_{$field['field_name']}";
$revision_table = "field_revision_{$field['field_name']}";
}
- $column = $field['field_name'] . '_' . 'video_data';
+ $column = $field['field_name'] . '_video_data';
db_add_field($table, $column, array(
'type' => 'blob',
'not null' => FALSE,
'size' => 'big',
- 'serialize' => TRUE
+ 'serialize' => TRUE,
));
db_add_field($revision_table, $column, array(
'type' => 'blob',
'not null' => FALSE,
'size' => 'big',
- 'serialize' => TRUE
+ 'serialize' => TRUE,
));
}
return t('Data column added. Please clear cache.');
-}
\ No newline at end of file
+}
+
+/**
+ * Updates vef_video_styles table structure.
+ */
+function video_embed_field_update_7006() {
+ // Convert the table structure.
+ db_drop_field('vef_video_styles', 'vsid');
+ db_add_primary_key('vef_video_styles', array('name'));
+ db_drop_unique_key('vef_video_styles', 'name');
+
+ db_add_field('vef_video_styles', 'title', array(
+ 'type' => 'varchar',
+ 'length' => 255,
+ 'not null' => TRUE,
+ 'default' => '',
+ ));
+ // Update title and name values.
+ $result = db_select('vef_video_styles', 'vef')
+ ->fields('vef', array('name'))
+ ->execute();
+ foreach ($result as $record) {
+ // Set current name as title.
+ db_update('vef_video_styles')
+ ->fields(array(
+ 'title' => $record->name,
+ ))
+ ->condition('name', $record->name)
+ ->execute();
+
+ // Update name to fit with machine_name constraints.
+ $new_name = preg_replace('/[^a-z0-9_]+/', '_', drupal_strtolower($record->name));
+ if ($new_name != $record->name) {
+ // Check if new name already exists in the database.
+ $counter = 1;
+ $base_name = $new_name;
+ while (TRUE) {
+ $result = db_select('vef_video_styles', 'vef')
+ ->fields('vef', array('name'))
+ ->condition('name', $new_name)
+ ->execute();
+ if ($result->rowCount()) {
+ $new_name = $base_name . '_' . $counter;
+ }
+ else {
+ db_update('vef_video_styles')
+ ->fields(array(
+ 'name' => $new_name,
+ ))
+ ->condition('name', $record->name)
+ ->execute();
+ break;
+ }
+ }
+ }
+ }
+
+ return t('Database schema updated successfully');
+}
+
+/**
+ * Update youtube "hd" URL deprecated parameter.
+ */
+function video_embed_field_update_7007() {
+ drupal_get_schema('vef_video_styles', TRUE);
+ ctools_include('export');
+ $styles = ctools_export_load_object('vef_video_styles');
+ foreach ($styles as $style) {
+ if (isset($style->data['youtube']['hd'])) {
+ if ($style->data['youtube']['hd']) {
+ $style->data['youtube']['vq'] = 'hd720';
+ }
+ else {
+ $style->data['youtube']['vq'] = 'large';
+ }
+ unset($style->data['youtube']['hd']);
+ ctools_export_crud_save('vef_video_styles', $style);
+ }
+ }
+
+ return t('Parameter hd has been converted to vq.');
+}
+
+/**
+ * Updates naming of 'node' formatter setting to 'content'.
+ */
+function video_embed_field_update_7008() {
+ $instances = field_info_instances();
+ foreach ($instances as $entity_type) {
+ foreach ($entity_type as $bundle) {
+ foreach ($bundle as $instance) {
+ $field_info = field_info_field($instance['field_name']);
+ if ($field_info['type'] == 'video_embed_field') {
+ $update = FALSE;
+ foreach ($instance['display'] as &$display) {
+ if ($display['type'] == 'video_embed_field_thumbnail') {
+ if ($display['settings']['image_link'] == 'node') {
+ $display['settings']['image_link'] = 'content';
+ $update = TRUE;
+ }
+ if ($display['settings']['image_style'] == 'none') {
+ $display['settings']['image_style'] = '';
+ $update = TRUE;
+ }
+ }
+ }
+ if ($update) {
+ field_update_instance($instance);
+ }
+ }
+ }
+ }
+ }
+
+ return t("Updated 'node' setting to 'content'");
+}
+
+/**
+ * Adds new Allowed Providers setting to existing instances.
+ */
+function video_embed_field_update_7009() {
+ $allowed_providers = array_keys(video_embed_get_handlers());
+
+ $instances = field_info_instances();
+ foreach ($instances as $entity_type) {
+ foreach ($entity_type as $bundle) {
+ foreach ($bundle as $instance) {
+ $field_info = field_info_field($instance['field_name']);
+ if ($field_info['type'] == 'video_embed_field') {
+ $instance['settings']['allowed_providers'] = $allowed_providers;
+ field_update_instance($instance);
+ }
+ }
+ }
+ }
+
+ return t('Updated default instance settings');
+}
diff --git a/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.module b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.module
index 6016fafa..70647876 100644
--- a/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.module
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.module
@@ -1,35 +1,42 @@
disabled = FALSE; /* Edit this to true to make a default video_embed_style disabled initially */
$normal->api_version = 1;
$normal->name = 'normal';
+ $normal->title = 'Normal';
$normal->data = array();
- $teaser = new stdClass;
+ $teaser = new stdClass();
$teaser->disabled = FALSE; /* Edit this to true to make a default video_embed_style disabled initially */
$teaser->api_version = 1;
$teaser->name = 'teaser';
+ $teaser->title = 'Teaser';
$teaser->data = array();
- //add in our settings for each of the handlers
+ // Add in our settings for each of the handlers.
foreach ($handlers as $name => $handler) {
$normal->data[$name] = $handler['defaults'];
$teaser->data[$name] = $handler['defaults'];
@@ -87,68 +96,6 @@ function video_embed_field_menu() {
return $items;
}
-/**
- * Get an array of all styles and their settings.
- *
- * @return
- * An array of styles keyed by the video style ID (vsid).
- * @see video_embed_field_video_style_load()
- */
-function video_embed_field_video_styles() {
- $styles = &drupal_static(__FUNCTION__);
-
- // Grab from cache or build the array.
- if (!isset($styles)) {
- // load the style via ctools - which will handle all the caching for us -
- // however, because it does a bit more logic, lets still statically cache this function
- ctools_include('export');
- $styles = ctools_export_load_object('vef_video_styles');
- }
-
- return $styles;
-}
-
-/**
- * Load a style by style name or ID. May be used as a loader for menu items.
- *
- * Note that you may also use ctools_export_load_object with the key being vef_video_styles
- *
- * @param $name
- * The name of the style.
- * @param $isid
- * Optional. The numeric id of a style if the name is not known.
- * @return
- * An video style array containing the following keys:
- * - "vsid": The unique image style ID.
- * - "name": The unique image style name.
- * - "data": An array of video settings within this video style.
- * If the video style name or ID is not valid, an empty array is returned.
- */
-function video_embed_field_video_style_load($name = NULL, $vsid = NULL) {
- $styles = video_embed_field_video_styles();
-
- // If retrieving by name.
- if (isset($name) && isset($styles[$name])) {
- $style = $styles[$name];
- } // If retrieving by image style id.
- else if (!isset($name) && isset($vsid)) {
- foreach ($styles as $name => $database_style) {
- if (isset($database_style['vsid']) && $database_style['vsid'] == $vsid) {
- $style = $database_style;
- break;
- }
- }
- }
-
- //if we found a style return it
- if (isset($style)) {
- return $style;
- }
-
- // Otherwise the style was not found.
- return FALSE;
-}
-
/**
* Implements hook_permission().
*/
@@ -172,36 +119,115 @@ function video_embed_field_theme() {
),
'video_embed_field_embed_code' => array(
'template' => 'video-embed-field-embed-code',
- 'variables' => array('url' => NULL, 'style' => 'normal', 'video_data' => array()),
+ 'variables' => array(
+ 'url' => NULL,
+ 'style' => 'normal',
+ 'video_data' => array(),
+ ),
),
'video_embed_field_colorbox_code' => array(
- 'variables' => array('image_url' => NULL, 'image_style' => 'normal', 'video_url' => NULL, 'video_style' => NULL, 'video_data' => array()),
+ 'variables' => array(
+ 'image_url' => NULL,
+ 'image_style' => 'normal',
+ 'image_alt' => NULL,
+ 'video_url' => NULL,
+ 'video_style' => NULL,
+ 'video_data' => array(),
+ ),
),
);
}
/**
- * Creates a hook that other modules can implement to get handlers - hook_video_embed_handler_info
- * Can be used to add more handlers if needed - from other modules and such
- * @see video_embed_field.api.php for more information
+ * Implements hook_views_api().
+ */
+function video_embed_field_views_api() {
+ return array(
+ 'api' => 3,
+ 'path' => drupal_get_path('module', 'video_embed_field') . '/views',
+ );
+}
+
+/**
+ * Get an array of all styles and their settings.
+ *
+ * @return array
+ * An array of styles keyed by the video style name (name).
+ *
+ * @see video_embed_field_video_style_load()
+ */
+function video_embed_field_video_styles() {
+ $styles = &drupal_static(__FUNCTION__);
+
+ // Grab from cache or build the array.
+ if (!isset($styles)) {
+ // Load the style via ctools - which will handle all the caching for us -
+ // Because it does a bit more logic, lets still statically cache this.
+ ctools_include('export');
+ $styles = ctools_export_load_object('vef_video_styles');
+ }
+
+ return $styles;
+}
+
+/**
+ * Load a style by style name. May be used as a loader for menu items.
+ *
+ * Note that you may also use ctools_export_load_object with the key being
+ * vef_video_styles
+ *
+ * @param string $name
+ * The name of the style.
+ *
+ * @return array
+ * An video style array containing the following keys:
+ * - "name": The unique video style ID.
+ * - "title": The human readable video style name.
+ * - "data": An array of video settings within this video style.
+ * If the video style name or ID is not valid, an empty array is returned.
+ */
+function video_embed_field_video_style_load($name) {
+ $styles = video_embed_field_video_styles();
+
+ return isset($styles[$name]) ? $styles[$name] : FALSE;
+}
+
+/**
+ * Creates a hook that other modules can implement to get handlers.
+ *
+ * Can be used to add more handlers if needed - from other modules and such.
+ *
+ * @see hook_video_embed_handler_info
+ * @see video_embed_field.api.php
*/
function video_embed_get_handlers() {
- $handlers = cache_get('video_embed_field_handlers');
+ $handlers = &drupal_static(__FUNCTION__);
- if ($handlers === FALSE) {
- $handlers = module_invoke_all('video_embed_handler_info');
- drupal_alter('video_embed_field_handlers', $handlers);
- cache_set('video_embed_field_handlers', $handlers);
- }
- else {
- $handlers = $handlers->data;
+ if (!isset($handlers)) {
+ if ($handlers = cache_get('video_embed_field_handlers')) {
+ $handlers = $handlers->data;
+ }
+ else {
+ $handlers = module_invoke_all('video_embed_handler_info');
+ drupal_alter('video_embed_handler_info', $handlers);
+ cache_set('video_embed_field_handlers', $handlers);
+ }
}
return $handlers;
}
-function video_embed_get_handler($url){
- // Process video URL
+/**
+ * Retrieves the video handler for a video URL.
+ *
+ * @param string $url
+ * The video URL.
+ *
+ * @return string|bool
+ * The handler name for the URL, FALSE in case there is no handler.
+ */
+function video_embed_get_handler($url) {
+ // Process video URL.
if (!stristr($url, 'http://') && !stristr($url, 'https://')) {
$url = 'http://' . $url;
}
@@ -222,14 +248,20 @@ function video_embed_get_handler($url){
$handler = $handlers[$handler_name];
$handler['name'] = $handler_name;
return $handler;
- } else {
+ }
+ else {
return FALSE;
}
}
/**
- * Create a form from the player configuration options
- * $defaults will be passed in with the default settings for the various fields
+ * Creates a form from the player configuration options.
+ *
+ * @param array $defaults
+ * The default settings for the various fields.
+ *
+ * @return array
+ * The configuration form array.
*/
function video_embed_field_get_form($defaults) {
$form = array();
@@ -245,8 +277,9 @@ function video_embed_field_get_form($defaults) {
$form[$name] += array(
'#type' => 'fieldset',
- '#title' => t($handler['title']),
+ '#title' => t('@provider settings', array('@provider' => $handler['title'])),
'#tree' => TRUE,
+ '#element_validate' => isset($handler['form_validate']) ? array($handler['form_validate']) : array(),
);
}
}
@@ -254,12 +287,28 @@ function video_embed_field_get_form($defaults) {
return $form;
}
+/**
+ * Validates the iframe CSS dimensions.
+ *
+ * @param array $element
+ * The element to validate.
+ */
+function video_embed_field_validate_dimensions($element) {
+ if (!preg_match('/^(\d*)(px|%)?$/', $element['width']['#value'], $results)) {
+ form_error($element['width'], t('You should use a valid CSS value for width in @plugin plugin', array('@plugin' => $element['#title'])));
+ }
+ if (!preg_match('/^(\d*)(px|%)?$/', $element['height']['#value'], $results)) {
+ form_error($element['height'], t('You should use a valid CSS value for height in @plugin plugin', array('@plugin' => $element['#title'])));
+ }
+}
+
/**
* Get an array of image styles suitable for using as select list options.
*
- * @param $include_empty
+ * @param bool $include_empty
* If TRUE a option will be inserted in the options array.
- * @return
+ *
+ * @return array
* Array of image styles both key and value are set to style name.
*/
function video_embed_field_video_style_options($include_empty = TRUE) {
@@ -268,7 +317,9 @@ function video_embed_field_video_style_options($include_empty = TRUE) {
if ($include_empty && !empty($styles)) {
$options[''] = t('');
}
- $options = array_merge($options, drupal_map_assoc(array_keys($styles)));
+ foreach ($styles as $style) {
+ $options[$style->name] = $style->title;
+ }
if (empty($options)) {
$options[''] = t('No defined styles');
}
@@ -282,12 +333,24 @@ function video_embed_field_filter_info() {
$filters['video_embed_field'] = array(
'title' => t('Video Embedding'),
'description' => t('Replaces [VIDEO::http://www.youtube.com/watch?v=someVideoID::aVideoStyle] tags with embedded videos.'),
- 'process callback' => 'video_embed_field_filter_process',
+ 'process callback' => 'video_embed_field_filter_process',
+ 'tips callback' => '_filter_video_embed_tips',
);
return $filters;
}
+/**
+ * Implements callback_filter_tips().
+ *
+ * Provides help for the URL filter.
+ *
+ * @see filter_filter_info()
+ */
+function _filter_video_embed_tips($filter, $format, $long = FALSE) {
+ return t('Replaces [VIDEO::http://www.youtube.com/watch?v=someVideoID::aVideoStyle] tags with embedded videos.');
+}
+
/**
* Video Embed Field filter process callback.
*/
@@ -295,12 +358,11 @@ function video_embed_field_filter_process($text, $filter, $format) {
preg_match_all('/ \[VIDEO:: ( [^\[\]]+ )* \] /x', $text, $matches);
$tag_match = (array) array_unique($matches[1]);
- $handlers = video_embed_get_handlers();
foreach ($tag_match as $tag) {
$parts = explode('::', $tag);
- // Get video style
+ // Get video style.
if (isset($parts[1])) {
$style = $parts[1];
}
@@ -317,130 +379,119 @@ function video_embed_field_filter_process($text, $filter, $format) {
}
/**
- * Process variables to format a video player.
+ * Processes variables to format a video player.
*
- * $variables contains the following information:
- * - $url
- * - $style
- * - $video_data
+ * @param array $variables
+ * Contains the following information:
+ * - $url
+ * - $style
+ * - $video_data
*
* @see video-embed.tpl.php
*/
function template_preprocess_video_embed_field_embed_code(&$variables) {
- // Get the handler
+ // Get the handler.
$handler = video_embed_get_handler($variables['url']);
$variables['handler'] = $handler['name'];
- // Load the style
+ // Load the style.
$style = video_embed_field_video_style_load($variables['style']);
- // If there was an issue load in the default style
+ // If there was an issue load in the default style.
if ($style == FALSE) {
$style = video_embed_field_video_style_load('normal');
}
if (isset($style->data[$variables['handler']])) {
$variables['style_settings'] = $style->data[$variables['handler']];
- } //safety valve for when we add new handlers and there are styles in the database.
+ }
+ // Safety value for when we add new handlers and there are styles stored.
else {
$variables['style_settings'] = $handler['defaults'];
}
-
- // Prepare the URL
+ // Prepare the URL.
if (!stristr($variables['url'], 'http://') && !stristr($variables['url'], 'https://')) {
$variables['url'] = 'http://' . $variables['url'];
}
- // Prepare embed code
+ // Prepare embed code.
if ($handler && isset($handler['function']) && function_exists($handler['function'])) {
- $variables['embed_code'] = drupal_render(call_user_func($handler['function'], $variables['url'], $variables['style_settings']));
+ $embed_code = call_user_func($handler['function'], $variables['url'], $variables['style_settings']);
+ $variables['embed_code'] = drupal_render($embed_code);
}
else {
$variables['embed_code'] = l($variables['url'], $variables['url']);
}
- // Prepare video data
+ // Prepare video data.
$variables['data'] = $variables['video_data'];
unset($variables['video_data']);
}
/**
- * Returns image style image with a link to
- * an embedded video in colorbox.
+ * Returns image style image with a link to an embedded video in colorbox.
*
- * @param $variables
+ * @param array $variables
* An associative array containing:
* - image_url: The image URL.
* - image_style: The image style to use.
+ * - image_alt: The image ALT attribute.
* - video_url: The video URL.
* - video_style: The video style to use.
* - video_data: An array of data about the video.
*
+ * @return string
+ * The themed output.
+ *
* @ingroup themeable
*/
function theme_video_embed_field_colorbox_code($variables) {
- $style = video_embed_field_video_style_load($variables['video_style']);
+ $path = video_embed_field_get_ajax_url($variables['video_url'], $variables['video_style']);
- // If there was an issue load in the default style
- if ($style == FALSE) {
- $style = video_embed_field_video_style_load('normal');
- }
+ $image = array(
+ '#theme' => 'image_formatter',
+ '#item' => array('uri' => $variables['image_url'], 'alt' => $variables['image_alt']),
+ '#image_style' => $variables['image_style'],
+ '#path' => $path,
+ );
- $handler = video_embed_get_handler($variables['video_url']);
-
- $data = $style->data[$handler['name']];
-
- //Create a unique ID for colorbox inline
- $id = uniqid('video_embed_field-' . rand());
-
- if($variables['image_style'] == 'none'){
- $image = array(
- array(
- '#theme' => 'image',
- '#path' => $variables['image_url'],
- ),
- );
- }
- else {
- $image = array(
- '#theme' => 'image_style',
- '#path' => $variables['image_url'],
- '#style_name' => $variables['image_style'],
- );
- }
-
- $image = drupal_render($image);
-
- // Write values for later AJAX load
- $hash = _video_embed_field_store_video($variables['video_url'], $variables['video_style']);
-
- $output = l($image, base_path() . '?q=vef/load/' . $hash . '&width=' . ($data['width']) . '&height=' . ($data['height']+3), array('html' => true, 'external' => true, 'attributes' => array('class' => array('colorbox-load'))));
-
- return $output;
+ return drupal_render($image);
}
/**
- * Get the thumbnail url for a given video url
- * @param $url - the url of the video
- * @return a string representing the url of the thumbnail, or FALSE on error
- */
-function video_embed_field_thumbnail_url($url){
- $handler = video_embed_get_handler($url);
- if ($handler && isset($handler['thumbnail_function']) && function_exists($handler['thumbnail_function'])) {
- $info = call_user_func($handler['thumbnail_function'], $url);
- $info['handler'] = $handler['name'];
- return $info;
- }
- return FALSE;
-}
-
-/**
- * Get a video data array for a given video url
+ * Gets the thumbnail url for a given video url.
*
* @param string $url
- * A video URL of the data array you want returned
+ * The url of the video.
*
- * @return array|false $data
- * An array of video data, or FALSE on error
+ * @return string
+ * String representing the url of the thumbnail, or FALSE on error.
+ */
+function video_embed_field_thumbnail_url($url) {
+ $info = FALSE;
+ if ($handler = video_embed_get_handler($url)) {
+ if (isset($handler['thumbnail_function']) && function_exists($handler['thumbnail_function'])) {
+ $info = call_user_func($handler['thumbnail_function'], $url);
+ $info['handler'] = $handler['name'];
+ }
+ if (empty($info['url']) && isset($handler['thumbnail_default']) && file_exists($handler['thumbnail_default'])) {
+ $info = array(
+ 'handler' => $handler['name'],
+ 'id' => 'default_thumbnail',
+ 'url' => $handler['thumbnail_default'],
+ );
+ }
+ }
+ return $info;
+}
+
+/**
+ * Gets a video data array for a given video url.
+ *
+ * @param string $url
+ * A video URL of the data array you want returned.
+ *
+ * @return array|false
+ * An array of video data, or FALSE on error.
*/
function video_embed_field_get_video_data($url) {
$handler = video_embed_get_handler($url);
@@ -453,7 +504,53 @@ function video_embed_field_get_video_data($url) {
}
/**
- * Fetch all available provider domains.
+ * Generates the AJAX path array from the video URL and the video_style.
+ *
+ * @param string $video_url
+ * The URL to the video.
+ * @param string $video_style
+ * The video style to render the video.
+ *
+ * @return array
+ * The AJAX path array.
+ */
+function video_embed_field_get_ajax_url($video_url, $video_style) {
+ $style = video_embed_field_video_style_load($video_style);
+
+ // If there was an issue load in the default style.
+ if ($style == FALSE) {
+ $style = video_embed_field_video_style_load('normal');
+ }
+
+ $handler = video_embed_get_handler($video_url);
+
+ $data = $style->data[$handler['name']];
+
+ // Write values for later AJAX load.
+ $hash = _video_embed_field_store_video($video_url, $video_style);
+
+ return array(
+ 'path' => 'vef/load/' . $hash,
+ 'options' => array(
+ 'attributes' => array(
+ 'class' => array(
+ 'colorbox-load',
+ 'colorbox'
+ ),
+ ),
+ 'query' => array(
+ 'width' => $data['width'],
+ 'height' => $data['height'] + 5,
+ ),
+ ),
+ );
+}
+
+/**
+ * Fetches all available provider domains.
+ *
+ * @return array
+ * An array containing the allowed video domains.
*/
function _video_embed_field_get_provider_domains() {
$domains = array();
@@ -471,41 +568,76 @@ function _video_embed_field_get_provider_domains() {
}
/**
- * Fetch settings string
+ * Fetches all available provider domains for certain field instance.
+ *
+ * @param array $instance
+ * The instance definition.
+ *
+ * @return array
+ * An array containing the allowed video domains.
+ */
+function _video_embed_field_get_instance_provider_domains($instance) {
+ $domains = _video_embed_field_get_provider_domains();
+
+ foreach ($domains as $domain => $provider) {
+ if (empty($instance['settings']['allowed_providers'][$provider])) {
+ unset($domains[$domain]);
+ }
+ }
+
+ return $domains;
+}
+
+/**
+ * Fetches settings string.
+ *
+ * @param array $settings
+ * The settings array.
+ *
+ * @return string
+ * The settings string generated from the settings array.
*/
function _video_embed_code_get_settings_str($settings = array()) {
$values = array();
foreach ($settings as $name => $value) {
- $values[] = $name . '=' . $value;
+ if (!isset($value)) {
+ $values[] = $name;
+ }
+ else {
+ $values[] = $name . '=' . $value;
+ }
}
return implode('&', $values);
}
-//used to array filter in video_embed_field_requirements
-function _video_embed_field_array_filter($item) {
- return (isset($item['type']) && $item['type'] == 'video_embed_field');
-}
-
/**
- * Store a video to be loaded later from an _video_embed_field_load_video
+ * Stores a video to be loaded later from an _video_embed_field_load_video.
+ *
+ * @param string $video_url
+ * The video URL.
+ * @param string $video_style
+ * The video style.
+ *
+ * @return string
+ * The hash generated for the video URL and the given style.
*/
function _video_embed_field_store_video($video_url, $video_style) {
- //create a hash key
+ // Create a hash key.
$hash = _video_embed_field_hash($video_url, $video_style);
- //check that is record doesn't already exist before saving it
- if(!_video_embed_field_load_video($hash)){
+ // Check that this record doesn't already exist before saving it.
+ if (!_video_embed_field_load_video($hash)) {
$record = array(
'vhash' => $hash,
'video_url' => $video_url,
'video_style' => $video_style,
);
- cache_set('vef-store-'.$hash, $record);
+ cache_set('vef-store-' . $hash, $record);
- //add it to our static cache so we won't have to go to the database
+ // Add it to our static cache so we won't have to go to the database.
$static_cache = &drupal_static('vef_video_store', array());
$static_cache[$hash] = $record;
}
@@ -513,9 +645,15 @@ function _video_embed_field_store_video($video_url, $video_style) {
}
/**
- * Callback to render a video for an Ajax call
+ * Renders a video for an AJAX call.
+ *
+ * @param string $hash
+ * The video hash.
+ *
+ * @return Null
+ * Null because prints an AJAX output.
*/
-function _video_embed_field_show_video($hash){
+function _video_embed_field_show_video($hash) {
$data = _video_embed_field_load_video($hash);
$video = array(
'#theme' => 'video_embed_field_embed_code',
@@ -528,31 +666,45 @@ function _video_embed_field_show_video($hash){
}
/**
- * Loads a video from the video store given its hash
- * Returns either the data - an array with hash, video_url and video_style keys
+ * Loads a video from the video store given its hash.
+ *
+ * @param string $hash
+ * The video hash.
+ *
+ * @return array|bool
+ * An array with video definition, FALSE if the hash does not exist.
*/
function _video_embed_field_load_video($hash) {
$static_cache = &drupal_static('vef_video_store', array());
- //check if we've already loaded it
+ // Check if we've already loaded it.
if (isset($static_cache[$hash])) {
return $static_cache[$hash];
- } else {
-
- $result = cache_get('vef-store-'.$hash);
+ }
+ else {
+ $result = cache_get('vef-store-' . $hash);
if ($result) {
- //cache it before returning
+ // Cache it before returning.
$data = $result->data;
$static_cache[$hash] = $data;
return $data;
- } else {
+ }
+ else {
return FALSE;
}
}
}
/**
- * Creates a hash for storing or looking up a video in the store table
+ * Creates a hash for storing or looking up a video in the store table.
+ *
+ * @param string $video_url
+ * The video URL.
+ * @param string $video_style
+ * The video style.
+ *
+ * @return string
+ * The hash generated for the video URL and the given style.
*/
-function _video_embed_field_hash($video_url, $video_style){
+function _video_embed_field_hash($video_url, $video_style) {
return md5('vef' . $video_url . $video_style);
-}
\ No newline at end of file
+}