public function onCCK_Storage_LocationPrepareItems(&$field, &$storages, $pks, &$config = array(), $load = false) { if (self::$type != $field->storage_location) { return; } // Init $table = $field->storage_table; // Prepare if ($load) { if ($table == self::$table) { $storages[$table] = JCckDatabase::loadObjectList('SELECT * FROM ' . $table . ' WHERE ' . self::$key . ' IN (' . $config['pks'] . ')', self::$key); foreach ($storages[self::$table] as $s) { $query = 'SELECT a.id FROM #__usergroups AS a INNER JOIN #__user_usergroup_map AS b ON b.group_id = a.id WHERE b.user_id = ' . $s->id; $s->groups = JCckDatabase::loadAssocList($query, 'id', 'id'); $s->guest = NULL; $s->password = ''; $s->password2 = ''; } } else { $storages[$table] = JCckDatabase::loadObjectList('SELECT * FROM ' . $table . ' WHERE id IN (' . $config['pks'] . ')', 'id'); if (!isset($storages[self::$table])) { $storages['_'] = self::$table; $storages[self::$table] = JCckDatabase::loadObjectList('SELECT * FROM ' . self::$table . ' WHERE ' . self::$key . ' IN (' . $config['pks'] . ')', self::$key); foreach ($storages[self::$table] as $s) { $query = 'SELECT a.id FROM #__usergroups AS a INNER JOIN #__user_usergroup_map AS b ON b.group_id = a.id WHERE b.user_id = ' . $s->id; $s->groups = JCckDatabase::loadAssocList($query, 'id', 'id'); $s->guest = NULL; $s->password = ''; $s->password2 = ''; } } } } $config['author'] = (int) $storages[self::$table][$config['pk']]->{self::$key}; }