From: Maxious Date: Mon, 08 Jul 2013 00:49:58 +0000 Subject: fix sitemap X-Git-Url: https://maxious.lambdacomplex.org/git/?p=disclosr.git&a=commitdiff&h=7029a647661841d063a1b866f916e4bec2ba7096 --- fix sitemap Former-commit-id: ddc69719d5b15a16ac0ec2110cd9fdd9fb44cc0e --- --- a/about.php +++ b/about.php @@ -4,19 +4,16 @@ ?>

About/FAQ

-

Lorem ipsum.

-

What is this?

-Disclo.gs is a project to monitor Australian Federal Government agencies -compliance with their "proactive disclosure requirements" to make a transparency league table as suggested by gov2 taskforce http://gov2.net.au/blog/2009/09/19/a-league-ladder-of-psi-openness/. +Document Dump icon designed by Iconathon, 2013 +Contact us: maxious@lambdacomplex.org + +Exports: All Agencies Agency Employee Headcounts

Attributions

National Archives of Australia, Australian Governments’ Interactive Functions Thesaurus, 2nd edition, September 2005, published at http://www.naa.gov.au/recordkeeping/thesaurus/index.htm
data.gov.au http://data.gov.au/dataset/directory-gov-au-full-data-export/
directory.gov.au
australia.gov.au http://australia.gov.au/about/copyright
-

Open everything

-All documents released CC-BY 3 AU -Open source git @

Organisational Data Sources

@@ -25,17 +22,17 @@ http://www.finance.gov.au/publications/flipchart/docs/FMACACFlipchart.pdf summarises these. view-source:https://www.tenders.gov.au/?event=public.advancedsearch.home is great for the suspended/active status
-Fraud in gov depts by Fairfax Media http://www.smh.com.au/national/public-service-keeps-fraud-cases-private-20110923-1kpdr.html +Fraud in gov depts by Fairfax Media http://www.smh.com.au/national/public-service-keeps-fraud-cases-private-20110923-1kpdr.html
When defining the hierachy, this system is designed towards monitoring accountablity. Thus large agencies that have registered their own ABN -and have their own accountablity mechanisms/website receive a seperate record as a child of their department. +and have their own accountablity mechanisms/website receive a seperate record as a child of their department.
Some small agencies will choose to simply rely on their parent department's accountablity measures.
-This flows through to organisation name and other/past names. A department that completely accounts for an agency will list that agency as an other child name. -As agencies themselves shift between departments, there may be scope for providing time ranges but typically the newest hierarchy will be the one recorded. +This flows through to organisation name and other/past names. A department that completely accounts for an agency will list that agency as an other child name.
+As agencies themselves shift between departments, there may be scope for providing time ranges but typically the newest hierarchy will be the one recorded.
A department/agency name will be the newest active name assigned to that ABN.
-ABN information is derived from the ABR. This is the definitive umpire about which former name should be linked to which current name. +ABN information is derived from the ABR. This is the definitive umpire about which former name should be linked to which current name.
For example "Department of Transport and Regional Services" became "Department of Infrastructure, Transport, Regional Development and Local Government" (same ABN) however it later split into "Department of Infrastructure and Transport" (same ABN) and "Department of Regional Australia, Regional Development and Local Government" (new ABN).
@@ -43,24 +40,7 @@ Statistical information from http://www.apsc.gov.au/stateoftheservice/1011/statsbulletin/section1.html#t2total https://www.apsedii.gov.au/apsedii/CustomQueryx33.shtml and individual annual reports.
-

Webpage Assessment

-Much due care has been put into correctly recording disclosure URLs. Typically the "About", "Corporate", "Publications" and "Sitemap" sections are checked at the very least. -Occasionally it is nessicary to use a site or Google search. In several rare cases, there is a secret "Disclosure" navigation menu you can find if you find one of the mandatory publishing obligations in that category (seriously).
-Some rules about leniency:
-
-

Hello, world!

-

This is a template for a simple marketing or informational website. It includes a large callout called the hero unit and three supporting pieces of content. Use it as a starting point to create something more unique.

-

Learn more »

+

Australian Government Agencies

+

Explore collected information about Australian Government Agencies below.

+
'; - try { - $rows = $db->get_view("app", "byCanonicalName")->rows; - //print_r($rows); - $rowCount = count($rows); - foreach ($rows as $i => $row) { - if ($i % ($rowCount/3) == 0 && $i != 0 && $i != $rowCount -2 ) echo '
'; - // print_r($row); - echo ' + try { + $rows = $db->get_view("app", "byCanonicalName")->rows; + //print_r($rows); + $rowCount = count($rows); + foreach ($rows as $i => $row) { + if ($i % ($rowCount / 3) == 0 && $i != 0 && $i != $rowCount - 2) echo '
'; + // print_r($row); + echo '

'; - } - - } catch (SetteeRestClientException $e) { - setteErrorHandler($e); - } - echo '
+ (isset($row->value->name) ? $row->value->name : "ERROR NAME MISSING") + . '

'; + } + + } catch (SetteeRestClientException $e) { + setteErrorHandler($e); + } + echo '
'; -} - -include_footer(); -?> - + } + + include_footer(); + ?> + --- /dev/null +++ b/headcount.php @@ -1,1 +1,126 @@ + + + + + Minimal BubbleTree Demo + + + + + + + + + + + + + +
+
+
+ + + --- a/include/common.inc.php +++ b/include/common.inc.php @@ -10,6 +10,7 @@ || strstr($_SERVER['PHP_SELF'], "documents/") || $_SERVER['SERVER_NAME'] == "disclosurelo.gs" || $_SERVER['SERVER_NAME'] == "www.disclosurelo.gs" + || $_SERVER['SERVER_NAME'] == "direct.disclosurelo.gs" ) $basePath = "../"; @@ -19,7 +20,7 @@ Requests::register_autoloader(); $ENV = "DEV"; -if (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] != 'localhost') { +if (false && isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] != 'localhost') { require $basePath."lib/amon-php/amon.php"; Amon::config(array('address'=> 'http://127.0.0.1:2464', --- a/include/couchdb.inc.php +++ b/include/couchdb.inc.php @@ -7,18 +7,24 @@ if (php_uname('n') == "vanille") { $serverAddr = 'http://192.168.178.21:5984/'; } else -if (php_uname('n') == "KYUUBEY") { + if (php_uname('n') == "KYUUBEY") { - $serverAddr = 'http://192.168.1.148:5984/'; - $serverAddr = 'http://127.0.0.1:5984/'; -} else { - $serverAddr = 'http://127.0.0.1:5984/'; -} + $serverAddr = 'http://192.168.1.148:5984/'; + $serverAddr = 'http://127.0.0.1:5984/'; + } else + if (php_uname('n') == "ikurt-20") { + + //$serverAddr = 'http://192.168.1.113:5984/'; + $serverAddr = 'http://127.0.0.1:5984/'; + } else { + $serverAddr = 'http://127.0.0.1:5984/'; + } $server = new SetteeServer($serverAddr); -function setteErrorHandler($e) { +function setteErrorHandler($e) +{ if (class_exists('Amon')) { - Amon::log($e->getMessage() . " " . print_r($_SERVER,true), array('error')); + Amon::log($e->getMessage() . " " . print_r($_SERVER, true), array('error')); } echo $e->getMessage() . "
" . PHP_EOL; } --- a/include/template.inc.php +++ b/include/template.inc.php @@ -28,6 +28,9 @@ .sidebar-nav { padding: 9px 0; } + .flotr-dummy-div { + margin-left: -999px; + } --- a/lib/Color.php +++ b/lib/Color.php @@ -1,502 +1,502 @@ - - * - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - * - * @version $Id$ - * - */ -class Lux_Color -{ - /** - * - * Converts hexadecimal colors to RGB. - * - * @param string $hex Hexadecimal value. Accepts values with 3 or 6 numbers, - * with or without #, e.g., CCC, #CCC, CCCCCC or #CCCCCC. - * - * @return array RGB values: 0 => R, 1 => G, 2 => B - * - */ - public function hex2rgb($hex) - { - // Remove #. - if (strpos($hex, '#') === 0) { - $hex = substr($hex, 1); - } - - if (strlen($hex) == 3) { - $hex .= $hex; - } - - if (strlen($hex) != 6) { - return false; - } - - // Convert each tuple to decimal. - $r = hexdec(substr($hex, 0, 2)); - $g = hexdec(substr($hex, 2, 2)); - $b = hexdec(substr($hex, 4, 2)); - - return array($r, $g, $b); - } - - /** - * - * Converts hexadecimal colors to HSV. - * - * @param string $hex Hexadecimal value. Accepts values with 3 or 6 numbers, - * with or without #, e.g., CCC, #CCC, CCCCCC or #CCCCCC. - * - * @return array HSV values: 0 => H, 1 => S, 2 => V - * - */ - public function hex2hsv($hex) - { - return $this->rgb2hsv($this->hex2rgb($hex)); - } - - /** - * - * Converts hexadecimal colors to HSL. - * - * @param string $hex Hexadecimal value. Accepts values with 3 or 6 numbers, - * with or without #, e.g., CCC, #CCC, CCCCCC or #CCCCCC. - * - * @return array HSL values: 0 => H, 1 => S, 2 => L - * - */ - public function hex2hsl($hex) - { - return $this->rgb2hsl($this->hex2rgb($hex)); - } - - /** - * - * Converts RGB colors to hexadecimal. - * - * @param array $rgb RGB values: 0 => R, 1 => G, 2 => B - * - * @return string Hexadecimal value with six digits, e.g., CCCCCC. - * - */ - public function rgb2hex($rgb) - { - if(count($rgb) < 3) { - return false; - } - - list($r, $g, $b) = $rgb; - - // From php.net. - $r = 0x10000 * max(0, min(255, $r)); - $g = 0x100 * max(0, min(255, $g)); - $b = max(0, min(255, $b)); - - return strtoupper(str_pad(dechex($r + $g + $b), 6, 0, STR_PAD_LEFT)); - } - - /** - * - * Converts RGB to HSV. - * - * @param array $rgb RGB values: 0 => R, 1 => G, 2 => B - * - * @return array HSV values: 0 => H, 1 => S, 2 => V - * - */ - public function rgb2hsv($rgb) - { - // RGB values = 0 ÷ 255 - $var_R = ($rgb[0] / 255); - $var_G = ($rgb[1] / 255); - $var_B = ($rgb[2] / 255); - - // Min. value of RGB - $var_Min = min($var_R, $var_G, $var_B); - - // Max. value of RGB - $var_Max = max($var_R, $var_G, $var_B); - - // Delta RGB value - $del_Max = $var_Max - $var_Min; - - $V = $var_Max; - - // This is a gray, no chroma... - if ( $del_Max == 0 ) { - // HSV results = 0 ÷ 1 - $H = 0; - $S = 0; - } else { - // Chromatic data... - $S = $del_Max / $var_Max; - - $del_R = ((($var_Max - $var_R) / 6) + ($del_Max / 2)) / $del_Max; - $del_G = ((($var_Max - $var_G) / 6) + ($del_Max / 2)) / $del_Max; - $del_B = ((($var_Max - $var_B) / 6) + ($del_Max / 2)) / $del_Max; - - if ($var_R == $var_Max) { - $H = $del_B - $del_G; - } else if ($var_G == $var_Max) { - $H = (1 / 3) + $del_R - $del_B; - } else if ($var_B == $var_Max) { - $H = (2 / 3) + $del_G - $del_R; - } - - if ($H < 0) { - $H += 1; - } - if ($H > 1) { - $H -= 1; - } - } - - // Returns agnostic values. - // Range will depend on the application: e.g. $H*360, $S*100, $V*100. - return array($H, $S, $V); - } - - /** - * - * Converts RGB to HSL. - * - * @param array $rgb RGB values: 0 => R, 1 => G, 2 => B - * - * @return array HSL values: 0 => H, 1 => S, 2 => L - * - */ - public function rgb2hsl($rgb) - { - // Where RGB values = 0 ÷ 255. - $var_R = $rgb[0] / 255; - $var_G = $rgb[1] / 255; - $var_B = $rgb[2] / 255; - - // Min. value of RGB - $var_Min = min($var_R, $var_G, $var_B); - // Max. value of RGB - $var_Max = max($var_R, $var_G, $var_B); - // Delta RGB value - $del_Max = $var_Max - $var_Min; - - $L = ($var_Max + $var_Min) / 2; - - if ( $del_Max == 0 ) { - // This is a gray, no chroma... - // HSL results = 0 ÷ 1 - $H = 0; - $S = 0; - } else { - // Chromatic data... - if ($L < 0.5) { - $S = $del_Max / ($var_Max + $var_Min); - } else { - $S = $del_Max / ( 2 - $var_Max - $var_Min ); - } - - $del_R = ((($var_Max - $var_R) / 6) + ($del_Max / 2)) / $del_Max; - $del_G = ((($var_Max - $var_G) / 6) + ($del_Max / 2)) / $del_Max; - $del_B = ((($var_Max - $var_B) / 6) + ($del_Max / 2)) / $del_Max; - - if ($var_R == $var_Max) { - $H = $del_B - $del_G; - } else if ($var_G == $var_Max) { - $H = ( 1 / 3 ) + $del_R - $del_B; - } else if ($var_B == $var_Max) { - $H = ( 2 / 3 ) + $del_G - $del_R; - } - - if ($H < 0) { - $H += 1; - } - if ($H > 1) { - $H -= 1; - } - } - - return array($H, $S, $L); - } - - /** - * - * Converts HSV colors to hexadecimal. - * - * @param array $hsv HSV values: 0 => H, 1 => S, 2 => V - * - * @return string Hexadecimal value with six digits, e.g., CCCCCC. - * - */ - public function hsv2hex($hsv) - { - return $this->rgb2hex($this->hsv2rgb($hsv)); - } - - /** - * - * Converts HSV to RGB. - * - * @param array $hsv HSV values: 0 => H, 1 => S, 2 => V - * - * @return array RGB values: 0 => R, 1 => G, 2 => B - * - */ - public function hsv2rgb($hsv) - { - $H = $hsv[0]; - $S = $hsv[1]; - $V = $hsv[2]; - - // HSV values = 0 ÷ 1 - if ($S == 0) { - $R = $V * 255; - $G = $V * 255; - $B = $V * 255; - } else { - $var_h = $H * 6; - // H must be < 1 - if ( $var_h == 6 ) { - $var_h = 0; - } - // Or ... $var_i = floor( $var_h ) - $var_i = floor( $var_h ); - $var_1 = $V * ( 1 - $S ); - $var_2 = $V * ( 1 - $S * ( $var_h - $var_i ) ); - $var_3 = $V * ( 1 - $S * ( 1 - ( $var_h - $var_i ) ) ); - - switch($var_i) { - case 0: - $var_r = $V; - $var_g = $var_3; - $var_b = $var_1; - break; - case 1: - $var_r = $var_2; - $var_g = $V; - $var_b = $var_1; - break; - case 2: - $var_r = $var_1; - $var_g = $V; - $var_b = $var_3; - break; - case 3: - $var_r = $var_1; - $var_g = $var_2; - $var_b = $V; - break; - case 4: - $var_r = $var_3; - $var_g = $var_1; - $var_b = $V; - break; - default: - $var_r = $V; - $var_g = $var_1; - $var_b = $var_2; - } - - //RGB results = 0 ÷ 255 - $R = $var_r * 255; - $G = $var_g * 255; - $B = $var_b * 255; - } - - return array($R, $G, $B); - } - - /** - * - * Converts HSV colors to HSL. - * - * @param array $hsv HSV values: 0 => H, 1 => S, 2 => V - * - * @return array HSL values: 0 => H, 1 => S, 2 => L - * - */ - public function hsv2hsl($hsv) - { - return $this->rgb2hsl($this->hsv2rgb($hsv)); - } - - /** - * - * Converts hexadecimal colors to HSL. - * - * @param array $hsl HSL values: 0 => H, 1 => S, 2 => L - * - * @return string Hexadecimal value. Accepts values with 3 or 6 numbers, - * with or without #, e.g., CCC, #CCC, CCCCCC or #CCCCCC. - * - */ - public function hsl2hex($hsl) - { - return $this->rgb2hex($this->hsl2rgb($hsl)); - } - - /** - * - * Converts HSL to RGB. - * - * @param array $hsv HSL values: 0 => H, 1 => S, 2 => L - * - * @return array RGB values: 0 => R, 1 => G, 2 => B - * - */ - public function hsl2rgb($hsl) - { - list($H, $S, $L) = $hsl; - - if ($S == 0) { - // HSL values = 0 ÷ 1 - // RGB results = 0 ÷ 255 - $R = $L * 255; - $G = $L * 255; - $B = $L * 255; - } else { - if ($L < 0.5) { - $var_2 = $L * (1 + $S); - } else { - $var_2 = ($L + $S) - ($S * $L); - } - - $var_1 = 2 * $L - $var_2; - - $R = 255 * $this->_hue2rgb($var_1, $var_2, $H + (1 / 3)); - $G = 255 * $this->_hue2rgb($var_1, $var_2, $H); - $B = 255 * $this->_hue2rgb($var_1, $var_2, $H - (1 / 3)); - } - - return array($R, $G, $B); - } - - /** - * - * Support method for hsl2rgb(): converts hue ro RGB. - * - * @param - * - * @param - * - * @param - * - * @return int - * - */ - protected function _hue2rgb($v1, $v2, $vH) - { - if ($vH < 0) { - $vH += 1; - } - - if ($vH > 1) { - $vH -= 1; - } - - if ((6 * $vH) < 1) { - return ($v1 + ($v2 - $v1) * 6 * $vH); - } - - if ((2 * $vH) < 1) { - return $v2; - } - - if ((3 * $vH) < 2) { - return ($v1 + ($v2 - $v1) * (( 2 / 3) - $vH) * 6); - } - - return $v1; - } - - /** - * - * Converts hexadecimal colors to HSL. - * - * @param array $hsl HSL values: 0 => H, 1 => S, 2 => L - * - * @return array HSV values: 0 => H, 1 => S, 2 => V - * - */ - public function hsl2hsv($hsl) - { - return $this->rgb2hsv($this->hsl2rgb($hsl)); - } - - /** - * - * Updates HSV values. - * - * @param array $hsv HSV values: 0 => H, 1 => S, 2 => V - * - * @param array $values Values to update: 0 => value to add to H (0 to 360), - * 1 and 2 => values to multiply S and V (0 to 100). Example: - * - * {{{code:php - * // Update saturation to 80% in the provided HSV. - * $hsv = array(120, 0.75, 0.75); - * $new_hsv = $color->updateHsv($hsv, array(null, 80, null)); - * }}} - * - */ - public function updateHsv($hsv, $values) - { - if (isset($values[0])) { - $hsv[0] = max(0, min(360, ($hsv[0] + $values[0]))); - } - - if (isset($values[1])) { - $hsv[1] = max(0, min(1, ($hsv[1] * ($values[1] / 100)))); - } - - if (isset($values[2])) { - $hsv[2] = max(0, min(1, ($hsv[2] * ($values[2] / 100)))); - } - - return $hsv; - } - - /** - * - * Updates HSL values. - * - * @param array $hsl HSL values: 0 => H, 1 => S, 2 => L - * - * @param array $values Values to update: 0 => value to add to H (0 to 360), - * 1 and 2 => values to multiply S and V (0 to 100). Example: - * - * {{{code:php - * // Update saturation to 80% in the provided HSL. - * $hsl = array(120, 0.75, 0.75); - * $new_hsl = $color->updateHsl($hsl, array(null, 80, null)); - * }}} - * - */ - public function updateHsl($hsl, $values) - { - if (isset($values[0])) { - $hsl[0] = max(0, min(360, ($hsl[0] + $values[0]))); - } - - if (isset($values[1])) { - $hsl[1] = max(0, min(1, ($hsl[1] * ($values[1] / 100)))); - } - - if (isset($values[2])) { - $hsl[2] = max(0, min(1, ($hsl[2] * ($values[2] / 100)))); - } - - return $hsl; - } + + * + * @license http://www.opensource.org/licenses/bsd-license.php BSD License + * + * @version $Id$ + * + */ +class Lux_Color +{ + /** + * + * Converts hexadecimal colors to RGB. + * + * @param string $hex Hexadecimal value. Accepts values with 3 or 6 numbers, + * with or without #, e.g., CCC, #CCC, CCCCCC or #CCCCCC. + * + * @return array RGB values: 0 => R, 1 => G, 2 => B + * + */ + public function hex2rgb($hex) + { + // Remove #. + if (strpos($hex, '#') === 0) { + $hex = substr($hex, 1); + } + + if (strlen($hex) == 3) { + $hex .= $hex; + } + + if (strlen($hex) != 6) { + return false; + } + + // Convert each tuple to decimal. + $r = hexdec(substr($hex, 0, 2)); + $g = hexdec(substr($hex, 2, 2)); + $b = hexdec(substr($hex, 4, 2)); + + return array($r, $g, $b); + } + + /** + * + * Converts hexadecimal colors to HSV. + * + * @param string $hex Hexadecimal value. Accepts values with 3 or 6 numbers, + * with or without #, e.g., CCC, #CCC, CCCCCC or #CCCCCC. + * + * @return array HSV values: 0 => H, 1 => S, 2 => V + * + */ + public function hex2hsv($hex) + { + return $this->rgb2hsv($this->hex2rgb($hex)); + } + + /** + * + * Converts hexadecimal colors to HSL. + * + * @param string $hex Hexadecimal value. Accepts values with 3 or 6 numbers, + * with or without #, e.g., CCC, #CCC, CCCCCC or #CCCCCC. + * + * @return array HSL values: 0 => H, 1 => S, 2 => L + * + */ + public function hex2hsl($hex) + { + return $this->rgb2hsl($this->hex2rgb($hex)); + } + + /** + * + * Converts RGB colors to hexadecimal. + * + * @param array $rgb RGB values: 0 => R, 1 => G, 2 => B + * + * @return string Hexadecimal value with six digits, e.g., CCCCCC. + * + */ + public function rgb2hex($rgb) + { + if(count($rgb) < 3) { + return false; + } + + list($r, $g, $b) = $rgb; + + // From php.net. + $r = 0x10000 * max(0, min(255, $r)); + $g = 0x100 * max(0, min(255, $g)); + $b = max(0, min(255, $b)); + + return strtoupper(str_pad(dechex($r + $g + $b), 6, 0, STR_PAD_LEFT)); + } + + /** + * + * Converts RGB to HSV. + * + * @param array $rgb RGB values: 0 => R, 1 => G, 2 => B + * + * @return array HSV values: 0 => H, 1 => S, 2 => V + * + */ + public function rgb2hsv($rgb) + { + // RGB values = 0 ÷ 255 + $var_R = ($rgb[0] / 255); + $var_G = ($rgb[1] / 255); + $var_B = ($rgb[2] / 255); + + // Min. value of RGB + $var_Min = min($var_R, $var_G, $var_B); + + // Max. value of RGB + $var_Max = max($var_R, $var_G, $var_B); + + // Delta RGB value + $del_Max = $var_Max - $var_Min; + + $V = $var_Max; + + // This is a gray, no chroma... + if ( $del_Max == 0 ) { + // HSV results = 0 ÷ 1 + $H = 0; + $S = 0; + } else { + // Chromatic data... + $S = $del_Max / $var_Max; + + $del_R = ((($var_Max - $var_R) / 6) + ($del_Max / 2)) / $del_Max; + $del_G = ((($var_Max - $var_G) / 6) + ($del_Max / 2)) / $del_Max; + $del_B = ((($var_Max - $var_B) / 6) + ($del_Max / 2)) / $del_Max; + + if ($var_R == $var_Max) { + $H = $del_B - $del_G; + } else if ($var_G == $var_Max) { + $H = (1 / 3) + $del_R - $del_B; + } else if ($var_B == $var_Max) { + $H = (2 / 3) + $del_G - $del_R; + } + + if ($H < 0) { + $H += 1; + } + if ($H > 1) { + $H -= 1; + } + } + + // Returns agnostic values. + // Range will depend on the application: e.g. $H*360, $S*100, $V*100. + return array($H, $S, $V); + } + + /** + * + * Converts RGB to HSL. + * + * @param array $rgb RGB values: 0 => R, 1 => G, 2 => B + * + * @return array HSL values: 0 => H, 1 => S, 2 => L + * + */ + public function rgb2hsl($rgb) + { + // Where RGB values = 0 ÷ 255. + $var_R = $rgb[0] / 255; + $var_G = $rgb[1] / 255; + $var_B = $rgb[2] / 255; + + // Min. value of RGB + $var_Min = min($var_R, $var_G, $var_B); + // Max. value of RGB + $var_Max = max($var_R, $var_G, $var_B); + // Delta RGB value + $del_Max = $var_Max - $var_Min; + + $L = ($var_Max + $var_Min) / 2; + + if ( $del_Max == 0 ) { + // This is a gray, no chroma... + // HSL results = 0 ÷ 1 + $H = 0; + $S = 0; + } else { + // Chromatic data... + if ($L < 0.5) { + $S = $del_Max / ($var_Max + $var_Min); + } else { + $S = $del_Max / ( 2 - $var_Max - $var_Min ); + } + + $del_R = ((($var_Max - $var_R) / 6) + ($del_Max / 2)) / $del_Max; + $del_G = ((($var_Max - $var_G) / 6) + ($del_Max / 2)) / $del_Max; + $del_B = ((($var_Max - $var_B) / 6) + ($del_Max / 2)) / $del_Max; + + if ($var_R == $var_Max) { + $H = $del_B - $del_G; + } else if ($var_G == $var_Max) { + $H = ( 1 / 3 ) + $del_R - $del_B; + } else if ($var_B == $var_Max) { + $H = ( 2 / 3 ) + $del_G - $del_R; + } + + if ($H < 0) { + $H += 1; + } + if ($H > 1) { + $H -= 1; + } + } + + return array($H, $S, $L); + } + + /** + * + * Converts HSV colors to hexadecimal. + * + * @param array $hsv HSV values: 0 => H, 1 => S, 2 => V + * + * @return string Hexadecimal value with six digits, e.g., CCCCCC. + * + */ + public function hsv2hex($hsv) + { + return $this->rgb2hex($this->hsv2rgb($hsv)); + } + + /** + * + * Converts HSV to RGB. + * + * @param array $hsv HSV values: 0 => H, 1 => S, 2 => V + * + * @return array RGB values: 0 => R, 1 => G, 2 => B + * + */ + public function hsv2rgb($hsv) + { + $H = $hsv[0]; + $S = $hsv[1]; + $V = $hsv[2]; + + // HSV values = 0 ÷ 1 + if ($S == 0) { + $R = $V * 255; + $G = $V * 255; + $B = $V * 255; + } else { + $var_h = $H * 6; + // H must be < 1 + if ( $var_h == 6 ) { + $var_h = 0; + } + // Or ... $var_i = floor( $var_h ) + $var_i = floor( $var_h ); + $var_1 = $V * ( 1 - $S ); + $var_2 = $V * ( 1 - $S * ( $var_h - $var_i ) ); + $var_3 = $V * ( 1 - $S * ( 1 - ( $var_h - $var_i ) ) ); + + switch($var_i) { + case 0: + $var_r = $V; + $var_g = $var_3; + $var_b = $var_1; + break; + case 1: + $var_r = $var_2; + $var_g = $V; + $var_b = $var_1; + break; + case 2: + $var_r = $var_1; + $var_g = $V; + $var_b = $var_3; + break; + case 3: + $var_r = $var_1; + $var_g = $var_2; + $var_b = $V; + break; + case 4: + $var_r = $var_3; + $var_g = $var_1; + $var_b = $V; + break; + default: + $var_r = $V; + $var_g = $var_1; + $var_b = $var_2; + } + + //RGB results = 0 ÷ 255 + $R = $var_r * 255; + $G = $var_g * 255; + $B = $var_b * 255; + } + + return array($R, $G, $B); + } + + /** + * + * Converts HSV colors to HSL. + * + * @param array $hsv HSV values: 0 => H, 1 => S, 2 => V + * + * @return array HSL values: 0 => H, 1 => S, 2 => L + * + */ + public function hsv2hsl($hsv) + { + return $this->rgb2hsl($this->hsv2rgb($hsv)); + } + + /** + * + * Converts hexadecimal colors to HSL. + * + * @param array $hsl HSL values: 0 => H, 1 => S, 2 => L + * + * @return string Hexadecimal value. Accepts values with 3 or 6 numbers, + * with or without #, e.g., CCC, #CCC, CCCCCC or #CCCCCC. + * + */ + public function hsl2hex($hsl) + { + return $this->rgb2hex($this->hsl2rgb($hsl)); + } + + /** + * + * Converts HSL to RGB. + * + * @param array $hsv HSL values: 0 => H, 1 => S, 2 => L + * + * @return array RGB values: 0 => R, 1 => G, 2 => B + * + */ + public function hsl2rgb($hsl) + { + list($H, $S, $L) = $hsl; + + if ($S == 0) { + // HSL values = 0 ÷ 1 + // RGB results = 0 ÷ 255 + $R = $L * 255; + $G = $L * 255; + $B = $L * 255; + } else { + if ($L < 0.5) { + $var_2 = $L * (1 + $S); + } else { + $var_2 = ($L + $S) - ($S * $L); + } + + $var_1 = 2 * $L - $var_2; + + $R = 255 * $this->_hue2rgb($var_1, $var_2, $H + (1 / 3)); + $G = 255 * $this->_hue2rgb($var_1, $var_2, $H); + $B = 255 * $this->_hue2rgb($var_1, $var_2, $H - (1 / 3)); + } + + return array($R, $G, $B); + } + + /** + * + * Support method for hsl2rgb(): converts hue ro RGB. + * + * @param + * + * @param + * + * @param + * + * @return int + * + */ + protected function _hue2rgb($v1, $v2, $vH) + { + if ($vH < 0) { + $vH += 1; + } + + if ($vH > 1) { + $vH -= 1; + } + + if ((6 * $vH) < 1) { + return ($v1 + ($v2 - $v1) * 6 * $vH); + } + + if ((2 * $vH) < 1) { + return $v2; + } + + if ((3 * $vH) < 2) { + return ($v1 + ($v2 - $v1) * (( 2 / 3) - $vH) * 6); + } + + return $v1; + } + + /** + * + * Converts hexadecimal colors to HSL. + * + * @param array $hsl HSL values: 0 => H, 1 => S, 2 => L + * + * @return array HSV values: 0 => H, 1 => S, 2 => V + * + */ + public function hsl2hsv($hsl) + { + return $this->rgb2hsv($this->hsl2rgb($hsl)); + } + + /** + * + * Updates HSV values. + * + * @param array $hsv HSV values: 0 => H, 1 => S, 2 => V + * + * @param array $values Values to update: 0 => value to add to H (0 to 360), + * 1 and 2 => values to multiply S and V (0 to 100). Example: + * + * {{{code:php + * // Update saturation to 80% in the provided HSV. + * $hsv = array(120, 0.75, 0.75); + * $new_hsv = $color->updateHsv($hsv, array(null, 80, null)); + * }}} + * + */ + public function updateHsv($hsv, $values) + { + if (isset($values[0])) { + $hsv[0] = max(0, min(360, ($hsv[0] + $values[0]))); + } + + if (isset($values[1])) { + $hsv[1] = max(0, min(1, ($hsv[1] * ($values[1] / 100)))); + } + + if (isset($values[2])) { + $hsv[2] = max(0, min(1, ($hsv[2] * ($values[2] / 100)))); + } + + return $hsv; + } + + /** + * + * Updates HSL values. + * + * @param array $hsl HSL values: 0 => H, 1 => S, 2 => L + * + * @param array $values Values to update: 0 => value to add to H (0 to 360), + * 1 and 2 => values to multiply S and V (0 to 100). Example: + * + * {{{code:php + * // Update saturation to 80% in the provided HSL. + * $hsl = array(120, 0.75, 0.75); + * $new_hsl = $color->updateHsl($hsl, array(null, 80, null)); + * }}} + * + */ + public function updateHsl($hsl, $values) + { + if (isset($values[0])) { + $hsl[0] = max(0, min(360, ($hsl[0] + $values[0]))); + } + + if (isset($values[1])) { + $hsl[1] = max(0, min(1, ($hsl[1] * ($values[1] / 100)))); + } + + if (isset($values[2])) { + $hsl[2] = max(0, min(1, ($hsl[2] * ($values[2] / 100)))); + } + + return $hsl; + } } --- a/lib/FeedWriter/FeedTypes.php +++ /dev/null @@ -1,63 +1,1 @@ - - * - * This file is part of the "Universal Feed Writer" project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -if (!class_exists('FeedWriter')) - require dirname(__FILE__) . '/FeedWriter.php'; - -/** - * Wrapper for creating RSS1 feeds - * - * @package UniversalFeedWriter - */ -class RSS1FeedWriter extends FeedWriter -{ - function __construct() - { - parent::__construct(RSS1); - } -} - -/** - * Wrapper for creating RSS2 feeds - * - * @package UniversalFeedWriter - */ -class RSS2FeedWriter extends FeedWriter -{ - function __construct() - { - parent::__construct(RSS2); - } -} - -/** - * Wrapper for creating ATOM feeds - * - * @package UniversalFeedWriter - */ -class ATOMFeedWriter extends FeedWriter -{ - function __construct() - { - parent::__construct(ATOM); - } -} - --- a/lib/FeedWriter/README +++ b/lib/FeedWriter/README @@ -1,20 +1,42 @@ -This package can be used to generate feeds in either RSS 1.0, RSS 2.0 or ATOM -formats. +This package can be used to generate feeds in either RSS 1.0, RSS 2.0 or ATOM +formats. + +There are three main classes that abstract the feed information and another to +encapsulate the feed items information. + +Applications can create feed writer object, several feed item objects, set +several types of properties of either feeds and feed items, and add items to +the feed. + +Once a feed is fully composed with its items, the feed writer class can generate +the necessary XML structure to describe the feed in the RSS or ATOM formats. +The feed is generated as part of the current feed output. + + +Requirements +============ + +PHP >= 5.3 + +If you don't have 5.3 available on your system, there's a version supporting +PHP >= 5.0 in the "legacy-php-5.0" branch. + + +Documentation +============= + +The documentation can be found in the "gh-pages" branch or on GitHub Pages: +http://mibe.github.io/FeedWriter/ + + +Authors +======= +(in chronological order) + +Anis uddin Ahmad +Michael Bemmerl +Phil Freo +Paul Ferrett +Brennen Bearnes +Michael Robinson -There are three main classes that abstracts the feed information and another to -encapsulate the feed items information. - -Applications can create feed writer object, several feed item objects, set -several types of properties of either feeds and feed items, and add items to -the feed. - -Once a feed is fully composed with its items, the feed writer class can generate -the necessary XML structure to describe the feed in the RSS or ATOM formats. -The feed is generated as part of the current feed output. - - -Requirements -============ - -PHP >= 5.0 - --- a/lib/FeedWriter/examples/example_atom.php +++ b/lib/FeedWriter/examples/example_atom.php @@ -1,3 +1,4 @@ +<<<<<<< HEAD generateFeed(); ?> +======= + + * + * This file is part of the "Universal Feed Writer" project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// IMPORTANT : No need to add id for feed or channel. It will be automatically created from link. + +//Creating an instance of ATOM class. +$TestFeed = new ATOM; + +//Setting the channel elements +//Use wrapper functions for common elements +$TestFeed->setTitle('Testing the RSS writer class'); +$TestFeed->setLink('http://www.ajaxray.com/rss2/channel/about'); +$TestFeed->setDate(new DateTime()); + +//For other channel elements, use setChannelElement() function +$TestFeed->setChannelElement('author', array('name'=>'Anis uddin Ahmad')); + +//You can add additional link elements, e.g. to a PubSubHubbub server with custom relations. +$TestFeed->setSelfLink('http://example.com/myfeed'); +$TestFeed->setAtomLink('http://pubsubhubbub.appspot.com', 'hub'); + +//Adding a feed. Generally this portion will be in a loop and add all feeds. + +//Create an empty Item +$newItem = $TestFeed->createNewItem(); + +//Add elements to the feed item +//Use wrapper functions to add common feed elements +$newItem->setTitle('The first feed'); +$newItem->setLink('http://www.yahoo.com'); +$newItem->setDate(time()); +$newItem->setAuthor('Anis uddin Ahmad', 'anis@example.invalid'); +$newItem->setEnclosure('http://upload.wikimedia.org/wikipedia/commons/4/49/En-us-hello-1.ogg', 11779, 'audio/ogg'); + +//Internally changed to "summary" tag for ATOM feed +$newItem->setDescription('This is a test of adding CDATA encoded description by the php Universal Feed Writer class'); +$newItem->setContent('

hi.

This is the content for the entry.

'); + +//Now add the feed item +$TestFeed->addItem($newItem); + +//OK. Everything is done. Now generate the feed. +$TestFeed->printFeed(); +>>>>>>> origin/master --- a/lib/FeedWriter/examples/example_minimum.php +++ b/lib/FeedWriter/examples/example_minimum.php @@ -1,3 +1,4 @@ +<<<<<<< HEAD generateFeed(); ?> +======= + + * + * This file is part of the "Universal Feed Writer" project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +//Creating an instance of RSS2 class. +$TestFeed = new RSS2; + +//Setting the channel elements +//Use wrapper functions for common channel elements +$TestFeed->setTitle('Testing & Checking the RSS writer class'); +$TestFeed->setLink('http://www.ajaxray.com/projects/rss'); +$TestFeed->setDescription('This is a test of creating a RSS 2.0 feed Universal Feed Writer'); + +//Image title and link must match with the 'title' and 'link' channel elements for valid RSS 2.0 +$TestFeed->setImage('Testing & Checking the RSS writer class','http://www.ajaxray.com/projects/rss','http://www.rightbrainsolution.com/_resources/img/logo.png'); + +//Let's add some feed items: Create two empty Item instances +$itemOne = $TestFeed->createNewItem(); +$itemTwo = $TestFeed->createNewItem(); + +//Add item details +$itemOne->setTitle('The title of the first entry.'); +$itemOne->setLink('http://www.google.de'); +$itemOne->setDate(time()); +$itemOne->setDescription('And here\'s the description of the entry.'); + +$itemTwo->setTitle('Lorem ipsum'); +$itemTwo->setLink('http://www.example.com'); +$itemTwo->setDate(1234567890); +$itemTwo->setDescription('Lorem ipsum dolor sit amet, consectetur, adipisci velit'); + +//Now add the feed item +$TestFeed->addItem($itemOne); +$TestFeed->addItem($itemTwo); + +//OK. Everything is done. Now generate the feed. +$TestFeed->printFeed(); +>>>>>>> origin/master --- a/lib/FeedWriter/examples/example_rss1.php +++ b/lib/FeedWriter/examples/example_rss1.php @@ -1,3 +1,4 @@ +<<<<<<< HEAD generateFeed(); ?> +======= + + * + * This file is part of the "Universal Feed Writer" project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +//Creating an instance of RSS1 class. +$TestFeed = new RSS1; + +//Setting the channel elements +//Use wrapper functions for common elements +//For other optional channel elements, use setChannelElement() function +$TestFeed->setTitle('Testing the RSS writer class'); +$TestFeed->setLink('http://www.ajaxray.com/rss2/channel/about'); +$TestFeed->setDescription('This is test of creating a RSS 1.0 feed by Universal Feed Writer'); + +//It's important for RSS 1.0 +$TestFeed->setChannelAbout('http://www.ajaxray.com/rss2/channel/about'); + +//Adding a feed. Generally this portion will be in a loop and add all feeds. + +//Create an empty FeedItem +$newItem = $TestFeed->createNewItem(); + +//Add elements to the feed item +//Use wrapper functions to add common feed elements +$newItem->setTitle('The first feed'); +$newItem->setLink('http://www.yahoo.com'); +//The parameter is a timestamp for setDate() function +$newItem->setDate(time()); +$newItem->setDescription('This is test of adding CDATA encoded description by the php Universal Feed Writer class'); +//Use core addElement() function for other supported optional elements +$newItem->addElement('dc:subject', 'Nothing but test'); + +//Now add the feed item +$TestFeed->addItem($newItem); + +//Adding multiple elements from array +//Elements which have an attribute cannot be added by this way +$newItem = $TestFeed->createNewItem(); +$newItem->addElementArray(array('title'=>'The 2nd feed', 'link'=>'http://www.google.com', 'description'=>'This is a test of the FeedWriter class')); +$TestFeed->addItem($newItem); + +//OK. Everything is done. Now generate the feed. +$TestFeed->printFeed(); +>>>>>>> origin/master --- a/lib/FeedWriter/examples/example_rss2.php +++ b/lib/FeedWriter/examples/example_rss2.php @@ -1,3 +1,4 @@ +<<<<<<< HEAD generateFeed(); ?> +======= + + * Copyright (C) 2013 Michael Bemmerl + * + * This file is part of the "Universal Feed Writer" project. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +// Creating an instance of RSS2 class. +$TestFeed = new RSS2; + +// Setting some basic channel elements. These three elements are mandatory. +$TestFeed->setTitle('Testing & Checking the Feed Writer project'); +$TestFeed->setLink('https://github.com/mibe/FeedWriter'); +$TestFeed->setDescription('This is just an example how to use the Feed Writer project in your code.'); + +// Image title and link must match with the 'title' and 'link' channel elements for RSS 2.0, +// which were set above. +$TestFeed->setImage('Testing & Checking the Feed Writer project', 'https://github.com/mibe/FeedWriter', 'https://upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Rss-feed.svg/256px-Rss-feed.svg.png'); + +// Use core setChannelElement() function for other optional channel elements. +// See http://www.rssboard.org/rss-specification#optionalChannelElements +// for other optional channel elements. Here the language code for American English and +$TestFeed->setChannelElement('language', 'en-US'); + +// The date when this feed was lastly updated. The publication date is also set. +$TestFeed->setDate(date(DATE_RSS, time())); +$TestFeed->setChannelElement('pubDate', date(\DATE_RSS, strtotime('2013-04-06'))); + +// You can add additional link elements, e.g. to a PubSubHubbub server with custom relations. +// It's recommended to provide a backlink to the feed URL. +$TestFeed->setSelfLink('http://example.com/myfeed'); +$TestFeed->setAtomLink('http://pubsubhubbub.appspot.com', 'hub'); + +// You can add more XML namespaces for more custom channel elements which are not defined +// in the RSS 2 specification. Here the 'creativeCommons' element is used. There are much more +// available. Have a look at this list: http://feedvalidator.org/docs/howto/declare_namespaces.html +$TestFeed->addNamespace('creativeCommons', 'http://backend.userland.com/creativeCommonsRssModule'); +$TestFeed->setChannelElement('creativeCommons:license', 'http://www.creativecommons.org/licenses/by/1.0'); + +// If you want you can also add a line to publicly announce that you used +// this fine piece of software to generate the feed. ;-) +$TestFeed->addGenerator(); + +// Here we are done setting up the feed. What's next is adding some feed items. + +// Create a new feed item. +$newItem = $TestFeed->createNewItem(); + +// Add basic elements to the feed item +// These are again mandatory for a valid feed. +$newItem->setTitle('Hello World!'); +$newItem->setLink('http://www.example.com'); +$newItem->setDescription('This is a test of adding a description by the Feed Writer classes. It\'s automatically CDATA encoded.'); + +// The following method calls add some optional elements to the feed item. + +// Let's set the publication date of this item. You could also use a UNIX timestamp or +// an instance of PHP's DateTime class. +$newItem->setDate('2013-04-07 00:50:30'); + +// You can also attach a media object to a feed item. You just need the URL, the byte length +// and the MIME type of the media. Here's a quirk: The RSS2 spec says "The url must be an http url.". +// Other schemes like ftp, https, etc. produce an error in feed validators. +$newItem->setEnclosure('http://upload.wikimedia.org/wikipedia/commons/4/49/En-us-hello-1.ogg', 11779, 'audio/ogg'); + +// If you want you can set the name (and email address) of the author of this feed item. +$newItem->setAuthor('Anis uddin Ahmad', 'admin@ajaxray.com'); + +// You can set a globally unique identifier. This can be a URL or any other string. +// If you set permaLink to true, the identifier must be an URL. The default of the +// permaLink parameter is false. +$newItem->setId('http://example.com/URL/to/article', true); + +// Use the addElement() method for other optional elements. +// This here will add the 'source' element. The second parameter is the value of the element +// and the third is an array containing the element attributes. +$newItem->addElement('source', 'Mike\'s page', array('url' => 'http://www.example.com')); + +// Now add the feed item to the main feed. +$TestFeed->addItem($newItem); + +// Another method to add feeds items is by using an array which contains key-value pairs +// of every item element. Elements which have attributes cannot be added by this way. +$newItem = $TestFeed->createNewItem(); +$newItem->addElementArray(array('title'=> 'The 2nd item', 'link' => 'http://www.google.com', 'description' => 'Just another test.')); +$TestFeed->addItem($newItem); + +// OK. Everything is done. Now generate the feed. +// If you want to send the feed directly to the browser, use the printFeed() method. +$myFeed = $TestFeed->generateFeed(); + +// Do anything you want with the feed in $myFeed. Why not send it to the browser? ;-) +// You could also save it to a file if you don't want to invoke your script every time. +echo $myFeed; +>>>>>>> origin/master --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,8 +1,8 @@ -include.path=${php.global.include.path} -php.version=PHP_53 -source.encoding=UTF-8 -src.dir=. -tags.asp=false -tags.short=true -web.root=. +include.path=${php.global.include.path} +php.version=PHP_53 +source.encoding=UTF-8 +src.dir=. +tags.asp=false +tags.short=true +web.root=. --- /dev/null +++ b/ranking.php @@ -1,1 +1,213 @@ - +get_db('disclosr-agencies'); +?> + + + get_db('disclosr-agencies'); + //$docsdb = $server->get_db('disclosr-documents'); + $scoredagencies = Array(); + $scores = Array(); + $columnKeys = Array(); + + try { + $rows = $agenciesdb->get_view("app", "all", null, true)->rows; + + + if ($rows) { + foreach ($rows as $row) { + $columns = Array(); + foreach ($row->value as $key => $value) { + if ((strstr($key, "has") || strstr($key, "URL")) && $key != "rtkURLs") { + //echo "$key
"; + $columns[$key] = $value; + } + } + //print_r(array_keys($columns)); + $columnKeys = array_unique(array_merge($columnKeys, array_keys($columns))); + //print_r($columnKeys); + $score = count($columns); + $scores[$score]++; + $scoredagencies[] = Array("id"=> $row->key, "website"=> $row->value->website, "name" => $row->value->name, "columns" => $columns, "score" => $score); + } + } + + } catch (SetteeRestClientException $e) { + setteErrorHandler($e); + } + function cmp($a, $b) + { + if ($a['score'] == $b['score']) { + return strcmp($a['name'], $b['name']); + } + return ($a['score'] > $b['score']) ? -1 : 1; + } + + usort($scoredagencies, "cmp"); + echo ""; + echo ""; + echo ""; + foreach ($columnKeys as $columnID) { + echo ""; + } + echo ""; + foreach ($scoredagencies as $scoredagency) { + echo ""; + echo ""; + echo ""; + foreach ($columnKeys as $key) { + echo ""; + } + echo "\n"; + } + ?> +
Agency NameScore" . (isset($schemas['agency']["properties"][$columnID]['x-title']) ? $schemas['agency']["properties"][$columnID]['x-title'] : "$columnID") . "
". $scoredagency['name'] . "" . $scoredagency['score'] . ""; + if (isset($scoredagency['columns'][$key])) { + $value = $scoredagency['columns'][$key]; + if (is_array($value)) { + if (count($value) == 1) { + $href = $value[0]; + } else { + $href = $value[0]; + } + + } else { + $href = $value; + } + if ($href[0] == "@") { + $href = str_replace("@","https://twitter.com/",$href); + } + //$href= urlencode($href); + + echo ""; + + if (strstr($href, "http")) { + echo ""; + } else { + echo "✓"; + } + + echo ""; + } else { + echo ""; + } + echo "

+
+
+ + +