Révision 7e72b748
Ajouté par Assos Assos il y a plus de 6 ans
drupal7/sites/all/modules/ctools/CHANGELOG.txt | ||
---|---|---|
1 |
Current API VERSION: 2.0. See API.txt for more information. |
|
2 |
|
|
3 |
ctools 7.x-1.x-dev |
|
4 |
================== |
|
5 |
#1008120: "New custom content" shows empty form if custom content panes module is not enabled. |
|
6 |
#999302 by troky: Fix jump menu. Apparently this wasn't actually committed the last time it was committed. |
|
7 |
#1065976 by tekante and David_Rothstein: Reset plugin static cache during module enable to prevent stale data from harming export ui. |
|
8 |
#1016510 by EclipseGC: Make the taxonomy system page functional. |
|
9 |
|
|
10 |
ctools 7.x-1.x-alpha2 (05-Jan-2011) |
|
11 |
=================================== |
|
12 |
|
|
13 |
#911396 by alex_b: Prevent notices in export UI. |
|
14 |
#919768 by mikey_p: Allow url options to be sent to ctools_ajax_command_url(). |
|
15 |
#358953 by cedarm: Allow term context to return lowercase, spaces to dashes versions of terms. |
|
16 |
#931434 by EclipseGc: Argument plugin for node revision ID. |
|
17 |
#910656: CTools AJAX sample wizard demo "domesticated" checkbox value not stored. |
|
18 |
#922442 by EugenMayer, neclimdul and voxpelli: Make sure ctools_include can handle '' or NULL directory. |
|
19 |
#919956 by traviss359: Correct example in wizard advanced help. |
|
20 |
#942968: Fix taxonomy term access rule with tag term vocabs. |
|
21 |
#840344: node add argument had crufty code causing notices. |
|
22 |
#944462 by longhairedgit: Invalid character in regex causes rare notice. |
|
23 |
#938778 by dereine: Fix profile content type for D7 updates. |
|
24 |
Add detach event to modal close so that wysiwyg can detach the editor. |
|
25 |
Variant titles showing up as blank if more than one variant on a page. |
|
26 |
#940016: token support was not yet updated for D7. |
|
27 |
#940446: Skip validation on back and cancel buttons in all wizards. |
|
28 |
#954492: Redirect not always working in wizard.inc |
|
29 |
#955348: Lack of redirect on "Update" button in Page Manager causing data loss sometimes. |
|
30 |
#941778: Update and save button should not appear in the "Add variant" path. |
|
31 |
#955070 by EclipseGc: Update ctools internal page tokens to work properly on content all content. |
|
32 |
#956890 by EclipseGc: Update views_content to not use views dependency since that is gone. |
|
33 |
#954728 by EclipseGc: Update node template page function name to not collide with new hook_node_view(). |
|
34 |
#946534 by EclipseGc: Add support for field content on all entitities. |
|
35 |
#952586 by EclipseGc: Fix node_author content type. |
|
36 |
#959206: If a context is not set when rendering content, attempt to guess the context (fixes Views panes where "From context" was added but pane was never edited.) |
|
37 |
#961654 by benshell: drupal_alter() only supports 4 arguments. |
|
38 |
#911362 by alex_b: Facilitate plugin cache resets for tests. |
|
39 |
#945360 by naxoc: node_tag_new() not updated to D7. |
|
40 |
#953804 by EclipseGc: Fix node comment rendering. |
|
41 |
#953542 by EclipseGc: Fix node rendering. |
|
42 |
#953776 by EclipseGc: Fix node link rendering. |
|
43 |
#954772 by EclipseGc: Fix node build mode selection in node content type. |
|
44 |
#954762 by EclipseGc: Fix comment forbidden theme call. |
|
45 |
#954894 by EclipseGc: Fix breadcrumb content type. |
|
46 |
#955180 by EclipseGc: Fix page primary navigation type. |
|
47 |
#957190 by EclipseGc: Fix page secondary navigation type. |
|
48 |
#957194 by EclipseGc: Remove mission content type, since D7 no longer has a site mission. |
|
49 |
#957348 by EclipseGc: Fix search form URL path. |
|
50 |
#952586 by andypost: Use format_username for displaying unlinked usernames. |
|
51 |
#963800 by benshell: Fix query to fetch custom block title. |
|
52 |
#983496 by Amitaibu: Fix term argument to use proper load function. |
|
53 |
#989484 by Amitaibu: Fix notice in views plugin. |
|
54 |
#982496: Fix token context. |
|
55 |
#995026: Fix export UI during enable/disable which would throw notices and not properly set/unset menu items. |
|
56 |
#998870 by Amitaibu: Fix notice when content has no icon by using function already designed for that. |
|
57 |
#983576 by Amitaibu: Node view fallback task showed white screen. |
|
58 |
#1004644 by pillarsdotnet: Update a missed theme() call to D7. |
|
59 |
#1006162 by aspilicious: .info file cleanup. |
|
60 |
#998312 by dereine: Support the expanded/hidden options that Views did for dependent.js |
|
61 |
#955030: Remove no longer supported footer message content type. |
|
62 |
Fix broken query in term context config. |
|
63 |
#992022 by pcambra: Fix node autocomplete. |
|
64 |
#946302 by BerdArt and arywyr: Fix PHP 5.3 reference error. |
|
65 |
#980528 by das-peter: Notice fix with entity settings. |
|
66 |
#999302 by troky: ctools_jump_menu() needed updating to new form parameters. |
|
67 |
#964174: stylizer plugin theme delegation was in the wrong place, causing errors. |
|
68 |
#991658 by burlap: Fully load the "user" context for the logged in user because not all fields are in $user. |
|
69 |
#1014866 by das-peter: Smarter title panes, notice fix on access plugin descriptions. |
|
70 |
#1015662 by troky: plugin .info files were not using correct filepaths. |
|
71 |
#941780 by EclipseGc: Restore the "No blocks" functionality. |
|
72 |
#951048 by EclipseGc: Tighter entity integration so that new entities are automatic contexts and relationships. |
|
73 |
#941800 by me and aspilicious: Use Drupal 7 #machine_name automation on page manager pages and all export_ui defaults. |
|
74 |
Disabled exportables and pages not properly greyed out. |
|
75 |
#969208 by me and benshell: Get user_view and user profile working. |
|
76 |
#941796: Recategorize blocks |
|
77 |
|
|
78 |
ctools 7.x-1.x-alpha1 |
|
79 |
===================== |
|
80 |
|
|
81 |
Changelog reset for 7.x |
|
82 |
Basic conversion done during sprint. |
drupal7/sites/all/modules/ctools/bulk_export/bulk_export.info | ||
---|---|---|
5 | 5 |
package = Chaos tool suite |
6 | 6 |
version = CTOOLS_MODULE_VERSION |
7 | 7 |
|
8 |
|
|
9 |
; Information added by Drupal.org packaging script on 2016-11-22 |
|
10 |
version = "7.x-1.12" |
|
8 |
; Information added by Drupal.org packaging script on 2018-02-04 |
|
9 |
version = "7.x-1.13" |
|
11 | 10 |
core = "7.x" |
12 | 11 |
project = "ctools" |
13 |
datestamp = "1479787162"
|
|
12 |
datestamp = "1517704095"
|
|
14 | 13 |
|
drupal7/sites/all/modules/ctools/bulk_export/bulk_export.module | ||
---|---|---|
137 | 137 |
// Add hook_ctools_plugin_api at the top of the module code, if there is any. |
138 | 138 |
if ($api_code) { |
139 | 139 |
foreach ($api_code as $api_hook => $text) { |
140 |
$api = "\n/**\n";
|
|
140 |
$api = "\n/**\n"; |
|
141 | 141 |
$api .= " * Implements hook_$api_hook().\n"; |
142 | 142 |
$api .= " */\n"; |
143 | 143 |
$api .= "function {$module_name}_$api_hook(\$module, \$api) {\n"; |
... | ... | |
148 | 148 |
} |
149 | 149 |
|
150 | 150 |
if ($module_code) { |
151 |
$module = "<?php\n\n";
|
|
151 |
$module = "<?php\n\n"; |
|
152 | 152 |
$module .= "/**\n"; |
153 | 153 |
$module .= " * @file\n"; |
154 | 154 |
$module .= " * Bulk export of objects generated by Bulk export module.\n"; |
... | ... | |
193 | 193 |
|
194 | 194 |
/** |
195 | 195 |
* FAPI definition for the bulk exporter form. |
196 |
* |
|
197 | 196 |
*/ |
198 | 197 |
function bulk_export_export_form($form, &$form_state) { |
199 | 198 |
|
drupal7/sites/all/modules/ctools/css/button.css | ||
---|---|---|
1 |
|
|
2 | 1 |
.ctools-button-processed { |
3 | 2 |
border-style: solid; |
4 | 3 |
border-width: 1px; |
drupal7/sites/all/modules/ctools/css/collapsible-div.css | ||
---|---|---|
1 |
|
|
2 | 1 |
.ctools-collapsible-container .ctools-toggle { |
3 | 2 |
float: left; |
4 | 3 |
width: 21px; |
drupal7/sites/all/modules/ctools/css/ctools.css | ||
---|---|---|
5 | 5 |
} |
6 | 6 |
|
7 | 7 |
.ctools-owns-lock { |
8 |
background: #FFFFDD none repeat scroll 0 0;
|
|
9 |
border: 1px solid #F0C020;
|
|
8 |
background: #ffffdd none repeat scroll 0 0;
|
|
9 |
border: 1px solid #f0c020;
|
|
10 | 10 |
padding: 1em; |
11 | 11 |
} |
12 | 12 |
|
drupal7/sites/all/modules/ctools/css/dropbutton.css | ||
---|---|---|
1 |
|
|
2 | 1 |
.ctools-dropbutton-processed { |
3 | 2 |
padding-right: 18px; |
4 | 3 |
position: relative; |
drupal7/sites/all/modules/ctools/css/dropdown.css | ||
---|---|---|
49 | 49 |
html.js div.ctools-dropdown div.ctools-dropdown-container ul li li a { |
50 | 50 |
padding-left: 25px; |
51 | 51 |
width: 150px; |
52 |
color: #027AC6;
|
|
52 |
color: #027ac6;
|
|
53 | 53 |
} |
54 | 54 |
|
55 | 55 |
html.js div.ctools-dropdown div.ctools-dropdown-container ul li a { |
56 | 56 |
text-decoration: none; |
57 | 57 |
padding-left: 5px; |
58 | 58 |
width: 170px; |
59 |
color: #027AC6;
|
|
59 |
color: #027ac6;
|
|
60 | 60 |
} |
61 | 61 |
|
62 | 62 |
html.js div.ctools-dropdown div.ctools-dropdown-container ul li span { |
... | ... | |
69 | 69 |
} |
70 | 70 |
|
71 | 71 |
html.js .ctools-dropdown-hover { |
72 |
background-color: #ECECEC;
|
|
72 |
background-color: #ececec;
|
|
73 | 73 |
} |
drupal7/sites/all/modules/ctools/css/modal.css | ||
---|---|---|
79 | 79 |
float: none; |
80 | 80 |
} |
81 | 81 |
|
82 |
div.ctools-modal-content .modal-form .no-float label {
|
|
82 |
div.ctools-modal-content .modal-form .no-float label { |
|
83 | 83 |
width: auto; |
84 | 84 |
} |
85 | 85 |
|
drupal7/sites/all/modules/ctools/css/stylizer.css | ||
---|---|---|
1 |
|
|
2 | 1 |
/* Farbtastic placement */ |
3 | 2 |
.color-form { |
4 | 3 |
max-width: 50em; |
... | ... | |
32 | 31 |
clear: left; /* LTR */ |
33 | 32 |
width: 14em; |
34 | 33 |
} |
35 |
.color-form .form-text, .color-form .form-select { |
|
34 |
.color-form .form-text, |
|
35 |
.color-form .form-select { |
|
36 | 36 |
float: left; /* LTR */ |
37 | 37 |
} |
38 | 38 |
.color-form .form-text { |
... | ... | |
84 | 84 |
cursor: default; |
85 | 85 |
} |
86 | 86 |
|
87 |
.ctools-style-icons .form-item {
|
|
87 |
.ctools-style-icons .form-item { |
|
88 | 88 |
width: 100px; |
89 | 89 |
float: left; |
90 | 90 |
margin: 0 3px !important; |
drupal7/sites/all/modules/ctools/css/wizard.css | ||
---|---|---|
1 |
|
|
2 | 1 |
.wizard-trail { |
3 | 2 |
font-size: 120%; |
4 | 3 |
} |
drupal7/sites/all/modules/ctools/ctools.api.php | ||
---|---|---|
17 | 17 |
* Inform CTools about plugin types. |
18 | 18 |
* |
19 | 19 |
* @return array |
20 |
* An array of plugin types, keyed by the type name. |
|
21 |
* See the advanced help topic 'plugins-creating' for details of the array |
|
22 |
* properties. |
|
20 |
* An array of plugin types, keyed by the type name.
|
|
21 |
* See the advanced help topic 'plugins-creating' for details of the array
|
|
22 |
* properties.
|
|
23 | 23 |
*/ |
24 | 24 |
function hook_ctools_plugin_type() { |
25 | 25 |
$plugins['my_type'] = array( |
... | ... | |
65 | 65 |
* directory location is being requested. |
66 | 66 |
* @param string $plugin_type |
67 | 67 |
* The name of the plugin type for which a base directory is being requested. |
68 |
* |
|
68 | 69 |
* @return string |
69 | 70 |
* The path where CTools' plugin system should search for plugin files, |
70 | 71 |
* relative to your module's root. Omit leading and trailing slashes. |
... | ... | |
94 | 95 |
// Yes, this is exactly like Form 2 - just a different reasoning for it. |
95 | 96 |
return "plugins/$plugin_type"; |
96 | 97 |
} |
97 |
// Finally, if nothing matches, it's safe to return nothing at all (or NULL).
|
|
98 |
// Finally, if nothing matches, it's safe to return nothing at all (== NULL).
|
|
98 | 99 |
} |
99 | 100 |
|
100 | 101 |
/** |
... | ... | |
155 | 156 |
* allow to use it in the math expression api. |
156 | 157 |
* |
157 | 158 |
* @param $functions |
158 |
* An array which has the functions as value.
|
|
159 |
* An array which has the functions as value. |
|
159 | 160 |
*/ |
160 | 161 |
function hook_ctools_math_expression_functions_alter(&$functions) { |
161 | 162 |
// Allow to convert from degrees to radiant. |
... | ... | |
200 | 201 |
*/ |
201 | 202 |
function hook_ctools_content_subtype_alter($subtype, $plugin) { |
202 | 203 |
// Force a particular subtype of a particular plugin to render last. |
203 |
if ($plugin['module'] == 'some_plugin_module' && $plugin['name'] == 'some_plugin_name' && $subtype['subtype_id'] == 'my_subtype_id') { |
|
204 |
if ($plugin['module'] === 'some_plugin_module' |
|
205 |
&& $plugin['name'] === 'some_plugin_name' |
|
206 |
&& $subtype['subtype_id'] === 'my_subtype_id' |
|
207 |
) { |
|
204 | 208 |
$subtype['render last'] = TRUE; |
205 | 209 |
} |
206 | 210 |
} |
... | ... | |
228 | 232 |
} |
229 | 233 |
} |
230 | 234 |
|
235 |
/** |
|
236 |
* Alter the conversion of context items by ctools context plugin convert()s. |
|
237 |
* |
|
238 |
* @param ctools_context $context |
|
239 |
* The current context plugin object. If this implemented a 'convert' |
|
240 |
* function, the value passed in has been processed by that function. |
|
241 |
* @param string $converter |
|
242 |
* A string associated with the plugin type, identifying the operation. |
|
243 |
* @param string $value |
|
244 |
* The value being converted; this is the only return from the function. |
|
245 |
* @param $converter_options |
|
246 |
* Array of key-value pairs to pass to a converter function from higher |
|
247 |
* levels. |
|
248 |
* |
|
249 |
* @see ctools_context_convert_context() |
|
250 |
*/ |
|
251 |
function hook_ctools_context_converter_alter($context, $converter, &$value, $converter_options) { |
|
252 |
if ($converter === 'mystring') { |
|
253 |
$value = 'fixed'; |
|
254 |
} |
|
255 |
} |
|
256 |
|
|
231 | 257 |
/** |
232 | 258 |
* Alter the definition of entity context plugins. |
233 | 259 |
* |
... | ... | |
266 | 292 |
$settings['lower case'] = TRUE; |
267 | 293 |
} |
268 | 294 |
|
295 |
/** |
|
296 |
* Let other modules modify the context handler before it is rendered. |
|
297 |
* |
|
298 |
* @param object $handler |
|
299 |
* A handler for a current task and subtask. |
|
300 |
* @param array $contexts |
|
301 |
* An associative array of contexts. |
|
302 |
* @param array $args |
|
303 |
* An array for current args. |
|
304 |
* |
|
305 |
* @see ctools_context_handler_pre_render() |
|
306 |
*/ |
|
307 |
function ctools_context_handler_pre_render($handler, $contexts, $args) { |
|
308 |
$handler->conf['css_id'] = 'my-id'; |
|
309 |
} |
|
310 |
|
|
269 | 311 |
/** |
270 | 312 |
* @} End of "addtogroup hooks". |
271 | 313 |
*/ |
drupal7/sites/all/modules/ctools/ctools.info | ||
---|---|---|
12 | 12 |
files[] = tests/css.test |
13 | 13 |
files[] = tests/css_cache.test |
14 | 14 |
files[] = tests/ctools.plugins.test |
15 |
files[] = tests/ctools.test |
|
15 | 16 |
files[] = tests/math_expression.test |
16 | 17 |
files[] = tests/math_expression_stack.test |
17 | 18 |
files[] = tests/object_cache.test |
19 |
files[] = tests/object_cache_unit.test |
|
20 |
files[] = tests/page_tokens.test |
|
21 |
files[] = tests/uuid_with_uuid.test |
|
22 |
files[] = tests/uuid_without_uuid.test |
|
18 | 23 |
|
19 |
; Information added by Drupal.org packaging script on 2016-11-22 |
|
20 |
version = "7.x-1.12" |
|
24 |
; Dependencies that are only used for the tests. |
|
25 |
; @see tests/uuid_with_uuid.test |
|
26 |
test_dependencies[] = uuid |
|
27 |
|
|
28 |
; Information added by Drupal.org packaging script on 2018-02-04 |
|
29 |
version = "7.x-1.13" |
|
21 | 30 |
core = "7.x" |
22 | 31 |
project = "ctools" |
23 |
datestamp = "1479787162"
|
|
32 |
datestamp = "1517704095"
|
|
24 | 33 |
|
drupal7/sites/all/modules/ctools/ctools.install | ||
---|---|---|
40 | 40 |
* Implements hook_schema(). |
41 | 41 |
*/ |
42 | 42 |
function ctools_schema() { |
43 |
return ctools_schema_3(); |
|
43 |
return ctools_schema_4(); |
|
44 |
} |
|
45 |
|
|
46 |
/** |
|
47 |
* Version 4 of the CTools schema. |
|
48 |
*/ |
|
49 |
function ctools_schema_4() { |
|
50 |
$schema = ctools_schema_3(); |
|
51 |
|
|
52 |
// Update the 'name' field to be 255 bytes long: |
|
53 |
$schema['ctools_object_cache']['fields']['name']['length'] = 255; |
|
54 |
|
|
55 |
return $schema; |
|
44 | 56 |
} |
45 | 57 |
|
46 | 58 |
/** |
... | ... | |
49 | 61 |
function ctools_schema_3() { |
50 | 62 |
$schema = ctools_schema_2(); |
51 | 63 |
|
52 |
// update the 'obj' field to be 128 bytes long:
|
|
64 |
// Update the 'obj' field to be 128 bytes long:
|
|
53 | 65 |
$schema['ctools_object_cache']['fields']['obj']['length'] = 128; |
54 | 66 |
|
55 | 67 |
return $schema; |
... | ... | |
61 | 73 |
function ctools_schema_2() { |
62 | 74 |
$schema = ctools_schema_1(); |
63 | 75 |
|
64 |
// update the 'name' field to be 128 bytes long:
|
|
76 |
// Update the 'name' field to be 128 bytes long:
|
|
65 | 77 |
$schema['ctools_object_cache']['fields']['name']['length'] = 128; |
66 | 78 |
|
67 | 79 |
// Update the 'data' field to be type 'blob'. |
... | ... | |
95 | 107 |
'serialize' => TRUE, |
96 | 108 |
), |
97 | 109 |
'filter' => array( |
98 |
'type' => 'int',
|
|
99 |
'size' => 'tiny',
|
|
100 |
'description' => 'Whether or not this CSS needs to be filtered.',
|
|
101 |
),
|
|
110 |
'type' => 'int', |
|
111 |
'size' => 'tiny', |
|
112 |
'description' => 'Whether or not this CSS needs to be filtered.', |
|
113 |
), |
|
102 | 114 |
), |
103 | 115 |
'primary key' => array('cid'), |
104 | 116 |
); |
... | ... | |
197 | 209 |
if ($result) { |
198 | 210 |
db_delete('system')->condition('name', 'panels_views')->execute(); |
199 | 211 |
module_enable(array('views_content'), TRUE); |
200 |
} |
|
212 |
}
|
|
201 | 213 |
} |
202 | 214 |
|
203 | 215 |
/** |
... | ... | |
216 | 228 |
} |
217 | 229 |
|
218 | 230 |
/** |
219 |
* ctools_custom_content table was originally here, but is now moved to |
|
231 |
* The ctools_custom_content table was originally here, but is now moved to
|
|
220 | 232 |
* its own module. |
221 | 233 |
*/ |
222 | 234 |
function ctools_update_6007() { |
... | ... | |
230 | 242 |
} |
231 | 243 |
|
232 | 244 |
/** |
233 |
* ctools_object_cache needs to be defined as a blob. |
|
245 |
* The ctools_object_cache needs to be defined as a blob.
|
|
234 | 246 |
*/ |
235 | 247 |
function ctools_update_6008() { |
236 | 248 |
db_delete('ctools_object_cache') |
237 | 249 |
->execute(); |
238 | 250 |
|
239 | 251 |
db_change_field('ctools_object_cache', 'data', 'data', array( |
240 |
'type' => 'blob',
|
|
241 |
'size' => 'big',
|
|
242 |
'description' => 'Serialized data being stored.',
|
|
243 |
'serialize' => TRUE,
|
|
244 |
)
|
|
252 |
'type' => 'blob', |
|
253 |
'size' => 'big', |
|
254 |
'description' => 'Serialized data being stored.', |
|
255 |
'serialize' => TRUE, |
|
256 |
) |
|
245 | 257 |
); |
246 | 258 |
} |
247 | 259 |
|
... | ... | |
263 | 275 |
'description' => 'The type of the object this cache is attached to; this essentially represents the owner so that several sub-systems can use this cache.', |
264 | 276 |
)); |
265 | 277 |
} |
278 |
|
|
279 |
/** |
|
280 |
* Increase the length of the ctools_object_cache.name column to 255. |
|
281 |
*/ |
|
282 |
function ctools_update_7002() { |
|
283 |
db_change_field('ctools_object_cache', 'name', 'name', array( |
|
284 |
'type' => 'varchar', |
|
285 |
'length' => '255', |
|
286 |
'not null' => TRUE, |
|
287 |
)); |
|
288 |
} |
drupal7/sites/all/modules/ctools/ctools.module | ||
---|---|---|
23 | 23 |
* ; Requires CTools v7.x-1.4 or newer. |
24 | 24 |
* dependencies[] = ctools (>=1.4) |
25 | 25 |
*/ |
26 |
define('CTOOLS_MODULE_VERSION', '7.x-1.11');
|
|
26 |
define('CTOOLS_MODULE_VERSION', '7.x-1.13');
|
|
27 | 27 |
|
28 | 28 |
/** |
29 | 29 |
* Test the CTools API version. |
... | ... | |
75 | 75 |
* The minimum version of CTools necessary for your software to run with it. |
76 | 76 |
* @param $maximum |
77 | 77 |
* The maximum version of CTools allowed for your software to run with it. |
78 |
* |
|
79 |
* @return bool |
|
80 |
* TRUE if the running ctools is usable, FALSE otherwise. |
|
78 | 81 |
*/ |
79 | 82 |
function ctools_api_version($minimum, $maximum = NULL) { |
80 | 83 |
if (version_compare(CTOOLS_API_VERSION, $minimum, '<')) { |
... | ... | |
89 | 92 |
} |
90 | 93 |
|
91 | 94 |
// ----------------------------------------------------------------------- |
92 |
// General utility functions |
|
93 |
|
|
95 |
// General utility functions. |
|
94 | 96 |
/** |
95 | 97 |
* Include .inc files as necessary. |
96 | 98 |
* |
... | ... | |
118 | 120 |
* @param $dir |
119 | 121 |
* Optional subdirectory containing the include file. |
120 | 122 |
*/ |
123 |
|
|
121 | 124 |
function ctools_include($file, $module = 'ctools', $dir = 'includes') { |
122 | 125 |
static $used = array(); |
123 | 126 |
|
... | ... | |
147 | 150 |
/** |
148 | 151 |
* Add an arbitrary path to the $form_state so it can work with form cache. |
149 | 152 |
* |
150 |
* module_load_include uses an unfortunately annoying syntax to work, making it
|
|
151 |
* difficult to translate the more simple $path + $file syntax. |
|
153 |
* The module_load_include() function uses an unfortunately annoying syntax to
|
|
154 |
* work, making it difficult to translate the more simple $path + $file syntax.
|
|
152 | 155 |
*/ |
153 | 156 |
function ctools_form_include_file(&$form_state, $filename) { |
154 | 157 |
if (!isset($form_state['build_info']['args'])) { |
... | ... | |
172 | 175 |
* Optional module containing the include. |
173 | 176 |
* @param $dir |
174 | 177 |
* Optional subdirectory containing the include file. |
178 |
* |
|
179 |
* @return string |
|
180 |
* A string containing the appropriate path from drupal root. |
|
175 | 181 |
*/ |
176 | 182 |
function ctools_image_path($image, $module = 'ctools', $dir = 'images') { |
177 | 183 |
return drupal_get_path('module', $module) . "/$dir/" . $image; |
... | ... | |
211 | 217 |
* Optional module containing the include. |
212 | 218 |
* @param $dir |
213 | 219 |
* Optional subdirectory containing the include file. |
220 |
* |
|
221 |
* @return string |
|
222 |
* A string containing the appropriate path from drupal root. |
|
214 | 223 |
*/ |
215 | 224 |
function ctools_attach_css($file, $module = 'ctools', $dir = 'css') { |
216 | 225 |
return drupal_get_path('module', $module) . "/$dir/$file.css"; |
... | ... | |
249 | 258 |
* Optional module containing the include. |
250 | 259 |
* @param $dir |
251 | 260 |
* Optional subdirectory containing the include file. |
261 |
* |
|
262 |
* @return string |
|
263 |
* A string containing the appropriate path from drupal root. |
|
252 | 264 |
*/ |
253 | 265 |
function ctools_attach_js($file, $module = 'ctools', $dir = 'js') { |
254 | 266 |
return drupal_get_path('module', $module) . "/$dir/$file.js"; |
... | ... | |
267 | 279 |
return user_roles(); |
268 | 280 |
} |
269 | 281 |
|
270 |
/* |
|
271 |
* Break x,y,z and x+y+z into an array. Numeric only. |
|
282 |
/** |
|
283 |
* Parse integer sequences of the form "x,y,z" or "x+y+z" into separate values. |
|
284 |
* |
|
285 |
* A string with integers separated by comma (,) is reported as an 'and' set; |
|
286 |
* separation by a plus sign (+) or a space ( ) is an 'or' set. The meaning |
|
287 |
* of this is up to the caller. Negative or fractional numbers are not |
|
288 |
* recognised. |
|
289 |
* |
|
290 |
* Additional space characters within or around the sequence are not allowed. |
|
272 | 291 |
* |
273 | 292 |
* @param $str |
274 | 293 |
* The string to parse. |
275 | 294 |
* |
276 |
* @return $object |
|
277 |
* An object containing |
|
278 |
* - operator: Either 'and' or 'or' |
|
279 |
* - value: An array of numeric values. |
|
295 |
* @return object |
|
296 |
* An object containing the properties: |
|
297 |
* |
|
298 |
* - operator: Either 'and' or 'or' when there are multiple matched values. |
|
299 |
* Absent when invalid_input is TRUE or there is only one value. |
|
300 |
* - value: An array of integers (never strings) from $str. An empty array is |
|
301 |
* returned if the input is empty. A single integer input is returned |
|
302 |
* as a single value, but no 'operator' is defined. |
|
303 |
* - invalid_input: TRUE if input could not be parsed and the values array |
|
304 |
* will contain just -1. This property is otherwise absent. |
|
280 | 305 |
*/ |
281 | 306 |
function ctools_break_phrase($str) { |
282 | 307 |
$object = new stdClass(); |
... | ... | |
286 | 311 |
$object->operator = 'or'; |
287 | 312 |
$object->value = preg_split('/[+ ]/', $str); |
288 | 313 |
} |
289 |
else if (preg_match('/^([0-9]+,)*[0-9]+$/', $str)) {
|
|
314 |
elseif (preg_match('/^([0-9]+,)*[0-9]+$/', $str)) { |
|
290 | 315 |
$object->operator = 'and'; |
291 | 316 |
$object->value = explode(',', $str); |
292 | 317 |
} |
... | ... | |
304 | 329 |
|
305 | 330 |
// Doubly ensure that all values are numeric only. |
306 | 331 |
foreach ($object->value as $id => $value) { |
307 |
$object->value[$id] = intval($value);
|
|
332 |
$object->value[$id] = (int) $value;
|
|
308 | 333 |
} |
309 | 334 |
|
310 | 335 |
return $object; |
... | ... | |
314 | 339 |
* Set a token/value pair to be replaced later in the request, specifically in |
315 | 340 |
* ctools_page_token_processing(). |
316 | 341 |
* |
317 |
* @param $token |
|
342 |
* @param string $token
|
|
318 | 343 |
* The token to be replaced later, during page rendering. This should |
319 |
* ideally be a string inside of an HTML comment, so that if there is |
|
320 |
* no replacement, the token will not render on the page. |
|
321 |
* @param $type |
|
344 |
* ideally be a string inside of an HTML comment, so that if there is |
|
345 |
* no replacement, the token will not render on the page. |
|
346 |
* If $token is NULL, the token set is not changed, but is still |
|
347 |
* returned. |
|
348 |
* @param string $type |
|
322 | 349 |
* The type of the token. Can be either 'variable', which will pull data |
323 |
* directly from the page variables |
|
324 |
* @param $argument |
|
325 |
* If $type == 'variable' then argument should be the key to fetch from |
|
326 |
* the $variables. If $type == 'callback' then it should either be the |
|
327 |
* callback, or an array that will be sent to call_user_func_array(). |
|
328 |
* |
|
329 |
* @return |
|
350 |
* directly from the page variables, or 'callback', which causes a function |
|
351 |
* to be called to calculate the value. No other values are supported. |
|
352 |
* @param string|array $argument |
|
353 |
* For $type of: |
|
354 |
* - 'variable': argument should be the key to fetch from the $variables. |
|
355 |
* - 'callback': then it should either be the callback function name as a |
|
356 |
* string, or an array that will be sent to call_user_func_array(). Argument |
|
357 |
* arrays must not use array keys (i.e. $a[0] is the first and $a[1] the |
|
358 |
* second element, etc.) |
|
359 |
* |
|
360 |
* @return array |
|
330 | 361 |
* A array of token/variable names to be replaced. |
331 | 362 |
*/ |
332 | 363 |
function ctools_set_page_token($token = NULL, $type = NULL, $argument = NULL) { |
333 |
static $tokens = array();
|
|
364 |
$tokens = &drupal_static('ctools_set_page_token', array());
|
|
334 | 365 |
|
335 | 366 |
if (isset($token)) { |
336 | 367 |
$tokens[$token] = array($type, $argument); |
... | ... | |
339 | 370 |
} |
340 | 371 |
|
341 | 372 |
/** |
342 |
* Easily set a token from the page variables. |
|
373 |
* Reset the defined page tokens within this request. |
|
374 |
* |
|
375 |
* Introduced for simpletest purposes. Normally not needed. |
|
376 |
*/ |
|
377 |
function ctools_reset_page_tokens() { |
|
378 |
drupal_static_reset('ctools_set_page_token'); |
|
379 |
} |
|
380 |
|
|
381 |
/** |
|
382 |
* Set a replacement token from the containing element's children during #post_render. |
|
343 | 383 |
* |
344 | 384 |
* This function can be used like this: |
345 |
* $token = ctools_set_variable_token('tabs'); |
|
385 |
* $token = ctools_set_variable_token('tabs');
|
|
346 | 386 |
* |
347 |
* $token will then be a simple replacement for the 'tabs' about of the |
|
348 |
* variables available in the page template. |
|
387 |
* The token "<!-- ctools-page-tabs -->" would then be replaced by the value of |
|
388 |
* this element's (sibling) render array key 'tabs' during post-render (or be |
|
389 |
* deleted if there was no such key by that point). |
|
390 |
* |
|
391 |
* @param string $token |
|
392 |
* The token string for the page callback, e.g. 'title'. |
|
393 |
* |
|
394 |
* @return string |
|
395 |
* The constructed token. |
|
396 |
* |
|
397 |
* @see ctools_set_callback_token() |
|
398 |
* @see ctools_page_token_processing() |
|
349 | 399 |
*/ |
350 | 400 |
function ctools_set_variable_token($token) { |
351 | 401 |
$string = '<!-- ctools-page-' . $token . ' -->'; |
... | ... | |
354 | 404 |
} |
355 | 405 |
|
356 | 406 |
/** |
357 |
* Easily set a token from the page variables.
|
|
407 |
* Set a replacement token from the value of a function during #post_render.
|
|
358 | 408 |
* |
359 | 409 |
* This function can be used like this: |
360 |
* $token = ctools_set_variable_token('id', 'mymodule_myfunction'); |
|
410 |
* $token = ctools_set_callback_token('id', 'mymodule_myfunction'); |
|
411 |
* |
|
412 |
* Or this (from its use in ctools_page_title_content_type_render): |
|
413 |
* $token = ctools_set_callback_token('title', array( |
|
414 |
* 'ctools_page_title_content_type_token', $conf['markup'], $conf['id'], $conf['class'] |
|
415 |
* ) |
|
416 |
* ); |
|
417 |
* |
|
418 |
* The token (e.g: "<!-- ctools-page-id-1b7f84d1c8851290cc342631ac663053 -->") |
|
419 |
* would then be replaced during post-render by the return value of: |
|
420 |
* |
|
421 |
* ctools_page_title_content_type_token($value_markup, $value_id, $value_class); |
|
422 |
* |
|
423 |
* @param string $token |
|
424 |
* The token string for the page callback, e.g. 'title'. |
|
425 |
* |
|
426 |
* @param string|array $callback |
|
427 |
* For callback functions that require no args, the name of the function as a |
|
428 |
* string; otherwise an array of two or more elements: the function name |
|
429 |
* followed by one or more function arguments. |
|
430 |
* |
|
431 |
* NB: the value of $callback must be a procedural (non-class) function that |
|
432 |
* passes the php function_exists() check. |
|
433 |
* |
|
434 |
* The callback function itself will be called with args dependent |
|
435 |
* on $callback. If: |
|
436 |
* - $callback is a string, the function is called with a reference to the |
|
437 |
* render array; |
|
438 |
* - $callback is an array, the function is called with $callback merged |
|
439 |
* with an array containing a reference to the render array. |
|
440 |
* |
|
441 |
* @return string |
|
442 |
* The constructed token. |
|
443 |
* |
|
444 |
* @see ctools_set_variable_token() |
|
445 |
* @see ctools_page_token_processing() |
|
361 | 446 |
*/ |
362 | 447 |
function ctools_set_callback_token($token, $callback) { |
363 | 448 |
// If the callback uses arguments they are considered in the token. |
... | ... | |
384 | 469 |
/** |
385 | 470 |
* Wrapper function to create UUIDs via ctools, falls back on UUID module |
386 | 471 |
* if it is enabled. This code is a copy of uuid.inc from the uuid module. |
472 |
* |
|
387 | 473 |
* @see http://php.net/uniqid#65879 |
388 | 474 |
*/ |
389 |
|
|
390 | 475 |
function ctools_uuid_generate() { |
391 | 476 |
if (!module_exists('uuid')) { |
392 | 477 |
ctools_include('uuid'); |
... | ... | |
413 | 498 |
|
414 | 499 |
/** |
415 | 500 |
* Check that a string appears to be in the format of a UUID. |
501 |
* |
|
416 | 502 |
* @see http://drupal.org/project/uuid |
417 | 503 |
* |
418 | 504 |
* @param $uuid |
... | ... | |
468 | 554 |
*/ |
469 | 555 |
function ctools_class_remove($classes, $hook = 'html') { |
470 | 556 |
if (!is_array($classes)) { |
557 |
// @todo Consider using explode(' ', $classes); |
|
558 |
// @todo Consider checking that $classes is a string before adding. |
|
471 | 559 |
$classes = array($classes); |
472 | 560 |
} |
473 | 561 |
|
... | ... | |
480 | 568 |
} |
481 | 569 |
} |
482 | 570 |
|
483 |
// ----------------------------------------------------------------------- |
|
484 |
// Drupal core hooks |
|
571 |
/** |
|
572 |
* Reset the storage used for ctools_class_add and ctools_class_remove. |
|
573 |
* |
|
574 |
* @see ctools_class_add() |
|
575 |
* @see ctools_class_remove() |
|
576 |
*/ |
|
577 |
function ctools_class_reset() { |
|
578 |
drupal_static_reset('ctools_process_classes'); |
|
579 |
} |
|
580 |
|
|
581 |
/** |
|
582 |
* Return the classes for the body (added by ctools_class_add). |
|
583 |
* |
|
584 |
* @return array |
|
585 |
* A copy of the array of classes to add to the body tag. If none have been |
|
586 |
* added, this will be an empty array. |
|
587 |
* |
|
588 |
* @see ctools_class_add() |
|
589 |
*/ |
|
590 |
function ctools_get_classes() { |
|
591 |
return drupal_static('ctools_process_classes', array()); |
|
592 |
} |
|
485 | 593 |
|
594 |
// ----------------------------------------------------------------------- |
|
595 |
// Drupal core hooks. |
|
486 | 596 |
/** |
487 | 597 |
* Implement hook_init to keep our global CSS at the ready. |
488 | 598 |
*/ |
599 |
|
|
489 | 600 |
function ctools_init() { |
490 | 601 |
ctools_add_css('ctools'); |
491 | 602 |
// If we are sure that CTools' AJAX is in use, change the error handling. |
... | ... | |
504 | 615 |
* Shutdown handler used during ajax operations to help catch fatal errors. |
505 | 616 |
*/ |
506 | 617 |
function ctools_shutdown_handler() { |
507 |
if (function_exists('error_get_last') AND ($error = error_get_last())) {
|
|
618 |
if (function_exists('error_get_last') && ($error = error_get_last())) {
|
|
508 | 619 |
switch ($error['type']) { |
509 | 620 |
case E_ERROR: |
510 | 621 |
case E_CORE_ERROR: |
... | ... | |
583 | 694 |
|
584 | 695 |
/** |
585 | 696 |
* Implements hook_element_info_alter(). |
586 |
* |
|
587 | 697 |
*/ |
588 | 698 |
function ctools_element_info_alter(&$type) { |
589 | 699 |
ctools_include('dependent'); |
... | ... | |
619 | 729 |
|
620 | 730 |
// ----------------------------------------------------------------------- |
621 | 731 |
// FAPI hooks that must be in the .module file. |
622 |
|
|
623 | 732 |
/** |
624 | 733 |
* Alter the comment form to get a little more control over it. |
625 | 734 |
*/ |
735 |
|
|
626 | 736 |
function ctools_form_comment_form_alter(&$form, &$form_state) { |
627 | 737 |
if (!empty($form_state['ctools comment alter'])) { |
628 | 738 |
// Force the form to post back to wherever we are. |
... | ... | |
640 | 750 |
|
641 | 751 |
// ----------------------------------------------------------------------- |
642 | 752 |
// CTools hook implementations. |
643 |
|
|
644 | 753 |
/** |
645 | 754 |
* Implementation of hook_ctools_plugin_directory() to let the system know |
646 | 755 |
* where all our own plugins are. |
647 | 756 |
*/ |
757 |
|
|
648 | 758 |
function ctools_ctools_plugin_directory($owner, $plugin_type) { |
649 | 759 |
if ($owner == 'ctools') { |
650 | 760 |
return 'plugins/' . $plugin_type; |
... | ... | |
665 | 775 |
|
666 | 776 |
// ----------------------------------------------------------------------- |
667 | 777 |
// Drupal theme preprocess hooks that must be in the .module file. |
668 |
|
|
669 | 778 |
/** |
670 | 779 |
* A theme preprocess function to automatically allow panels-based node |
671 | 780 |
* templates based upon input when the panel was configured. |
672 | 781 |
*/ |
782 |
|
|
673 | 783 |
function ctools_preprocess_node(&$vars) { |
674 | 784 |
// The 'ctools_template_identifier' attribute of the node is added when the pane is |
675 | 785 |
// rendered. |
... | ... | |
679 | 789 |
} |
680 | 790 |
} |
681 | 791 |
|
682 |
|
|
683 | 792 |
/** |
684 | 793 |
* Implements hook_page_alter(). |
685 | 794 |
* |
686 | 795 |
* Last ditch attempt to remove sidebar regions if the "no blocks" |
687 | 796 |
* functionality has been activated. |
688 | 797 |
* |
689 |
* @see ctools_block_list_alter().
|
|
798 |
* @see ctools_block_list_alter() |
|
690 | 799 |
*/ |
691 | 800 |
function ctools_page_alter(&$page) { |
692 | 801 |
$check = drupal_static('ctools_set_no_blocks', TRUE); |
... | ... | |
716 | 825 |
case 'variable': |
717 | 826 |
$tokens[$token] = isset($elements[$argument]) ? $elements[$argument] : ''; |
718 | 827 |
break; |
828 |
|
|
719 | 829 |
case 'callback': |
720 | 830 |
if (is_string($argument) && function_exists($argument)) { |
721 | 831 |
$tokens[$token] = $argument($elements); |
... | ... | |
744 | 854 |
return; |
745 | 855 |
} |
746 | 856 |
|
747 |
$classes = drupal_static('ctools_process_classes', array());
|
|
857 |
$classes = ctools_get_classes();
|
|
748 | 858 |
|
749 | 859 |
// Process the classses to add. |
750 | 860 |
if (!empty($classes[$hook]['add'])) { |
... | ... | |
758 | 868 |
$variables['classes_array'] = array_diff($variables['classes_array'], $remove_classes); |
759 | 869 |
} |
760 | 870 |
|
761 |
// Update the classes within the attributes array to match the classes array |
|
762 |
if (isset($variables['attributes_array']['class'])) { |
|
763 |
$variables['attributes_array']['class'] = array_unique(array_merge($variables['classes_array'], $variables['attributes_array']['class'])); |
|
764 |
$variables['attributes'] = $variables['attributes_array'] ? drupal_attributes($variables['attributes_array']) : ''; |
|
765 |
} |
|
766 |
|
|
767 | 871 |
// Since this runs after template_process(), we need to re-implode the |
768 | 872 |
// classes array. |
769 | 873 |
$variables['classes'] = implode(' ', $variables['classes_array']); |
... | ... | |
771 | 875 |
|
772 | 876 |
// ----------------------------------------------------------------------- |
773 | 877 |
// Menu callbacks that must be in the .module file. |
774 |
|
|
775 | 878 |
/** |
776 | 879 |
* Determine if the current user has access via a plugin. |
777 | 880 |
* |
... | ... | |
795 | 898 |
* @return |
796 | 899 |
* TRUE if access is granted, false if otherwise. |
797 | 900 |
*/ |
901 |
|
|
798 | 902 |
function ctools_access_menu($access) { |
799 | 903 |
// Short circuit everything if there are no access tests. |
800 | 904 |
if (empty($access['plugins'])) { |
... | ... | |
823 | 927 |
* An indexed array of zero or more permission strings to be checked by |
824 | 928 |
* user_access(). |
825 | 929 |
* |
826 |
* @return |
|
930 |
* @return bool
|
|
827 | 931 |
* Iff all checks pass will this function return TRUE. If an invalid argument |
828 | 932 |
* is passed (e.g., not a string), this function errs on the safe said and |
829 | 933 |
* returns FALSE. |
... | ... | |
885 | 989 |
|
886 | 990 |
// ----------------------------------------------------------------------- |
887 | 991 |
// Caching callbacks on behalf of export-ui. |
888 |
|
|
889 | 992 |
/** |
890 | 993 |
* Menu access callback for various tasks of export-ui. |
891 | 994 |
*/ |
... | ... | |
929 | 1032 |
} |
930 | 1033 |
|
931 | 1034 |
/** |
932 |
* Callback for access control ajax form on behalf of export ui |
|
1035 |
* Callback for access control ajax form on behalf of export ui.
|
|
933 | 1036 |
* |
934 | 1037 |
* Returns the cached access config and contexts used. |
935 | 1038 |
* Note that this is assuming that access will be in $item->access -- if it |
... | ... | |
962 | 1065 |
} |
963 | 1066 |
|
964 | 1067 |
/** |
965 |
* Implement hook_block_list_alter() to potentially remove blocks.
|
|
1068 |
* Implements hook_block_list_alter().
|
|
966 | 1069 |
* |
1070 |
* Used to potentially remove blocks. |
|
967 | 1071 |
* This exists in order to replicate Drupal 6's "no blocks" functionality. |
968 | 1072 |
*/ |
969 | 1073 |
function ctools_block_list_alter(&$blocks) { |
... | ... | |
1026 | 1130 |
case 'entity_id:taxonomy_term': |
1027 | 1131 |
$plugin['no ui'] = TRUE; |
1028 | 1132 |
break; |
1133 |
|
|
1029 | 1134 |
case 'entity:user': |
1030 | 1135 |
$plugin = ctools_get_context('user'); |
1031 | 1136 |
unset($plugin['no ui']); |
... | ... | |
1059 | 1164 |
function ctools_field_create_instance($instance) { |
1060 | 1165 |
ctools_flush_field_caches(); |
1061 | 1166 |
} |
1167 |
|
|
1062 | 1168 |
/** |
1063 | 1169 |
* Implements hook_field_delete_field(). |
1064 | 1170 |
*/ |
1065 | 1171 |
function ctools_field_delete_field($field) { |
1066 | 1172 |
ctools_flush_field_caches(); |
1067 | 1173 |
} |
1174 |
|
|
1068 | 1175 |
/** |
1069 | 1176 |
* Implements hook_field_delete_instance(). |
1070 | 1177 |
*/ |
1071 | 1178 |
function ctools_field_delete_instance($instance) { |
1072 | 1179 |
ctools_flush_field_caches(); |
1073 | 1180 |
} |
1181 |
|
|
1074 | 1182 |
/** |
1075 | 1183 |
* Implements hook_field_update_field(). |
1076 | 1184 |
*/ |
drupal7/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.info | ||
---|---|---|
5 | 5 |
version = CTOOLS_MODULE_VERSION |
6 | 6 |
dependencies[] = ctools |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2016-11-22
|
|
9 |
version = "7.x-1.12"
|
|
8 |
; Information added by Drupal.org packaging script on 2018-02-04
|
|
9 |
version = "7.x-1.13"
|
|
10 | 10 |
core = "7.x" |
11 | 11 |
project = "ctools" |
12 |
datestamp = "1479787162"
|
|
12 |
datestamp = "1517704095"
|
|
13 | 13 |
|
drupal7/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.install | ||
---|---|---|
1 | 1 |
<?php |
2 | 2 |
|
3 |
/** |
|
4 |
* @file |
|
5 |
*/ |
|
6 |
|
|
3 | 7 |
/** |
4 | 8 |
* Schema for customizable access rulesets. |
5 | 9 |
*/ |
drupal7/sites/all/modules/ctools/ctools_access_ruleset/ctools_access_ruleset.module | ||
---|---|---|
2 | 2 |
|
3 | 3 |
/** |
4 | 4 |
* @file |
5 |
* ctools_access_ruleset module
|
|
5 |
* The ctools_access_ruleset module.
|
|
6 | 6 |
* |
7 | 7 |
* This module allows styles to be created and managed on behalf of modules |
8 | 8 |
* that implement styles. |
... | ... | |
30 | 30 |
*/ |
31 | 31 |
function ctools_access_ruleset_ctools_plugin_directory($module, $plugin) { |
32 | 32 |
// Most of this module is implemented as an export ui plugin, and the |
33 |
// rest is in ctools/includes/ctools_access_ruleset.inc |
|
33 |
// rest is in ctools/includes/ctools_access_ruleset.inc.
|
|
34 | 34 |
if ($module == 'ctools' && ($plugin == 'export_ui' || $plugin == 'access')) { |
35 | 35 |
return 'plugins/' . $plugin; |
36 | 36 |
} |
... | ... | |
47 | 47 |
'description' => t('Custom rulesets are combinations of access plugins you can use for access control, selection criteria and pane visibility.'), |
48 | 48 |
); |
49 | 49 |
|
50 |
// Load all mini panels and their displays.
|
|
50 |
// Load all mini panels and their displays. |
|
51 | 51 |
ctools_include('export'); |
52 | 52 |
$items = ctools_export_crud_load_all('ctools_access_ruleset'); |
53 | 53 |
$count = 0; |
drupal7/sites/all/modules/ctools/ctools_access_ruleset/plugins/access/ruleset.inc | ||
---|---|---|
35 | 35 |
$plugin['required context'] = array(); |
36 | 36 |
foreach ($item->requiredcontexts as $context) { |
37 | 37 |
$info = ctools_get_context($context['name']); |
38 |
// TODO: allow an optional setting |
|
38 |
// TODO: allow an optional setting.
|
|
39 | 39 |
$plugin['required context'][] = new ctools_context_required($context['identifier'], $info['context name']); |
40 | 40 |
} |
41 | 41 |
} |
... | ... | |
72 | 72 |
} |
73 | 73 |
|
74 | 74 |
/** |
75 |
* Settings form for the 'by ruleset' access plugin |
|
75 |
* Settings form for the 'by ruleset' access plugin.
|
|
76 | 76 |
*/ |
77 | 77 |
function ctools_ruleset_ctools_access_settings(&$form, &$form_state, $conf) { |
78 | 78 |
if (!empty($form_state['plugin']['ruleset']->admin_description)) { |
... | ... | |
106 | 106 |
return check_plain($plugin['ruleset']->admin_title); |
107 | 107 |
} |
108 | 108 |
} |
109 |
|
drupal7/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset.inc | ||
---|---|---|
1 | 1 |
<?php |
2 | 2 |
|
3 |
/** |
|
4 |
* @file |
|
5 |
*/ |
|
6 |
|
|
3 | 7 |
$plugin = array( |
4 | 8 |
'schema' => 'ctools_access_ruleset', |
5 | 9 |
'access' => 'administer ctools access ruleset', |
... | ... | |
26 | 30 |
), |
27 | 31 |
), |
28 | 32 |
); |
29 |
|
drupal7/sites/all/modules/ctools/ctools_access_ruleset/plugins/export_ui/ctools_access_ruleset_ui.class.php | ||
---|---|---|
2 | 2 |
|
3 | 3 |
class ctools_access_ruleset_ui extends ctools_export_ui { |
4 | 4 |
|
5 |
function edit_form_context(&$form, &$form_state) { |
|
5 |
public function edit_form_context(&$form, &$form_state) {
|
|
6 | 6 |
ctools_include('context-admin'); |
7 | 7 |
ctools_context_admin_includes(); |
8 | 8 |
ctools_add_css('ruleset'); |
... | ... | |
27 | 27 |
ctools_context_add_relationship_form($module, $form, $form_state, $form['right']['relationships_table'], $form_state['item'], $name); |
28 | 28 |
} |
29 | 29 |
|
30 |
function edit_form_rules(&$form, &$form_state) { |
|
30 |
public function edit_form_rules(&$form, &$form_state) {
|
|
31 | 31 |
// The 'access' UI passes everything via $form_state, unlike the 'context' UI. |
32 | 32 |
// The main difference is that one is about 3 years newer than the other. |
33 | 33 |
ctools_include('context'); |
... | ... | |
43 | 43 |
$form = ctools_access_admin_form($form, $form_state); |
44 | 44 |
} |
45 | 45 |
|
46 |
function edit_form_rules_submit(&$form, &$form_state) { |
|
46 |
public function edit_form_rules_submit(&$form, &$form_state) {
|
|
47 | 47 |
$form_state['item']->access['logic'] = $form_state['values']['logic']; |
48 | 48 |
} |
49 | 49 |
|
50 |
function edit_form_submit(&$form, &$form_state) { |
|
50 |
public function edit_form_submit(&$form, &$form_state) {
|
|
51 | 51 |
parent::edit_form_submit($form, $form_state); |
52 | 52 |
} |
53 |
|
|
53 | 54 |
} |
drupal7/sites/all/modules/ctools/ctools_ajax_sample/css/ctools-ajax-sample.css | ||
---|---|---|
1 | 1 |
div.ctools-sample-modal-content { |
2 |
background:none;
|
|
3 |
border:0;
|
|
4 |
color:#000000;
|
|
5 |
margin:0;
|
|
6 |
padding:0;
|
|
7 |
text-align:left;
|
|
2 |
background: none;
|
|
3 |
border: 0;
|
|
4 |
color: #000;
|
|
5 |
margin: 0;
|
|
6 |
padding: 0;
|
|
7 |
text-align: left;
|
|
8 | 8 |
} |
9 |
div.ctools-sample-modal-content .modal-scroll{ |
|
10 |
overflow:hidden;
|
|
11 |
overflow-y:auto;
|
|
9 |
div.ctools-sample-modal-content .modal-scroll {
|
|
10 |
overflow: hidden;
|
|
11 |
overflow-y: auto;
|
|
12 | 12 |
} |
13 | 13 |
div.ctools-sample-modal-content #popups-overlay { |
14 |
background-color:transparent; |
|
14 |
background-color: transparent;
|
|
15 | 15 |
} |
16 | 16 |
div.ctools-sample-modal-content #popups-loading { |
17 |
width:248px; |
|
18 |
position:absolute; |
|
19 |
display:none; |
|
20 |
opacity:1; |
|
17 |
width: 248px;
|
|
18 |
position: absolute;
|
|
19 |
display: none;
|
|
20 |
opacity: 1;
|
|
21 | 21 |
-moz-border-radius: 8px; |
22 | 22 |
-webkit-border-radius: 8px; |
23 |
z-index:99; |
|
23 |
z-index: 99;
|
|
24 | 24 |
} |
25 | 25 |
div.ctools-sample-modal-content #popups-loading span.popups-loading-message { |
26 |
background:#FFF url(../images/loading-large.gif) no-repeat 8px center;
|
|
27 |
display:block; |
|
28 |
color:#444444;
|
|
29 |
font-family:Arial;
|
|
30 |
font-size:22px; |
|
31 |
font-weight:bold; |
|
32 |
height:36px; |
|
33 |
line-height:36px; |
|
34 |
padding:0 40px; |
|
26 |
background: #fff url(../images/loading-large.gif) no-repeat 8px center;
|
|
27 |
display: block;
|
|
28 |
color: #444;
|
|
29 |
font-family: Arial, serif;
|
|
30 |
font-size: 22px;
|
|
31 |
font-weight: bold;
|
|
32 |
height: 36px;
|
|
33 |
line-height: 36px;
|
|
34 |
padding: 0 40px;
|
|
35 | 35 |
} |
36 | 36 |
div.ctools-sample-modal-content #popups-loading table, |
37 | 37 |
div.ctools-sample-modal-content .popups-box table { |
38 |
margin:0px;
|
|
38 |
margin: 0;
|
|
39 | 39 |
} |
40 | 40 |
div.ctools-sample-modal-content #popups-loading tbody, |
41 | 41 |
div.ctools-sample-modal-content .popups-box tbody { |
42 |
border:none;
|
|
42 |
border: none;
|
|
43 | 43 |
} |
44 | 44 |
div.ctools-sample-modal-content .popups-box tr { |
45 |
background-color:transparent;
|
|
45 |
background-color: transparent;
|
|
46 | 46 |
} |
47 | 47 |
div.ctools-sample-modal-content td.popups-border { |
48 | 48 |
background: url(../images/popups-border.png); |
49 |
background-color:transparent; |
|
49 |
background-color: transparent;
|
|
50 | 50 |
border: none; |
51 | 51 |
} |
52 | 52 |
div.ctools-sample-modal-content td.popups-tl, |
... | ... | |
54 | 54 |
div.ctools-sample-modal-content td.popups-bl, |
55 | 55 |
div.ctools-sample-modal-content td.popups-br { |
56 | 56 |
background-repeat: no-repeat; |
57 |
height:10px; |
|
58 |
padding:0px; |
|
57 |
height: 10px; |
|
58 |
padding: 0; |
|
59 |
} |
|
60 |
div.ctools-sample-modal-content td.popups-tl { |
|
61 |
background-position: 0 0; |
|
59 | 62 |
} |
60 |
div.ctools-sample-modal-content td.popups-tl { background-position: 0px 0px; } |
|
61 | 63 |
div.ctools-sample-modal-content td.popups-t, |
62 | 64 |
div.ctools-sample-modal-content td.popups-b { |
63 |
background-position: 0px -40px;
|
|
65 |
background-position: 0 -40px; |
|
64 | 66 |
background-repeat: repeat-x; |
65 | 67 |
} |
66 |
div.ctools-sample-modal-content td.popups-tr { background-position: 0px -10px; width: 10px; } |
|
68 |
div.ctools-sample-modal-content td.popups-tr { |
|
69 |
background-position: 0 -10px; |
|
70 |
width: 10px; |
|
71 |
} |
|
67 | 72 |
div.ctools-sample-modal-content td.popups-cl, |
68 | 73 |
div.ctools-sample-modal-content td.popups-cr { |
69 | 74 |
background-position: -10px 0; |
70 | 75 |
background-repeat: repeat-y; |
71 |
width:10px; |
|
76 |
width: 10px;
|
|
72 | 77 |
} |
73 | 78 |
div.ctools-sample-modal-content td.popups-cl, |
74 | 79 |
div.ctools-sample-modal-content td.popups-cr, |
75 |
div.ctools-sample-modal-content td.popups-c { padding:0; border: none; } |
|
76 |
div.ctools-sample-modal-content td.popups-c { background:#fff; } |
|
77 |
div.ctools-sample-modal-content td.popups-bl { background-position: 0px -20px; } |
|
78 |
div.ctools-sample-modal-content td.popups-br { background-position: 0px -30px; width: 10px; } |
|
80 |
div.ctools-sample-modal-content td.popups-c { |
|
81 |
padding: 0; |
|
82 |
border: none; |
|
83 |
} |
|
84 |
div.ctools-sample-modal-content td.popups-c { |
|
85 |
background: #fff; |
|
86 |
} |
|
87 |
div.ctools-sample-modal-content td.popups-bl { |
|
88 |
background-position: 0 -20px; |
|
89 |
} |
|
90 |
div.ctools-sample-modal-content td.popups-br { |
|
91 |
background-position: 0 -30px; |
|
92 |
width: 10px; |
|
93 |
} |
|
79 | 94 |
|
80 | 95 |
div.ctools-sample-modal-content .popups-box, |
81 | 96 |
div.ctools-sample-modal-content #popups-loading { |
82 |
border: 0px solid #454545;
|
|
83 |
opacity:1; |
|
84 |
overflow:hidden; |
|
85 |
padding:0; |
|
86 |
background-color:transparent; |
|
97 |
border: 0 solid #454545; |
|
98 |
opacity: 1;
|
|
99 |
overflow: hidden;
|
|
100 |
padding: 0;
|
|
101 |
background-color: transparent;
|
|
87 | 102 |
} |
88 | 103 |
div.ctools-sample-modal-content .popups-container { |
89 |
overflow:hidden; |
|
90 |
height:100%; |
|
91 |
background-color:#fff; |
|
104 |
overflow: hidden;
|
|
105 |
height: 100%;
|
|
106 |
background-color: #fff;
|
|
92 | 107 |
} |
93 | 108 |
div.ctools-sample-modal-content div.popups-title { |
94 |
-moz-border-radius-topleft: 0px;
|
|
95 |
-webkit-border-radius-topleft: 0px;
|
|
96 |
margin-bottom:0px;
|
|
97 |
background-color:#ff7200; |
|
98 |
border:1px solid #ce5c00; |
|
99 |
padding:4px 10px 5px; |
|
100 |
color:white; |
|
101 |
font-size:1em; |
|
102 |
font-weight:bold; |
|
109 |
-moz-border-radius-topleft: 0; |
|
110 |
-webkit-border-radius-topleft: 0; |
|
111 |
margin-bottom: 0;
|
|
112 |
background-color: #ff7200;
|
|
113 |
border: 1px solid #ce5c00;
|
|
114 |
padding: 4px 10px 5px;
|
|
115 |
color: white;
|
|
116 |
font-size: 1em;
|
|
117 |
font-weight: bold;
|
|
103 | 118 |
} |
104 | 119 |
div.ctools-sample-modal-content .popups-body { |
105 |
background-color:#fff; |
|
106 |
padding:8px; |
|
120 |
background-color: #fff;
|
|
121 |
padding: 8px;
|
|
107 | 122 |
} |
108 | 123 |
div.ctools-sample-modal-content .popups-box .popups-buttons, |
109 | 124 |
div.ctools-sample-modal-content .popups-box .popups-footer { |
110 |
background-color:#fff; |
|
125 |
background-color: #fff;
|
|
111 | 126 |
} |
112 | 127 |
div.ctools-sample-modal-content .popups-title a.close { |
113 | 128 |
color: #fff; |
114 |
text-decoration:none; |
|
129 |
text-decoration: none;
|
|
115 | 130 |
} |
116 | 131 |
div.ctools-sample-modal-content .popups-close { |
117 |
font-size:120%;
|
|
118 |
float:right;
|
|
119 |
text-align:right;
|
|
132 |
font-size: 120%;
|
|
133 |
float: right;
|
|
134 |
text-align: right;
|
|
120 | 135 |
} |
121 | 136 |
div.ctools-sample-modal-content .modal-loading-wrapper { |
122 |
width:220px;
|
|
123 |
height:19px;
|
|
124 |
margin:0 auto;
|
|
125 |
margin-top:2%;
|
|
137 |
width: 220px;
|
|
138 |
height: 19px;
|
|
139 |
margin: 0 auto;
|
|
140 |
margin-top: 2%;
|
|
126 | 141 |
} |
127 | 142 |
|
128 |
div.ctools-sample-modal-content tbody{ |
|
129 |
border:none;
|
|
143 |
div.ctools-sample-modal-content tbody {
|
|
144 |
border: none;
|
|
130 | 145 |
} |
131 | 146 |
|
132 | 147 |
div.ctools-sample-modal-content .modal-content .modal-throbber-wrapper img { |
drupal7/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.info | ||
---|---|---|
5 | 5 |
dependencies[] = ctools |
6 | 6 |
core = 7.x |
7 | 7 |
|
8 |
; Information added by Drupal.org packaging script on 2016-11-22
|
|
9 |
version = "7.x-1.12"
|
|
8 |
; Information added by Drupal.org packaging script on 2018-02-04
|
|
9 |
version = "7.x-1.13"
|
|
10 | 10 |
core = "7.x" |
11 | 11 |
project = "ctools" |
12 |
datestamp = "1479787162"
|
|
12 |
datestamp = "1517704095"
|
|
13 | 13 |
|
drupal7/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.install | ||
---|---|---|
1 | 1 |
<?php |
2 | 2 |
|
3 | 3 |
/** |
4 |
* @file
|
|
4 |
* @file |
|
5 | 5 |
*/ |
6 | 6 |
|
7 | 7 |
/** |
8 |
* Implementation of hook_install()
|
|
8 |
* Implementation of hook_install() |
|
9 | 9 |
*/ |
10 | 10 |
function ctools_ajax_sample_install() { |
11 | 11 |
|
12 | 12 |
} |
13 | 13 |
|
14 | 14 |
/** |
15 |
* Implementation of hook_uninstall()
|
|
15 |
* Implementation of hook_uninstall() |
|
16 | 16 |
*/ |
17 | 17 |
function ctools_ajax_sample_uninstall() { |
18 | 18 |
|
drupal7/sites/all/modules/ctools/ctools_ajax_sample/ctools_ajax_sample.module | ||
---|---|---|
8 | 8 |
|
9 | 9 |
// --------------------------------------------------------------------------- |
10 | 10 |
// Drupal hooks. |
11 |
|
|
12 | 11 |
/** |
13 |
* Implementation of hook_menu()
|
|
12 |
* Implementation of hook_menu() |
|
14 | 13 |
*/ |
14 |
|
|
15 | 15 |
function ctools_ajax_sample_menu() { |
16 | 16 |
$items['ctools_ajax_sample'] = array( |
17 |
'title' => 'Chaos Tools AJAX Demo',
|
|
18 |
'page callback' => 'ctools_ajax_sample_page',
|
|
19 |
'access callback' => TRUE,
|
|
20 |
'type' => MENU_NORMAL_ITEM,
|
|
17 |
'title' => 'Chaos Tools AJAX Demo', |
|
18 |
'page callback' => 'ctools_ajax_sample_page', |
|
19 |
'access callback' => TRUE, |
|
20 |
'type' => MENU_NORMAL_ITEM, |
|
21 | 21 |
); |
22 | 22 |
$items['ctools_ajax_sample/simple_form'] = array( |
23 | 23 |
'title' => 'Simple Form', |
... | ... | |
26 | 26 |
'type' => MENU_CALLBACK, |
27 | 27 |
); |
28 | 28 |
$items['ctools_ajax_sample/%ctools_js/hello'] = array( |
29 |
'title' => 'Hello World',
|
|
30 |
'page callback' => 'ctools_ajax_sample_hello',
|
|
31 |
'page arguments' => array(1),
|
|
32 |
'access callback' => TRUE,
|
|
33 |
'type' => MENU_CALLBACK,
|
|
29 |
'title' => 'Hello World', |
|
30 |
'page callback' => 'ctools_ajax_sample_hello', |
|
31 |
'page arguments' => array(1), |
|
32 |
'access callback' => TRUE, |
|
33 |
'type' => MENU_CALLBACK, |
|
34 | 34 |
); |
35 | 35 |
$items['ctools_ajax_sample/%ctools_js/tablenix/%'] = array( |
36 |
'title' => 'Hello World',
|
|
37 |
'page callback' => 'ctools_ajax_sample_tablenix',
|
|
38 |
'page arguments' => array(1, 3),
|
|
39 |
'access callback' => TRUE,
|
|
40 |
'type' => MENU_CALLBACK,
|
|
36 |
'title' => 'Hello World', |
|
37 |
'page callback' => 'ctools_ajax_sample_tablenix', |
|
38 |
'page arguments' => array(1, 3), |
|
39 |
'access callback' => TRUE, |
|
40 |
'type' => MENU_CALLBACK, |
|
41 | 41 |
); |
42 | 42 |
$items['ctools_ajax_sample/%ctools_js/login'] = array( |
43 |
'title' => 'Login', |
|
44 |
'page callback' => 'ctools_ajax_sample_login', |
|
45 |
'page arguments' => array(1), |
|
46 |
'access callback' => TRUE, |
|
47 |
'type' => MENU_CALLBACK, |
|
43 |
'title' => 'Login', |
|
44 |
'page callback' => 'ctools_ajax_sample_login', |
|
45 |
'page arguments' => array(1), |
|
46 |
'access callback' => TRUE, |
|
47 |
'type' => MENU_CALLBACK, |
Formats disponibles : Unified diff
Weekly update of contrib modules