public function __construct(&$oDB, $iPlaceID, $sHousenumber, $mLangPref)
{
if (is_array($mLangPref)) {
- $mLangPref = 'ARRAY['.join(',', array_map('getDBQuoted', $mLangPref)).']';
+ $mLangPref = $oDB->getArraySQL($oDB->getDBQuotedList($mLangPref));
}
- if (!$sHousenumber) {
+ if (!isset($sHousenumber)) {
$sHousenumber = -1;
}
$sSQL = 'SELECT *,';
- $sSQL .= ' get_name_by_language(name,'.$mLangPref.') as localname';
+ $sSQL .= ' get_name_by_language(name,'.$mLangPref.') as localname';
$sSQL .= ' FROM get_addressdata('.$iPlaceID.','.$sHousenumber.')';
- $sSQL .= ' ORDER BY rank_address desc,isaddress DESC';
+ $sSQL .= ' ORDER BY rank_address DESC, isaddress DESC';
- $this->aAddressLines = chksql($oDB->getAll($sSQL));
+ $this->aAddressLines = $oDB->getAll($sSQL);
}
private static function isAddress($aLine)
{
- return $aLine['isaddress'] == 't' || $aLine['type'] == 'country_code';
+ return $aLine['isaddress'] || $aLine['type'] == 'country_code';
}
public function getAddressDetails($bAll = false)
return $this->aAddressLines;
}
- return array_filter($this->aAddressLines, 'AddressDetails::isAddress');
+ return array_filter($this->aAddressLines, array(__CLASS__, 'isAddress'));
}
public function getLocaleAddress()
$sPrevResult = '';
foreach ($this->aAddressLines as $aLine) {
- if ($aLine['isaddress'] == 't' && $sPrevResult != $aLine['localname']) {
+ if ($aLine['isaddress'] && $sPrevResult != $aLine['localname']) {
$sPrevResult = $aLine['localname'];
$aParts[] = $sPrevResult;
}
public function getAdminLevels()
{
$aAddress = array();
- foreach ($this->aAddressLines as $aLine) {
+ foreach (array_reverse($this->aAddressLines) as $aLine) {
if (self::isAddress($aLine)
&& isset($aLine['admin_level'])
&& $aLine['admin_level'] < 15
}
return $aAddress;
}
+
+ public function debugInfo()
+ {
+ return $this->aAddressLines;
+ }
}