You are here

function viewreference_get_element_args in View reference 7.3

Same name and namespace in other branches
  1. 6.3 viewreference.module \viewreference_get_element_args()
  2. 6 viewreference.module \viewreference_get_element_args()
  3. 6.2 viewreference.module \viewreference_get_element_args()

Convert arguments text field entry to an array of arguments.

1 call to viewreference_get_element_args()
viewreference_get_view in ./viewreference.module
Get an array of data and rendered HTML items that are useful in theming the formatter output.

File

./viewreference.module, line 842
Defines a field type for referencing a view from a node.

Code

function viewreference_get_element_args($element) {
  $string =& $element['item']['arguments'];
  $field =& $element['field'];
  $settings = $field['settings'];
  $delimiter =& $settings['arguments']['delimiter'];
  $dsv_arguments =& $settings['arguments']['dsv_arguments'];
  $php_arguments =& $settings['arguments']['php_arguments'];
  $arguments = '';
  $args = array();
  if ($php_arguments) {
    $last_edit_user = user_load($element['entity']->revision_uid);
    if (user_access('use PHP for settings', $last_edit_user)) {
      $variables = array(
        $element['entity_type'] => $element['entity'],
      );
      $arguments = viewreference_eval($string, $variables);
    }
    else {
      $arguments = $string;
    }
  }
  elseif ($dsv_arguments) {
    $arguments = $string;
  }
  if ($arguments) {
    $args = explode($delimiter, $arguments);
    foreach ($args as $k => $v) {
      $args[$k] = check_plain(trim($v));
    }
  }

  // Allow modules to easily supply their own views arguments.
  drupal_alter('viewreference_args', $args, $element);
  return $args;
}