class context_condition_node_taxonomy in Context 7.3
Same name and namespace in other branches
- 6.3 plugins/context_condition_node_taxonomy.inc \context_condition_node_taxonomy
- 6 plugins/context_condition_node_taxonomy.inc \context_condition_node_taxonomy
Expose node taxonomy terms as a context condition.
Hierarchy
- class \context_condition
- class \context_condition_node
Expanded class hierarchy of context_condition_node_taxonomy
2 string references to 'context_condition_node_taxonomy'
- _context_context_plugins in ./
context.plugins.inc - Context plugins.
- _context_context_registry in ./
context.plugins.inc - Context registry.
File
- plugins/
context_condition_node_taxonomy.inc, line 6
View source
class context_condition_node_taxonomy extends context_condition_node {
function condition_values() {
$values = array();
if (module_exists('taxonomy')) {
foreach (taxonomy_get_vocabularies() as $vocab) {
if (empty($vocab->tags)) {
foreach (taxonomy_get_tree($vocab->vid) as $term) {
$values[$term->tid] = check_plain($term->name);
}
}
}
}
return $values;
}
function condition_form($context) {
$form = parent::condition_form($context);
$form['#type'] = 'select';
$form['#size'] = 12;
$form['#multiple'] = TRUE;
$vocabularies = taxonomy_get_vocabularies();
$options = array();
foreach ($vocabularies as $vid => $vocabulary) {
$tree = taxonomy_get_tree($vid);
if ($tree && count($tree) > 0) {
$options[$vocabulary->name] = array();
foreach ($tree as $term) {
$options[$vocabulary->name][$term->tid] = str_repeat('-', $term->depth) . $term->name;
}
}
}
$form['#options'] = $options;
return $form;
}
function execute($node, $op) {
// build a list of each taxonomy reference field belonging to the bundle for the current node
$fields = field_info_fields();
$instance_fields = field_info_instances('node', $node->type);
$check_fields = array();
foreach ($instance_fields as $key => $field_info) {
if ($fields[$key]['type'] == 'taxonomy_term_reference') {
$check_fields[$key] = 'tid';
}
else {
if ($fields[$key]['type'] == 'entityreference' && $fields[$key]['settings']['target_type'] == 'taxonomy_term') {
$check_fields[$key] = 'target_id';
}
}
}
if ($this
->condition_used() && !empty($check_fields)) {
foreach ($check_fields as $field => $term_id_key) {
if ($terms = field_get_items('node', $node, $field)) {
foreach ($terms as $term) {
foreach ($this
->get_contexts($term[$term_id_key]) as $context) {
// Check the node form option.
if ($op === 'form') {
$options = $this
->fetch_from_context($context, 'options');
if (!empty($options['node_form'])) {
$this
->condition_met($context, $term[$term_id_key]);
}
}
else {
$this
->condition_met($context, $term[$term_id_key]);
}
}
}
}
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
function | Condition form submit handler. | 2 | |
context_condition:: |
function | Marks a context as having met this particular condition. | ||
context_condition:: |
function | Check whether this condition is used by any contexts. Can be used to prevent expensive condition checks from being triggered when no contexts use this condition. | ||
context_condition:: |
function | Context editor form for conditions. | 2 | |
context_condition:: |
function | Context editor form submit handler. | ||
context_condition:: |
function | Retrieve options from the context provided. | ||
context_condition:: |
function | Retrieve all contexts with the condition value provided. | 2 | |
context_condition:: |
function | Options form submit handler. | ||
context_condition:: |
function | Settings form. Provide variable settings for your condition. | ||
context_condition:: |
function | Clone our references when we're being cloned. | ||
context_condition:: |
function | Constructor. Do not override. | ||
context_condition_node:: |
function |
Options form. Provide additional options for your condition. Overrides context_condition:: |
||
context_condition_node_taxonomy:: |
function |
Condition form. Overrides context_condition:: |
||
context_condition_node_taxonomy:: |
function |
Condition values. Overrides context_condition_node:: |
||
context_condition_node_taxonomy:: |
function |
Overrides context_condition_node:: |