PluginProbe
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler / 1.7.0
FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler v1.7.0
1.7.0 1.6.6 1.6.5 1.6.4 1.6.3 1.6.2 1.6.1 1.6.0 1.5.4 1.5.5 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.28 1.3.27 1.3.26 1.3.25 1.3.23 1.3.22 1.3.21 1.3.20 All 50 releases
← All changes | app/Helpers/AdminHelper.php +94 -45 1.3.21 → 1.7.0 View file →
@@ -14,9 +14,9 @@
14 14 {
15 15 public static function getProductMenu($product, $echo = false, $activeMenu = '')
16 16 {
17 17 // Skip rendering menu when custom editor modal is open
18 - if (isset($_GET['custom-editor']) && $_GET['custom-editor'] == 'true') {
18 + if (App::request()->get('custom-editor') === 'true') {
19 19 return '';
20 20 }
21 21
22 22 if (!$product instanceof Product) {
@@ -39,16 +39,8 @@
39 39 'product_integrations' => [
40 40 'label' => __('Integrations', 'fluent-cart'),
41 41 'link' => $baseUrl . 'products/' . $productId . '/integrations'
42 42 ],
43 - // 'product_pricing' => [
44 - // 'label' => __('Pricing', 'fluent-cart'),
45 - // 'link' => $baseUrl . 'products/' . $productId . '/pricing'
46 - // ],
47 -// 'product_integrations' => [
48 -// 'label' => __('Integrations', 'fluent-cart'),
49 -// 'link' => $baseUrl . 'products/' . $productId . '/integrations'
50 -// ]
51 43 ], [
52 44 'product_id' => $productId,
53 45 'base_url' => $baseUrl
54 46 ]);
@@ -53,9 +45,9 @@
53 45 'base_url' => $baseUrl
54 46 ]);
55 47
56 48 $request = App::request()->all();
57 - if (isset($request['action']) && $request['action'] == 'edit') {
49 + if (isset($request['action']) && $request['action'] === 'edit') {
58 50 $menuItems['product_details'] = [
59 51 'label' => __('Edit Pricing', 'fluent-cart'),
60 52 'link' => admin_url('admin.php?page=fluent-cart#/products/' . $productId)
61 53 ];
@@ -72,17 +64,89 @@
72 64 'status' => $product->post_status,
73 65 'product_id' => $productId
74 66 ];
75 67
76 - if ($echo) {
77 - App::make('view')->render('admin.admin_product_menu', $data);
78 - } else {
68 + if (!$echo) {
79 69 return (string)App::make('view')->make('admin.admin_product_menu', $data);
80 70 }
71 +
72 + App::make('view')->render('admin.admin_product_menu', $data);
81 73 }
82 74
75 + private static function getProductsMenu($baseUrl)
76 + {
77 + $menu = [
78 + 'label' => __('Products', 'fluent-cart'),
79 + 'link' => $baseUrl . 'products',
80 + // Any-of: a reviews-only role (reviews/manage without
81 + // products/view) must still see the parent, or its authorized
82 + // Reviews child could never render. Children gate individually —
83 + // including on the reviews module being switched on at all.
84 + 'permission' => ['products/view', 'reviews/manage']
85 + ];
86 +
87 + $children = [];
88 +
89 + // The parent link is not reachable on touch (the tap opens the dropdown),
90 + // and the off-canvas menu renders children only — so list it as a child too.
91 + $children['all_products'] = [
92 + 'label' => __('All Products', 'fluent-cart'),
93 + 'link' => $baseUrl . 'products',
94 + 'permission' => ['products/view']
95 + ];
96 +
97 + // Attributes power the advanced-variations feature.
98 + $children['product_attributes'] = [
99 + 'label' => __('Attributes', 'fluent-cart'),
100 + 'link' => $baseUrl . 'products/attributes',
101 + 'permission' => ['products/view']
102 + ];
103 +
104 + // Inventory only when the advanced-inventory toggle is on.
105 + if (ModuleSettings::isActive('stock_management') &&
106 + ModuleSettings::getSettings('stock_management.enable_advanced_inventory') === 'yes') {
107 + $children['product_inventory'] = [
108 + 'label' => __('Inventory', 'fluent-cart'),
109 + 'link' => $baseUrl . 'products/inventory',
110 + 'permission' => ['products/view']
111 + ];
112 + }
113 +
114 + // Only while the store has reviews switched on. The screen behind it
115 + // already redirects to the dashboard when the module is off, so an
116 + // entry here would be a menu item that bounces whoever clicks it.
117 + if (ModuleSettings::isActive('reviews')) {
118 + $children['reviews'] = [
119 + 'label' => __('Reviews', 'fluent-cart'),
120 + 'link' => $baseUrl . 'reviews',
121 + 'permission' => ['reviews/manage']
122 + ];
123 + }
124 +
125 + $menu['children'] = $children;
126 +
127 + return $menu;
128 + }
129 +
83 130 public static function getAdminMenu($echo = false, $activeNav = '')
84 131 {
132 + $menuItems = self::getMenuItems();
133 +
134 + if (!$echo) {
135 + return App::make('view')->make('admin.admin_menu', [
136 + 'menu_items' => $menuItems,
137 + 'active' => $activeNav
138 + ]);
139 + }
140 +
141 + App::make('view')->render('admin.admin_menu', [
142 + 'menu_items' => $menuItems,
143 + 'active' => $activeNav
144 + ]);
145 + }
146 +
147 + public static function getMenuItems($withSettings = false)
148 + {
85 149 $baseUrl = apply_filters('fluent_cart/admin_base_url', admin_url('admin.php?page=fluent-cart#/'), []);
86 150 $menuItems = apply_filters('fluent_cart/global_admin_menu_items', [
87 151 'dashboard' => [
88 152 'label' => __('Dashboard', 'fluent-cart'),
@@ -97,13 +161,9 @@
97 161 'label' => __('Customers', 'fluent-cart'),
98 162 'link' => $baseUrl . 'customers',
99 163 'permission' => ['customers/view', 'customers/manage']
100 164 ],
101 - 'products' => [
102 - 'label' => __('Products', 'fluent-cart'),
103 - 'link' => $baseUrl . 'products',
104 - 'permission' => ['products/view']
105 - ],
165 + 'products' => self::getProductsMenu($baseUrl),
106 166 'subscriptions' => [
107 167 'label' => __('Subscriptions', 'fluent-cart'),
108 168 'link' => $baseUrl . 'subscriptions',
109 169 'permission' => ['subscriptions/view']
@@ -114,15 +174,8 @@
114 174 'permission' => ['reports/view']
115 175 ],
116 176 ], ['base_url' => $baseUrl]);
117 177
118 - $menuItems['more'] = [
119 - 'label' => __('More', 'fluent-cart'),
120 - 'link' => '#',
121 - 'children' => []
122 - ];
123 -
124 -
125 178 $moreItems = apply_filters('fluent_cart/global_admin_menu_more_items', array_filter([
126 179 'integrations' => [
127 180 'label' => __('Integrations', 'fluent-cart'),
128 181 'link' => $baseUrl . 'integrations',
@@ -154,21 +207,25 @@
154 207 'link' => $baseUrl . 'logs',
155 208 ],
156 209 ]), ['base_url' => $baseUrl]);
157 210
158 - $menuItems['more']['children'] = $moreItems;
211 + if ($withSettings) {
212 + $menuItems['settings'] = [
213 + 'label' => __('Settings', 'fluent-cart'),
214 + 'link' => $baseUrl . 'settings/store-settings',
215 + 'permission' => ['store/settings', 'store/sensitive'],
216 + 'icon' => 'fluent-settings'
217 + ];
218 + }
159 219
160 - if ($echo) {
161 - App::make('view')->render('admin.admin_menu', [
162 - 'menu_items' => $menuItems,
163 - 'active' => $activeNav
164 - ]);
165 - } else {
166 - return App::make('view')->make('admin.admin_menu', [
167 - 'menu_items' => $menuItems,
168 - 'active' => $activeNav
169 - ]);
170 - }
220 + $menuItems['more'] = [
221 + 'label' => __('More', 'fluent-cart'),
222 + 'link' => '#',
223 + 'children' => $moreItems,
224 + ];
225 +
226 +
227 + return $menuItems;
171 228 }
172 229
173 230 public static function pushGlobalAdminAssets()
174 231 {
@@ -183,14 +240,6 @@
183 240 [],
184 241 FLUENTCART_VERSION,
185 242 );
186 243 }
187 -
188 -
189 244 }
190 -
191 -
192 -
193 -
194 -
195 -
196 245