You are here

function ctools_context_terms_convert in Chaos Tool Suite (ctools) 6

Same name and namespace in other branches
  1. 7 plugins/contexts/terms.inc \ctools_context_terms_convert()

Convert a context into a string.

1 string reference to 'ctools_context_terms_convert'
terms.inc in plugins/contexts/terms.inc
Plugin to provide a terms context

File

plugins/contexts/terms.inc, line 67
Plugin to provide a terms context

Code

function ctools_context_terms_convert($context, $type) {
  switch ($type) {
    case 'tid':
      return $context->data->tid;
    case 'tids':
      return $context->argument;
    case 'name':
      return $context->data->name;
    case 'name_dashed':
      return drupal_strtolower(str_replace(' ', '-', $context->data->name));
    case 'names':
    case 'names_dashed':

      // We only run this query if this item was requested:
      if (!isset($context->names)) {
        if (empty($context->tids)) {
          $context->names = '';
        }
        else {
          $names = array();
          $result = db_query("SELECT tid, name FROM {term_data} WHERE tid IN (" . db_placeholders($context->tids) . ")", $context->tids);
          while ($term = db_fetch_object($result)) {
            $names[$term->tid] = $term->name;
            if ($type == 'names_dashed') {
              $names[$term->tid] = drupal_strtolower(str_replace(' ', '-', $names[$term->tid]));
            }
          }
          $context->names = implode($context->operator == 'or' ? ' + ' : ', ', $names);
        }
      }
      return $context->names;
    case 'vid':
      return $context->data->vid;
  }
}