From: Alex Sadleir Date: Sun, 14 Apr 2013 08:55:48 +0000 Subject: Experimental organization support X-Git-Url: https://maxious.lambdacomplex.org/git/?p=disclosr.git&a=commitdiff&h=c690b89039257e7e7a4b5bd65b880a3b6cadb5cb --- Experimental organization support Former-commit-id: 0c86e9a2a6e066dc3f1550e7915892d9649ec125 --- --- a/about.php +++ b/about.php @@ -4,19 +4,12 @@ ?>

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/.

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 +18,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 +36,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:
- @@ -238,9 +245,9 @@
-

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.

+
'; --- /dev/null +++ b/headcount.php @@ -1,1 +1,126 @@ + + + + + Minimal BubbleTree Demo + + + + + + + + + + + + + +
+
+
+ + + --- 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 @@ -54,6 +54,8 @@ --- 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/README +++ b/lib/FeedWriter/README @@ -1,20 +1,20 @@ -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 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 -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/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=.