You are here

function access_filter_parse_filter in Access Filter 7

Parse filter properties.

Parameters

object $filter: A filter object.

3 calls to access_filter_parse_filter()
access_filter_form_filter_callback_test in ./access_filter.admin.inc
Ajax callback function for access_filter_form_filter(). Test filter and show result.
access_filter_load in ./access_filter.module
Load access filter.
access_filter_load_all in ./access_filter.module
Load all access filters.

File

./access_filter.module, line 510
Allows users to manage access filters.

Code

function access_filter_parse_filter($filter) {
  if (is_string($filter->deny_action_settings)) {
    $filter->deny_action_settings = unserialize($filter->deny_action_settings);
  }
  if (empty($filter->deny_action_settings->error_message)) {
    $filter->deny_action_settings->error_message = array(
      'value' => '',
      'format' => NULL,
    );
  }
  $filter->parsed_paths = array();
  foreach (explode("\n", $filter->paths) as $line) {
    $line = trim($line);
    if (!strlen($line)) {
      continue;
    }
    $parsed = new stdClass();
    list($type_modifier, $parsed->pattern) = explode(':', $line, 2);
    $type_modifier = explode('+', $type_modifier, 2);
    $parsed->is_uri = $type_modifier[0] == ACCESS_FILTER_PATH_TYPE_URI;
    $parsed->is_regex = $parsed->is_blind = FALSE;
    if (isset($type_modifier[1])) {
      $parsed->is_regex = strpos($type_modifier[1], ACCESS_FILTER_PATH_MODIFIER_REGEX) !== FALSE;
      $parsed->is_blind = strpos($type_modifier[1], ACCESS_FILTER_PATH_MODIFIER_BLIND) !== FALSE;
    }
    $filter->parsed_paths[] = $parsed;
  }
}