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 +77 -46 1.3.27 → 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,13 +64,13 @@
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
83 75 private static function getProductsMenu($baseUrl)
84 76 {
@@ -84,27 +76,77 @@
84 76 {
85 77 $menu = [
86 78 'label' => __('Products', 'fluent-cart'),
87 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',
88 94 'permission' => ['products/view']
89 95 ];
90 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.
91 105 if (ModuleSettings::isActive('stock_management') &&
92 106 ModuleSettings::getSettings('stock_management.enable_advanced_inventory') === 'yes') {
93 - $menu['children'] = [
94 - 'product_inventory' => [
95 - 'label' => __('Inventory', 'fluent-cart'),
96 - 'link' => $baseUrl . 'products/inventory',
97 - 'permission' => ['products/view']
98 - ]
107 + $children['product_inventory'] = [
108 + 'label' => __('Inventory', 'fluent-cart'),
109 + 'link' => $baseUrl . 'products/inventory',
110 + 'permission' => ['products/view']
99 111 ];
100 112 }
101 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 +
102 127 return $menu;
103 128 }
104 129
105 130 public static function getAdminMenu($echo = false, $activeNav = '')
106 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 + {
107 149 $baseUrl = apply_filters('fluent_cart/admin_base_url', admin_url('admin.php?page=fluent-cart#/'), []);
108 150 $menuItems = apply_filters('fluent_cart/global_admin_menu_items', [
109 151 'dashboard' => [
110 152 'label' => __('Dashboard', 'fluent-cart'),
@@ -132,15 +174,8 @@
132 174 'permission' => ['reports/view']
133 175 ],
134 176 ], ['base_url' => $baseUrl]);
135 177
136 - $menuItems['more'] = [
137 - 'label' => __('More', 'fluent-cart'),
138 - 'link' => '#',
139 - 'children' => []
140 - ];
141 -
142 -
143 178 $moreItems = apply_filters('fluent_cart/global_admin_menu_more_items', array_filter([
144 179 'integrations' => [
145 180 'label' => __('Integrations', 'fluent-cart'),
146 181 'link' => $baseUrl . 'integrations',
@@ -172,21 +207,25 @@
172 207 'link' => $baseUrl . 'logs',
173 208 ],
174 209 ]), ['base_url' => $baseUrl]);
175 210
176 - $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 + }
177 219
178 - if ($echo) {
179 - App::make('view')->render('admin.admin_menu', [
180 - 'menu_items' => $menuItems,
181 - 'active' => $activeNav
182 - ]);
183 - } else {
184 - return App::make('view')->make('admin.admin_menu', [
185 - 'menu_items' => $menuItems,
186 - 'active' => $activeNav
187 - ]);
188 - }
220 + $menuItems['more'] = [
221 + 'label' => __('More', 'fluent-cart'),
222 + 'link' => '#',
223 + 'children' => $moreItems,
224 + ];
225 +
226 +
227 + return $menuItems;
189 228 }
190 229
191 230 public static function pushGlobalAdminAssets()
192 231 {
@@ -201,14 +240,6 @@
201 240 [],
202 241 FLUENTCART_VERSION,
203 242 );
204 243 }
205 -
206 -
207 244 }
208 -
209 -
210 -
211 -
212 -
213 -
214 245