Beispiel #1
0
 protected function getResultText(SMWQueryResult $res, $outputmode)
 {
     $this->isHTML = true;
     $t = "";
     $n = "";
     // if there is only one column in the results then stop right away
     if ($res->getColumnCount() == 1) {
         return "";
     }
     // print all result rows
     $first = true;
     $max = 0;
     // the biggest value. needed for scaling
     while ($row = $res->getNext()) {
         $name = $row[0]->getNextDataValue()->getShortWikiText();
         foreach ($row as $field) {
             while (($object = $field->getNextDataValue()) !== false) {
                 // use numeric sortkey
                 if ($object->isNumeric()) {
                     $nr = $object->getDataItem()->getSortKey();
                     $max = max($max, $nr);
                     if ($first) {
                         $first = false;
                         $t .= $nr;
                         $n = $name;
                     } else {
                         $t = $nr . ',' . $t;
                         $n = $name . '|' . $n;
                     }
                 }
             }
         }
     }
     return '<img src="http://chart.apis.google.com/chart?cht=p3&chs=' . $this->m_width . 'x' . $this->m_height . '&chds=0,' . $max . '&chd=t:' . $t . '&chl=' . $n . '" width="' . $this->m_width . '" height="' . $this->m_height . '"  />';
 }
	protected function getResultText( SMWQueryResult $res, $outputmode ) {
		$this->isHTML = true;

		$t = "";
		$n = "";

		// if there is only one column in the results then stop right away
		if ($res->getColumnCount() == 1) return "";

		// print all result rows
		$first = true;
		$count = 0; // How many bars will they be? Needed to calculate the height of the image
		$max = 0; // the biggest value. needed for scaling
		
		while ( $row = $res->getNext() ) {
			$name = $row[0]->getNextDataValue()->getShortWikiText();
			foreach ( $row as $field ) {
				while ( ( $object = $field->getNextDataValue() ) !== false ) {
					
					// use numeric sortkey
					if ( $object->isNumeric() ) {
						$nr = $object->getDataItem()->getSortKey();

						$count++;
						$max = max( $max, $nr );

						if ( $first ) {
							$first = false;
							$t .= $nr;
							$n = $name;
						} else {
							$t = $nr . ',' . $t;
							$n .= '|' . $name; // yes, this is correct, it needs to be the other way
						}
					}
				}
			}
		}
		
		$barwidth = 20; // width of each bar
		$bardistance = 4; // distance between two bars
		$height = $count * ( $barwidth + $bardistance ) + 15; // calculates the height of the image
		
		return 	'<img src="http://chart.apis.google.com/chart?cht=bhs&chbh=' . $barwidth . ',' . $bardistance . '&chs=' . $this->m_width . 'x' . $height . '&chds=0,' . $max . '&chd=t:' . $t . '&chxt=y&chxl=0:|' . $n . '" width="' . $this->m_width . '" height="' . $height . '" />';

	}