public function meta_type_geo($template, $weight = 50) { $template = explode('|', $template); $tags = array('country', 'country_code', 'country_abbr', 'city_prefix', 'city_suffix', 'city', 'state', 'state_abbr', 'address', 'secondary_address', 'building_number', 'street_name', 'street_address', 'postalcode', 'latitude', 'longitude'); $text = array(); foreach ($template as $key => $tag) { preg_match('|^\\{\\% *([^\\ ]*) *\\%\\}$|i', $tag, $_parsed); if (!empty($_parsed)) { list($element, $term) = $_parsed; switch ($term) { case 'country': $text[] = $this->generator->country; break; case 'country_code': $text[] = \FakerPress\Utils::get_country_alpha_code($this->generator->country, 2); break; case 'country_abbr': $text[] = \FakerPress\Utils::get_country_alpha_code($this->generator->country, 3); break; case 'city_prefix': $text[] = $this->generator->cityPrefix; break; case 'city_suffix': $text[] = $this->generator->citySuffix; break; case 'city': $text[] = $this->generator->city; break; case 'state': $text[] = $this->generator->state; break; case 'state_abbr': $text[] = $this->generator->stateAbbr; break; case 'address': $text[] = $this->generator->address; break; case 'secondary_address': $text[] = $this->generator->secondaryAddress; break; case 'building_number': $text[] = $this->generator->buildingNumber; break; case 'street_name': $text[] = $this->generator->streetName; break; case 'street_address': $text[] = $this->generator->streetAddress; break; case 'postalcode': $text[] = $this->generator->postcode; break; case 'latitude': $text[] = $this->generator->latitude; break; case 'longitude': $text[] = $this->generator->longitude; break; } } else { $text[] = empty($tag) ? ' ' : $tag; } } $value = $this->generator->optional((int) $weight, null)->randomElement((array) implode('', $text)); return $value; }