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