summaryrefslogtreecommitdiff
path: root/public/app/controllers/Product.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/app/controllers/Product.php')
-rw-r--r--public/app/controllers/Product.php52
1 files changed, 52 insertions, 0 deletions
diff --git a/public/app/controllers/Product.php b/public/app/controllers/Product.php
new file mode 100644
index 0000000..0193ed9
--- /dev/null
+++ b/public/app/controllers/Product.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace app\controllers;
+
+use app\models\market\Product_model;
+use app\models\market\ProductCategories_model;
+
+class Product {
+
+ public static function fromUrl($url, $pathArr)
+ {
+ $product = proxy([\app\models\market\Product_model::class, 'fromUrl'],
+ [ $url ], CACHE_PRODUCT_TTL
+ );
+
+ // TODO:
+ // verify path, else redirect
+
+ if ($product === false) {
+ header("HTTP/1.0 404 Not Found");
+ render_view('error/404', ['message' => 'Of all the things I\'ve lost, I miss my mind the most.']);
+ return ;
+ }
+
+ // render page
+ load_template('products', [ 'data' => [
+ 'title' => $product['Title'],
+ 'seo' => [],
+ 'tree' => proxy(
+ [\app\models\market\ProductCategories_model::class, 'tree'],
+ [], CACHE_ROOT_TTL
+ ),
+ 'hierarchyPath' => explode('.', substr($product['Hierarchy'], 1, -1)),
+ 'sections' => [
+ [
+ 'view' => 'content/product_list/Product_List_Filters',
+ 'key' => 'filters',
+ 'data' => []
+ ],
+ [
+ 'view' => 'content/product/product_details',
+ 'key' => 'product',
+ 'data' => $product
+ ]
+ ]
+ ]
+ ]);
+
+ }
+
+
+}