You are here

video_params.module in Video 5

Enable addition of params to object generated by video module

@author Fabio Varesano <fvaresano at yahoo dot it>

File

plugins/video_params/video_params.module
View source
<?php

/**
 * @file
 * Enable addition of params to object generated by video module
 *
 * @author Fabio Varesano <fvaresano at yahoo dot it>
 */

/**
 * Implementation of hook_help().
 */
function video_params_help($section) {
  switch ($section) {
    case 'admin/modules#description':
      return t('Enable addition of html params to object generated by video module. Useful if you need to use swf videos which needs params to be passed.');
  }
}

/**
 * Implementation of hook_perm().
 */
function video_params_perm() {
  return array(
    'insert object params',
  );
}

/**
 * Implementation of hook_form_alter()
 * We use this to add a text area to the video creation form.
 * In the text area the user will be able to insert his param value association.
 */
function video_params_form_alter($form_id, &$form) {
  if ($form_id == 'video_node_form' && isset($form['video']) && user_access('insert object params')) {

    // get node object
    $node = $form['#node'];

    //We must convert the array data back to something that can go in the textarea.
    $textarea = '';
    if (is_array($node->serial_data['object_parameters'])) {
      foreach ($node->serial_data['object_parameters'] as $param => $value) {
        $textarea .= $param . '=' . $value . "\n";
      }
      $textarea = substr($textarea, 0, -1);

      //Remove the last newline "\n" from the end.
    }
    $form['parameters'] = array(
      '#type' => 'fieldset',
      '#title' => t('HTML object parameters'),
      '#collapsible' => TRUE,
      '#collapsed' => TRUE,
      '#weight' => -17,
    );
    $form['parameters']['object_parameters'] = array(
      '#title' => t('Embedded object parameters'),
      '#type' => 'textarea',
      '#rows' => 5,
      '#default_value' => $textarea,
      '#description' => t('Enter the values that you would like to be embedded in &#60;param name="param_1" value="value_1" /&#62; tags. Each parameter should be on a seperate line with an equal sign between the parameter and its assigned value. Like param=value for example.'),
    );
  }
}

/**
 * Implementation of hook_nodeapi()
 */
function video_params_nodeapi(&$node, $op, $teaser) {
  if ($node->type == 'video') {
    switch ($op) {
      case 'submit':

        //Process the data in the object_parameters textarea.
        if ($node->object_parameters != '') {

          //Make sure the textarea was not empty.
          $lines = explode("\r\n", $node->object_parameters);

          //Make an array of each line from the textarea.
          foreach ($lines as $line) {

            //Loop through each line.
            $array = explode('=', $line);

            //Break apart at the "=" sign. $line should be in format param=value
            $node->serial_data['object_parameters'][$array[0]] = $array[1];

            //Assign the "param" as the key and "value" as the value.
          }
        }
        break;
    }
  }
}

/**
 * Implementation of hook_v_get_param() - video module specific hook
 */
function video_params_v_get_params(&$node) {
  $serial_data = $node->serial_data;
  if (is_array($serial_data) && array_key_exists('object_parameters', $serial_data) && !empty($serial_data['object_parameters'])) {
    return $serial_data['object_parameters'];
  }
  else {
    return NULL;
  }
}

Functions

Namesort descending Description
video_params_form_alter Implementation of hook_form_alter() We use this to add a text area to the video creation form. In the text area the user will be able to insert his param value association.
video_params_help Implementation of hook_help().
video_params_nodeapi Implementation of hook_nodeapi()
video_params_perm Implementation of hook_perm().
video_params_v_get_params Implementation of hook_v_get_param() - video module specific hook