aboutsummaryrefslogtreecommitdiff
path: root/plugins/video_params
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/video_params')
-rw-r--r--plugins/video_params/video_params.module105
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 &#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;
+ }
+}
+
+
+
+
+