@@ -125,7 +125,7 @@ class CustomEntityWidget extends Template implements BlockInterface
125125     * 
126126     * @var Json 
127127     */ 
128-     private  $ json 
128+     private  $ serializer 
129129
130130    /** 
131131     * View constructor. 
@@ -152,7 +152,7 @@ public function __construct(
152152        Conditions $ conditionsHelper
153153        ImageFactory $ imageFactory
154154        array  $ data
155-         Json $ json null 
155+         Json $ serializer null 
156156    ) {
157157        $ this attributeSetRepository  = $ attributeSetRepository
158158        $ this customEntityRepository  = $ customEntityRepository
@@ -162,7 +162,7 @@ public function __construct(
162162        $ this rule  = $ rule
163163        $ this conditionsHelper  = $ conditionsHelper
164164        $ this imageFactory  = $ imageFactory
165-         $ this json  = $ json getInstance ()->get (Json::class);
165+         $ this serializer  = $ serializer getInstance ()->get (Json::class);
166166
167167        parent ::__construct ($ context$ data
168168    }
@@ -208,7 +208,7 @@ public function getCacheKeyInfo()
208208           $ this getItemsPerPage (),
209209           $ this getItemsCount (),
210210           $ conditions
211-            $ this json ->serialize ($ this getRequest ()->getParams ()),
211+            $ this serializer ->serialize ($ this getRequest ()->getParams ()),
212212           $ this getTemplate ()
213213        ];
214214    }
@@ -546,9 +546,8 @@ public function getConditions()
546546    public  function  getIdentities ()
547547    {
548548        $ identities
549- 
550-         if  ($ entities$ this getEntities ()) {
551-             foreach  ($ entitiesas  $ entity
549+         if  ($ this getEntities ()) {
550+             foreach  ($ this getEntities () as  $ entity
552551                $ identities$ entitygetIdentities ();
553552            }
554553        }
@@ -569,25 +568,34 @@ private function getWidgetPagerBlockName()
569568    {
570569        $ pageName$ this getData ('page_var_name ' );
571570        $ pagerBlockName'widget.smile.set.list.pager ' ;
572- 
573571        if  (!$ pageName
574572            return  $ pagerBlockName
575573        }
576574
577575        return  $ pagerBlockName'. '  . $ pageName
578576    }
579577
580- 
581- 
582578    /** 
583-      * Decode encoded special characters and unserialize  conditions into array  
579+      * Decode widget  conditions.  
584580     * 
585-      * @param string $encodedConditions 
586-      * @return array 
581+      * @param string $encodedConditions Conditions encoded as JSON.  
582+      * @return array<mixed> Decoded conditions array.  
587583     * @see \Magento\Widget\Model\Widget::getDirectiveParam 
588584     */ 
589-     private  function  decodeConditions (string  $ encodedConditionsarray 
585+     public  function  decodeConditions (string  $ encodedConditionsarray 
590586    {
591-         return  $ this conditionsHelper ->decode (htmlspecialchars_decode ($ encodedConditions
587+         try  {
588+             $ conditions$ this serializer ->unserialize (htmlspecialchars_decode ($ encodedConditions
589+             return  is_array ($ conditions$ conditions
590+         } catch  (\InvalidArgumentException   $ exception
591+             /** @var array{exception:\Throwable, encoded_conditions:string, uri:string} $context */ 
592+             $ context
593+                 'exception '  => $ exception
594+                 'encoded_conditions '  => $ encodedConditions
595+                 'uri '  => $ this _request ->getRequestUri (),
596+             ];
597+             $ this _logger ->error ($ exceptiongetMessage (), $ context
598+             return  [];
599+         }
592600    }
593- }
601+ }
0 commit comments