added category lister
This commit is contained in:
86
controllers/front/category.php
Normal file
86
controllers/front/category.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Product Link Checker Product Data Generate Controller
|
||||
*
|
||||
* This controller generates a JSON feed of all products and their attribute combinations
|
||||
* with detailed information for external services.
|
||||
*/
|
||||
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
|
||||
class ProductLinkCheckerCategoryModuleFrontController extends ModuleFrontController
|
||||
{
|
||||
public function init()
|
||||
{
|
||||
parent::init();
|
||||
|
||||
// Security check: Validate the token, same as the other controller
|
||||
$token = Tools::getValue('token');
|
||||
$storedToken = Configuration::get('PLC_SECURITY_TOKEN');
|
||||
|
||||
if (!$token || $token !== $storedToken) {
|
||||
header('HTTP/1.1 403 Forbidden');
|
||||
exit('Invalid security token.');
|
||||
}
|
||||
}
|
||||
|
||||
public function initContent()
|
||||
{
|
||||
parent::initContent();
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$categoriesData = [];
|
||||
$collection = new PrestaShopCollection('Category');
|
||||
|
||||
$id_shop_filter = (int)Tools::getValue('plc_id_shop');
|
||||
$id_lang_filter = (int)Tools::getValue('plc_id_lang');
|
||||
|
||||
// Determine which shops to scan
|
||||
if ($id_shop_filter) {
|
||||
$shop_ids = [$id_shop_filter];
|
||||
} else {
|
||||
$shop_ids = Shop::getShops(true, null, true);
|
||||
}
|
||||
|
||||
// Determine which languages to scan
|
||||
if ($id_lang_filter) {
|
||||
$lang_ids = [$id_lang_filter];
|
||||
} else {
|
||||
$lang_ids = Language::getLanguages(true, false, true);
|
||||
}
|
||||
|
||||
|
||||
foreach ($shop_ids as $id_shop) {
|
||||
foreach ($lang_ids as $id_lang) {
|
||||
|
||||
foreach ($collection as $cat) {
|
||||
|
||||
$category = new Category((int)$cat->id, $id_lang, $id_shop);
|
||||
if (Tools::getValue('plc_only_active') && !$category->active) {
|
||||
continue;
|
||||
}
|
||||
$data = [
|
||||
'id_category' => $category->id,
|
||||
'id_parent' => $category->id_parent,
|
||||
'active' => $category->active,
|
||||
];
|
||||
Tools::getValue('plc_name') ? $data['name'] = $category->name : null;
|
||||
Tools::getValue('plc_link_rewrite') ? $data['link_rewrite'] = $category->link_rewrite : null;
|
||||
Tools::getValue('plc_description') ? $data['description'] = $category->description : null;
|
||||
Tools::getValue('plc_additional_description') ? $data['additional_description'] = $category->additional_description : null;
|
||||
Tools::getValue('plc_meta_title') ? $data['meta_title'] = $category->meta_title : null;
|
||||
Tools::getValue('plc_meta_description') ? $data['meta_description'] = $category->meta_description : null;
|
||||
|
||||
|
||||
|
||||
$categoriesData[] = $data;
|
||||
}
|
||||
}
|
||||
}
|
||||
$response = new JsonResponse($categoriesData);
|
||||
$response->send();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@
|
||||
* with detailed information for external services.
|
||||
*/
|
||||
|
||||
class ProductLinkCheckerProductDataGenerateModuleFrontController extends ModuleFrontController
|
||||
class ProductLinkCheckerProductModuleFrontController extends ModuleFrontController
|
||||
{
|
||||
public function init()
|
||||
{
|
||||
Reference in New Issue
Block a user