public function addElement(XMLElement $element) { $name = $element->name(); $value = $element->value(); switch ($name) { case 'LINK': if (!$value) { if ($link = $element->getAttrib('HREF')) { $element->shouldStripTags(true); $element->setValue($link); } } parent::addElement($element); break; case 'enclosure': $this->enclosure = $element; $this->enclosures[] = $element; break; case 'image': $this->images[] = $element; break; case 'CATEGORY': $name = strtolower($name); array_push($this->{$name}, $value); break; case 'PUBDATE': case 'DC:DATE': case 'PUBLISHED': case 'UPDATED': if ($value = $element->value()) { try { if ($date = new DateTime($value)) { $this->pubDate = $date; } } catch (Exception $e) { } } break; case 'AUTHOR': if ($name = $element->getProperty('name')) { $this->author = $name; } else { parent::addElement($element); } break; default: parent::addElement($element); break; } }
public function addElement(XMLElement $element) { $name = $element->name(); $value = $element->value(); switch ($name) { case 'NAME': $this->layerName = $value; break; case 'TITLE': $this->title = $value; break; case 'ABSTRACT': $this->abstract = $value; break; case 'MAXSCALEDENOMINATOR': $this->maxScaleDenom = $value; break; case 'MINSCALEDENOMINATOR': $this->minScaleDenom = $value; break; case 'CRS': $projNumber = end(explode(':', $value)); $this->projections[$projNumber] = $value; break; case 'EX_GEOGRAPHICBOUNDINGBOX': $this->bboxes[self::GEOGRAPHIC_PROJECTION] = array( 'xmin' => $element->getProperty('WESTBOUNDLONGITUDE'), 'xmax' => $element->getProperty('EASTBOUNDLONGITUDE'), 'ymin' => $element->getProperty('SOUTHBOUNDLATITUDE'), 'ymax' => $element->getProperty('NORTHBOUNDLATITUDE'), ); break; case 'BOUNDINGBOX': $this->bboxes[$element->getAttrib('CRS')] = array( 'xmin' => $element->getAttrib('MINX'), 'xmax' => $element->getAttrib('MAXX'), 'ymin' => $element->getAttrib('MINY'), 'ymax' => $element->getAttrib('MAXY'), ); break; case 'STYLE': $this->styles[] = $element; break; default: parent::addElement($element); break; } }
public function addElement(XMLElement $element) { $name = $element->name(); $value = $element->value(); switch ($name) { case 'LINK': if (!$value) { if ($link = $element->getAttrib('HREF')) { $element->setValue($link, true); } } parent::addElement($element); break; case 'enclosure': $this->enclosure = $element; break; case 'image': $this->images[] = $element; break; case 'CATEGORY': $name = strtolower($name); array_push($this->{$name}, $value); break; default: parent::addElement($element); break; } }
public function addElement(XMLElement $element) { $name = $element->name(); $value = $element->value(); switch ($name) { case 'NAME': $this->layerName = $value; break; case 'TITLE': $this->title = $value; break; case 'ABSTRACT': $this->abstract = $value; break; case 'MAXSCALEDENOMINATOR': $this->maxScaleDenom = $value; break; case 'MINSCALEDENOMINATOR': $this->minScaleDenom = $value; break; case 'CRS': $projNumber = end(explode(':', $value)); if ($projNumber == '4326') { // 4326 flips x and y cooordinates (x = lat, y = lon) // TODO we need a better way to deal with this special case $this->projections[$projNumber] = self::GEOGRAPHIC_PROJECTION; } else { $this->projections[$projNumber] = $value; } break; case 'EX_GEOGRAPHICBOUNDINGBOX': $this->bboxes[self::GEOGRAPHIC_PROJECTION] = array('xmin' => floatval($element->getProperty('WESTBOUNDLONGITUDE')), 'xmax' => floatval($element->getProperty('EASTBOUNDLONGITUDE')), 'ymin' => floatval($element->getProperty('SOUTHBOUNDLATITUDE')), 'ymax' => floatval($element->getProperty('NORTHBOUNDLATITUDE'))); break; case 'BOUNDINGBOX': $this->bboxes[$element->getAttrib('CRS')] = array('xmin' => floatval($element->getAttrib('MINX')), 'xmax' => floatval($element->getAttrib('MAXX')), 'ymin' => floatval($element->getAttrib('MINY')), 'ymax' => floatval($element->getAttrib('MAXY'))); break; case 'STYLE': $this->styles[] = $element; break; default: parent::addElement($element); break; } }