function domain_lookup in Domain Access 7.2
Same name and namespace in other branches
- 5 domain.module \domain_lookup()
- 6.2 domain.module \domain_lookup()
- 7.3 domain.module \domain_lookup()
Runs a lookup against the {domain} table. One of the two values must be present
This function also calls hook_domainload(), which lets module developers overwrite or add to the $domain array.
Parameters
$domain_id: The domain_id taken from {domain}. Optional.
$subdomain: The string representation of a {domain} entry. Optional.
$reset: A boolean flag to clear the static variable if necessary.
Return value
An array containing the requested row from the {domain} table, plus the elements added by hook_domainload(). Returns -1 on failure.
22 calls to domain_lookup()
- domain_alias_init in domain_alias/
domain_alias.module - Implements hook_init().
- domain_block_view_server in ./
domain.blocks.inc - Prints information about the current HTTP request.
- domain_conf_variable_save in domain_conf/
domain_conf.module - Store a single variable in {domain_conf}.
- domain_content_view_domains in domain_content/
domain_content.admin.inc - Format domains for this node.
- domain_domains in ./
domain.module - Return all active domains (including the default) as an array.
File
- ./
domain.module, line 822 - Core module functions for the Domain Access suite.
Code
function domain_lookup($domain_id = NULL, $subdomain = NULL, $reset = FALSE) {
static $domains, $result;
// Create a unique key so we can static cache all requests.
$key = $domain_id . $subdomain;
// Shortcut if we know the data.
if (!$reset && isset($domains[$key])) {
return $domains[$key];
}
// Get the data from the database. Doing this prevents extra queries.
if (!isset($result) || $reset) {
$result = db_query("SELECT domain_id, subdomain, sitename, scheme, valid FROM {domain}", array(), array(
'fetch' => PDO::FETCH_ASSOC,
))
->fetchAllAssoc('domain_id');
}
// If both are NULL, no lookup can be run.
if (is_null($domain_id) && is_null($subdomain) || $domain_id < 0) {
$domains[$key] = -1;
}
elseif (!isset($domains[$key]) || $reset) {
if ($subdomain) {
foreach ($result as $array) {
if ($array['subdomain'] == $subdomain) {
$domain = $array;
}
}
}
elseif (isset($result[$domain_id])) {
$domain = $result[$domain_id];
}
// Did we get a valid result?
if (isset($domain['domain_id'])) {
// Let Domain Access module extensions act to override the defaults.
$domains[$key] = domain_api($domain, $reset);
}
else {
$domains[$key] = -1;
}
}
return $domains[$key];
}