@@ -6,53 +6,16 @@ class Postmaster_ParcelSettingsModel extends BaseModel
66 public function __construct ($ attributes = null )
77 {
88 parent ::__construct ($ attributes );
9+ }
910
10- $ parcelTypeSettings = $ this ->parcelTypeSettings ;
11-
12- foreach (craft ()->postmaster ->getRegisteredParcelTypes () as $ parcelType )
13- {
14- if (!isset ($ parcelTypeSettings [$ parcelType ->id ]))
15- {
16- $ parcelTypeSettings [$ parcelType ->id ] = array ();
17- }
18- }
19-
20- $ this ->parcelTypeSettings = $ parcelTypeSettings ;
21-
22- foreach ($ this ->parcelTypeSettings as $ id => $ parcelTypeSettings )
23- {
24- $ class = craft ()->postmaster ->getRegisteredParcelType ($ id );
25-
26- $ settings = $ class ->createSettingsModel ($ parcelTypeSettings );
27-
28- $ this ->setParcelTypeSettings ($ id , $ settings ->getAttributes ());
29- }
30-
31-
32- $ serviceSettings = $ this ->serviceSettings ;
33-
34- foreach (craft ()->postmaster ->getRegisteredServices () as $ service )
35- {
36- if (!isset ($ serviceSettings [$ service ->id ]))
37- {
38- $ serviceSettings [$ service ->id ] = array ();
39- }
40- }
41-
42- $ this ->serviceSettings = $ serviceSettings ;
43-
44- foreach ($ this ->serviceSettings as $ id => $ serviceSettings )
45- {
46- $ class = craft ()->postmaster ->getRegisteredService ($ id );
47-
48- $ settings = $ class ->createSettingsModel ($ serviceSettings );
49-
50- $ this ->setServiceSettings ($ id , $ settings ->getAttributes ());
51- }
11+ public function setAttributes ($ attributes = null )
12+ {
13+ parent ::setAttributes ($ attributes );
5214
15+ $ this ->_sanitizeSettings ();
5316 }
5417
55- public function getServiceSettings ($ id )
18+ public function getServiceSettingsById ($ id )
5619 {
5720 $ settings = array ();
5821
@@ -64,7 +27,7 @@ public function getServiceSettings($id)
6427 return $ settings ;
6528 }
6629
67- public function setServiceSettings ($ id , Array $ settings = array ())
30+ public function setServiceSettings ($ id , $ settings = array ())
6831 {
6932 if (isset ($ this ->serviceSettings [$ id ]))
7033 {
@@ -75,7 +38,7 @@ public function setServiceSettings($id, Array $settings = array())
7538 }
7639 }
7740
78- public function getParcelTypeSettings ($ id )
41+ public function getParcelTypeSettingsById ($ id )
7942 {
8043 $ settings = array ();
8144
@@ -87,7 +50,7 @@ public function getParcelTypeSettings($id)
8750 return $ settings ;
8851 }
8952
90- public function setParcelTypeSettings ($ id , Array $ settings = array ())
53+ public function setParcelTypeSettings ($ id , $ settings = array ())
9154 {
9255 if (isset ($ this ->parcelTypeSettings [$ id ]))
9356 {
@@ -107,4 +70,49 @@ protected function defineAttributes()
10770 'serviceSettings ' => array (AttributeType::Mixed, 'default ' => array ())
10871 );
10972 }
73+
74+ private function _sanitizeSettings ()
75+ {
76+ $ parcelTypeSettings = $ this ->parcelTypeSettings ;
77+
78+ foreach (craft ()->postmaster ->getRegisteredParcelTypes () as $ parcelType )
79+ {
80+ if (!isset ($ parcelTypeSettings [$ parcelType ->id ]))
81+ {
82+ $ parcelTypeSettings [$ parcelType ->id ] = array ();
83+ }
84+ }
85+
86+ $ this ->parcelTypeSettings = $ parcelTypeSettings ;
87+
88+ foreach ($ this ->parcelTypeSettings as $ id => $ parcelTypeSettings )
89+ {
90+ $ class = craft ()->postmaster ->getRegisteredParcelType ($ id );
91+
92+ $ settings = $ class ->createSettingsModel ($ parcelTypeSettings );
93+
94+ $ this ->setParcelTypeSettings ($ id , $ settings );
95+ }
96+
97+ $ serviceSettings = $ this ->serviceSettings ;
98+
99+ foreach (craft ()->postmaster ->getRegisteredServices () as $ service )
100+ {
101+ if (!isset ($ serviceSettings [$ service ->id ]))
102+ {
103+ $ serviceSettings [$ service ->id ] = array ();
104+ }
105+ }
106+
107+ $ this ->serviceSettings = $ serviceSettings ;
108+
109+ foreach ($ this ->serviceSettings as $ id => $ serviceSettings )
110+ {
111+ $ class = craft ()->postmaster ->getRegisteredService ($ id );
112+
113+ $ settings = $ class ->createSettingsModel ($ serviceSettings );
114+
115+ $ this ->setServiceSettings ($ id , $ settings );
116+ }
117+ }
110118}
0 commit comments