class context_condition_domain in Context Domain 7
Expose paths as a context condition.
Hierarchy
- class \context_condition
- class \context_condition_path
- class \context_condition_domain
- class \context_condition_path
Expanded class hierarchy of context_condition_domain
1 string reference to 'context_condition_domain'
- context_domain_context_plugins in ./
context_domain.module - Implements hook_context_plugin().
File
- plugins/
context_condition_domain.inc, line 6
View source
class context_condition_domain extends context_condition_path {
/**
* Execute.
*/
function execute() {
if ($this
->condition_used()) {
// Include both the path alias and normal path for matching.
$current_domain = $_SERVER['HTTP_HOST'];
foreach ($this
->get_contexts() as $context) {
$domains = $this
->fetch_from_context($context, 'values');
if ($this
->match($current_domain, $domains)) {
$this
->condition_met($context);
}
}
}
}
/**
* Match the subject against a set of regex patterns.
* Similar to drupal_match_path() but also handles negation through the use
* of the ~ character.
*
* @param mixed $subject
* The subject string or an array of strings to be matched.
* @param array $patterns
* An array of patterns. Any patterns that begin with ~ are considered
* negative or excluded conditions.
* @param boolean $domain
* Whether the given subject should be matched as a Drupal path. If TRUE,
* '<front>' will be replaced with the site frontpage when matching against
* $patterns.
*/
protected function match($subject, $patterns, $path = FALSE) {
static $regexps;
$match = FALSE;
$positives = $negatives = 0;
$subject = !is_array($subject) ? array(
$subject,
) : $subject;
foreach ($patterns as $pattern) {
if (strpos($pattern, '~') === 0) {
$negate = TRUE;
$negatives++;
}
else {
$negate = FALSE;
$positives++;
}
$pattern = ltrim($pattern, '~');
if (!isset($regexps[$pattern])) {
$regexps[$pattern] = '/^(' . preg_replace(array(
'/(\\r\\n?|\\n)/',
'/\\\\\\*/',
), array(
'|',
'.*',
), preg_quote($pattern, '/')) . ')$/';
}
foreach ($subject as $value) {
if (preg_match($regexps[$pattern], $value)) {
if ($negate) {
return FALSE;
}
$match = TRUE;
}
}
}
// If there are **only** negative conditions and we've gotten this far none
// we actually have a match.
if ($positives === 0 && $negatives) {
return TRUE;
}
return $match;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
property | |||
context_condition:: |
function | Marks a context as having met this particular condition. | ||
context_condition:: |
function | Check whether this condition is used by any contexts. Can be used to prevent expensive condition checks from being triggered when no contexts use this condition. | ||
context_condition:: |
function | Context editor form for conditions. | 2 | |
context_condition:: |
function | Context editor form submit handler. | ||
context_condition:: |
function | Retrieve options from the context provided. | ||
context_condition:: |
function | Retrieve all contexts with the condition value provided. | 2 | |
context_condition:: |
function | Options form. Provide additional options for your condition. | 4 | |
context_condition:: |
function | Options form submit handler. | ||
context_condition:: |
function | Settings form. Provide variable settings for your condition. | ||
context_condition:: |
function | Clone our references when we're being cloned. | ||
context_condition:: |
function | Constructor. Do not override. | ||
context_condition_domain:: |
function |
Execute. Overrides context_condition_path:: |
||
context_condition_domain:: |
protected | function |
Match the subject against a set of regex patterns.
Similar to drupal_match_path() but also handles negation through the use
of the ~ character. Overrides context_condition_path:: |
|
context_condition_path:: |
function |
Condition form. Overrides context_condition:: |
||
context_condition_path:: |
function |
Condition form submit handler. Overrides context_condition:: |
||
context_condition_path:: |
function |
Omit condition values. We will provide a custom input form for our conditions. Overrides context_condition:: |