Пример #1
0
 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;
        }
    }
Пример #3
0
 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;
     }
 }
Пример #4
0
 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;
     }
 }