<?php
function pathauto_entity_load($entities, $type) {
static $drupal_static_fast;
if (!isset($drupal_static_fast)) {
$drupal_static_fast = &drupal_static(__FUNCTION__);
}
$path_auto_entity_types = &$drupal_static_fast;
// Save the entity types used statically to avoid unnessasary queries later.
if (!isset($path_auto_entity_types)) {
print "Database Called\n";
$path_auto_entity_types = array('node', 'taxonomy_term');
}
// We aren't storing state for this type at the moment.
if (!isset($path_auto_entity_types[$type])) {
return;
}
$states = pathauto_entity_state_load_multiple($type, array_keys($entities));
foreach ($states as $id => $state) {
if (!isset($entities[$id]->path['pathauto'])) {
if (!isset($entities[$id]->path) || !is_array($entities[$id]->path)) {
$entities[$id]->path = array();
}
$entities[$id]->path['pathauto'] = $state;
}
}
}
pathauto_entity_load(array( 15518,15519,15542,15551,), 'node');
pathauto_entity_load(array( 15518,15519,15542,15551,), 'taxonomy_term');
pathauto_entity_load(array( 15518,15519,15542,15551,), 'fake');
function pathauto_entity_state_load_multiple($type, $entites) {
print "states loaded\n";
return array(
15518 => 1,
15519 => 1,
15542 => 1,
15551 => 0,
);
}
// Copied from D7.
function &drupal_static($name, $default_value = NULL, $reset = FALSE) {
print "drupal_static() called\n";
static $data = array(), $default = array();
// First check if dealing with a previously defined static variable.
if (isset($data [$name]) || array_key_exists($name, $data)) {
// Non-NULL $name and both $data[$name] and $default[$name] statics exist.
if ($reset) {
// Reset pre-existing static variable to its default value.
$data [$name] = $default [$name];
}
return $data [$name];
}
// Neither $data[$name] nor $default[$name] static variables exist.
if (isset($name)) {
if ($reset) {
// Reset was called before a default is set and yet a variable must be
// returned.
return $data;
}
// First call with new non-NULL $name. Initialize a new static variable.
$default [$name] = $data [$name] = $default_value;
return $data [$name];
}
// Reset all: ($name == NULL). This needs to be done one at a time so that
// references returned by earlier invocations of drupal_static() also get
// reset.
foreach ($default as $name => $value) {
$data [$name] = $value;
}
// As the function returns a reference, the return should always be a
// variable.
return $data;
}