1 |
85ad3d82
|
Assos Assos
|
<?php
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
/**
|
5 |
|
|
* @file
|
6 |
|
|
* Sample ctools context type plugin that shows how to create a context from an arg.
|
7 |
|
|
*
|
8 |
|
|
*/
|
9 |
|
|
|
10 |
|
|
/**
|
11 |
|
|
* Plugins are described by creating a $plugin array which will be used
|
12 |
|
|
* by the system that includes this file.
|
13 |
|
|
*/
|
14 |
|
|
$plugin = array(
|
15 |
|
|
'title' => t("Simplecontext"),
|
16 |
|
|
'description' => t('A single "simplecontext" context, or data element.'),
|
17 |
|
|
'context' => 'ctools_plugin_example_context_create_simplecontext', // func to create context
|
18 |
|
|
'context name' => 'simplecontext',
|
19 |
|
|
'settings form' => 'simplecontext_settings_form',
|
20 |
|
|
'keyword' => 'simplecontext',
|
21 |
|
|
|
22 |
|
|
// Provides a list of items which are exposed as keywords.
|
23 |
|
|
'convert list' => 'simplecontext_convert_list',
|
24 |
|
|
// Convert keywords into data.
|
25 |
|
|
'convert' => 'simplecontext_convert',
|
26 |
|
|
|
27 |
|
|
'placeholder form' => array(
|
28 |
|
|
'#type' => 'textfield',
|
29 |
|
|
'#description' => t('Enter some data to represent this "simplecontext".'),
|
30 |
|
|
),
|
31 |
|
|
);
|
32 |
|
|
|
33 |
|
|
/**
|
34 |
|
|
* Create a context, either from manual configuration or from an argument on the URL.
|
35 |
|
|
*
|
36 |
|
|
* @param $empty
|
37 |
|
|
* If true, just return an empty context.
|
38 |
|
|
* @param $data
|
39 |
|
|
* If from settings form, an array as from a form. If from argument, a string.
|
40 |
|
|
* @param $conf
|
41 |
|
|
* TRUE if the $data is coming from admin configuration, FALSE if it's from a URL arg.
|
42 |
|
|
*
|
43 |
|
|
* @return
|
44 |
|
|
* a Context object/
|
45 |
|
|
*/
|
46 |
|
|
function ctools_plugin_example_context_create_simplecontext($empty, $data = NULL, $conf = FALSE) {
|
47 |
|
|
$context = new ctools_context('simplecontext');
|
48 |
|
|
$context->plugin = 'simplecontext';
|
49 |
|
|
|
50 |
|
|
if ($empty) {
|
51 |
|
|
return $context;
|
52 |
|
|
}
|
53 |
|
|
|
54 |
|
|
if ($conf) {
|
55 |
|
|
if (!empty($data)) {
|
56 |
|
|
$context->data = new stdClass();
|
57 |
|
|
// For this simple item we'll just create our data by stripping non-alpha and
|
58 |
|
|
// adding '_from_configuration_item_1' to it.
|
59 |
|
|
$context->data->item1 = t("Item1");
|
60 |
|
|
$context->data->item2 = t("Item2");
|
61 |
|
|
$context->data->description = preg_replace('/[^a-z]/i', '', $data['sample_simplecontext_setting']);
|
62 |
|
|
$context->data->description .= '_from_configuration_sample_simplecontext_setting';
|
63 |
|
|
$context->title = t("Simplecontext context from config");
|
64 |
|
|
return $context;
|
65 |
|
|
}
|
66 |
|
|
}
|
67 |
|
|
else {
|
68 |
|
|
// $data is coming from an arg - it's just a string.
|
69 |
|
|
// This is used for keyword.
|
70 |
|
|
$context->title = $data;
|
71 |
|
|
$context->argument = $data;
|
72 |
|
|
// Make up a bogus context
|
73 |
|
|
$context->data = new stdClass();
|
74 |
|
|
$context->data->item1 = t("Item1");
|
75 |
|
|
$context->data->item2 = t("Item2");
|
76 |
|
|
|
77 |
|
|
// For this simple item we'll just create our data by stripping non-alpha and
|
78 |
|
|
// adding '_from_simplecontext_argument' to it.
|
79 |
|
|
$context->data->description = preg_replace('/[^a-z]/i', '', $data);
|
80 |
|
|
$context->data->description .= '_from_simplecontext_argument';
|
81 |
|
|
$context->arg_length = strlen($context->argument);
|
82 |
|
|
return $context;
|
83 |
|
|
}
|
84 |
|
|
}
|
85 |
|
|
|
86 |
|
|
function simplecontext_settings_form($conf, $external = FALSE) {
|
87 |
|
|
if (empty($conf)) {
|
88 |
|
|
$conf = array(
|
89 |
|
|
'sample_simplecontext_setting' => 'default simplecontext setting',
|
90 |
|
|
);
|
91 |
|
|
}
|
92 |
|
|
$form = array();
|
93 |
|
|
$form['sample_simplecontext_setting'] = array(
|
94 |
|
|
'#type' => 'textfield',
|
95 |
|
|
'#title' => t('Setting for simplecontext'),
|
96 |
|
|
'#size' => 50,
|
97 |
|
|
'#description' => t('An example setting that could be used to configure a context'),
|
98 |
|
|
'#default_value' => $conf['sample_simplecontext_setting'],
|
99 |
|
|
'#prefix' => '<div class="clear-block no-float">',
|
100 |
|
|
'#suffix' => '</div>',
|
101 |
|
|
);
|
102 |
|
|
return $form;
|
103 |
|
|
}
|
104 |
|
|
|
105 |
|
|
|
106 |
|
|
|
107 |
|
|
/**
|
108 |
|
|
* Provide a list of sub-keywords.
|
109 |
|
|
*
|
110 |
|
|
* This is used to provide keywords from the context for use in a content type,
|
111 |
|
|
* pane, etc.
|
112 |
|
|
*/
|
113 |
|
|
function simplecontext_convert_list() {
|
114 |
|
|
return array(
|
115 |
|
|
'item1' => t('Item1'),
|
116 |
|
|
'item2' => t('Item2'),
|
117 |
|
|
'description' => t('Description'),
|
118 |
|
|
);
|
119 |
|
|
}
|
120 |
|
|
|
121 |
|
|
/**
|
122 |
|
|
* Convert a context into a string to be used as a keyword by content types, etc.
|
123 |
|
|
*/
|
124 |
|
|
function simplecontext_convert($context, $type) {
|
125 |
|
|
switch ($type) {
|
126 |
|
|
case 'item1':
|
127 |
|
|
return $context->data->item1;
|
128 |
|
|
case 'item2':
|
129 |
|
|
return $context->data->item2;
|
130 |
|
|
case 'description':
|
131 |
|
|
return $context->data->description;
|
132 |
|
|
}
|
133 |
|
|
}
|