32 foreach ($module->attr_collections as $coll_i => $coll) {
33 if (!isset($this->info[$coll_i])) {
34 $this->info[$coll_i] =
array();
36 foreach ($coll as $attr_i => $attr) {
37 if ($attr_i === 0 && isset($this->info[$coll_i][$attr_i])) {
39 $this->info[$coll_i][$attr_i] = array_merge(
40 $this->info[$coll_i][$attr_i],
45 $this->info[$coll_i][$attr_i] = $attr;
50 foreach ($this->info as
$name => $attr) {
65 if (!isset($attr[0])) {
71 for (
$i = 0; isset($merge[
$i]); $i++) {
72 if (isset($seen[$merge[$i]])) {
75 $seen[$merge[
$i]] =
true;
77 if (!isset($this->info[$merge[$i]])) {
80 foreach ($this->info[$merge[$i]] as
$key => $value) {
81 if (isset($attr[
$key])) {
86 if (isset($this->info[$merge[$i]][0])) {
88 $merge = array_merge($merge, $this->info[$merge[$i]][0]);
104 $processed =
array();
106 foreach ($attr as $def_i =>
$def) {
112 if (isset($processed[$def_i])) {
117 if ($required = (strpos($def_i,
'*') !==
false)) {
119 unset($attr[$def_i]);
120 $def_i = trim($def_i,
'*');
121 $attr[$def_i] =
$def;
124 $processed[$def_i] =
true;
127 if (is_object(
$def)) {
129 $attr[$def_i]->required = ($required || $attr[$def_i]->required);
133 if (
$def ===
false) {
134 unset($attr[$def_i]);
138 if (
$t = $attr_types->get(
$def)) {
140 $attr[$def_i]->required = $required;
142 unset($attr[$def_i]);
doConstruct($attr_types, $modules)
performInclusions(&$attr)
Takes a reference to an attribute associative array and performs all inclusions specified by the zero...
$info
Associative array of attribute collections, indexed by name.
__construct($attr_types, $modules)
Performs all expansions on internal data for use by other inclusions It also collects all attribute c...
if($modEnd===false) $module
Create styles array
The data for the language used.
Defines common attribute collections that modules reference.
expandIdentifiers(&$attr, $attr_types)
Expands all string identifiers in an attribute array by replacing them with the appropriate values in...