diff options
Diffstat (limited to 'types/videoftp/videoftp.module')
-rw-r--r-- | types/videoftp/videoftp.module | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/types/videoftp/videoftp.module b/types/videoftp/videoftp.module deleted file mode 100644 index 078d81c..0000000 --- a/types/videoftp/videoftp.module +++ /dev/null @@ -1,207 +0,0 @@ -<?php -// $Id$ - -/** - * @file - * video ftp core hooks and menu callbacks. - */ - -module_load_include('inc', 'videoftp', 'videoftp_widget'); - -/* - * Implementation of hook_menu(). - */ -function videoftp_menu() { - $items = array(); - $items['videoftp/ahah/%/%/%'] = array( - 'page callback' => 'videoftp_js', - 'page arguments' => array(2, 3, 4), - //'access callback' => 'videoftp_edit_access', - 'access arguments' => array('access content'), - 'type' => MENU_CALLBACK, - ); - $items['videoftp/progress'] = array( - 'page callback' => 'videoftp_progress', - 'access arguments' => array('access content'), - 'type' => MENU_CALLBACK, - ); - return $items; -} - -/** - * Implementation of hook_theme(). - */ -function videoftp_theme() { - $theme = array(); - $theme['videoftp_widget'] = array( - 'arguments' => array('element' => NULL), - 'file' => 'videoftp.theme.inc', - ); - $theme['videoftp_widget_item'] = array( - 'arguments' => array('element' => NULL), - 'file' => 'videoftp.theme.inc', - ); - $theme['videoftp_widget_file'] = array( - 'arguments' => array('element' => NULL), - 'file' => 'videoftp.theme.inc', - ); - return $theme; -} - -/** - * Implementation of CCK's hook_widget_info(). - */ -function videoftp_widget_info() { - return array( - 'videoftp_widget' => array( - 'label' => t('Video FTP'), - 'field types' => array('filefield'), - 'multiple values' => CONTENT_HANDLE_CORE, - 'callbacks' => array('default value' => CONTENT_CALLBACK_CUSTOM), - 'description' => t('Widget allows you to select video files uploaded through FTP to be attached to the node.'), - ), - ); -} - -/** - * Implementation of hook_elements(). - */ -function videoftp_elements() { - return array( - 'videoftp_widget' => array( - '#input' => TRUE, - '#columns' => array('fid', 'list', 'data', 'filepath'), - '#process' => array('videoftp_widget_process'), - '#value_callback' => 'videoftp_widget_value', - ), - ); -} - -/** - * Implementation of CCK's hook_widget_settings(). - */ -function videoftp_widget_settings($op, $widget) { - //load up our include file for the widget - module_load_include('inc', 'videoftp', 'videoftp_widget'); - switch ($op) { - case 'form': - return videoftp_widget_settings_form($widget); - case 'validate': - return videoftp_widget_settings_validate($widget); - case 'save': - return videoftp_widget_settings_save($widget); - } -} - -/** - * Implementation of hook_widget(). - */ -function videoftp_widget(&$form, &$form_state, $field, $items, $delta = NULL) { - $item = array('fid' => 0, 'list' => $field['list_default'], 'data' => array('description' => '', 'video_thumb' => '')); - if (isset($items[$delta])) { - $item = array_merge($item, $items[$delta]); - } - $element = array( - '#title' => $field['widget']['label'], - '#type' => $field['widget']['type'], - '#default_value' => $item, - ); - return $element; -} - -/** - * Menu callback; Shared AHAH callback for ftp file attachment and deletions. - * - * This rebuilds the form element for a particular field item. As long as the - * form processing is properly encapsulated in the widget element the form - * should rebuild correctly using FAPI without the need for additional callbacks - * or processing. - */ -function videoftp_js($type_name, $field_name, $delta) { - module_load_include('inc', 'videoftp', 'videoftp_widget'); - $field = content_fields($field_name, $type_name); - - if (empty($field) || empty($_POST['form_build_id'])) { - // Invalid request. - drupal_set_message(t('An unrecoverable error occurred.'), 'error'); - print drupal_to_js(array('data' => theme('status_messages'))); - exit; - } - - // Build the new form. - $form_state = array('submitted' => FALSE); - $form_build_id = $_POST['form_build_id']; - $form = form_get_cache($form_build_id, $form_state); - - if (!$form) { - // Invalid form_build_id. - drupal_set_message(t('An unrecoverable error occurred. This form was missing from the server cache. Try reloading the page and submitting again.'), 'error'); - print drupal_to_js(array('data' => theme('status_messages'))); - exit; - } - - // Build the form. This calls the file field's #value_callback function and - // saves the uploaded file. Since this form is already marked as cached - // (the #cache property is TRUE), the cache is updated automatically and we - // don't need to call form_set_cache(). - $args = $form['#parameters']; - $form_id = array_shift($args); - $form['#post'] = $_POST; - $form = form_builder($form_id, $form, $form_state); - - // Update the cached form with the new element at the right place in the form. - if (module_exists('fieldgroup') && ($group_name = _fieldgroup_field_get_group($type_name, $field_name))) { - if (isset($form['#multigroups']) && isset($form['#multigroups'][$group_name][$field_name])) { - $form_element = $form[$group_name][$delta][$field_name]; - } - else { - $form_element = $form[$group_name][$field_name][$delta]; - } - } - else { - $form_element = $form[$field_name][$delta]; - } - - if (isset($form_element['_weight'])) { - unset($form_element['_weight']); - } - $output = drupal_render($form_element); - // AHAH is not being nice to us and doesn't know the "other" button (that is, - // either "Attach" or "Delete") yet. Which in turn causes it not to attach - // AHAH behaviours after replacing the element. So we need to tell it first. - - // Loop through the JS settings and find the settings needed for our buttons. - $javascript = drupal_add_js(NULL, NULL); - $videoftp_ahah_settings = array(); - if (isset($javascript['setting'])) { - foreach ($javascript['setting'] as $settings) { - if (isset($settings['ahah'])) { - foreach ($settings['ahah'] as $id => $ahah_settings) { - if (strpos($id, 'videoftp-attach') || strpos($id, 'videoftp-remove')) { - $videoftp_ahah_settings[$id] = $ahah_settings; - } - } - } - } - } - - // Add the AHAH settings needed for our new buttons. - if (!empty($videoftp_ahah_settings)) { - $output .= '<script type="text/javascript">jQuery.extend(Drupal.settings.ahah, '. drupal_to_js($videoftp_ahah_settings) .');</script>'; - } - - $output = theme('status_messages') . $output; - - // For some reason, file uploads don't like drupal_json() with its manual - // setting of the text/javascript HTTP header. So use this one instead. - $GLOBALS['devel_shutdown'] = FALSE; - print drupal_to_js(array('status' => TRUE, 'data' => $output)); - exit; -} - -/** - * filefield source support - */ -function videoftp_filefield_sources_widgets() { - return array('videoftp_widget'); -}
\ No newline at end of file |