diff --git a/library/Class/Agenda/SQY.php b/library/Class/Agenda/SQY.php index a1b3506ce83a7e07a39eefb721c6ff02a7fb349d..23f6fb4799cd00603a235abea4a4985a39c22f18 100644 --- a/library/Class/Agenda/SQY.php +++ b/library/Class/Agenda/SQY.php @@ -339,6 +339,7 @@ class Class_Agenda_SQY_LocationWrapper { 'setTelephone' => 'setTelephone', 'setLatitude' => 'setLatitude', 'setLongitude' => 'setLongitude', + 'setAdresse' => 'setAdresse', 'setMail' => 'setMail', 'setUrl' => 'setUrl']; @@ -518,7 +519,8 @@ class Class_Agenda_SQY extends Class_WebService_Abstract { } public function endGeo_Latitude($data) { - $this->_item->setLatitude($data); + if ($data) + $this->_item->setLatitude($data); } public function endGeo_Longitude($data) { @@ -528,6 +530,31 @@ class Class_Agenda_SQY extends Class_WebService_Abstract { public function endUrl($data) { $this->_item->setUrl($data); } + + + public function endAddress($data) { + $this->_item->setAdresse($data); + } + + + public function endMap($data) { + $parts = parse_url($data); + if (!isset($parts['query'])) + return; + + $queries = []; + parse_str($parts['query'], $queries); + + if (!isset($queries['ll'])) + return; + + $lat_long = explode(',', $queries['ll']); + if (count($lat_long) < 2) + return; + + $this->_item->setLatitude($lat_long[0]); + $this->_item->setLongitude($lat_long[1]); + } } ?> \ No newline at end of file diff --git a/tests/library/Class/AgendaSQYImportTest.php b/tests/library/Class/AgendaSQYImportTest.php index 81ee94f77ec97123171cb80da3efecc0986d4940..e8db438a3d8f653f0bc8be0e46277cdde0131eb5 100644 --- a/tests/library/Class/AgendaSQYImportTest.php +++ b/tests/library/Class/AgendaSQYImportTest.php @@ -181,6 +181,36 @@ class AgendaSQYImportTest extends Storm_Test_ModelTestCase { } + /** + * @test + * [[file:../../fixtures/agenda-sqy.xml::<item%20index%3D"69"][lieu Musée de la ville]] + */ + public function firstLocationLatitudeShouldBe48_7() { + $musee = Class_Agenda_SQY_LocationWrapper::getWrappedInstance(69); + $this->assertEquals('48.783202', $musee->getLatitude()); + } + + + /** + * @test + * [[file:../../fixtures/agenda-sqy.xml::<item%20index%3D"69"][lieu Musée de la ville]] + */ + public function firstLocationLongitudeShouldBe48_7() { + $musee = Class_Agenda_SQY_LocationWrapper::getWrappedInstance(69); + $this->assertEquals('2.042414', $musee->getLongitude()); + } + + + /** + * @test + * [[file:../../fixtures/agenda-sqy.xml::<item%20index%3D"69"][lieu Musée de la ville]] + */ + public function firstLocationAdresseShouldBeQuaiFrancoisTruffaut() { + $musee = Class_Agenda_SQY_LocationWrapper::getWrappedInstance(69); + $this->assertContains('Quai François Truffaut', $musee->getAdresse()); + } + + /** * @test * @depends firstLocationLibelleShouldBeMuseeDeLaVille