1212
1313namespace  DevBera \CmsLinkToMenu \Model ;
1414
15- use  Magento \ Store \ Model \ ScopeInterface ;
15+ use  DevBera \ CmsLinkToMenu \ Api \ MenuLinkManagementInterface ;
1616
17- use  Magento \Framework \UrlInterface ;
18- use  Magento \Framework \Api \FilterBuilder ;
17+ use  DevBera \CmsLinkToMenu \Model \System \Config \Backend \CmsPageCustomLinker \Processor ;
1918use  Magento \Cms \Api \PageRepositoryInterface ;
20- use  Magento \Framework \Data \ Tree \ NodeFactory ;
19+ use  Magento \Framework \Api \ FilterBuilder ;
2120use  Magento \Framework \Api \SearchCriteriaBuilder ;
22- use  Magento \Store \Model \StoreManagerInterface ;
2321use  Magento \Framework \App \Config \ScopeConfigInterface ;
24- use  DevBera \CmsLinkToMenu \Model \System \Config \Backend \CmsPageCustomLinker \Processor ;
25- use  DevBera \CmsLinkToMenu \Api \MenuLinkManagementInterface ;
22+ use  Magento \Framework \Data \Tree \NodeFactory ;
23+ use  Magento \Framework \UrlInterface ;
24+ use  Magento \Store \Model \ScopeInterface ;
25+ use  Magento \Store \Model \StoreManagerInterface ;
2626
2727class  MenuLinkManagement implements  MenuLinkManagementInterface
2828{
29- 
3029    private  $ homePageIdentifier
31-      
30+ 
3231    /** 
3332     * @var Processor 
3433     */ 
3534    private  $ processor
3635
3736    const   XML_PATH_PRE_CMS_CUSTOM_LINKS  = 'cmslinktomenu/cms_custom_links ' ;
38-              
37+ 
3938    /** 
4039     * @var \Magento\Cms\Api\PageRepositoryInterface 
4140     */ 
@@ -87,7 +86,6 @@ public function __construct(
8786        Processor $ processor
8887        \Psr \Log \LoggerInterface   $ logger
8988    ) {
90-        
9189        $ this logger  = $ logger
9290        $ this filterBuilder  = $ filterBuilder
9391        $ this scopeConfig  = $ scopeConfig
@@ -98,57 +96,52 @@ public function __construct(
9896        $ this pageRepository  = $ pageRepository
9997        $ this processor  = $ processor
10098    }
101-      
99+ 
102100    public  function  addLinks ($ subject$ position'left ' )
103101    {
104102        $ fieldValue$ this scopeConfig ->getValue (
105-             self ::XML_PATH_PRE_CMS_CUSTOM_LINKS . '/ ' . $ position
103+             self ::XML_PATH_PRE_CMS_CUSTOM_LINKS  .  '/ '  .  $ position
106104            ScopeInterface::SCOPE_STORE 
107105        );
108-          
106+ 
109107        $ menuItems$ this getLinksWithSortOrder ($ fieldValue
110-          
108+ 
111109        if  (!empty ($ menuItemsis_array ($ menuItems
112110            $ this buildMenuItems ($ subject$ menuItems
113111        }
114112    }
115-      
113+ 
116114    private  function  getLinksWithSortOrder ($ fieldValue
117115    {
118-         
119116        $ result$ this processor ->getFieldValueInArrayType ($ fieldValue
120-          
117+ 
121118        if  (is_array ($ resultempty ($ result
122-             
123119            usort ($ resultfunction  ($ a$ b
124120                return  $ a'position ' ] <=> $ b'position ' ];
125121            });
126-              
122+ 
127123            return   $ result
128124        }
129125        return  false ;
130126    }
131-      
127+ 
132128    private  function  buildMenuItems ($ subject$ menuItems
133129    {
134-         
135130        $ cmsPages$ this getFindCmsPageList ($ menuItems
136131
137132        foreach  ($ menuItemsas  $ menuItem
138- 
139133            if  ($ menuItem'link_type ' ] === 1  && (empty ($ cmsPages
140134                      !array_key_exists ($ menuItem'page_id ' ], $ cmsPages
141135            ) {
142136                continue ;
143137            }
144-             
145-             if  ($ menuItem'link_type ' ] === 1 ) {
146138
139+             if  ($ menuItem'link_type ' ] === 1 ) {
147140                $ subjectgetMenu ()->addChild (
148141                    $ this addCmsPageToMenu ($ subject$ menuItem$ cmsPages
149142                );
150143            }
151-              
144+ 
152145            if  ($ menuItem'link_type ' ] === 2 ) {
153146                $ subjectgetMenu ()->addChild (
154147                    $ this addStaticLinkToMenu ($ subject$ menuItem
@@ -159,14 +152,13 @@ private function buildMenuItems($subject, $menuItems)
159152
160153    private  function  addCmsPageToMenu ($ subject$ menuItem$ cmsPages
161154    {
162-             
163155        $ page$ cmsPages$ menuItem'page_id ' ]];
164156
165157        $ node$ this nodeFactory ->create (
166158            [
167159                'data '  => [
168160                    'name '  => $ menuItem'link_text ' ],
169-                     'id '  => 'cms-page- ' . $ menuItem'position ' ]. '- ' . $ pagegetIdentifier (),
161+                     'id '  => 'cms-page- '  .  $ menuItem'position ' ] .  '- '  .  $ pagegetIdentifier (),
170162                    'url '  => $ this getCmsPageUrl ($ page
171163                    'has_active '  => false ,
172164                    'is_active '  => false 
@@ -177,14 +169,14 @@ private function addCmsPageToMenu($subject, $menuItem, $cmsPages)
177169        );
178170        return  $ node
179171    }
180-      
172+ 
181173    private  function  addStaticLinkToMenu ($ subject$ menuItem
182174    {
183175        $ node$ this nodeFactory ->create (
184176            [
185177                'data '  => [
186178                    'name '  => $ menuItem'link_text ' ],
187-                     'id '  => 'static-links- ' . $ menuItem'position ' ],
179+                     'id '  => 'static-links- '  .  $ menuItem'position ' ],
188180                    'url '  => $ this getLinkUrl ($ menuItem
189181                    'has_active '  => false ,
190182                    'is_active '  => false 
@@ -195,20 +187,19 @@ private function addStaticLinkToMenu($subject, $menuItem)
195187        );
196188        return  $ node
197189    }
198-      
190+ 
199191    private  function  getFindCmsPageList ($ links
200192    {
201-         
202193        $ cmsPagesIdentifier
203194        $ result
204-          
195+ 
205196        foreach  ($ linksas  $ link
206197            if  ($ link'link_type ' ] == 1 ) {
207198                $ cmsPagesIdentifier$ link'page_id ' ];
208199            }
209200        }
210201        array_unique ($ cmsPagesIdentifier
211-          
202+ 
212203        $ this searchCriteriaBuilder ->addFilters (
213204            [
214205                $ this filterBuilder 
@@ -228,16 +219,16 @@ private function getFindCmsPageList($links)
228219                    ->create (),
229220            ]
230221        );
231-          
222+ 
232223        $ this searchCriteriaBuilder ->setCurrentPage (1 )->setPageSize (count ($ cmsPagesIdentifier
233-          
224+ 
234225        $ searchCriteria$ this searchCriteriaBuilder ->create ();
235226        $ pages$ this pageRepository ->getList ($ searchCriteria
236227
237228        if  ($ pagesgetTotalCount () >0 ) {
238229            $ items$ pagesgetItems ();
239230            foreach  ($ itemsas  $ page
240-                     $ result$ pagegetIdentifier ()] =  $ page
231+                 $ result$ pagegetIdentifier ()] =  $ page
241232            }
242233        }
243234        return  $ result
@@ -254,7 +245,6 @@ private function getLinkUrl($data)
254245    private  function  getHomePageIdentifier ()
255246    {
256247        if  (!$ this homePageIdentifier ) {
257-             
258248            $ this homePageIdentifier  = $ this scopeConfig ->getValue (
259249                'web/default/cms_home_page ' ,
260250                ScopeInterface::SCOPE_STORE 
0 commit comments