/** * Loads an array of typed objects of a given class (same class as current object by default) * which inherit from this class. * @access private * * @param string $class [optional] class name * @param string $key [optional] key name in db to use as key of array * @param array $additionalVars [optional] array of string additional key names to add as vars to object * @return array of objects of the same class (empty array if no objects) */ function &loadTrueObjects($class = null, $key = "", $additionalVars = null) { if ($additionalVars === null) { $additionalVars = array(); } $objectsArray = array(); $resultsArray = $this->_db->loadAssocList($key); if (is_array($resultsArray)) { if ($class == null) { $class = get_class($this); } foreach ($resultsArray as $k => $value) { $objectsArray[$k] = new $class($this->_db); // mosBindArrayToObject( $value, $objectsArray[$k], null, null, false ); $objectsArray[$k]->bind($value, null, null, false); foreach ($additionalVars as $index) { if (array_key_exists($index, $value)) { $objectsArray[$k]->{$index} = $value[$index]; } } } } return $objectsArray; }
/** * Converts non-numeric value to numeric, otherwise return null * * @param string $value * @param \CBDatabase $_CB_database * @return string|null */ private function fieldNameToId( $value, $_CB_database ) { if ( is_numeric( $value ) ) { return $value; } static $fieldNameIdMap = array(); if ( ! isset( $fieldNameIdMap[$value] ) ) { $_CB_database->setQuery( "SELECT f." . $_CB_database->NameQuote( 'fieldid' ) . "\n FROM " . $_CB_database->NameQuote( '#__comprofiler_fields' ) . " AS f" . "\n WHERE f." . $_CB_database->NameQuote( 'name' ) . ' = ' . $_CB_database->Quote( $value ) ); $fieldNameIdMap[$value] = $_CB_database->loadResult(); } return $fieldNameIdMap[$value]; }