@@ -566,6 +566,9 @@ public function jsonSerialize() {
566
566
}
567
567
568
568
public function jsonAcceptTags ($ tags ) {
569
+ if ($ this ->isASleepingReference )
570
+ $ this ->referenceWake ();
571
+
569
572
$ currentTags = $ this ->getTags ();
570
573
$ protectedTags = array_intersect ($ this ->protectedTags , $ currentTags );
571
574
$ tags = array_diff ($ tags , $ this ->protectedTags );
@@ -579,6 +582,9 @@ public function jsonAcceptTags($tags) {
579
582
}
580
583
581
584
public function jsonAcceptData ($ data ) {
585
+ if ($ this ->isASleepingReference )
586
+ $ this ->referenceWake ();
587
+
582
588
foreach ($ this ->objectData as $ var ) {
583
589
if (isset ($ data [$ var ]) && (array ) $ data [$ var ] === $ data ) {
584
590
$ data [$ var ] = (object ) $ data [$ var ];
@@ -587,15 +593,15 @@ public function jsonAcceptData($data) {
587
593
588
594
$ privateData = array ();
589
595
foreach ($ this ->privateData as $ var ) {
590
- if (key_exists ($ var , $ this ->data ) || key_exists ($ var , $ this ->sdata ) || $ var === ' cdate ' || $ var === ' mdate ' )
596
+ if (key_exists ($ var , $ this ->data ) || key_exists ($ var , $ this ->sdata ))
591
597
$ privateData [$ var ] = $ this ->$ var ;
592
598
if (key_exists ($ var , $ data ))
593
599
unset($ data [$ var ]);
594
600
}
595
601
596
602
$ protectedData = array ();
597
603
foreach ($ this ->protectedData as $ var ) {
598
- if (key_exists ($ var , $ this ->data ) || key_exists ($ var , $ this ->sdata ) || $ var === ' cdate ' || $ var === ' mdate ' )
604
+ if (key_exists ($ var , $ this ->data ) || key_exists ($ var , $ this ->sdata ))
599
605
$ protectedData [$ var ] = $ this ->$ var ;
600
606
if (key_exists ($ var , $ data ))
601
607
unset($ data [$ var ]);
@@ -610,14 +616,11 @@ public function jsonAcceptData($data) {
610
616
611
617
$ data = array_merge ($ data , $ protectedData , $ privateData );
612
618
613
- if (isset ($ data ['cdate ' ])) {
614
- $ this ->cdate = $ data ['cdate ' ];
615
- unset($ data ['cdate ' ]);
616
- }
617
- if (isset ($ data ['mdate ' ])) {
618
- $ this ->mdate = $ data ['mdate ' ];
619
- unset($ data ['mdate ' ]);
620
- }
619
+ if (!isset ($ data ['cdate ' ]))
620
+ $ data ['cdate ' ] = $ this ->cdate ;
621
+ if (!isset ($ data ['mdate ' ]))
622
+ $ data ['mdate ' ] = $ this ->mdate ;
623
+
621
624
$ this ->putData ($ data );
622
625
}
623
626
0 commit comments