danielebarchiesi@0
|
1 <?php
|
danielebarchiesi@0
|
2
|
danielebarchiesi@0
|
3 /**
|
danielebarchiesi@0
|
4 * Implements hook_features_export_options().
|
danielebarchiesi@0
|
5 */
|
danielebarchiesi@0
|
6 function wysiwyg_features_export_options() {
|
danielebarchiesi@0
|
7 $profiles = array();
|
danielebarchiesi@0
|
8
|
danielebarchiesi@0
|
9 // Get human-readable name from filter module.
|
danielebarchiesi@0
|
10 $formats = filter_formats();
|
danielebarchiesi@0
|
11
|
danielebarchiesi@0
|
12 foreach (array_keys(wysiwyg_profile_load_all()) as $format) {
|
danielebarchiesi@0
|
13 // Text format may vanish without deleting the wysiwyg profile.
|
danielebarchiesi@0
|
14 if (isset($formats[$format])) {
|
danielebarchiesi@0
|
15 $profiles[$format] = $formats[$format]->name;
|
danielebarchiesi@0
|
16 }
|
danielebarchiesi@0
|
17 }
|
danielebarchiesi@0
|
18 return $profiles;
|
danielebarchiesi@0
|
19 }
|
danielebarchiesi@0
|
20
|
danielebarchiesi@0
|
21 /**
|
danielebarchiesi@0
|
22 * Implements hook_features_export().
|
danielebarchiesi@0
|
23 */
|
danielebarchiesi@0
|
24 function wysiwyg_features_export($data, &$export, $module_name = '') {
|
danielebarchiesi@0
|
25 $pipe = array();
|
danielebarchiesi@0
|
26
|
danielebarchiesi@0
|
27 // The wysiwyg_default_formats() hook integration is provided by the
|
danielebarchiesi@0
|
28 // features module so we need to add it as a dependency.
|
danielebarchiesi@0
|
29 $export['dependencies']['features'] = 'features';
|
danielebarchiesi@0
|
30 $export['dependencies']['wysiwyg'] = 'wysiwyg';
|
danielebarchiesi@0
|
31
|
danielebarchiesi@0
|
32 foreach ($data as $name) {
|
danielebarchiesi@0
|
33 if ($profile = wysiwyg_get_profile($name)) {
|
danielebarchiesi@0
|
34 // Add profile to exports.
|
danielebarchiesi@0
|
35 $export['features']['wysiwyg'][$profile->format] = $profile->format;
|
danielebarchiesi@0
|
36
|
danielebarchiesi@0
|
37 // Chain filter format for export.
|
danielebarchiesi@0
|
38 $pipe['filter'][] = $profile->format;
|
danielebarchiesi@0
|
39 }
|
danielebarchiesi@0
|
40 }
|
danielebarchiesi@0
|
41
|
danielebarchiesi@0
|
42 return $pipe;
|
danielebarchiesi@0
|
43 }
|
danielebarchiesi@0
|
44
|
danielebarchiesi@0
|
45 /**
|
danielebarchiesi@0
|
46 * Implements hook_features_export_render().
|
danielebarchiesi@0
|
47 */
|
danielebarchiesi@0
|
48 function wysiwyg_features_export_render($module, $data, $export = NULL) {
|
danielebarchiesi@0
|
49 $code = array();
|
danielebarchiesi@0
|
50 $code[] = ' $profiles = array();';
|
danielebarchiesi@0
|
51 $code[] = '';
|
danielebarchiesi@0
|
52
|
danielebarchiesi@0
|
53 foreach ($data as $name) {
|
danielebarchiesi@0
|
54 if ($profile = wysiwyg_get_profile($name)) {
|
danielebarchiesi@0
|
55 $profile_export = features_var_export($profile, ' ');
|
danielebarchiesi@0
|
56 $profile_identifier = features_var_export($profile->format);
|
danielebarchiesi@0
|
57 $code[] = " // Exported profile: {$profile->format}";
|
danielebarchiesi@0
|
58 $code[] = " \$profiles[{$profile_identifier}] = {$profile_export};";
|
danielebarchiesi@0
|
59 $code[] = "";
|
danielebarchiesi@0
|
60 }
|
danielebarchiesi@0
|
61 }
|
danielebarchiesi@0
|
62
|
danielebarchiesi@0
|
63 $code[] = ' return $profiles;';
|
danielebarchiesi@0
|
64 $code = implode("\n", $code);
|
danielebarchiesi@0
|
65 return array('wysiwyg_default_profiles' => $code);
|
danielebarchiesi@0
|
66 }
|
danielebarchiesi@0
|
67
|
danielebarchiesi@0
|
68 /**
|
danielebarchiesi@0
|
69 * Implements hook_features_revert().
|
danielebarchiesi@0
|
70 */
|
danielebarchiesi@0
|
71 function wysiwyg_features_revert($module) {
|
danielebarchiesi@0
|
72 return wysiwyg_features_rebuild($module);
|
danielebarchiesi@0
|
73 }
|
danielebarchiesi@0
|
74
|
danielebarchiesi@0
|
75 /**
|
danielebarchiesi@0
|
76 * Implements hook_features_rebuild().
|
danielebarchiesi@0
|
77 */
|
danielebarchiesi@0
|
78 function wysiwyg_features_rebuild($module) {
|
danielebarchiesi@0
|
79 if ($defaults = features_get_default('wysiwyg', $module)) {
|
danielebarchiesi@0
|
80 foreach ($defaults as $profile) {
|
danielebarchiesi@0
|
81 db_merge('wysiwyg')
|
danielebarchiesi@0
|
82 ->key(array('format' => $profile['format']))
|
danielebarchiesi@0
|
83 ->fields(array(
|
danielebarchiesi@0
|
84 'editor' => $profile['editor'],
|
danielebarchiesi@0
|
85 'settings' => serialize($profile['settings']),
|
danielebarchiesi@0
|
86 ))
|
danielebarchiesi@0
|
87 ->execute();
|
danielebarchiesi@0
|
88 }
|
danielebarchiesi@0
|
89 wysiwyg_profile_cache_clear();
|
danielebarchiesi@0
|
90 }
|
danielebarchiesi@0
|
91 }
|
danielebarchiesi@0
|
92
|