| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- /**
- * @file
- * Hooks provided by the Media module.
- */
- /**
- * Parses a url or embedded code into a unique URI.
- *
- * @param string $url
- * The original URL or embed code to parse.
- *
- * @return array
- * The unique URI for the file, based on its stream wrapper, or NULL.
- *
- * @see hook_media_parse_alter()
- * @see media_parse_to_file()
- * @see media_add_from_url_validate()
- */
- function hook_media_parse($url) {
- // Only parse URLs from our website of choice: examplevideo.com
- if (substr($url, 0, 27) == 'http://www.examplevideo.com') {
- // Each video has a 5 digit ID, i.e. http://www.examplevideo.com/12345
- // Grab the ID and use it in our URI.
- $id = substr($url, 28, 33);
- return file_stream_wrapper_uri_normalize('examplevideo://video/' . $id);
- }
- }
- /**
- * Alters the parsing of urls and embedded codes into unique URIs.
- *
- * @param string $success
- * The unique URI for the file, based on its stream wrapper, or NULL.
- * @param array $context
- * A nested array of contextual information containing the following keys:
- * - url: The original URL or embed code to parse.
- * - module: The name of the module which is attempting to parse the url or
- * embedded code into a unique URI.
- *
- * @see hook_media_parse()
- * @see hook_media_browser_plugin_info()
- * @see media_get_browser_plugin_info()
- */
- function hook_media_parse_alter(&$success, $context) {
- $url = $context['url'];
- $url_info = parse_url($url);
- // Restrict users to only embedding secure links.
- if ($url_info['scheme'] != 'https') {
- $success = NULL;
- }
- // Use a custom handler for detecting YouTube videos.
- if ($context['module' == 'media_youtube']) {
- $handler = new CustomYouTubeHandler($url);
- $success = $handler->parse($url);
- }
- }
- /**
- * Returns a list of plugins for the media browser.
- *
- * @return array
- * A nested array of plugin information, keyed by plugin name. Each plugin
- * info array may have the following keys:
- * - title: (required) A name for the tab in the media browser.
- * - class: (required) The class name of the handler. This class must
- * implement a view() method, and may (should) extend the
- * @link MediaBrowserPlugin MediaBrowserPlugin @endlink class.
- * - weight: (optional) Integer to determine the tab order. Defaults to 0.
- * - access callback: (optional) A callback for user access checks.
- * - access arguments: (optional) An array of arguments for the user access
- * check.
- *
- * Additional custom keys may be provided for use by the handler.
- *
- * @see hook_media_browser_plugin_info_alter()
- * @see media_get_browser_plugin_info()
- */
- function hook_media_browser_plugin_info() {
- $info['media_upload'] = array(
- 'title' => t('Upload'),
- 'class' => 'MediaBrowserUpload',
- 'weight' => -10,
- 'access callback' => 'user_access',
- 'access arguments' => array('create files'),
- );
- return $info;
- }
- /**
- * Alter the list of plugins for the media browser.
- *
- * @param array $info
- * The associative array of media browser plugin definitions from
- * hook_media_browser_plugin_info().
- *
- * @see hook_media_browser_plugin_info()
- * @see media_get_browser_plugin_info()
- */
- function hook_media_browser_plugin_info_alter(&$info) {
- $info['media_upload']['title'] = t('Upload 2.0');
- $info['media_upload']['class'] = 'MediaBrowserUploadImproved';
- }
- /**
- * Alter the plugins before they are rendered.
- *
- * @param array $plugin_output
- * The associative array of media browser plugin information from
- * media_get_browser_plugin_info().
- *
- * @see hook_media_browser_plugin_info()
- * @see media_get_browser_plugin_info()
- */
- function hook_media_browser_plugins_alter(&$plugin_output) {
- $plugin_output['upload']['form']['upload']['#title'] = t('Upload 2.0');
- $plugin_output['media_internet']['form']['embed_code']['#size'] = 100;
- }
- /**
- * Alter a singleton of the params passed to the media browser.
- *
- * @param array $stored_params
- * An array of parameters provided when a media_browser is launched.
- *
- * @see media_browser()
- * @see media_set_browser_params()
- */
- function hook_media_browser_params_alter(&$stored_params) {
- $stored_params['view_mode'] = 'custom';
- $stored_params['types'][] = 'document';
- unset($stored_params['enabledPlugins'][0]);
- }
- /**
- *
- * Alter the media multiple elements widget
- *
- * @param $table
- * the table of elements that will be rendered via theme_table()
- * @param $element
- * elements that are actually attached
- *
- * @see theme_media_widget_multiple()
- */
- function hook_media_widget_multiple_alter(&$table, &$element) {
- $table['attributes']['class'][] = 'myclass';
- }
|