| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 | 
							- sfwupload Module
 
- ================================================================================
 
- DESCRIPTION:
 
- --------------------------------------------------------------------------------
 
- The SWFUpload module provides an CCK widget for filefield and handles the upload
 
- through javascript/flash. It depends on the SWFUpload library which makes it
 
- possible to upload multiple file at once.
 
- For developers the module provides a hook function. Using this hook function
 
- developers can alter the way the widget is presented, op hook in to the file
 
- upload process.
 
- INSTALLATION:
 
- --------------------------------------------------------------------------------
 
- 1. Download the FileField module.
 
-      (http://drupal.org/project/filefield)
 
- 2. Download the jQuery Plugin Handler (jQp) module. This module is required for
 
-    loading the SWFUpload javascript library.
 
-      (http://drupal.org/project/jqp)
 
- 3. Place both modules, as well as the SWFUpload module, in your module
 
-    directory.
 
-      (sites/all/modules)
 
- 4. If you do not have created a 'libraries' directory yet, create one.
 
-      (sites/all/libraries)
 
- 5. Create a new directory called 'swfupload' inside the 'libraries' folder.
 
-      (sites/all/libraries)
 
- 6. Download the SWFUpload 2.2.0.1 release.
 
-      (http://code.google.com/p/swfupload/downloads/list)
 
- 7. Copy the files 'swfupload.swf' and 'swfupload.js' to the swfupload folder 
 
-    inside the libraries folder. The end result will read:
 
-      sites/all/libraries/swfupload/swfupload.js
 
-      sites/all/libraries/swfupload/swfupload.swf
 
- 8. Enable this module by navigating to:
 
-      admin/build/modules
 
- 9. Ensure the library is available by visiting:
 
-      admin/build/jqp/swfupload/
 
- USAGE:
 
- --------------------------------------------------------------------------------
 
- Create a new file field in through CCK's interface. Visit Administer -> Content
 
- management -> Content types (admin/content/types), then click Manage fields on
 
- the type you want to add an SWFUpload field. Select "File" as the field type and
 
- "SWFUpload" as the widget type to create a new field.
 
- On the field configuration screen set the "Permitted upload file extensions"
 
- to include the image types you will allow users to upload.
 
- Grant the permission to "upload files with swfupload" to the appropriate roles.
 
- API:
 
- --------------------------------------------------------------------------------
 
- Developers can take the advantage of the hook function hook_swfupload(). Using 
 
- this function developers have access to alter the way the files are displayed,
 
- as well as how file uploads are processed. 
 
- HOOK_SWFUPLOAD():
 
-   DEFINITION:
 
-   hook_swfupload(&$file, $op, &$instance, $widget)
 
-   
 
-   DESCRIPTION:
 
-   Provide other modules a hook to change the data for the swfupload scripts.
 
-   Modules can change the default provided fields, customize the way files are
 
-   uploaded and change the type of swfupload (table or button).
 
-   PARAMETERS:
 
-   $file: The file object in its different states. 
 
-   $op: What kind of action is being performed. Possible values:
 
-     
 
-     'init': The swfupload is being initialized. Here you can change the instance
 
-             object in order to define other javascript callback functions, or to
 
-             change the way the files are displayed.
 
-     'move_uploaded_file': The swfupload requests an upload. Here you can alter 
 
-             the file object in order to change it's filename or the destination
 
-             folder. You can also change the validation functions which are passed 
 
-             to file_save_upload(). The file object will look something similar 
 
-             like this: 
 
-             $file = (object) array(
 
-               'validators' => array(
 
-                 'file_validate_extensions => 'jpg jpeg gif png txt',
 
-                 'filefield_validate_image_resolution' => array('800x600', '100x100'),
 
-                 'file_validate_size' => array($widget->max_filesize_per_file, $widget->max_filesize_per_file),
 
-               ),
 
-               'file_path' => 'files/'
 
-             );
 
-     'upload_complete': The upload is complete. Using the hook_function in this 
 
-             state, the file can be copied, modified or you can do some database 
 
-             stuff. The file object will look something similar like this:
 
-             $file = (object) array(
 
-                 'filename' => 'Image1.png',
 
-                 'filepath' => 'files/Image1_3.png',
 
-                 'filemime' => 'image/png',
 
-                 'source' => 'upload',
 
-                 'destination' => 'files/Image1_3.png',
 
-                 'filesize' => 220567,
 
-                 'uid' => '3',
 
-                 'status' => 0,
 
-                 'timestamp' => 1227182505,
 
-                 'fid' => '2468' }
 
-               ),
 
-               'filepath' => 'files/'
 
-             );
 
-   $instance: The instance object in its different states. When $op is 'init' the 
 
-       instance can be altered in order to change the callback functions or to change
 
-       the way the upload module displayes files. When $op is 'move_uploaded_file' or 
 
-       'upload_complete', the instance object can be used as a reference.
 
-       The reference object on init:
 
-       // The type of the instance. Currently only table is supported
 
-       $instance->type = 'table';
 
-       // Javascript callback functions
 
-       $instance->callbacks = array(
 
-         'swfupload_loaded_handler' => 'ref.swfUploadLoaded',
 
-         'file_queued_handler' => 'ref.fileQueued',
 
-         'queue_complete_handler' => 'ref.queueComplete',
 
-         'file_queue_error_handler' => 'ref.fileQueueError',
 
-         'file_dialog_complete_handler' => 'ref.dialogComplete',
 
-         'upload_success_handler' => 'ref.uploadSuccess',
 
-         'upload_progress_handler' => 'ref.uploadProgress',
 
-         'upload_error_handler' => 'ref.uploadError',
 
-         'upload_complete_handler' => 'ref.uploadComplete',
 
-         'init_complete_handler' => 'ref.initComplete',
 
-       );
 
-       // The $instance->elements array represents all elements (or columns) which are displayed on added files.
 
-       // Each element can be changed. Javascript will render the proper markup.
 
-       // By default the elements below are used for each added file, however by changing the widget settings, an 'alt', 'title', 'description' or 'display' column can be added.
 
-       $instance->elements = array(
 
-         'drag' => array(
 
-           'class' => 'drag first indentation',
 
-           'type' => 'drag',
 
-           'colspan' => 3,
 
-           'title' => t('Filename'),
 
-           'add_separator' => TRUE,
 
-         ),
 
-         'icon' => array(
 
-           'type' => 'icon',
 
-           'class' => 'icon',
 
-         ),
 
-         'filename' => array(
 
-           'type' => 'markup',
 
-           'value' => '[filename]',
 
-           'class' => 'text title',
 
-         ),
 
-       );
 
-   EXAMPLE:
 
-   /**
 
-    * Implements hook_swfupload().
 
-    */
 
-   function MODULENAME_swfupload(&$file, $op, &$instance, $widget) {
 
-     switch ($op) {
 
-       case 'init':
 
-         // Add a custom callback function to be executed after the scripts have 
 
-         // been initialized.
 
-         $instance->callbacks['init_complete_handler'] = 'myCustomCallbackFunction';
 
-         // Add a custom editabe tabledrawer. 
 
-         $instance->elements['test'] => array(
 
-           'class' => 'my-class', // The class for the td.
 
-           'type' => 'text', // An editable textfield will be added. Values will be saved!
 
-           'colspan' => 2, // Colspan for this td
 
-           'title' => t('Description'), // This will be used in the th
 
-           'add_separator' => TRUE, // Whether or not to put a separator between the colums in the thead.
 
-           'contains_progressbar' = TRUE, // Whether or not the progressbar can be put here during upload.
 
-         );
 
-         break;
 
-       case 'move_uploaded_file':
 
-         global $user;
 
-         $file->filepath = "files/$user->uid/"; // Files will be stored in an user folder
 
-         break;
 
-       case 'upload_complete':
 
-         db_query("INSERT INTO {mymoduletable} (fid, filename) VALUES ('%s', '%s')", $file->fid, $file->filename);
 
-         break;
 
-     }
 
-   }
 
- BUGS:
 
- --------------------------------------------------------------------------------
 
- 1. If the swfupload is loaded inside a collapsed fieldset, Firefox occasionally 
 
-    crashes when the fieldset expanded. 
 
- 2. If you're getting 'IO Error #2038' errors, try pasting the following in your
 
-    .htaccess file, or visit http://swfupload.org/forum/generaldiscussion/92.
 
-      SecFilterEngine Off
 
-      SecFilterScanPOST Off
 
- KUDOS:
 
- --------------------------------------------------------------------------------
 
- Special thanks to Nathan Haug (quicksketch) for writing ImageField and helping
 
- me out developing the SWFUpload module, and Morten Nielsen (minus) for
 
- sponsoring the module.
 
 
  |