danielebarchiesi@0
|
1 <?php
|
danielebarchiesi@0
|
2
|
danielebarchiesi@0
|
3 /**
|
danielebarchiesi@0
|
4 * @file
|
danielebarchiesi@0
|
5 *
|
danielebarchiesi@0
|
6 * Plugin to provide a vocabulary context
|
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("Taxonomy vocabulary"),
|
danielebarchiesi@0
|
15 'description' => t('A single taxonomy vocabulary object.'),
|
danielebarchiesi@0
|
16 'context' => 'ctools_context_create_vocabulary',
|
danielebarchiesi@0
|
17 'edit form' => 'ctools_context_vocabulary_settings_form',
|
danielebarchiesi@0
|
18 'defaults' => array('vid' => ''),
|
danielebarchiesi@0
|
19 'keyword' => 'vocabulary',
|
danielebarchiesi@0
|
20 'context name' => 'vocabulary',
|
danielebarchiesi@0
|
21 // This context is deprecated and should not be usable in the UI.
|
danielebarchiesi@0
|
22 'no ui' => TRUE,
|
danielebarchiesi@0
|
23 'no required context ui' => TRUE,
|
danielebarchiesi@0
|
24 'superceded by' => 'entity:taxonomy_vocabulary',
|
danielebarchiesi@0
|
25 );
|
danielebarchiesi@0
|
26
|
danielebarchiesi@0
|
27 /**
|
danielebarchiesi@0
|
28 * It's important to remember that $conf is optional here, because contexts
|
danielebarchiesi@0
|
29 * are not always created from the UI.
|
danielebarchiesi@0
|
30 */
|
danielebarchiesi@0
|
31 function ctools_context_create_vocabulary($empty, $data = NULL, $conf = FALSE) {
|
danielebarchiesi@0
|
32 $context = new ctools_context('vocabulary');
|
danielebarchiesi@0
|
33 $context->plugin = 'vocabulary';
|
danielebarchiesi@0
|
34
|
danielebarchiesi@0
|
35 if ($empty) {
|
danielebarchiesi@0
|
36 return $context;
|
danielebarchiesi@0
|
37 }
|
danielebarchiesi@0
|
38
|
danielebarchiesi@0
|
39 if ($conf && isset($data['vid'])) {
|
danielebarchiesi@0
|
40 $data = taxonomy_vocabulary_load($data['vid']);
|
danielebarchiesi@0
|
41 }
|
danielebarchiesi@0
|
42
|
danielebarchiesi@0
|
43 if (!empty($data)) {
|
danielebarchiesi@0
|
44 $context->data = $data;
|
danielebarchiesi@0
|
45 $context->title = $data->name;
|
danielebarchiesi@0
|
46 $context->argument = $data->vid;
|
danielebarchiesi@0
|
47 return $context;
|
danielebarchiesi@0
|
48 }
|
danielebarchiesi@0
|
49 }
|
danielebarchiesi@0
|
50
|
danielebarchiesi@0
|
51 function ctools_context_vocabulary_settings_form($form, &$form_state) {
|
danielebarchiesi@0
|
52 $conf = $form_state['conf'];
|
danielebarchiesi@0
|
53
|
danielebarchiesi@0
|
54 $options = array();
|
danielebarchiesi@0
|
55 foreach (taxonomy_get_vocabularies() as $vid => $vocabulary) {
|
danielebarchiesi@0
|
56 $options[$vid] = $vocabulary->name;
|
danielebarchiesi@0
|
57 }
|
danielebarchiesi@0
|
58
|
danielebarchiesi@0
|
59 $form['vid'] = array(
|
danielebarchiesi@0
|
60 '#title' => t('Vocabulary'),
|
danielebarchiesi@0
|
61 '#type' => 'select',
|
danielebarchiesi@0
|
62 '#options' => $options,
|
danielebarchiesi@0
|
63 '#default_value' => $conf['vid'],
|
danielebarchiesi@0
|
64 '#description' => t('Select the vocabulary for this form.'),
|
danielebarchiesi@0
|
65 );
|
danielebarchiesi@0
|
66
|
danielebarchiesi@0
|
67 return $form;
|
danielebarchiesi@0
|
68 }
|
danielebarchiesi@0
|
69
|
danielebarchiesi@0
|
70 function ctools_context_vocabulary_settings_form_submit($form, &$form_state) {
|
danielebarchiesi@0
|
71 $form_state['conf']['vid'] = $form_state['values']['vid'];
|
danielebarchiesi@0
|
72 }
|