You are here

function _custom_breadcrumbs_views_parse_args in Custom Breadcrumbs 6.2

Same name and namespace in other branches
  1. 7.2 custom_breadcrumbs_common.inc \_custom_breadcrumbs_views_parse_args()

Returns the appropriate type and value of each view argument.

Parameters

$display_argument_ids: An array of ids for each argument of the view.

$viewargs: The $display->handler->view->args array.

Return value

$arg_values An associative array of two elements, 'types' and 'values', each an array with elements corresponding to the views arguments.

2 calls to _custom_breadcrumbs_views_parse_args()
custom_breadcrumbs_taxonomy_views_pre_render in custom_breadcrumbs_taxonomy/custom_breadcrumbs_taxonomy.module
Implements hook_views_pre_render().
_custom_breadcrumbs_views_token_types in ./custom_breadcrumbs_common.inc
Obtains the appropriate objects for token type replacement for a view display.

File

./custom_breadcrumbs_common.inc, line 95
Common helper functions used by custom breadcrumbs submodules.

Code

function _custom_breadcrumbs_views_parse_args($arguments, $viewargs) {
  $arg_values = array(
    'types' => array(),
    'values' => array(),
  );
  foreach ($arguments as $arg_id => $argument) {
    if (!empty($viewargs)) {
      $arg = array_shift($viewargs);
      $arg_id_3 = drupal_substr($arg_id, 0, 3);
      if ($arg_id_3 == 'tid' || drupal_substr($arg_id, 0, 19) == 'term_node_tid_depth') {
        $terms = taxonomy_terms_parse_string($arg);
        $arg_values['types'][] = 'tid';
        $arg_values['values'][] = empty($terms['tids']) ? NULL : $terms['tids'][0];
      }
      elseif (drupal_substr($arg_id, 0, 4) == 'name') {
        if (drupal_substr($argument['table'], 0, 5) == 'term_') {
          $terms = taxonomy_get_term_by_name($arg);
          $arg_values['types'][] = 'tid';
          $arg_values['values'][] = empty($terms) ? NULL : $terms[0]->tid;
        }
      }
      elseif ($arg_id_3 == 'vid' || $arg_id_3 == 'uid' || $arg_id_3 == 'nid') {
        $arg_values['types'][] = $arg_id_3;
        $arg_values['values'][] = $arg;
      }
    }
  }
  return $arg_values;
}