Ignore:
Timestamp:
Apr 15, 2010, 12:00:44 PM (15 years ago)
Author:
Pieter Naber
Message:

Fixed loghandler so index.php outputs a KML valid file. Also added the possibility to add lines.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/inc/KMLFile.class.php

    r7758 r7765  
    1616                                        <IconStyle>
    1717                                                <Icon>
    18                                                         <href>%PLACEMARK_GREEN%</href>
     18                                                        <href>%NODE_GREEN%</href>
    1919                                                </Icon>
    2020                                        </IconStyle>
     
    2323                                        <IconStyle>
    2424                                                <Icon>
    25                                                         <href>%PLACEMARK_ORANGE%</href>
     25                                                        <href>%NODE_ORANGE%</href>
    2626                                                </Icon>
    2727                                        </IconStyle>
     
    3030                                        <IconStyle>
    3131                                                <Icon>
    32                                                         <href>%PLACEMARK_RED%</href>
     32                                                        <href>%NODE_RED%</href>
    3333                                                </Icon>
    3434                                        </IconStyle>
    3535                                </Style>
    36                                 <Folder>
     36                                <Style id="blackLine">
     37                                        <LineStyle>
     38                                                <color>%LINE_BLACK%</color>
     39                                                <width>3</width>
     40                                        </LineStyle>
     41                                </Style>
     42                                <Folder id="nodes">
    3743                                        <name>Nodes</name>
    3844                                        <description>Nodes from the Wireless Leiden network</description>
     
    4046                                                <longitude>4.490153</longitude>
    4147                                                <latitude>52.161087</latitude>
    42                                                 <altitude>0</altitude>
     48                                                <altitude>5</altitude>
    4349                                                <heading>0</heading>
    4450                                                <tilt>0</tilt>
    4551                                                <range>500</range>
    4652                                        </LookAt>
    47                                         %CONTENT%
     53                                        %NODESCONTENT%
    4854                                </Folder>
    49                         </Document>
     55                                <Folder id="lines">
     56                                        <name>Lines</name>
     57                                        <description>Lines from nodes to nodes from the Wireless Leiden network</description>
     58                                        <LookAt>
     59                                                <longitude>4.490153</longitude>
     60                                                <latitude>52.161087</latitude>
     61                                                <altitude>5</altitude>
     62                                                <heading>0</heading>
     63                                                <tilt>0</tilt>
     64                                                <range>500</range>
     65                                        </LookAt>
     66                                        %LINESCONTENT%
     67                                </Folder>
     68                                </Document>
    5069                </kml>';
    5170
     
    5574        private $fileContent = array('string', 'string', 'int', 'double', 'int', 'int', 'int', 'int');
    5675
    57         private $KMLPlacemarks;
    58 
     76        private $KMLNodes;
     77        private $KMLLines;
     78       
    5979        /*
    6080         * Function: __construct (constructor)
     
    6484         */
    6585        public function __construct() {
    66                 $this->KMLPlacemarks = array();
    67         }
    68 
    69         /*
    70          * Function: addPlacemark
    71          * Description: Add a placemark to the local placemark array
    72          * Parameters: KMLPlacemark $placemark
     86                $this->KMLNodes = array();
     87                $this->KMLLines = array();
     88        }
     89
     90        /*
     91         * Function: addNode
     92         * Description: Add a node to the local node array
     93         * Parameters: KMLNode $node
    7394         * Returns: -
    7495         */
    75         public function addPlacemark(KMLPlacemark $placemark) {
    76                 $this->KMLPlacemarks[] = $placemark;
     96        public function addNode(KMLNode $node) {
     97                $this->KMLNodes[] = $node;
     98        }
     99
     100        /*
     101         * Function: addLIne
     102         * Description: Add a line to the local line array
     103         * Parameters: KMLLine $line
     104         * Returns: -
     105         */
     106        public function addLine(KMLLine $line) {
     107                $this->KMLLines[] = $line;
    77108        }
    78109
     
    88119                $toString = $this->template;
    89120
    90                 $placemarkString = '';
    91                 $placemarkCount = count($this->KMLPlacemarks);
    92                 for ($i = 0; $i < $placemarkCount; $i++) {
    93                         $placemarkString .= $this->KMLPlacemarks[$i]->toString();
    94                 }
    95 
    96                 $toString = str_replace('%PLACEMARK_GREEN%', $config['placemark_green'], $toString);
    97                 $toString = str_replace('%PLACEMARK_ORANGE%', $config['placemark_orange'], $toString);
    98                 $toString = str_replace('%PLACEMARK_RED%', $config['placemark_red'], $toString);
    99                 $toString = str_replace('%CONTENT%', $placemarkString, $toString);
    100 
     121                $nodeString = '';
     122                $nodeCount = count($this->KMLNodes);
     123                for ($i = 0; $i < $nodeCount; $i++) {
     124                        $nodeString .= $this->KMLNodes[$i]->toString();
     125                }
     126
     127                $lineString = '';
     128                $lineCount = count($this->KMLLines);
     129                for ($i = 0; $i < $lineCount; $i++) {
     130                        $lineString .= $this->KMLLines[$i]->toString();
     131                }
     132
     133                $toString = str_replace('%NODE_GREEN%', $config['node_green'], $toString);
     134                $toString = str_replace('%NODE_ORANGE%', $config['node_orange'], $toString);
     135                $toString = str_replace('%NODE_RED%', $config['node_red'], $toString);
     136                $toString = str_replace('%LINE_BLACK%', $config['line_black'], $toString);
     137                $toString = str_replace('%NODESCONTENT%', $nodeString, $toString);
     138                $toString = str_replace('%LINESCONTENT%', $lineString, $toString);
     139               
    101140                return $toString;
    102141        }
     
    123162
    124163        /*
    125          * Function: getPlacemarkByName
    126          * Description: Find the first KMLPlacemark with the name $name and return its position. If not found, return false
     164         * Function: getNodeByName
     165         * Description: Find the first KMLNode with the name $name and return its position. If not found, return false
    127166         * Parameters: string $name
    128          * Returns: Position of placemark in our array, if not found false
    129          */
    130         public function getPlacemarkByName($name) {
    131                 $nodesCount = count($this->KMLPlacemarks);
     167         * Returns: Position of node in our array, if not found false
     168         */
     169        public function getNodeByName($name) {
     170                $nodesCount = count($this->KMLNodes);
    132171                for ($i = 0; $i < $nodesCount; $i++) {
    133                         if ($this->KMLPlacemarks[$i]->getName() == $name) {
     172                        if ($this->KMLNodes[$i]->getName() == $name) {
    134173                                return $i;
    135174                        }
     
    141180        /*
    142181         * Function: parseLocationFile
    143          * Description: Parse the node location file updating or adding KMLPlacemark objects to the current KMLFile object
     182         * Description: Parse the node location file updating or adding KMLNode objects to the current KMLFile object
    144183         * Parameters: string $file
    145184         * Returns: true is successfull, otherwise false
     
    192231                        $descriptionLocation = 'Naam: ' . $name . '<br/>Locatie: ' . $location . '<br/>Status: ' . $status . '<br/>Latitude: ' . $latitude . '<br/>Longitude: ' . $longitude . '<br/>Interfaces: ' . $interfaces . '<br/>Master IP: ' . $masterip . '<br/>Node type: ' . $nodetype . '<br/><br/>';
    193232
    194                         if ($placemarkPosition = $this->getPlacemarkByName($name)) {
     233                        if ($placemarkPosition = $this->getNodeByName($name)) {
    195234                                // Updating an excisting placemark
    196                                 $this->KMLPlacemarks[$placemarkPosition]->setDescriptionLocation($descriptionLocation);
    197                                 $this->KMLPlacemarks[$placemarkPosition]->setLongitude($longitude);
    198                                 $this->KMLPlacemarks[$placemarkPosition]->setLatitude($latitude);
     235                                $this->KMLNodes[$placemarkPosition]->setDescriptionLocation($descriptionLocation);
     236                                $this->KMLNodes[$placemarkPosition]->setLongitude($longitude);
     237                                $this->KMLNodes[$placemarkPosition]->setLatitude($latitude);
    199238                        } else {
    200239                                // Adding a new placemark
    201                                 $placemark = new KMLPlacemark();
     240                                $placemark = new KMLNode();
    202241                                $placemark->setID($name);
    203242                                $placemark->setName($name);
     
    205244                                $placemark->setLongitude($longitude);
    206245                                $placemark->setLatitude($latitude);
    207                                 $this->addPlacemark($placemark);
     246                                $this->addNode($placemark);
    208247                        }
    209248                }
     
    229268        /*
    230269         * Function: parseStatusFile
    231          * Description: Parse the node status file updating or adding KMLPlacemark objects to the current KMLFile object
     270         * Description: Parse the node status file updating or adding KMLNode objects to the current KMLFile object
    232271         * Parameters: string $file
    233272         * Returns: true is successfull, otherwise false
     
    275314                        $descriptionStatus = 'Type: ' . $lineContent[0] . '<br/>Host name: ' . $lineContent[1] . '<br/>Has been checked: ' . $lineContent[2] . '<br/>Check execution time: ' . $lineContent[3] . '<br/>Currenr state: ' . $lineContent[4] . '<br/>Last hard state: ' . $lineContent[5] . '<br/>Last check: ' . $lineContent[6] . '<br/>Problem has been acknowledged: ' . $lineContent[7] . '<br/><br/>';
    276315
    277                         if ($placemarkPosition = $this->getPlacemarkByName($lineContent[1])) {
     316                        if ($placemarkPosition = $this->getNodeByName($lineContent[1])) {
    278317                                // Updating an excisting placemark
    279                                 $this->KMLPlacemarks[$placemarkPosition]->setDescriptionStatus($descriptionStatus);
     318                                $this->KMLNodes[$placemarkPosition]->setDescriptionStatus($descriptionStatus);
    280319                        } else {
    281320                                // Adding a new placemark
    282                                 $placemark = new KMLPlacemark();
     321                                $placemark = new KMLNode();
    283322                                $placemark->setID($lineContent[1]);
    284323                                $placemark->setName($lineContent[1]);
    285324                                $placemark->setDescriptionStatus($descriptionStatus);
    286                                 $this->addPlacemark($placemark);
     325                                $this->addNode($placemark);
    287326                        }
    288327                }
Note: See TracChangeset for help on using the changeset viewer.