diff options
Diffstat (limited to 'plugins/video_params')
-rw-r--r-- | plugins/video_params/video_params.module | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/plugins/video_params/video_params.module b/plugins/video_params/video_params.module new file mode 100644 index 0000000..46fa2e3 --- /dev/null +++ b/plugins/video_params/video_params.module @@ -0,0 +1,105 @@ +<?php +// $Id$ + +/** + * @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 <param name="param_1" value="value_1" /> 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; + } +} + + + + + |