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