\d+))?/', $url, $matches)){
+ if(isset($matches['tinsec'])){
+ $settings['start'] = $matches['tinsec']; // url already in form #t=125 for 2 minutes and 5 seconds
+ } else {
+ // url in form #t=2m5s or with other useless data, this is why we still keep adding the default data..
+ // give it some default data in case there is no #t=...
+ $matches += array(
+ "min" => 0,
+ "sec" => 0,
+ );
+ if ($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.
+ $output['#markup'] = l($url, $url);
+ return $output;
+ }
+
+ // Add class to variable to avoid adding it to URL param string.
+ $class = $settings['class'];
+ unset($settings['class']);
+
+ // Construct the embed code.
+ $settings['wmode'] = 'opaque';
+ $settings_str = urlencode(_video_embed_code_get_settings_str($settings));
+
+ $output['#markup'] = '';
+
+ return $output;
+}
+
+/**
+ * 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($url) {
+ $info = array();
+
+ $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.
+ $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.
+ $xml = drupal_http_request('http://gdata.youtube.com/feeds/api/playlists/' . $id);
+ 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()) {
+ $attrs = $media->group->thumbnail[0]->attributes();
+ $info['url'] = (string) $attrs['url'];
+ }
+ }
+ }
+ // Regular video.
+ elseif ($id) {
+ $info['id'] = $id;
+ $info['url'] = 'http://img.youtube.com/vi/' . $id . '/0.jpg';
+ }
+ return $info;
+}
+
+/**
+ * Gets video data for a YouTube video URL.
+ *
+ * @param string $url
+ * A YouTube video URL to get data for
+ *
+ * @return array|bool
+ * An array of video data, or FALSE if unable to fetch data
+ */
+function video_embed_field_handle_youtube_data($url) {
+ // Get YouTube video ID from URL.
+ $id = _video_embed_field_get_youtube_id($url);
+
+ if ($id) {
+
+ $options['v'] = 3;
+ $options['key'] = variable_get('video_embed_field_youtube_v3_api_key', '');
+ $options['part'] = 'snippet';
+ $options['id'] = $id;
+
+ $response = drupal_http_request(url('https://www.googleapis.com/youtube/v3/videos', array('query' => $options)));
+
+ if (!isset($response->error)) {
+ $data = json_decode($response->data);
+ return _video_embed_field_clean_up_youtube_data($data->items);
+ }
+ }
+
+ return FALSE;
+}
+
+/**
+ * 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.
+ foreach ($data as $key => $value) {
+ if (is_object($value)) {
+ $temp = (array) $value;
+ if (isset($temp['$t'])) {
+ $data[$key] = $temp['$t'];
+ }
+ else {
+ $data[$key] = _video_embed_field_clean_up_youtube_data($temp);
+ }
+ }
+ elseif (is_array($value)) {
+ $data[$key] = _video_embed_field_clean_up_youtube_data($value);
+ }
+
+ if ($key === 'category') {
+ $terms = array();
+ foreach ($data[$key] as $value) {
+ if (isset($value['scheme']) && $value['scheme'] == 'http://schemas.google.com/g/2005#kind') {
+ continue;
+ }
+
+ if (isset($value['term'])) {
+ $terms[] = $value['term'];
+ }
+ }
+ $data['terms'] = $terms;
+ }
+ }
+ return $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();
+
+ $form['width'] = array(
+ '#type' => 'textfield',
+ '#size' => '5',
+ '#title' => t('Player Width'),
+ '#description' => t('The width of the youtube player.'),
+ '#default_value' => $defaults['width'],
+ );
+ $form['height'] = array(
+ '#type' => 'textfield',
+ '#size' => '5',
+ '#title' => t('Player Height'),
+ '#description' => t('The height of the youtube player.'),
+ '#default_value' => $defaults['height'],
+ );
+ $form['theme'] = array(
+ '#type' => 'select',
+ '#options' => array(
+ 'dark' => t('Dark'),
+ 'light' => t('Light'),
+ ),
+ '#title' => t('Player theme'),
+ '#default_value' => $defaults['theme'],
+ );
+ $form['autoplay'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Autoplay'),
+ '#description' => t('Play the video immediately.'),
+ '#default_value' => $defaults['autoplay'],
+ );
+ $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',
+ '#title' => t('Show related videos'),
+ '#description' => t('Show related videos after the video is finished playing.'),
+ '#default_value' => $defaults['rel'],
+ );
+ $form['showinfo'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Show info'),
+ '#description' => t('Display information like the video title and rating before the video starts playing.'),
+ '#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'],
+ );
+ $form['iv_load_policy'] = array(
+ '#type' => 'radios',
+ '#options' => array(
+ 1 => t('Show video annotations.'),
+ 3 => t('Hide video annotations.'),
+ ),
+ '#title' => t('Display annotations'),
+ '#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(
+ 0 => t('The video progress bar and player controls will be visible throughout the video.'),
+ 1 => t('Automatically slide the video progress bar and the player controls out of view a couple of seconds after the video starts playing. They will only reappear if the user moves her mouse over the video player or presses a keyboard key.'),
+ 2 => t('The video progress bar will fade out but the player controls (play button, volume control, etc.) remain visible.'),
+ ),
+ '#title' => t('Autohide progress bar and the player controls'),
+ '#description' => t('Controls the autohide behavior of the youtube player controls.'),
+ '#default_value' => $defaults['autohide'],
+ );
+
+ $form['class'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Player CSS class'),
+ '#description' => t('CSS class to add to the player'),
+ '#default_value' => $defaults['class'],
+ );
+
+ return $form;
+}
+
+/**
+ * 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 data from.
+ *
+ * @return integer|false
+ * The video's data attributes, or FALSE if unable to get the video ID.
+ */
+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;
+ }
+}
+
+/**
+ * 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) {
+ $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['player_id'] = drupal_html_id('vimeo-' . $id);
+ if (!empty($settings['froogaloop'])) {
+ $settings['api'] = 1;
+ }
+ unset($settings['froogaloop']);
+
+ // Add class to variable to avoid adding it to URL param string.
+ $class = $settings['class'];
+ unset($settings['class']);
+
+ $settings_str = _video_embed_code_get_settings_str($settings);
+
+ return array(
+ '#markup' => '',
+ );
+}
+
+/**
+ * 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) {
+ $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,
+ );
+
+ try {
+ $info['url'] = $vimeo_data['thumbnail_url'];
+ } catch (Exception $e) {
+
+ }
+
+ return $info;
+}
+
+/**
+ * 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();
+
+ $form['width'] = array(
+ '#type' => 'textfield',
+ '#size' => '5',
+ '#title' => t('Player Width'),
+ '#description' => t('The width of the vimeo player.'),
+ '#default_value' => $defaults['width'],
+ );
+
+ $form['height'] = array(
+ '#type' => 'textfield',
+ '#size' => '5',
+ '#title' => t('Player Height'),
+ '#description' => t('The height of the vimeo player.'),
+ '#default_value' => $defaults['height'],
+ );
+
+ $form['color'] = array(
+ '#type' => 'select',
+ '#options' => array(
+ '00adef' => t('Blue'),
+ 'ff9933' => t('Orange'),
+ 'c9ff23' => t('Lime'),
+ 'ff0179' => t('Fuschia'),
+ '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."),
+ '#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."),
+ '#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."),
+ '#default_value' => $defaults['byline'],
+ );
+
+ $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"),
+ '#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'],
+ );
+
+ $form['class'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Player CSS class'),
+ '#description' => t('CSS class to add to the player'),
+ '#default_value' => $defaults['class'],
+ );
+
+ return $form;
+}
+
+/**
+ * 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) {
+ return $pos2;
+ }
+ elseif (!$pos2) {
+ return $pos1;
+ }
+ 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
new file mode 100644
index 00000000..ffb8d652
--- /dev/null
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.info
@@ -0,0 +1,18 @@
+name = "Video Embed Field"
+description = "Expose a field type for embedding videos from youtube or vimeo."
+core = 7.x
+package = Media
+configure = admin/config/media/vef
+
+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 2015-09-07
+version = "7.x-2.0-beta11"
+core = "7.x"
+project = "video_embed_field"
+datestamp = "1441639440"
+
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
new file mode 100644
index 00000000..2009b2a5
--- /dev/null
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.install
@@ -0,0 +1,391 @@
+ array(
+ 'type' => 'varchar',
+ 'length' => 512,
+ 'default' => '',
+ ),
+ 'thumbnail_path' => array(
+ 'type' => 'varchar',
+ 'length' => 512,
+ 'default' => '',
+ ),
+ 'video_data' => array(
+ 'type' => 'blob',
+ 'not null' => FALSE,
+ 'size' => 'big',
+ 'serialize' => TRUE,
+ ),
+ 'embed_code' => array(
+ 'type' => 'varchar',
+ 'length' => 1024,
+ 'default' => '',
+ ),
+ 'description' => array(
+ 'type' => 'text',
+ 'not null' => FALSE,
+ ),
+ );
+ $indexes = array();
+ break;
+ }
+
+ return array(
+ 'columns' => $columns,
+ 'indexes' => $indexes,
+ );
+}
+
+/**
+ * Implements hook_schema().
+ */
+function video_embed_field_schema() {
+ $schema['vef_video_styles'] = array(
+ 'description' => 'Stores video embed styles.',
+ 'export' => array(
+ 'key' => 'name',
+ 'identifier' => 'video_embed_style',
+ 'default hook' => 'default_video_embed_styles',
+ 'api' => array(
+ 'owner' => 'video_embed_field',
+ 'api' => 'default_video_embed_styles',
+ 'minimum_version' => 1,
+ 'current_version' => 1,
+ ),
+ ),
+ 'fields' => array(
+ 'name' => array(
+ 'description' => 'The machine-readable option set name.',
+ 'type' => 'varchar',
+ '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(
+ 'description' => 'The configuration data for the style.',
+ 'type' => 'blob',
+ 'size' => 'big',
+ 'not null' => TRUE,
+ 'serialize' => TRUE,
+ ),
+ ),
+ 'primary key' => array('name'),
+ );
+ return $schema;
+}
+
+/**
+ * Implements hook_uninstall().
+ */
+function video_embed_field_uninstall() {
+ variable_del('video_embed_field_youtube_api_key');
+}
+
+/**
+ * Adds an optional description form.
+ */
+function video_embed_field_update_7000() {
+ // Get the list of fields of type 'video_embed_field'.
+ $video_embed_fields = array();
+ foreach (field_info_fields() as $field_name => $field_info) {
+ if ($field_info['type'] == 'video_embed_field') {
+ $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']}";
+ $revision_table = "field_deleted_revision_{$field['id']}";
+ }
+ else {
+ $table = "field_data_{$field['field_name']}";
+ $revision_table = "field_revision_{$field['field_name']}";
+ }
+ $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.');
+}
+
+/**
+ * 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.');
+}
+/**
+ * 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'.
+ $video_embed_fields = array();
+ foreach (field_info_fields() as $field_name => $field_info) {
+ if ($field_info['type'] == 'video_embed_field') {
+ $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']}";
+ $revision_table = "field_deleted_revision_{$field['id']}";
+ }
+ else {
+ $table = "field_data_{$field['field_name']}";
+ $revision_table = "field_revision_{$field['field_name']}";
+ }
+ $column = $field['field_name'] . '_thumbnail_path';
+ db_add_field($table, $column, array(
+ 'type' => 'varchar',
+ 'length' => 512,
+ 'default' => '',
+ ));
+ db_add_field($revision_table, $column, array(
+ 'type' => 'varchar',
+ 'length' => 512,
+ 'default' => '',
+ ));
+ }
+
+ return t('Thumbnail column added.');
+}
+
+/**
+ * Enables inline colorbox support if colorbox is installed.
+ *
+ * [NO LONGER NEEDED - This update hook does nothing]
+ */
+function video_embed_field_update_7003() {
+}
+
+/**
+ * Enables colorbox load support if colorbox is installed.
+ */
+function video_embed_field_update_7004() {
+ variable_set('colorbox_load', 1);
+}
+
+/**
+ * Adds data column to field database.
+ */
+function video_embed_field_update_7005() {
+ // Get the list of fields of type 'video_embed_field'.
+ $video_embed_fields = array();
+ foreach (field_info_fields() as $field_name => $field_info) {
+ if ($field_info['type'] == 'video_embed_field') {
+ $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']}";
+ $revision_table = "field_deleted_revision_{$field['id']}";
+ }
+ else {
+ $table = "field_data_{$field['field_name']}";
+ $revision_table = "field_revision_{$field['field_name']}";
+ }
+ $column = $field['field_name'] . '_video_data';
+ db_add_field($table, $column, array(
+ 'type' => 'blob',
+ 'not null' => FALSE,
+ 'size' => 'big',
+ 'serialize' => TRUE,
+ ));
+ db_add_field($revision_table, $column, array(
+ 'type' => 'blob',
+ 'not null' => FALSE,
+ 'size' => 'big',
+ 'serialize' => TRUE,
+ ));
+ }
+
+ return t('Data column added. Please clear cache.');
+}
+
+/**
+ * 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');
+}
+
+/**
+ * Update styles with empty class parameter.
+ */
+function video_embed_field_update_7010() {
+ drupal_get_schema('vef_video_styles', TRUE);
+ ctools_include('export');
+ $styles = ctools_export_load_object('vef_video_styles');
+ foreach ($styles as $style) {
+ foreach ($style->data as &$provider) {
+ if (!isset($provider['class'])) {
+ $provider['class'] = '';
+ }
+ }
+ ctools_export_crud_save('vef_video_styles', $style);
+ }
+
+ return 'Parameter class added to existing styles';
+}
diff --git a/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.migrate.inc b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.migrate.inc
new file mode 100644
index 00000000..a714ca65
--- /dev/null
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.migrate.inc
@@ -0,0 +1,57 @@
+ 2,
+ 'field handlers' => array('MigrateVideoEmbedFieldFieldHandler'),
+ );
+ return $api;
+}
+
+/**
+ * Custom extended MigrateFieldHandler class for Video Embed Field module.
+ */
+class MigrateVideoEmbedFieldFieldHandler extends MigrateFieldHandler {
+
+ public function __construct() {
+ $this->registerTypes(array('video_embed_field'));
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function fields($type, $parent_field, $migration = NULL) {
+ $fields = array(
+ 'video_url' => t('Video: The video URL.'),
+ );
+ return $fields;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function prepare($entity, array $field_info, array $instance, array $values) {
+ $arguments = array();
+ if (isset($values['arguments'])) {
+ $arguments = array_filter($values['arguments']);
+ unset($values['arguments']);
+ }
+ $language = $this->getFieldLanguage($entity, $field_info, $arguments);
+
+ // Setup the standard Field API array for saving.
+ $delta = 0;
+ foreach ($values as $value) {
+ $return[$language][$delta] = array('video_url' => $value);
+ $delta++;
+ }
+
+ return isset($return) ? $return : NULL;
+ }
+}
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
new file mode 100644
index 00000000..8826eada
--- /dev/null
+++ b/sites/all/modules/contrib/fields/video_embed_field/video_embed_field.module
@@ -0,0 +1,722 @@
+ 1);
+ }
+}
+
+/**
+ * Implements hook_default_video_styles().
+ */
+function video_embed_field_default_video_embed_styles() {
+ $styles = array();
+
+ $handlers = video_embed_get_handlers();
+ // Create the normal handler.
+ $normal = new stdClass();
+ $normal->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->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.
+ foreach ($handlers as $name => $handler) {
+ $normal->data[$name] = $handler['defaults'];
+ $teaser->data[$name] = $handler['defaults'];
+ $teaser->data[$name]['width'] = 480;
+ $teaser->data[$name]['height'] = 270;
+ }
+
+ return array($normal, $teaser);
+}
+
+/**
+ * Implements hook_menu().
+ */
+function video_embed_field_menu() {
+ $items = array();
+
+ $items['vef/load/%'] = array(
+ 'title' => 'Video Embed Field - Load Video',
+ 'page callback' => '_video_embed_field_show_video',
+ 'page arguments' => array(2),
+ 'access callback' => TRUE,
+ 'type' => MENU_CALLBACK,
+ );
+
+ $items['admin/config/media/vef'] = array(
+ 'title' => 'Video Embed Field',
+ 'description' => 'Video Embed Field configuration',
+ 'page callback' => 'system_admin_menu_block_page',
+ 'access arguments' => array('administer video styles'),
+ 'file' => 'system.admin.inc',
+ 'file path' => drupal_get_path('module', 'system'),
+ 'type' => MENU_NORMAL_ITEM,
+ );
+
+ $items['admin/config/media/vef/settings'] = array(
+ 'title' => 'Settings',
+ 'description' => 'Video Embed Field module settings',
+ 'page callback' => 'drupal_get_form',
+ 'page arguments' => array('video_embed_field_settings_form'),
+ 'file' => 'video_embed_field.admin.inc',
+ 'access arguments' => array('administer video styles'),
+ 'type' => MENU_NORMAL_ITEM,
+ );
+
+ return $items;
+}
+
+/**
+ * Implements hook_permission().
+ */
+function video_embed_field_permission() {
+ return array(
+ 'administer video styles' => array(
+ 'title' => t('Administer video styles'),
+ 'description' => t('Create and modify styles for embedded videos.'),
+ ),
+ );
+}
+
+/**
+ * Implements hook_theme().
+ */
+function video_embed_field_theme() {
+ return array(
+ // Theme functions in video_embed_field.admin.inc.
+ 'video_embed_field_video_style_list' => array(
+ 'variables' => array('styles' => NULL),
+ ),
+ 'video_embed_field_embed_code' => array(
+ 'template' => 'video-embed-field-embed-code',
+ 'variables' => array(
+ 'url' => NULL,
+ 'style' => 'normal',
+ 'video_data' => array(),
+ ),
+ ),
+ 'video_embed_field_colorbox_code' => array(
+ 'variables' => array(
+ 'image_url' => NULL,
+ 'image_style' => 'normal',
+ 'image_alt' => NULL,
+ 'video_url' => NULL,
+ 'video_style' => NULL,
+ 'video_data' => array(),
+ ),
+ ),
+ );
+}
+
+/**
+ * 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 = &drupal_static(__FUNCTION__);
+
+ 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;
+}
+
+/**
+ * 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;
+ }
+ $parts = parse_url($url);
+ if (!isset($parts['host'])) {
+ return FALSE;
+ }
+
+ $host = $parts['host'];
+ if (stripos($host, 'www.') > -1) {
+ $host = substr($host, 4);
+ }
+
+ $domains = _video_embed_field_get_provider_domains();
+ $handlers = video_embed_get_handlers();
+ if (isset($domains[$host])) {
+ $handler_name = $domains[$host];
+ $handler = $handlers[$handler_name];
+ $handler['name'] = $handler_name;
+ return $handler;
+ }
+ else {
+ return FALSE;
+ }
+}
+
+/**
+ * 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();
+
+ $handlers = video_embed_get_handlers();
+
+ foreach ($handlers as $name => $handler) {
+ if (isset($handler['form']) && function_exists($handler['form'])) {
+ $handler_defaults = isset($defaults[$name]) ? $defaults[$name] : array();
+ $handler_defaults = array_merge($handler['defaults'], $handler_defaults);
+
+ $form[$name] = call_user_func($handler['form'], $handler_defaults);
+
+ $form[$name] += array(
+ '#type' => 'fieldset',
+ '#title' => t('@provider settings', array('@provider' => $handler['title'])),
+ '#tree' => TRUE,
+ '#element_validate' => isset($handler['form_validate']) ? array($handler['form_validate']) : array(),
+ );
+ }
+ }
+
+ 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 bool $include_empty
+ * If TRUE a option will be inserted in the options array.
+ *
+ * @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) {
+ $styles = video_embed_field_video_styles();
+ $options = array();
+ if ($include_empty && !empty($styles)) {
+ $options[''] = t('');
+ }
+ foreach ($styles as $style) {
+ $options[$style->name] = $style->title;
+ }
+ if (empty($options)) {
+ $options[''] = t('No defined styles');
+ }
+ return $options;
+}
+
+/**
+ * Implements hook_filter_info().
+ */
+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',
+ '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.
+ */
+function video_embed_field_filter_process($text, $filter, $format) {
+ preg_match_all('/ \[VIDEO:: ( [^\[\]]+ )* \] /x', $text, $matches);
+
+ $tag_match = (array) array_unique($matches[1]);
+
+ foreach ($tag_match as $tag) {
+ $parts = explode('::', $tag);
+
+ // Get video style.
+ if (isset($parts[1])) {
+ $style = $parts[1];
+ }
+ else {
+ $style = 'normal';
+ }
+
+ $embed_code = theme('video_embed_field_embed_code', array('url' => $parts[0], 'style' => $style));
+
+ $text = str_replace('[VIDEO::' . $tag . ']', $embed_code, $text);
+ }
+
+ return $text;
+}
+
+/**
+ * Processes variables to format a video player.
+ *
+ * @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.
+ $handler = video_embed_get_handler($variables['url']);
+ $variables['handler'] = $handler['name'];
+
+ // Load the style.
+ $style = video_embed_field_video_style_load($variables['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 value for when we add new handlers and there are styles stored.
+ else {
+ $variables['style_settings'] = $handler['defaults'];
+ }
+
+ // Prepare the URL.
+ if (!stristr($variables['url'], 'http://') && !stristr($variables['url'], 'https://')) {
+ $variables['url'] = 'http://' . $variables['url'];
+ }
+
+ // Prepare embed code.
+ if ($handler && isset($handler['function']) && function_exists($handler['function'])) {
+ $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.
+ $variables['data'] = $variables['video_data'];
+ unset($variables['video_data']);
+}
+
+/**
+ * Returns image style image with a link to an embedded video in colorbox.
+ *
+ * @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) {
+ $path = video_embed_field_get_ajax_url($variables['video_url'], $variables['video_style']);
+
+ $image = array(
+ '#theme' => 'image_formatter',
+ '#item' => array('uri' => $variables['image_url'], 'alt' => $variables['image_alt']),
+ '#image_style' => $variables['image_style'],
+ '#path' => $path,
+ );
+
+ return drupal_render($image);
+}
+
+/**
+ * Gets the thumbnail url for a given video url.
+ *
+ * @param string $url
+ * The url of the video.
+ *
+ * @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);
+ if ($handler && isset($handler['data_function']) && function_exists($handler['data_function'])) {
+ $data = call_user_func($handler['data_function'], $url);
+ $data['handler'] = $handler['name'];
+ return $data;
+ }
+ return FALSE;
+}
+
+/**
+ * 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();
+
+ $handlers = video_embed_get_handlers();
+ foreach ($handlers as $name => $handler) {
+ if (isset($handler['function']) && function_exists($handler['function'])) {
+ foreach ($handler['domains'] as $domain) {
+ $domains[$domain] = $name;
+ }
+ }
+ }
+
+ return $domains;
+}
+
+/**
+ * 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) {
+ return array_intersect(_video_embed_field_get_provider_domains(), $instance['settings']['allowed_providers']);
+}
+
+/**
+ * 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) {
+ if (!isset($value)) {
+ $values[] = $name;
+ }
+ else {
+ $values[] = $name . '=' . $value;
+ }
+ }
+
+ return implode('&', $values);
+}
+
+/**
+ * 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.
+ $hash = _video_embed_field_hash($video_url, $video_style);
+
+ // 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);
+
+ // 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;
+ }
+ return $hash;
+}
+
+/**
+ * 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) {
+ $data = _video_embed_field_load_video($hash);
+ $video = array(
+ '#theme' => 'video_embed_field_embed_code',
+ '#style' => $data['video_style'],
+ '#url' => $data['video_url'],
+ );
+
+ print drupal_render($video);
+ return NULL;
+}
+
+/**
+ * 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.
+ if (isset($static_cache[$hash])) {
+ return $static_cache[$hash];
+ }
+ else {
+ $result = cache_get('vef-store-' . $hash);
+ if ($result) {
+ // Cache it before returning.
+ $data = $result->data;
+ $static_cache[$hash] = $data;
+ return $data;
+ }
+ else {
+ return FALSE;
+ }
+ }
+}
+
+/**
+ * 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) {
+ return md5('vef' . $video_url . $video_style);
+}
diff --git a/sites/all/modules/contrib/fields/video_embed_field/views/handlers/views_embed_field_views_handler_field_thumbnail_path.inc b/sites/all/modules/contrib/fields/video_embed_field/views/handlers/views_embed_field_views_handler_field_thumbnail_path.inc
new file mode 100644
index 00000000..c1178fe5
--- /dev/null
+++ b/sites/all/modules/contrib/fields/video_embed_field/views/handlers/views_embed_field_views_handler_field_thumbnail_path.inc
@@ -0,0 +1,22 @@
+ 'views_handler_field',
+ 'thumbnail_path' => 'views_embed_field_views_handler_field_thumbnail_path',
+ 'description' => 'views_handler_field',
+ );
+
+ // Get the translated field information.
+ $properties = video_embed_field_data_property_info();
+
+ // Iterate over video_embed_field defined tables.
+ foreach ($data as &$table) {
+ // Make sure the parent Views field (video_embed_field) is defined.
+ if (isset($table[$field['field_name']]['field'])) {
+ // Use the parent field definition as a template for component columns.
+ $field_def = $table[$field['field_name']]['field'];
+
+ // Remove 'additional fields' from the field definition. We don't
+ // necessarily want all our sibling columns.
+ unset($field_def['additional fields']);
+
+ // Define the valid columns.
+ $valid_columns = array();
+ foreach ($implemented as $implement => $handler) {
+ $column_name = $field['field_name'] . '_' . $implement;
+ $valid_columns[$column_name] = $handler;
+ }
+
+ // Iterate over the video_embed_field components.
+ foreach ($table as $column_name => &$column) {
+ if (empty($column['field']) && isset($valid_columns[$column_name])) {
+ // Assign the default component definition.
+ $column['field'] = $field_def;
+ $column['field']['real field'] = $column_name;
+ $column['field']['handler'] = $valid_columns[$column_name];
+
+ // Assign human-friendly labels for video_embed_field components.
+ $field_labels = field_views_field_label($field['field_name']);
+ $field_label = array_shift($field_labels);
+ $property = str_replace($field_def['field_name'] . '_', '', $column_name);
+
+ if (!empty($properties[$property])) {
+ $property_label = $properties[$property]['label'];
+
+ $title = t('@field-label - @property-label', array(
+ '@field-label' => $field_label,
+ '@property-label' => $property_label,
+ ));
+
+ $column['title'] = $title;
+ $column['title short'] = $title;
+ }
+ }
+ }
+ }
+ }
+
+ return $data;
+}
diff --git a/sites/all/modules/contrib/fields/video_filter_field/LICENSE.txt b/sites/all/modules/contrib/fields/video_filter_field/LICENSE.txt
old mode 100755
new mode 100644
diff --git a/sites/all/modules/contrib/fields/video_filter_field/README.txt b/sites/all/modules/contrib/fields/video_filter_field/README.txt
old mode 100755
new mode 100644
diff --git a/sites/all/modules/contrib/fields/video_filter_field/video_filter_field.info b/sites/all/modules/contrib/fields/video_filter_field/video_filter_field.info
old mode 100755
new mode 100644
diff --git a/sites/all/modules/contrib/fields/video_filter_field/video_filter_field.module b/sites/all/modules/contrib/fields/video_filter_field/video_filter_field.module
old mode 100755
new mode 100644
index e0a9ae40..91dc5632
--- a/sites/all/modules/contrib/fields/video_filter_field/video_filter_field.module
+++ b/sites/all/modules/contrib/fields/video_filter_field/video_filter_field.module
@@ -266,6 +266,9 @@ function video_filter_field_process($text, $video) {
'video_filter_related' => 1,
);
+ # this added to avoid php 5.4 notice : array to string conversion
+ if(is_array($text)) $text = "";
+
$text = (string)$text; // Make sure $text is a string.
if (preg_match_all('/\[video(\:(.+))?( .+)?\]/isU', $text, $matches_code)) {
foreach ($matches_code[0] as $ci => $code) {
diff --git a/sites/all/modules/features/clameurs/clameurs.features.field_base.inc b/sites/all/modules/features/clameurs/clameurs.features.field_base.inc
new file mode 100644
index 00000000..45f67107
--- /dev/null
+++ b/sites/all/modules/features/clameurs/clameurs.features.field_base.inc
@@ -0,0 +1,299 @@
+ 1,
+ 'cardinality' => 1,
+ 'deleted' => 0,
+ 'entity_types' => array(),
+ 'field_name' => 'field_description',
+ 'field_permissions' => array(
+ 'type' => 0,
+ ),
+ 'foreign keys' => array(
+ 'format' => array(
+ 'columns' => array(
+ 'format' => 'format',
+ ),
+ 'table' => 'filter_format',
+ ),
+ ),
+ 'indexes' => array(
+ 'format' => array(
+ 0 => 'format',
+ ),
+ ),
+ 'locked' => 0,
+ 'module' => 'text',
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ ),
+ 'translatable' => 0,
+ 'type' => 'text_long',
+ );
+
+ // Exported field_base: 'field_doc'
+ $field_bases['field_doc'] = array(
+ 'active' => 1,
+ 'cardinality' => 1,
+ 'deleted' => 0,
+ 'entity_types' => array(),
+ 'field_name' => 'field_doc',
+ 'field_permissions' => array(
+ 'type' => 0,
+ ),
+ 'foreign keys' => array(
+ 'taxonomy_term_data' => array(
+ 'columns' => array(
+ 'target_id' => 'tid',
+ ),
+ 'table' => 'taxonomy_term_data',
+ ),
+ ),
+ 'indexes' => array(
+ 'target_id' => array(
+ 0 => 'target_id',
+ ),
+ ),
+ 'locked' => 0,
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'handler' => 'views',
+ 'handler_settings' => array(
+ 'behaviors' => array(
+ 'views-select-list' => array(
+ 'status' => 0,
+ ),
+ ),
+ 'view' => array(
+ 'args' => array(),
+ 'display_name' => 'entityreference_1',
+ 'view_name' => 'actions_filter',
+ ),
+ ),
+ 'target_type' => 'taxonomy_term',
+ ),
+ 'translatable' => 0,
+ 'type' => 'entityreference',
+ );
+
+ // Exported field_base: 'field_ecouter'
+ $field_bases['field_ecouter'] = array(
+ 'active' => 1,
+ 'cardinality' => 1,
+ 'deleted' => 0,
+ 'entity_types' => array(),
+ 'field_name' => 'field_ecouter',
+ 'field_permissions' => array(
+ 'type' => 0,
+ ),
+ 'foreign keys' => array(
+ 'tid' => array(
+ 'columns' => array(
+ 'tid' => 'tid',
+ ),
+ 'table' => 'taxonomy_term_data',
+ ),
+ ),
+ 'indexes' => array(
+ 'tid' => array(
+ 0 => 'tid',
+ ),
+ ),
+ 'locked' => 0,
+ 'module' => 'taxonomy',
+ 'settings' => array(
+ 'allowed_values' => array(
+ 0 => array(
+ 'vocabulary' => 'actions',
+ 'parent' => 0,
+ ),
+ ),
+ 'entity_translation_sync' => FALSE,
+ ),
+ 'translatable' => 0,
+ 'type' => 'taxonomy_term_reference',
+ );
+
+ // Exported field_base: 'field_episodes'
+ $field_bases['field_episodes'] = array(
+ 'active' => 1,
+ 'cardinality' => -1,
+ 'deleted' => 0,
+ 'entity_types' => array(),
+ 'field_name' => 'field_episodes',
+ 'field_permissions' => array(
+ 'type' => 0,
+ ),
+ 'foreign keys' => array(
+ 'node' => array(
+ 'columns' => array(
+ 'target_id' => 'nid',
+ ),
+ 'table' => 'node',
+ ),
+ ),
+ 'indexes' => array(
+ 'target_id' => array(
+ 0 => 'target_id',
+ ),
+ ),
+ 'locked' => 0,
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'handler' => 'base',
+ 'handler_settings' => array(
+ 'behaviors' => array(
+ 'views-select-list' => array(
+ 'status' => 0,
+ ),
+ ),
+ 'sort' => array(
+ 'type' => 'none',
+ ),
+ 'target_bundles' => array(
+ 'episode' => 'episode',
+ ),
+ ),
+ 'target_type' => 'node',
+ ),
+ 'translatable' => 0,
+ 'type' => 'entityreference',
+ );
+
+ // Exported field_base: 'field_habiter'
+ $field_bases['field_habiter'] = array(
+ 'active' => 1,
+ 'cardinality' => 1,
+ 'deleted' => 0,
+ 'entity_types' => array(),
+ 'field_name' => 'field_habiter',
+ 'field_permissions' => array(
+ 'type' => 0,
+ ),
+ 'foreign keys' => array(
+ 'taxonomy_term_data' => array(
+ 'columns' => array(
+ 'target_id' => 'tid',
+ ),
+ 'table' => 'taxonomy_term_data',
+ ),
+ ),
+ 'indexes' => array(
+ 'target_id' => array(
+ 0 => 'target_id',
+ ),
+ ),
+ 'locked' => 0,
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'handler' => 'base',
+ 'handler_settings' => array(
+ 'behaviors' => array(
+ 'views-select-list' => array(
+ 'status' => 0,
+ ),
+ ),
+ 'sort' => array(
+ 'type' => 'none',
+ ),
+ 'target_bundles' => array(
+ 'actions' => 'actions',
+ ),
+ ),
+ 'target_type' => 'taxonomy_term',
+ ),
+ 'translatable' => 0,
+ 'type' => 'entityreference',
+ );
+
+ // Exported field_base: 'field_thematique'
+ $field_bases['field_thematique'] = array(
+ 'active' => 1,
+ 'cardinality' => 1,
+ 'deleted' => 0,
+ 'entity_types' => array(),
+ 'field_name' => 'field_thematique',
+ 'field_permissions' => array(
+ 'type' => 0,
+ ),
+ 'foreign keys' => array(
+ 'node' => array(
+ 'columns' => array(
+ 'target_id' => 'nid',
+ ),
+ 'table' => 'node',
+ ),
+ ),
+ 'indexes' => array(
+ 'target_id' => array(
+ 0 => 'target_id',
+ ),
+ ),
+ 'locked' => 0,
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'handler' => 'base',
+ 'handler_settings' => array(
+ 'behaviors' => array(
+ 'views-select-list' => array(
+ 'status' => 0,
+ ),
+ ),
+ 'sort' => array(
+ 'type' => 'none',
+ ),
+ 'target_bundles' => array(
+ 'thematique' => 'thematique',
+ ),
+ ),
+ 'target_type' => 'node',
+ ),
+ 'translatable' => 0,
+ 'type' => 'entityreference',
+ );
+
+ // Exported field_base: 'field_video'
+ $field_bases['field_video'] = array(
+ 'active' => 1,
+ 'cardinality' => 1,
+ 'deleted' => 0,
+ 'entity_types' => array(),
+ 'field_name' => 'field_video',
+ 'field_permissions' => array(
+ 'type' => 0,
+ ),
+ 'foreign keys' => array(),
+ 'indexes' => array(
+ 'height' => array(
+ 0 => 'height',
+ ),
+ 'width' => array(
+ 0 => 'width',
+ ),
+ ),
+ 'locked' => 0,
+ 'module' => 'video_filter_field',
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ ),
+ 'translatable' => 0,
+ 'type' => 'video_filter',
+ );
+
+ return $field_bases;
+}
diff --git a/sites/all/modules/features/clameurs/clameurs.features.field_instance.inc b/sites/all/modules/features/clameurs/clameurs.features.field_instance.inc
new file mode 100644
index 00000000..da1e44ba
--- /dev/null
+++ b/sites/all/modules/features/clameurs/clameurs.features.field_instance.inc
@@ -0,0 +1,691 @@
+ 'documentair',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'hidden',
+ 'module' => 'text',
+ 'settings' => array(),
+ 'type' => 'text_default',
+ 'weight' => 0,
+ ),
+ 'teaser' => array(
+ 'label' => 'hidden',
+ 'module' => 'text',
+ 'settings' => array(
+ 'trim_length' => 600,
+ ),
+ 'type' => 'text_summary_or_trimmed',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'body',
+ 'label' => 'Body',
+ 'required' => FALSE,
+ 'settings' => array(
+ 'display_summary' => TRUE,
+ 'entity_translation_sync' => FALSE,
+ 'text_processing' => 1,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'module' => 'text',
+ 'settings' => array(
+ 'rows' => 20,
+ 'summary_rows' => 5,
+ ),
+ 'type' => 'text_textarea_with_summary',
+ 'weight' => 5,
+ ),
+ );
+
+ // Exported field_instance: 'node-documentair-field_description'
+ $field_instances['node-documentair-field_description'] = array(
+ 'bundle' => 'documentair',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'text',
+ 'settings' => array(),
+ 'type' => 'text_default',
+ 'weight' => 4,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_description',
+ 'label' => 'Description',
+ 'required' => 0,
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'linkit' => array(
+ 'button_text' => 'Recherche',
+ 'enable' => 0,
+ 'profile' => '',
+ ),
+ 'text_processing' => 1,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'text',
+ 'settings' => array(
+ 'rows' => 5,
+ ),
+ 'type' => 'text_textarea',
+ 'weight' => 7,
+ ),
+ );
+
+ // Exported field_instance: 'node-documentair-field_doc'
+ $field_instances['node-documentair-field_doc'] = array(
+ 'bundle' => 'documentair',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'link' => FALSE,
+ ),
+ 'type' => 'entityreference_label',
+ 'weight' => 1,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_doc',
+ 'label' => 'Doc',
+ 'required' => 0,
+ 'settings' => array(
+ 'behaviors' => array(
+ 'taxonomy-index' => array(
+ 'status' => TRUE,
+ ),
+ ),
+ 'entity_translation_sync' => FALSE,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'options',
+ 'settings' => array(),
+ 'type' => 'options_select',
+ 'weight' => 1,
+ ),
+ );
+
+ // Exported field_instance: 'node-documentair-field_thematique'
+ $field_instances['node-documentair-field_thematique'] = array(
+ 'bundle' => 'documentair',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'link' => FALSE,
+ ),
+ 'type' => 'entityreference_label',
+ 'weight' => 3,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_thematique',
+ 'label' => 'Thématique',
+ 'required' => 0,
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'match_operator' => 'CONTAINS',
+ 'path' => '',
+ 'size' => 60,
+ ),
+ 'type' => 'entityreference_autocomplete',
+ 'weight' => 2,
+ ),
+ );
+
+ // Exported field_instance: 'node-documentair-field_video'
+ $field_instances['node-documentair-field_video'] = array(
+ 'bundle' => 'documentair',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'video_filter_field',
+ 'settings' => array(),
+ 'type' => 'video_filter_field_default',
+ 'weight' => 2,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_video',
+ 'label' => 'Video',
+ 'required' => 0,
+ 'settings' => array(
+ 'autoplay' => 0,
+ 'entity_translation_sync' => FALSE,
+ 'max_height' => 400,
+ 'max_width' => 400,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 0,
+ 'module' => 'video_filter_field',
+ 'settings' => array(),
+ 'type' => 'video_filter',
+ 'weight' => 6,
+ ),
+ );
+
+ // Exported field_instance: 'node-episode-body'
+ $field_instances['node-episode-body'] = array(
+ 'bundle' => 'episode',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'hidden',
+ 'module' => 'text',
+ 'settings' => array(),
+ 'type' => 'text_default',
+ 'weight' => 0,
+ ),
+ 'teaser' => array(
+ 'label' => 'hidden',
+ 'module' => 'text',
+ 'settings' => array(
+ 'trim_length' => 600,
+ ),
+ 'type' => 'text_summary_or_trimmed',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'body',
+ 'label' => 'Body',
+ 'required' => FALSE,
+ 'settings' => array(
+ 'display_summary' => TRUE,
+ 'entity_translation_sync' => FALSE,
+ 'text_processing' => 1,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'module' => 'text',
+ 'settings' => array(
+ 'rows' => 20,
+ 'summary_rows' => 5,
+ ),
+ 'type' => 'text_textarea_with_summary',
+ 'weight' => 2,
+ ),
+ );
+
+ // Exported field_instance: 'node-episode-field_description'
+ $field_instances['node-episode-field_description'] = array(
+ 'bundle' => 'episode',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'text',
+ 'settings' => array(),
+ 'type' => 'text_default',
+ 'weight' => 2,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_description',
+ 'label' => 'Description',
+ 'required' => 0,
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'linkit' => array(
+ 'button_text' => 'Recherche',
+ 'enable' => 0,
+ 'profile' => '',
+ ),
+ 'text_processing' => 0,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'text',
+ 'settings' => array(
+ 'rows' => 5,
+ ),
+ 'type' => 'text_textarea',
+ 'weight' => 4,
+ ),
+ );
+
+ // Exported field_instance: 'node-episode-field_habiter'
+ $field_instances['node-episode-field_habiter'] = array(
+ 'bundle' => 'episode',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'link' => FALSE,
+ ),
+ 'type' => 'entityreference_label',
+ 'weight' => 3,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_habiter',
+ 'label' => 'Habiter',
+ 'required' => 0,
+ 'settings' => array(
+ 'behaviors' => array(
+ 'taxonomy-index' => array(
+ 'status' => TRUE,
+ ),
+ ),
+ 'entity_translation_sync' => FALSE,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'field_extrawidgets',
+ 'settings' => array(
+ 'display_empty' => 0,
+ 'formatter' => 'entityreference_label',
+ 'formatter_settings' => array(
+ 'link' => 0,
+ ),
+ ),
+ 'type' => 'field_extrawidgets_read_only',
+ 'weight' => 1,
+ ),
+ );
+
+ // Exported field_instance: 'node-episode-field_thematique'
+ $field_instances['node-episode-field_thematique'] = array(
+ 'bundle' => 'episode',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'link' => FALSE,
+ ),
+ 'type' => 'entityreference_label',
+ 'weight' => 4,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_thematique',
+ 'label' => 'Thématique',
+ 'required' => 0,
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'match_operator' => 'CONTAINS',
+ 'path' => '',
+ 'size' => 60,
+ ),
+ 'type' => 'entityreference_autocomplete',
+ 'weight' => 2,
+ ),
+ );
+
+ // Exported field_instance: 'node-episode-field_video'
+ $field_instances['node-episode-field_video'] = array(
+ 'bundle' => 'episode',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'video_filter_field',
+ 'settings' => array(),
+ 'type' => 'video_filter_field_default',
+ 'weight' => 1,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_video',
+ 'label' => 'Video',
+ 'required' => 0,
+ 'settings' => array(
+ 'autoplay' => 0,
+ 'entity_translation_sync' => FALSE,
+ 'max_height' => 400,
+ 'max_width' => 400,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 0,
+ 'module' => 'video_filter_field',
+ 'settings' => array(),
+ 'type' => 'video_filter',
+ 'weight' => 3,
+ ),
+ );
+
+ // Exported field_instance: 'node-thematique-body'
+ $field_instances['node-thematique-body'] = array(
+ 'bundle' => 'thematique',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'hidden',
+ 'module' => 'text',
+ 'settings' => array(),
+ 'type' => 'text_default',
+ 'weight' => 0,
+ ),
+ 'teaser' => array(
+ 'label' => 'hidden',
+ 'module' => 'text',
+ 'settings' => array(
+ 'trim_length' => 600,
+ ),
+ 'type' => 'text_summary_or_trimmed',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'body',
+ 'label' => 'Body',
+ 'required' => FALSE,
+ 'settings' => array(
+ 'display_summary' => TRUE,
+ 'entity_translation_sync' => FALSE,
+ 'text_processing' => 1,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'module' => 'text',
+ 'settings' => array(
+ 'rows' => 20,
+ 'summary_rows' => 5,
+ ),
+ 'type' => 'text_textarea_with_summary',
+ 'weight' => 4,
+ ),
+ );
+
+ // Exported field_instance: 'node-thematique-field_description'
+ $field_instances['node-thematique-field_description'] = array(
+ 'bundle' => 'thematique',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'text',
+ 'settings' => array(),
+ 'type' => 'text_default',
+ 'weight' => 2,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_description',
+ 'label' => 'Description',
+ 'required' => 0,
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'linkit' => array(
+ 'button_text' => 'Recherche',
+ 'enable' => 0,
+ 'profile' => '',
+ ),
+ 'text_processing' => 1,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'text',
+ 'settings' => array(
+ 'rows' => 5,
+ ),
+ 'type' => 'text_textarea',
+ 'weight' => 6,
+ ),
+ );
+
+ // Exported field_instance: 'node-thematique-field_ecouter'
+ $field_instances['node-thematique-field_ecouter'] = array(
+ 'bundle' => 'thematique',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'taxonomy',
+ 'settings' => array(),
+ 'type' => 'taxonomy_term_reference_link',
+ 'weight' => 5,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_ecouter',
+ 'label' => 'Écouter',
+ 'required' => 0,
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'field_extrawidgets',
+ 'settings' => array(
+ 'display_empty' => 0,
+ 'formatter' => 'taxonomy_term_reference_plain',
+ 'formatter_settings' => array(),
+ ),
+ 'type' => 'field_extrawidgets_read_only',
+ 'weight' => 9,
+ ),
+ );
+
+ // Exported field_instance: 'node-thematique-field_episodes'
+ $field_instances['node-thematique-field_episodes'] = array(
+ 'bundle' => 'thematique',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'link' => FALSE,
+ ),
+ 'type' => 'entityreference_label',
+ 'weight' => 3,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_episodes',
+ 'label' => 'Épisodes',
+ 'required' => 0,
+ 'settings' => array(
+ 'entity_translation_sync' => FALSE,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 1,
+ 'module' => 'entityreference',
+ 'settings' => array(
+ 'match_operator' => 'CONTAINS',
+ 'path' => '',
+ 'size' => 60,
+ ),
+ 'type' => 'entityreference_autocomplete',
+ 'weight' => 7,
+ ),
+ );
+
+ // Exported field_instance: 'node-thematique-field_video'
+ $field_instances['node-thematique-field_video'] = array(
+ 'bundle' => 'thematique',
+ 'default_value' => NULL,
+ 'deleted' => 0,
+ 'description' => '',
+ 'display' => array(
+ 'default' => array(
+ 'label' => 'above',
+ 'module' => 'video_filter_field',
+ 'settings' => array(),
+ 'type' => 'video_filter_field_default',
+ 'weight' => 1,
+ ),
+ 'teaser' => array(
+ 'label' => 'above',
+ 'settings' => array(),
+ 'type' => 'hidden',
+ 'weight' => 0,
+ ),
+ ),
+ 'entity_type' => 'node',
+ 'field_name' => 'field_video',
+ 'label' => 'Video',
+ 'required' => 0,
+ 'settings' => array(
+ 'autoplay' => 0,
+ 'entity_translation_sync' => FALSE,
+ 'max_height' => 400,
+ 'max_width' => 400,
+ 'user_register_form' => FALSE,
+ ),
+ 'widget' => array(
+ 'active' => 0,
+ 'module' => 'video_filter_field',
+ 'settings' => array(),
+ 'type' => 'video_filter',
+ 'weight' => 5,
+ ),
+ );
+
+ // Translatables
+ // Included for use with string extractors like potx.
+ t('Body');
+ t('Description');
+ t('Doc');
+ t('Habiter');
+ t('Thématique');
+ t('Video');
+ t('Écouter');
+ t('Épisodes');
+
+ return $field_instances;
+}
diff --git a/sites/all/modules/features/clameurs/clameurs.features.inc b/sites/all/modules/features/clameurs/clameurs.features.inc
new file mode 100644
index 00000000..4f182915
--- /dev/null
+++ b/sites/all/modules/features/clameurs/clameurs.features.inc
@@ -0,0 +1,51 @@
+ "1");
+ }
+ if ($module == "strongarm" && $api == "strongarm") {
+ return array("version" => "1");
+ }
+}
+
+/**
+ * Implements hook_node_info().
+ */
+function clameurs_node_info() {
+ $items = array(
+ 'documentair' => array(
+ 'name' => t('Documentair'),
+ 'base' => 'node_content',
+ 'description' => '',
+ 'has_title' => '1',
+ 'title_label' => t('Titre'),
+ 'help' => '',
+ ),
+ 'episode' => array(
+ 'name' => t('Épisode'),
+ 'base' => 'node_content',
+ 'description' => '',
+ 'has_title' => '1',
+ 'title_label' => t('Titre'),
+ 'help' => '',
+ ),
+ 'thematique' => array(
+ 'name' => t('Thematique'),
+ 'base' => 'node_content',
+ 'description' => '',
+ 'has_title' => '1',
+ 'title_label' => t('Titre'),
+ 'help' => '',
+ ),
+ );
+ drupal_alter('node_info', $items);
+ return $items;
+}
diff --git a/sites/all/modules/features/clameurs/clameurs.features.taxonomy.inc b/sites/all/modules/features/clameurs/clameurs.features.taxonomy.inc
new file mode 100644
index 00000000..418f78df
--- /dev/null
+++ b/sites/all/modules/features/clameurs/clameurs.features.taxonomy.inc
@@ -0,0 +1,21 @@
+ array(
+ 'name' => 'Actions',
+ 'machine_name' => 'actions',
+ 'description' => '',
+ 'hierarchy' => 0,
+ 'module' => 'taxonomy',
+ 'weight' => 0,
+ ),
+ );
+}
diff --git a/sites/all/modules/features/clameurs/clameurs.field_group.inc b/sites/all/modules/features/clameurs/clameurs.field_group.inc
new file mode 100644
index 00000000..f4d4a541
--- /dev/null
+++ b/sites/all/modules/features/clameurs/clameurs.field_group.inc
@@ -0,0 +1,291 @@
+disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_episodes|node|thematique|form';
+ $field_group->group_name = 'group_episodes';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'thematique';
+ $field_group->mode = 'form';
+ $field_group->parent_name = 'group_htabs';
+ $field_group->data = array(
+ 'label' => 'Épisodes',
+ 'weight' => '9',
+ 'children' => array(
+ 0 => 'field_episodes',
+ ),
+ 'format_type' => 'htab',
+ 'format_settings' => array(
+ 'formatter' => 'closed',
+ 'instance_settings' => array(
+ 'description' => '',
+ 'classes' => 'group-episodes field-group-htab',
+ 'required_fields' => 1,
+ 'id' => '',
+ ),
+ ),
+ );
+ $export['group_episodes|node|thematique|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_htabs|node|documentair|form';
+ $field_group->group_name = 'group_htabs';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'documentair';
+ $field_group->mode = 'form';
+ $field_group->parent_name = '';
+ $field_group->data = array(
+ 'label' => 'htabs',
+ 'weight' => '3',
+ 'children' => array(
+ 0 => 'group_texte',
+ 1 => 'group_video',
+ ),
+ 'format_type' => 'htabs',
+ 'format_settings' => array(
+ 'formatter' => '',
+ 'instance_settings' => array(
+ 'classes' => 'group-htabs field-group-htabs',
+ ),
+ ),
+ );
+ $export['group_htabs|node|documentair|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_htabs|node|episode|form';
+ $field_group->group_name = 'group_htabs';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'episode';
+ $field_group->mode = 'form';
+ $field_group->parent_name = '';
+ $field_group->data = array(
+ 'label' => 'htabs',
+ 'weight' => '3',
+ 'children' => array(
+ 0 => 'group_texte',
+ 1 => 'group_video',
+ ),
+ 'format_type' => 'htabs',
+ 'format_settings' => array(
+ 'formatter' => '',
+ 'instance_settings' => array(
+ 'classes' => 'group-htabs field-group-htabs',
+ ),
+ ),
+ );
+ $export['group_htabs|node|episode|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_htabs|node|thematique|form';
+ $field_group->group_name = 'group_htabs';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'thematique';
+ $field_group->mode = 'form';
+ $field_group->parent_name = '';
+ $field_group->data = array(
+ 'label' => 'htabs',
+ 'weight' => '1',
+ 'children' => array(
+ 0 => 'group_video',
+ 1 => 'group_texte',
+ 2 => 'group_episodes',
+ ),
+ 'format_type' => 'htabs',
+ 'format_settings' => array(
+ 'formatter' => '',
+ 'instance_settings' => array(
+ 'classes' => 'group-htabs field-group-htabs',
+ ),
+ ),
+ );
+ $export['group_htabs|node|thematique|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_texte|node|documentair|form';
+ $field_group->group_name = 'group_texte';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'documentair';
+ $field_group->mode = 'form';
+ $field_group->parent_name = 'group_htabs';
+ $field_group->data = array(
+ 'label' => 'Texte',
+ 'weight' => '4',
+ 'children' => array(
+ 0 => 'body',
+ ),
+ 'format_type' => 'htab',
+ 'format_settings' => array(
+ 'formatter' => 'closed',
+ 'instance_settings' => array(
+ 'description' => '',
+ 'classes' => 'group-texte field-group-htab',
+ 'required_fields' => 1,
+ 'id' => '',
+ ),
+ ),
+ );
+ $export['group_texte|node|documentair|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_texte|node|episode|form';
+ $field_group->group_name = 'group_texte';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'episode';
+ $field_group->mode = 'form';
+ $field_group->parent_name = 'group_htabs';
+ $field_group->data = array(
+ 'label' => 'Texte',
+ 'weight' => '9',
+ 'children' => array(
+ 0 => 'body',
+ ),
+ 'format_type' => 'htab',
+ 'format_settings' => array(
+ 'formatter' => 'closed',
+ 'instance_settings' => array(
+ 'description' => '',
+ 'classes' => 'group-texte field-group-htab',
+ 'required_fields' => 1,
+ 'id' => '',
+ ),
+ ),
+ );
+ $export['group_texte|node|episode|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_texte|node|thematique|form';
+ $field_group->group_name = 'group_texte';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'thematique';
+ $field_group->mode = 'form';
+ $field_group->parent_name = 'group_htabs';
+ $field_group->data = array(
+ 'label' => 'Texte',
+ 'weight' => '7',
+ 'children' => array(
+ 0 => 'body',
+ ),
+ 'format_type' => 'fieldset',
+ 'format_settings' => array(
+ 'formatter' => 'collapsible',
+ 'instance_settings' => array(
+ 'description' => '',
+ 'classes' => 'group-texte field-group-fieldset',
+ 'required_fields' => 1,
+ ),
+ ),
+ );
+ $export['group_texte|node|thematique|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_video|node|documentair|form';
+ $field_group->group_name = 'group_video';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'documentair';
+ $field_group->mode = 'form';
+ $field_group->parent_name = 'group_htabs';
+ $field_group->data = array(
+ 'label' => 'Video',
+ 'weight' => '5',
+ 'children' => array(
+ 0 => 'field_video',
+ 1 => 'field_description',
+ ),
+ 'format_type' => 'htab',
+ 'format_settings' => array(
+ 'formatter' => 'closed',
+ 'instance_settings' => array(
+ 'description' => '',
+ 'classes' => 'group-video field-group-htab',
+ 'required_fields' => 1,
+ 'id' => '',
+ ),
+ ),
+ );
+ $export['group_video|node|documentair|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_video|node|episode|form';
+ $field_group->group_name = 'group_video';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'episode';
+ $field_group->mode = 'form';
+ $field_group->parent_name = 'group_htabs';
+ $field_group->data = array(
+ 'label' => 'Video',
+ 'weight' => '10',
+ 'children' => array(
+ 0 => 'field_video',
+ 1 => 'field_description',
+ ),
+ 'format_type' => 'htab',
+ 'format_settings' => array(
+ 'formatter' => 'closed',
+ 'instance_settings' => array(
+ 'description' => '',
+ 'classes' => 'group-video field-group-htab',
+ 'required_fields' => 1,
+ 'id' => '',
+ ),
+ ),
+ );
+ $export['group_video|node|episode|form'] = $field_group;
+
+ $field_group = new stdClass();
+ $field_group->disabled = FALSE; /* Edit this to true to make a default field_group disabled initially */
+ $field_group->api_version = 1;
+ $field_group->identifier = 'group_video|node|thematique|form';
+ $field_group->group_name = 'group_video';
+ $field_group->entity_type = 'node';
+ $field_group->bundle = 'thematique';
+ $field_group->mode = 'form';
+ $field_group->parent_name = 'group_htabs';
+ $field_group->data = array(
+ 'label' => 'Video',
+ 'weight' => '8',
+ 'children' => array(
+ 0 => 'field_video',
+ 1 => 'field_description',
+ ),
+ 'format_type' => 'htab',
+ 'format_settings' => array(
+ 'formatter' => 'closed',
+ 'instance_settings' => array(
+ 'description' => '',
+ 'classes' => 'group-video field-group-htab',
+ 'required_fields' => 1,
+ 'id' => '',
+ ),
+ ),
+ );
+ $export['group_video|node|thematique|form'] = $field_group;
+
+ return $export;
+}
diff --git a/sites/all/modules/features/clameurs/clameurs.info b/sites/all/modules/features/clameurs/clameurs.info
new file mode 100644
index 00000000..d9fadf6a
--- /dev/null
+++ b/sites/all/modules/features/clameurs/clameurs.info
@@ -0,0 +1,81 @@
+name = Clameurs
+core = 7.x
+package = Clameurs
+dependencies[] = ctools
+dependencies[] = entity
+dependencies[] = entityreference
+dependencies[] = features
+dependencies[] = field_extrawidgets
+dependencies[] = field_group
+dependencies[] = node
+dependencies[] = options
+dependencies[] = page
+dependencies[] = rules
+dependencies[] = strongarm
+dependencies[] = taxonomy
+dependencies[] = text
+dependencies[] = video_filter_field
+features[ctools][] = field_group:field_group:1
+features[ctools][] = strongarm:strongarm:1
+features[features_api][] = api:2
+features[field_base][] = field_description
+features[field_base][] = field_doc
+features[field_base][] = field_ecouter
+features[field_base][] = field_episodes
+features[field_base][] = field_habiter
+features[field_base][] = field_thematique
+features[field_base][] = field_video
+features[field_group][] = group_episodes|node|thematique|form
+features[field_group][] = group_htabs|node|documentair|form
+features[field_group][] = group_htabs|node|episode|form
+features[field_group][] = group_htabs|node|thematique|form
+features[field_group][] = group_texte|node|documentair|form
+features[field_group][] = group_texte|node|episode|form
+features[field_group][] = group_texte|node|thematique|form
+features[field_group][] = group_video|node|documentair|form
+features[field_group][] = group_video|node|episode|form
+features[field_group][] = group_video|node|thematique|form
+features[field_instance][] = node-documentair-body
+features[field_instance][] = node-documentair-field_description
+features[field_instance][] = node-documentair-field_doc
+features[field_instance][] = node-documentair-field_thematique
+features[field_instance][] = node-documentair-field_video
+features[field_instance][] = node-episode-body
+features[field_instance][] = node-episode-field_description
+features[field_instance][] = node-episode-field_habiter
+features[field_instance][] = node-episode-field_thematique
+features[field_instance][] = node-episode-field_video
+features[field_instance][] = node-thematique-body
+features[field_instance][] = node-thematique-field_description
+features[field_instance][] = node-thematique-field_ecouter
+features[field_instance][] = node-thematique-field_episodes
+features[field_instance][] = node-thematique-field_video
+features[node][] = documentair
+features[node][] = episode
+features[node][] = thematique
+features[rules_config][] = clameurs_habiter
+features[rules_config][] = rules_ecouter
+features[rules_config][] = rules_episode_th_matique
+features[taxonomy][] = actions
+features[variable][] = field_bundle_settings_node__documentair
+features[variable][] = field_bundle_settings_node__episode
+features[variable][] = field_bundle_settings_node__thematique
+features[variable][] = language_content_type_documentair
+features[variable][] = language_content_type_episode
+features[variable][] = language_content_type_thematique
+features[variable][] = menu_options_documentair
+features[variable][] = menu_options_episode
+features[variable][] = menu_options_thematique
+features[variable][] = menu_parent_documentair
+features[variable][] = menu_parent_episode
+features[variable][] = menu_parent_thematique
+features[variable][] = node_options_documentair
+features[variable][] = node_options_episode
+features[variable][] = node_options_thematique
+features[variable][] = node_preview_documentair
+features[variable][] = node_preview_episode
+features[variable][] = node_preview_thematique
+features[variable][] = node_submitted_documentair
+features[variable][] = node_submitted_episode
+features[variable][] = node_submitted_thematique
+project path = sites/all/modules/features
diff --git a/sites/all/modules/features/clameurs/clameurs.module b/sites/all/modules/features/clameurs/clameurs.module
new file mode 100644
index 00000000..87a87f89
--- /dev/null
+++ b/sites/all/modules/features/clameurs/clameurs.module
@@ -0,0 +1,7 @@
+disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'field_bundle_settings_node__documentair';
+ $strongarm->value = array(
+ 'view_modes' => array(),
+ 'extra_fields' => array(
+ 'form' => array(
+ 'title' => array(
+ 'weight' => '0',
+ ),
+ 'path' => array(
+ 'weight' => '8',
+ ),
+ 'redirect' => array(
+ 'weight' => '9',
+ ),
+ ),
+ 'display' => array(),
+ ),
+ );
+ $export['field_bundle_settings_node__documentair'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'field_bundle_settings_node__episode';
+ $strongarm->value = array(
+ 'view_modes' => array(),
+ 'extra_fields' => array(
+ 'form' => array(
+ 'title' => array(
+ 'weight' => '0',
+ ),
+ 'path' => array(
+ 'weight' => '4',
+ ),
+ 'redirect' => array(
+ 'weight' => '5',
+ ),
+ ),
+ 'display' => array(),
+ ),
+ );
+ $export['field_bundle_settings_node__episode'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'field_bundle_settings_node__thematique';
+ $strongarm->value = array(
+ 'view_modes' => array(),
+ 'extra_fields' => array(
+ 'form' => array(
+ 'title' => array(
+ 'weight' => '0',
+ ),
+ 'path' => array(
+ 'weight' => '2',
+ ),
+ 'redirect' => array(
+ 'weight' => '3',
+ ),
+ ),
+ 'display' => array(),
+ ),
+ );
+ $export['field_bundle_settings_node__thematique'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'language_content_type_documentair';
+ $strongarm->value = '0';
+ $export['language_content_type_documentair'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'language_content_type_episode';
+ $strongarm->value = '0';
+ $export['language_content_type_episode'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'language_content_type_thematique';
+ $strongarm->value = '0';
+ $export['language_content_type_thematique'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'menu_options_documentair';
+ $strongarm->value = array();
+ $export['menu_options_documentair'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'menu_options_episode';
+ $strongarm->value = array();
+ $export['menu_options_episode'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'menu_options_thematique';
+ $strongarm->value = array();
+ $export['menu_options_thematique'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'menu_parent_documentair';
+ $strongarm->value = 'main-menu:0';
+ $export['menu_parent_documentair'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'menu_parent_episode';
+ $strongarm->value = 'main-menu:0';
+ $export['menu_parent_episode'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'menu_parent_thematique';
+ $strongarm->value = 'main-menu:0';
+ $export['menu_parent_thematique'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_options_documentair';
+ $strongarm->value = array(
+ 0 => 'status',
+ );
+ $export['node_options_documentair'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_options_episode';
+ $strongarm->value = array(
+ 0 => 'status',
+ );
+ $export['node_options_episode'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_options_thematique';
+ $strongarm->value = array(
+ 0 => 'status',
+ );
+ $export['node_options_thematique'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_preview_documentair';
+ $strongarm->value = '0';
+ $export['node_preview_documentair'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_preview_episode';
+ $strongarm->value = '0';
+ $export['node_preview_episode'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_preview_thematique';
+ $strongarm->value = '0';
+ $export['node_preview_thematique'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_submitted_documentair';
+ $strongarm->value = 0;
+ $export['node_submitted_documentair'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_submitted_episode';
+ $strongarm->value = 0;
+ $export['node_submitted_episode'] = $strongarm;
+
+ $strongarm = new stdClass();
+ $strongarm->disabled = FALSE; /* Edit this to true to make a default strongarm disabled initially */
+ $strongarm->api_version = 1;
+ $strongarm->name = 'node_submitted_thematique';
+ $strongarm->value = 0;
+ $export['node_submitted_thematique'] = $strongarm;
+
+ return $export;
+}