annotate sites/all/modules/ctools/plugins/arguments/terms.inc @ 9:830c812b520f

added smtp module
author root <root@paio.local>
date Mon, 28 Oct 2013 15:34:27 +0000
parents ff03f76ab3fe
children
rev   line source
danielebarchiesi@0 1 <?php
danielebarchiesi@0 2
danielebarchiesi@0 3 /**
danielebarchiesi@0 4 * @file
danielebarchiesi@0 5 *
danielebarchiesi@0 6 * Plugin to provide an argument handler for a Taxonomy term
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 term (multiple): ID"),
danielebarchiesi@0 15 // keyword to use for %substitution
danielebarchiesi@0 16 'keyword' => 'term',
danielebarchiesi@0 17 'description' => t('Creates a group of taxonomy terms from a list of tids separated by a comma or a plus sign. In general the first term of the list will be used for panes.'),
danielebarchiesi@0 18 'context' => 'ctools_terms_context',
danielebarchiesi@0 19 'default' => array('breadcrumb' => TRUE),
danielebarchiesi@0 20 'settings form' => 'ctools_terms_settings_form',
danielebarchiesi@0 21 'placeholder form' => array(
danielebarchiesi@0 22 '#type' => 'textfield',
danielebarchiesi@0 23 '#description' => t('Enter a term ID or a list of term IDs separated by a + or a ,'),
danielebarchiesi@0 24 ),
danielebarchiesi@0 25 'breadcrumb' => 'ctools_terms_breadcrumb',
danielebarchiesi@0 26 );
danielebarchiesi@0 27
danielebarchiesi@0 28 /**
danielebarchiesi@0 29 * Discover if this argument gives us the term we crave.
danielebarchiesi@0 30 */
danielebarchiesi@0 31 function ctools_terms_context($arg = NULL, $conf = NULL, $empty = FALSE) {
danielebarchiesi@0 32 // If unset it wants a generic, unfilled context.
danielebarchiesi@0 33 if ($empty) {
danielebarchiesi@0 34 return ctools_context_create_empty('terms');
danielebarchiesi@0 35 }
danielebarchiesi@0 36
danielebarchiesi@0 37 $terms = ctools_break_phrase($arg);
danielebarchiesi@0 38 if (empty($terms->value) || !empty($terms->invalid_input)) {
danielebarchiesi@0 39 return FALSE;
danielebarchiesi@0 40 }
danielebarchiesi@0 41
danielebarchiesi@0 42 $context = ctools_context_create('terms', $terms);
danielebarchiesi@0 43 $context->original_argument = $arg;
danielebarchiesi@0 44 return $context;
danielebarchiesi@0 45 }
danielebarchiesi@0 46
danielebarchiesi@0 47 /**
danielebarchiesi@0 48 * Settings form for the argument
danielebarchiesi@0 49 */
danielebarchiesi@0 50 function ctools_terms_settings_form(&$form, &$form_state, $conf) {
danielebarchiesi@0 51 $form['settings']['breadcrumb'] = array(
danielebarchiesi@0 52 '#title' => t('Inject hierarchy of first term into breadcrumb trail'),
danielebarchiesi@0 53 '#type' => 'checkbox',
danielebarchiesi@0 54 '#default_value' => !empty($conf['breadcrumb']),
danielebarchiesi@0 55 '#description' => t('If checked, taxonomy term parents will appear in the breadcrumb trail.'),
danielebarchiesi@0 56 );
danielebarchiesi@0 57 // return $form;
danielebarchiesi@0 58 }
danielebarchiesi@0 59
danielebarchiesi@0 60 /**
danielebarchiesi@0 61 * Inject the breadcrumb trail if necessary.
danielebarchiesi@0 62 */
danielebarchiesi@0 63 function ctools_terms_breadcrumb($conf, $context) {
danielebarchiesi@0 64 if (empty($conf['breadcrumb'])) {
danielebarchiesi@0 65 return;
danielebarchiesi@0 66 }
danielebarchiesi@0 67
danielebarchiesi@0 68 $current->tid = $context->tids[0];
danielebarchiesi@0 69 $breadcrumb = array();
danielebarchiesi@0 70 while ($parents = taxonomy_get_parents($current->tid)) {
danielebarchiesi@0 71 $current = array_shift($parents);
danielebarchiesi@0 72 $breadcrumb[] = l($current->name, 'taxonomy/term/' . $current->tid);
danielebarchiesi@0 73 }
danielebarchiesi@0 74
danielebarchiesi@0 75 $breadcrumb = array_merge(drupal_get_breadcrumb(), array_reverse($breadcrumb));
danielebarchiesi@0 76 drupal_set_breadcrumb($breadcrumb);
danielebarchiesi@0 77 }