danielebarchiesi@0: '', danielebarchiesi@0: 'description' => '', danielebarchiesi@0: 'callback' => 'ctools_ruleset_ctools_access_check', danielebarchiesi@0: 'settings form' => 'ctools_ruleset_ctools_access_settings', danielebarchiesi@0: 'summary' => 'ctools_ruleset_ctools_access_summary', danielebarchiesi@0: danielebarchiesi@0: // This access plugin actually just contains child plugins that are danielebarchiesi@0: // exportable, UI configured rulesets. danielebarchiesi@0: 'get child' => 'ctools_ruleset_ctools_access_get_child', danielebarchiesi@0: 'get children' => 'ctools_ruleset_ctools_access_get_children', danielebarchiesi@0: ); danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Merge the main access plugin with a loaded ruleset to form a child plugin. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ruleset_ctools_access_merge_plugin($plugin, $parent, $item) { danielebarchiesi@0: $plugin['name'] = $parent . ':' . $item->name; danielebarchiesi@0: $plugin['title'] = check_plain($item->admin_title); danielebarchiesi@0: $plugin['description'] = check_plain($item->admin_description); danielebarchiesi@0: danielebarchiesi@0: // TODO: Generalize this in CTools. danielebarchiesi@0: if (!empty($item->requiredcontexts)) { danielebarchiesi@0: $plugin['required context'] = array(); danielebarchiesi@0: foreach ($item->requiredcontexts as $context) { danielebarchiesi@0: $info = ctools_get_context($context['name']); danielebarchiesi@0: // TODO: allow an optional setting danielebarchiesi@0: $plugin['required context'][] = new ctools_context_required($context['identifier'], $info['context name']); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: // Store the loaded ruleset in the plugin. danielebarchiesi@0: $plugin['ruleset'] = $item; danielebarchiesi@0: return $plugin; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Get a single child access plugin. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ruleset_ctools_access_get_child($plugin, $parent, $child) { danielebarchiesi@0: ctools_include('export'); danielebarchiesi@0: $item = ctools_export_crud_load('ctools_access_ruleset', $child); danielebarchiesi@0: if ($item) { danielebarchiesi@0: return ctools_ruleset_ctools_access_merge_plugin($plugin, $parent, $item); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Get all child access plugins. danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ruleset_ctools_access_get_children($plugin, $parent) { danielebarchiesi@0: $plugins = array(); danielebarchiesi@0: ctools_include('export'); danielebarchiesi@0: $items = ctools_export_crud_load_all('ctools_access_ruleset'); danielebarchiesi@0: foreach ($items as $name => $item) { danielebarchiesi@0: $child = ctools_ruleset_ctools_access_merge_plugin($plugin, $parent, $item); danielebarchiesi@0: $plugins[$child['name']] = $child; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: return $plugins; danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * Settings form for the 'by ruleset' access plugin danielebarchiesi@0: */ danielebarchiesi@0: function ctools_ruleset_ctools_access_settings(&$form, &$form_state, $conf) { danielebarchiesi@0: if (!empty($form_state['plugin']['ruleset']->admin_description)) { danielebarchiesi@0: $form['markup'] = array( danielebarchiesi@0: '#markup' => '