imce_uploader.module in IMCE Uploader 7
IMCE Uploader
File
imce_uploader.moduleView source
<?php
/**
* @file
* IMCE Uploader
*/
/**
* Implements hook_form_FORM_ID_alter().
* @see imce_profile_form()
*/
function imce_uploader_form_imce_profile_form_alter(&$form, &$form_state) {
$profile = $form_state['profile'];
$uploaders = imce_uploader_get_uploaders();
if (count($uploaders) == 1) {
$form['profile']['uploader'] = array(
'#type' => 'value',
'#value' => key($uploaders),
);
}
else {
$form['profile']['uploader'] = array(
'#type' => 'radios',
'#title' => t('File Uploader'),
'#options' => array(),
'#default_value' => empty($profile['uploader']) ? 'default' : $profile['uploader'],
);
foreach ($uploaders as $uploader_id => $uploader) {
$form['profile']['uploader']['#options'][$uploader_id] = $uploader['title'];
if (!empty($uploader['description'])) {
$form['profile']['uploader'][$uploader_id]['#description'] = $uploader['description'];
}
}
}
}
/**
* Implements hook_form_FORM_ID_alter().
* @see imce_upload_form()
*/
function imce_uploader_form_imce_upload_form_alter(&$form, &$form_state) {
$imce = $form_state['build_info']['args'][0]['imce'];
$uploaders = imce_uploader_get_uploaders();
if (empty($imce['uploader']) || empty($uploaders[$imce['uploader']]['callback']) || !is_callable($uploaders[$imce['uploader']]['callback'])) {
return;
}
$callback = $uploaders[$imce['uploader']]['callback'];
$args = array(
&$form,
&$form_state,
&$imce,
);
call_user_func_array($callback, $args);
}
/**
* Get the list of uploaders.
*
* Each item may have the following properties
* - title: The name of uploader.
* - description: The description of uploader.
* - callback: Process function of uploader when imce's called.
* - weight: The weight of this uploader in the list.
*
* @return array
* A list of registered uploaders.
*/
function imce_uploader_get_uploaders() {
static $drupal_static_fast;
if (!isset($drupal_static_fast)) {
$drupal_static_fast['uploaders'] =& drupal_static(__FUNCTION__);
}
$uploaders =& $drupal_static_fast['uploaders'];
if (empty($uploaders)) {
$cid = 'imce:' . $GLOBALS['language']->language . ':uploaders';
$cache = cache_get($cid);
if (empty($cache)) {
$modules = module_implements('imce_uploader');
$uploaders = array();
foreach ($modules as $module) {
$items = call_user_func($module . '_imce_uploader');
if (isset($items) && is_array($items)) {
$uploaders = array_merge($uploaders, $items);
}
}
drupal_alter('imce_uploader', $uploaders);
foreach ($uploaders as $uploader_id => $uploader) {
$uploaders[$uploader_id] = $uploader + array(
'title' => $uploader_id,
'description' => '',
'callback' => NULL,
'weight' => 0,
);
}
$default['default'] = array(
'title' => t('Default'),
'callback' => NULL,
'weight' => -100,
);
$uploaders = $default + $uploaders;
uasort($uploaders, 'drupal_sort_weight');
cache_set($cid, $uploaders);
}
else {
$uploaders = $cache->data;
}
}
return $uploaders;
}
Functions
Name![]() |
Description |
---|---|
imce_uploader_form_imce_profile_form_alter | Implements hook_form_FORM_ID_alter(). |
imce_uploader_form_imce_upload_form_alter | Implements hook_form_FORM_ID_alter(). |
imce_uploader_get_uploaders | Get the list of uploaders. |