Commit | Line | Data |
---|---|---|
7f254ad8 AE |
1 | <?php |
2 | ||
3 | /** | |
4 | * @file | |
5 | * Sample ctools context type plugin that | |
6 | * is used in this demo to create a relcontext from an existing simplecontext. | |
7 | */ | |
8 | ||
9 | /** | |
10 | * Plugins are described by creating a $plugin array which will be used | |
11 | * by the system that includes this file. | |
12 | */ | |
13 | $plugin = array( | |
14 | 'title' => t("Relcontext"), | |
15 | 'description' => t('A relcontext object.'), | |
16 | // Function to create the relcontext. | |
17 | 'context' => 'ctools_plugin_example_context_create_relcontext', | |
18 | // Function that does the settings. | |
19 | 'settings form' => 'relcontext_settings_form', | |
20 | 'keyword' => 'relcontext', | |
21 | 'context name' => 'relcontext', | |
22 | ); | |
23 | ||
24 | /** | |
25 | * Create a context, either from manual configuration (form) or from an argument on the URL. | |
26 | * | |
27 | * @param $empty | |
28 | * If true, just return an empty context. | |
29 | * @param $data | |
30 | * If from settings form, an array as from a form. If from argument, a string. | |
31 | * @param $conf | |
32 | * TRUE if the $data is coming from admin configuration, FALSE if it's from a URL arg. | |
33 | * | |
34 | * @return | |
35 | * a Context object. | |
36 | */ | |
37 | function ctools_plugin_example_context_create_relcontext($empty, $data = NULL, $conf = FALSE) { | |
38 | $context = new ctools_context('relcontext'); | |
39 | $context->plugin = 'relcontext'; | |
40 | if ($empty) { | |
41 | return $context; | |
42 | } | |
43 | if ($conf) { | |
44 | if (!empty($data)) { | |
45 | $context->data = new stdClass(); | |
46 | // For this simple item we'll just create our data by stripping non-alpha and | |
47 | // adding 'sample_relcontext_setting' to it. | |
48 | $context->data->description = 'relcontext_from__' . preg_replace('/[^a-z]/i', '', $data['sample_relcontext_setting']); | |
49 | $context->data->description .= '_from_configuration_sample_simplecontext_setting'; | |
50 | $context->title = t("Relcontext context from simplecontext"); | |
51 | return $context; | |
52 | } | |
53 | } | |
54 | else { | |
55 | // $data is coming from an arg - it's just a string. | |
56 | // This is used for keyword. | |
57 | $context->title = "relcontext_" . $data->data->description; | |
58 | $context->argument = $data->argument; | |
59 | // Make up a bogus context. | |
60 | $context->data = new stdClass(); | |
61 | // For this simple item we'll just create our data by stripping non-alpha and | |
62 | // prepend 'relcontext_' and adding '_created_from_from_simplecontext' to it. | |
63 | $context->data->description = 'relcontext_' . preg_replace('/[^a-z]/i', '', $data->data->description); | |
64 | $context->data->description .= '_created_from_simplecontext'; | |
65 | return $context; | |
66 | } | |
67 | } | |
68 | ||
69 | function relcontext_settings_form($conf, $external = FALSE) { | |
70 | $form = array(); | |
71 | ||
72 | $form['sample_relcontext_setting'] = array( | |
73 | '#type' => 'textfield', | |
74 | '#title' => t('Relcontext setting'), | |
75 | '#size' => 50, | |
76 | '#description' => t('Just an example setting.'), | |
77 | '#default_value' => !empty($conf['sample_relcontext_setting']) ? $conf['sample_relcontext_setting'] : '', | |
78 | '#prefix' => '<div class="clear-block no-float">', | |
79 | '#suffix' => '</div>', | |
80 | ); | |
81 | return $form; | |
82 | } | |
83 |