* @revision 03 * @license http://creativecommons.org/licenses/by-sa/3.0/de/ Creative Commons Attribution-Share Alike 3.0 Germany * @homepage http://oss.tiggerswelt.net/oscar/ * @copyright Copyright © 2009 tiggersWelt.net */ require_once ("oscar/common.php"); class Oscar_SNAC_Rate_Member { public $classID = 0x0000; public $SNACs = array (); // {{{ getParameters /** * @access public * @return void */ public static function getMembers (&$Data, $Count = null, $Trim = true) { $Params = array (); $myData = $Data; $num = 0; while ((strlen ($Data) > 34) && (($Count === null) || ($num < $Count))) { // Create a new parameter item $Item = new Oscar_SNAC_Rate_Member; // Fill the item with data $Item->classID = Oscar_Common::str2int16 ($myData, 0, true); $numItems = Oscar_Common::str2int16 ($myData, 0, true); for ($i = 0; $i < $numItems; $i++) { $Foodgroup = Oscar_Common::str2int16 ($myData, 0, true); $Type = Oscar_Common::str2int16 ($myData, 0, true); if (!isset ($Item->SNACs [$Foodgroup])) $Item->SNACs [$Foodgroup] = array (); $Item->SNACs [$Foodgroup][$Type] = $Type; } // Append to output $Params [] = $Item; $num++; } if ($Trim) $Data = $myData; return $Params; } // }}} // {{{ setParameters /** * @param array $Items * * @access public * @return string **/ public static function setMembers ($Items) { $buf = ""; if (is_array ($Items)) foreach ($Items as $Item) if ($Item instanceof Oscar_SNAC_Rate_Member) { $c = 0; $b = ""; foreach ($Item->SNACs as $Foodgroup=>$Types) foreach ($Types as $Type) { $c++; $b .= Oscar_Common::int16tostr ($Foodgroup) . Oscar_Common::int16tostr ($Type); } $buf .= Oscar_Common::int16tostr ($Item->classID) . Oscar_Common::int16tostr ($c) . $b; } return $buf; } // }}} } ?>