Révision 1e39edcb
Ajouté par Assos Assos il y a plus de 7 ans
drupal7/sites/all/modules/media/modules/media_wysiwyg/media_wysiwyg.module | ||
---|---|---|
14 | 14 |
// Functions for UUID support to embedded media. |
15 | 15 |
require_once dirname(__FILE__) . '/includes/media_wysiwyg.uuid.inc'; |
16 | 16 |
|
17 |
// Functions for features integration. |
|
18 |
require_once dirname(__FILE__) . '/includes/media_wysiwyg.features.inc'; |
|
19 |
|
|
17 | 20 |
/** |
18 | 21 |
* Implements hook_hook_info(). |
19 | 22 |
*/ |
... | ... | |
362 | 365 |
preg_match($pattern, $field_name, $matches); |
363 | 366 |
if (!empty($matches[2])) { |
364 | 367 |
$field_name = $matches[2]; |
365 |
$langcode = field_language('file', $file, $field_name); |
|
366 |
if (isset($settings['fields'][$field_name][$langcode]['value'])) { |
|
368 |
$field_langcode = field_language('file', $file, $field_name);
|
|
369 |
if (isset($settings['fields'][$field_name][$field_langcode]['value'])) {
|
|
367 | 370 |
if (empty($settings['attributes'][$field_type])) { |
368 |
$settings['attributes'][$field_type] = $settings['fields'][$field_name][$langcode]['value']; |
|
371 |
$settings['attributes'][$field_type] = $settings['fields'][$field_name][$field_langcode]['value'];
|
|
369 | 372 |
} |
370 | 373 |
} |
371 |
if (isset($settings['fields'][$field_name][$langcode][0]['value'])) { |
|
374 |
if (isset($settings['fields'][$field_name][$field_langcode][0]['value'])) {
|
|
372 | 375 |
if (empty($settings['attributes'][$field_type])) { |
373 |
$settings['attributes'][$field_type] = $settings['fields'][$field_name][$langcode][0]['value']; |
|
376 |
$settings['attributes'][$field_type] = $settings['fields'][$field_name][$field_langcode][0]['value'];
|
|
374 | 377 |
} |
375 | 378 |
} |
376 | 379 |
} |
... | ... | |
530 | 533 |
} |
531 | 534 |
} |
532 | 535 |
} |
536 |
|
|
537 |
/** |
|
538 |
* Implements hook_entity_info_alter(). |
|
539 |
* |
|
540 |
* Add a file type named 'WYSIWYG'. |
|
541 |
*/ |
|
542 |
function media_wysiwyg_entity_info_alter(&$entity_info) { |
|
543 |
$entity_info['file']['view modes'] += array( |
|
544 |
'wysiwyg' => array( |
|
545 |
'label' => t('WYSIWYG'), |
|
546 |
'custom settings' => TRUE, |
|
547 |
), |
|
548 |
); |
|
549 |
} |
|
550 |
|
|
551 |
/** |
|
552 |
* Implements hook_form_FORM_ID_alter(). |
|
553 |
* |
|
554 |
* Add select when editing file types to set wysiwyg view mode. |
|
555 |
*/ |
|
556 |
function media_wysiwyg_form_file_entity_file_type_form_alter(&$form, &$form_state) { |
|
557 |
$options = array(); |
|
558 |
|
|
559 |
// Add an option allowing users not to use a view mode. |
|
560 |
$options['none'] = t('None'); |
|
561 |
|
|
562 |
// Add the default view mode by default. |
|
563 |
$options['default'] = t('Default'); |
|
564 |
|
|
565 |
$entity_info = entity_get_info('file'); |
|
566 |
foreach ($entity_info['view modes'] as $view_mode => $view_mode_info) { |
|
567 |
$options[$view_mode] = check_plain($view_mode_info['label']); |
|
568 |
} |
|
569 |
|
|
570 |
$file_type = $form['#file_type']->type; |
|
571 |
$view_mode = db_query('SELECT view_mode FROM {media_view_mode_wysiwyg} WHERE type = :type', array(':type' => $file_type))->fetchField(); |
|
572 |
$view_mode = empty($view_mode) ? 'none' : $view_mode; |
|
573 |
|
|
574 |
$form['file_wysiwyg_view_mode'] = array( |
|
575 |
'#type' => 'select', |
|
576 |
'#title' => t('WYSIWYG view mode'), |
|
577 |
'#options' => $options, |
|
578 |
'#default_value' => $view_mode, |
|
579 |
'#description' => t('View mode to be used when displaying files inside of the WYSIWYG editor.'), |
|
580 |
); |
|
581 |
|
|
582 |
// Move submit after our select box. There might be a better way to do this. |
|
583 |
$form['submit']['#weight'] = 1; |
|
584 |
|
|
585 |
array_unshift($form['#submit'], 'media_wysiwyg_form_file_entity_file_type_form_alter_submit'); |
|
586 |
} |
|
587 |
|
|
588 |
/** |
|
589 |
* Custom submit handler. |
|
590 |
* |
|
591 |
* Save wysiwyg view mode. |
|
592 |
* |
|
593 |
* @see media_wysiwyg_form_file_entity_file_type_form_alter(). |
|
594 |
*/ |
|
595 |
function media_wysiwyg_form_file_entity_file_type_form_alter_submit(&$form, &$form_state) { |
|
596 |
$file_type = $form['#file_type']->type; |
|
597 |
$view_mode = $form_state['values']['file_wysiwyg_view_mode']; |
|
598 |
db_delete('media_view_mode_wysiwyg')->condition('type', $file_type)->execute(); |
|
599 |
if ($view_mode != 'none') { |
|
600 |
$record = array('type' => $file_type, 'view_mode' => $view_mode); |
|
601 |
drupal_write_record('media_view_mode_wysiwyg', $record); |
|
602 |
} |
|
603 |
} |
|
604 |
|
|
605 |
/** |
|
606 |
* Implements hook_form_FORM_ID_alter(). |
|
607 |
* |
|
608 |
* Add checkbox to restrict file type view mode availability in wysiwyg. |
|
609 |
*/ |
|
610 |
function media_wysiwyg_form_file_entity_file_display_form_alter(&$form, &$form_state) { |
|
611 |
$file_type = $form['#file_type']; |
|
612 |
$view_mode = $form['#view_mode']; |
|
613 |
|
|
614 |
if ($view_mode != 'none') { |
|
615 |
$restricted = db_query( |
|
616 |
'SELECT 1 FROM {media_restrict_wysiwyg} WHERE type = :type and display = :display', |
|
617 |
array(':type' => $file_type, ':display' => $view_mode) |
|
618 |
)->fetchField(); |
|
619 |
$form['restrict_wysiwyg'] = array( |
|
620 |
'#type' => 'checkbox', |
|
621 |
'#title' => t('Restrict in WYSIWYG'), |
|
622 |
'#description' => t('If checked, then this mode will not be allowed from the WYSIWYG.'), |
|
623 |
'#default_value' => !empty($restricted), |
|
624 |
); |
|
625 |
array_unshift($form['#submit'], 'media_wysiwyg_form_file_entity_file_display_form_alter_submit'); |
|
626 |
} |
|
627 |
|
|
628 |
return $form; |
|
629 |
} |
|
630 |
|
|
631 |
/** |
|
632 |
* Custom submit handler. |
|
633 |
* |
|
634 |
* Save restricted wysiwyg file types. |
|
635 |
* |
|
636 |
* @see media_wysiwyg_form_file_entity_file_display_form_alter(). |
|
637 |
*/ |
|
638 |
function media_wysiwyg_form_file_entity_file_display_form_alter_submit(&$form, &$form_state) { |
|
639 |
$file_type = $form['#file_type']; |
|
640 |
$view_mode = $form['#view_mode']; |
|
641 |
db_delete('media_restrict_wysiwyg')->condition('type', $file_type)->condition('display', $view_mode)->execute(); |
|
642 |
if (!empty($form_state['values']['restrict_wysiwyg'])) { |
|
643 |
$record = array('type' => $file_type, 'display' => $view_mode); |
|
644 |
drupal_write_record('media_restrict_wysiwyg', $record); |
|
645 |
} |
|
646 |
} |
Formats disponibles : Unified diff
Weekly update of contrib modules