class space_taxonomy in Spaces 7
Same name and namespace in other branches
- 6.3 spaces_taxonomy/plugins/space_taxonomy.inc \space_taxonomy
- 7.3 spaces_taxonomy/plugins/space_taxonomy.inc \space_taxonomy
Taxonomy integration for Spaces.
Hierarchy
- class \space
- class \space_type
- class \space_type_purl
- class \space_taxonomy
- class \space_type_purl
- class \space_type
Expanded class hierarchy of space_taxonomy
2 string references to 'space_taxonomy'
- spaces_taxonomy_spaces_plugins in spaces_taxonomy/
spaces_taxonomy.module - Implements hook_spaces_plugins().
- spaces_taxonomy_spaces_registry in spaces_taxonomy/
spaces_taxonomy.module - Implements hook_spaces_registry().
File
- spaces_taxonomy/
plugins/ space_taxonomy.inc, line 6
View source
class space_taxonomy extends space_type_purl {
var $term = NULL;
/**
* Override of title().
*/
function title() {
return $this->term->name;
}
/**
* Override of load().
*/
function load() {
// The 0 id means a new term is being saved. Instantiate a space
// so preset values can become active.
if ($this->id === 0) {
return TRUE;
}
else {
if ($this->term = taxonomy_term_load($this->id)) {
return TRUE;
}
}
return FALSE;
}
/**
* Override of router().
*/
function router($op, $object = NULL) {
switch ($op) {
case 'init':
// NOTE: in D6 this used to handle multiple terms via taxonomy_terms_parse_string
// but in D7 that has gone away for taxonomy term pages
if (implode('/', array(
arg(0),
arg(1),
)) === 'taxonomy/term' && arg(2)) {
$tid = arg(2);
if ($term = taxonomy_term_load($tid)) {
$this
->router_term($term);
}
}
break;
case 'node':
$node = $object;
$vocab = variable_get('spaces_taxonomy_machine_name', 0);
$fields = field_info_fields();
foreach ($fields as $name => $field) {
if ($field['type'] == 'taxonomy_term_reference' && $vocab == $field['settings']['allowed_values'][0]['vocabulary']) {
$term = isset($node->{$name}['und'][0]['taxonomy_term']) ? $node->{$name}['und'][0]['taxonomy_term'] : taxonomy_term_load($node->{$name}['und'][0]['tid']);
if ($term) {
$this
->router_term($term);
return;
}
}
}
break;
}
return;
}
/**
* Router helper with logic for individual taxonomy terms.
*/
protected function router_term($term) {
if ($term->vocabulary_machine_name == variable_get('spaces_taxonomy_machine_name', 0)) {
$space = spaces_load('taxonomy', $term->tid);
// If there is no active taxonomy space or the spaces do not match, activate this term's space.
if ($space && (!$this->active || $this->id != $space->id)) {
$space
->activate();
}
}
}
/**
* Override of views_filter().
*/
function views_filter(&$query, $base_table = '', $relationship = '') {
switch ($base_table) {
case 'node':
$table = $query
->ensure_table('taxonomy_term_node', $relationship);
$query
->add_where(0, "{$table}.tid = %d", $this->id);
break;
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
space:: |
property | |||
space:: |
property | |||
space:: |
property | |||
space:: |
property | |||
space:: |
protected | function | Instantiate controllers for this space. | |
space:: |
function | Initialize any overrides as necessary. | ||
space:: |
function | Constructor. | ||
space_taxonomy:: |
property | |||
space_taxonomy:: |
function |
Override of load(). Overrides space:: |
||
space_taxonomy:: |
function |
Override of router(). Overrides space_type:: |
||
space_taxonomy:: |
protected | function | Router helper with logic for individual taxonomy terms. | |
space_taxonomy:: |
function |
Override of title(). Overrides space_type:: |
||
space_taxonomy:: |
function |
Override of views_filter(). Overrides space_type:: |
||
space_type:: |
function | Grant a user administrative access to this space. | 2 | |
space_type:: |
function | Grant a user access to the specified feature in this space. | 2 | |
space_type:: |
function | Grant a user access to anything in this space. This method can be used to deny access to any page where this space is active. | 1 | |
space_type:: |
function | Grant a user access to the given account in this space. | 1 | |
space_type:: |
function | Get the possible feature setting values for this space. | ||
space_type_purl:: |
function |
Override of activate(). Ensure that the PURL modifier is present when the
space is active. Overrides space:: |
1 | |
space_type_purl:: |
function |
Override of deactivate(). Ensure that the PURL modifier is not present
when the space is not active. Overrides space:: |
||
space_type_purl:: |
protected | function | Return an array of paths from which the space should never be active. | 1 |
space_type_purl:: |
function | Pull the destination out of the $_REQUEST to prevent a redirect directly to it within purl_goto. This function should be used immediately before a call to purl_goto. | ||
space_type_purl:: |
protected | function | Verify that this space's PURL modifier is present for the current page request. |