home *** CD-ROM | disk | FTP | other *** search
- <?PHP
- /**
- * Model for an eBay preference
- *
- * @package Services_Ebay
- * @author Stephan Schmidt <schst@php.net>
- */
- class Services_Ebay_Model_Preferences extends Services_Ebay_Model
- {
- /**
- * preferences
- *
- * @var array
- */
- protected $preferences = array();
-
- /**
- * set of preferences
- *
- * @var array
- */
- protected $preferenceSets = array();
-
- /**
- * create new preferences
- *
- *
- */
- public function __construct($props, $session = null)
- {
- if (is_string($props)) {
- $this->properties['Name'] = $props;
- } elseif (is_array($props)) {
- if (isset($props['Name'])) {
- $this->properties['Name'] = $props['Name'];
- }
- if (isset($props['PreferenceRole'])) {
- $this->properties['PreferenceRole'] = $props['PreferenceRole'];
- }
- if (isset($props['Preference'])) {
- if (isset($props['Preference'][0])) {
- $this->preferences = $props['Preference'];
- } else {
- $this->preferences = array($props['Preference']);
- }
- }
- if (isset($props['Preferences'])) {
- if (isset($props['Preferences'][0])) {
- $tmp = $props['Preferences'];
- } else {
- $tmp = array($props['Preferences']);
- }
- foreach ($tmp as $set) {
- $this->AddPreference(Services_Ebay::loadModel('Preferences', $set, $session));
- }
- }
- }
- }
-
- /**
- * add a new preference or preference set
- *
- * @param string|object
- * @param mixed
- * @param string
- */
- public function AddPreference($Name, $Value = null, $ValueType = null )
- {
- if ($Name instanceof Services_Ebay_Model_Preferences) {
- array_push($this->preferenceSets, $Name);
- } else {
- array_push($this->preferences, array(
- 'Name' => $Name,
- 'Value' => $Value,
- 'ValueType' => $ValueType
- )
- );
-
- }
- }
-
- /**
- * creates an array for serialization
- *
- * @return array
- */
- public function toArray()
- {
- $array = parent::toArray();
- if (!empty($this->preferences)) {
- $array['Preference'] = $this->preferences;
- }
- if (!empty($this->preferenceSets)) {
- $array['Preferences'] = array();
- foreach ($this->preferenceSets as $set) {
- array_push($array['Preferences'], $set->toArray());
- }
- }
-
- return $array;
- }
- }
- ?>